mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-27 13:48:51 +08:00
4911 lines
736 KiB
Go
4911 lines
736 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 (_d "bufio";_dd "bytes";_ea "crypto/md5";_c "crypto/rand";_bbd "crypto/sha1";_dg "crypto/x509";_bg "encoding/binary";_fg "encoding/hex";_gd "errors";_f "fmt";_df "github.com/unidoc/pkcs7";_bag "github.com/unidoc/unipdf/v3/common";
|
||
_egg "github.com/unidoc/unipdf/v3/core";_fe "github.com/unidoc/unipdf/v3/core/security";_gfc "github.com/unidoc/unipdf/v3/core/security/crypt";_ga "github.com/unidoc/unipdf/v3/internal/cmap";_eg "github.com/unidoc/unipdf/v3/internal/imageutil";_ace "github.com/unidoc/unipdf/v3/internal/license";
|
||
_fb "github.com/unidoc/unipdf/v3/internal/sampling";_ef "github.com/unidoc/unipdf/v3/internal/textencoding";_ce "github.com/unidoc/unipdf/v3/internal/timeutils";_gdg "github.com/unidoc/unipdf/v3/internal/transform";_dc "github.com/unidoc/unipdf/v3/model/internal/docutil";
|
||
_bgd "github.com/unidoc/unipdf/v3/model/internal/fonts";_be "github.com/unidoc/unipdf/v3/model/mdp";_gfa "github.com/unidoc/unipdf/v3/model/sigutil";_cde "github.com/unidoc/unipdf/v3/ps";_ec "github.com/unidoc/unitype";_de "golang.org/x/xerrors";_bb "hash";
|
||
_cd "image";_ba "image/color";_ "image/gif";_ "image/png";_dag "io";_ac "io/ioutil";_dgb "math";_cg "math/rand";_gf "os";_bae "regexp";_cf "sort";_da "strconv";_fc "strings";_b "sync";_e "time";_ad "unicode";_ab "unicode/utf8";);
|
||
|
||
// 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 (_gfee *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gfee .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_gbfe *PdfReader )newPdfActionFromIndirectObject (_dbd *_egg .PdfIndirectObject )(*PdfAction ,error ){_cac ,_dbb :=_dbd .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_dbb {return nil ,_f .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_gbfe ._dabaf .GetModelFromPrimitive (_cac );model !=nil {_gdb ,_cacc :=model .(*PdfAction );if !_cacc {return nil ,_f .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
|
||
};return _gdb ,nil ;};_cbf :=&PdfAction {};_cbf ._bf =_dbd ;_gbfe ._dabaf .Register (_cac ,_cbf );if _dbc :=_cac .Get ("\u0054\u0079\u0070\u0065");_dbc !=nil {_dadg ,_abc :=_dbc .(*_egg .PdfObjectName );if !_abc {_bag .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",_dbc );
|
||
}else {if *_dadg !="\u0041\u0063\u0074\u0069\u006f\u006e"{_bag .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",*_dadg );
|
||
};_cbf .Type =_dadg ;};};if _efad :=_cac .Get ("\u004e\u0065\u0078\u0074");_efad !=nil {_cbf .Next =_efad ;};if _dee :=_cac .Get ("\u0053");_dee !=nil {_cbf .S =_dee ;};_cabc ,_agf :=_cbf .S .(*_egg .PdfObjectName );if !_agf {_bag .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",_cbf .S );
|
||
return nil ,_f .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cbf .S );};_cecbd :=PdfActionType (_cabc .String ());
|
||
switch _cecbd {case ActionTypeGoTo :_dbf ,_ecd :=_gbfe .newPdfActionGotoFromDict (_cac );if _ecd !=nil {return nil ,_ecd ;};_dbf .PdfAction =_cbf ;_cbf ._abb =_dbf ;return _cbf ,nil ;case ActionTypeGoToR :_gee ,_fbe :=_gbfe .newPdfActionGotoRFromDict (_cac );
|
||
if _fbe !=nil {return nil ,_fbe ;};_gee .PdfAction =_cbf ;_cbf ._abb =_gee ;return _cbf ,nil ;case ActionTypeGoToE :_fee ,_cfd :=_gbfe .newPdfActionGotoEFromDict (_cac );if _cfd !=nil {return nil ,_cfd ;};_fee .PdfAction =_cbf ;_cbf ._abb =_fee ;return _cbf ,nil ;
|
||
case ActionTypeLaunch :_eedf ,_ebc :=_gbfe .newPdfActionLaunchFromDict (_cac );if _ebc !=nil {return nil ,_ebc ;};_eedf .PdfAction =_cbf ;_cbf ._abb =_eedf ;return _cbf ,nil ;case ActionTypeThread :_cfc ,_geee :=_gbfe .newPdfActionThreadFromDict (_cac );
|
||
if _geee !=nil {return nil ,_geee ;};_cfc .PdfAction =_cbf ;_cbf ._abb =_cfc ;return _cbf ,nil ;case ActionTypeURI :_ffb ,_cgg :=_gbfe .newPdfActionURIFromDict (_cac );if _cgg !=nil {return nil ,_cgg ;};_ffb .PdfAction =_cbf ;_cbf ._abb =_ffb ;return _cbf ,nil ;
|
||
case ActionTypeSound :_bde ,_ddf :=_gbfe .newPdfActionSoundFromDict (_cac );if _ddf !=nil {return nil ,_ddf ;};_bde .PdfAction =_cbf ;_cbf ._abb =_bde ;return _cbf ,nil ;case ActionTypeMovie :_cba ,_gaa :=_gbfe .newPdfActionMovieFromDict (_cac );if _gaa !=nil {return nil ,_gaa ;
|
||
};_cba .PdfAction =_cbf ;_cbf ._abb =_cba ;return _cbf ,nil ;case ActionTypeHide :_dade ,_fcbbe :=_gbfe .newPdfActionHideFromDict (_cac );if _fcbbe !=nil {return nil ,_fcbbe ;};_dade .PdfAction =_cbf ;_cbf ._abb =_dade ;return _cbf ,nil ;case ActionTypeNamed :_gdbe ,_bgc :=_gbfe .newPdfActionNamedFromDict (_cac );
|
||
if _bgc !=nil {return nil ,_bgc ;};_gdbe .PdfAction =_cbf ;_cbf ._abb =_gdbe ;return _cbf ,nil ;case ActionTypeSubmitForm :_feea ,_dbe :=_gbfe .newPdfActionSubmitFormFromDict (_cac );if _dbe !=nil {return nil ,_dbe ;};_feea .PdfAction =_cbf ;_cbf ._abb =_feea ;
|
||
return _cbf ,nil ;case ActionTypeResetForm :_ggf ,_gdc :=_gbfe .newPdfActionResetFormFromDict (_cac );if _gdc !=nil {return nil ,_gdc ;};_ggf .PdfAction =_cbf ;_cbf ._abb =_ggf ;return _cbf ,nil ;case ActionTypeImportData :_adg ,_dbg :=_gbfe .newPdfActionImportDataFromDict (_cac );
|
||
if _dbg !=nil {return nil ,_dbg ;};_adg .PdfAction =_cbf ;_cbf ._abb =_adg ;return _cbf ,nil ;case ActionTypeSetOCGState :_ggc ,_feaf :=_gbfe .newPdfActionSetOCGStateFromDict (_cac );if _feaf !=nil {return nil ,_feaf ;};_ggc .PdfAction =_cbf ;_cbf ._abb =_ggc ;
|
||
return _cbf ,nil ;case ActionTypeRendition :_eec ,_gcg :=_gbfe .newPdfActionRenditionFromDict (_cac );if _gcg !=nil {return nil ,_gcg ;};_eec .PdfAction =_cbf ;_cbf ._abb =_eec ;return _cbf ,nil ;case ActionTypeTrans :_dgdg ,_cecd :=_gbfe .newPdfActionTransFromDict (_cac );
|
||
if _cecd !=nil {return nil ,_cecd ;};_dgdg .PdfAction =_cbf ;_cbf ._abb =_dgdg ;return _cbf ,nil ;case ActionTypeGoTo3DView :_gdce ,_adb :=_gbfe .newPdfActionGoTo3DViewFromDict (_cac );if _adb !=nil {return nil ,_adb ;};_gdce .PdfAction =_cbf ;_cbf ._abb =_gdce ;
|
||
return _cbf ,nil ;case ActionTypeJavaScript :_dede ,_ebcf :=_gbfe .newPdfActionJavaScriptFromDict (_cac );if _ebcf !=nil {return nil ,_ebcf ;};_dede .PdfAction =_cbf ;_cbf ._abb =_dede ;return _cbf ,nil ;};_bag .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",_cecbd );
|
||
return nil ,nil ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_cegecg *XObjectForm )ToPdfObject ()_egg .PdfObject {_dfecc :=_cegecg ._acgef ;_beacbc :=_dfecc .PdfObjectDictionary ;if _cegecg .Filter !=nil {_beacbc =_cegecg .Filter .MakeStreamDict ();_dfecc .PdfObjectDictionary =_beacbc ;};_beacbc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_beacbc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u0072\u006d"));_beacbc .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_cegecg .FormType );_beacbc .SetIfNotNil ("\u0042\u0042\u006f\u0078",_cegecg .BBox );
|
||
_beacbc .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_cegecg .Matrix );if _cegecg .Resources !=nil {_beacbc .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cegecg .Resources .ToPdfObject ());};_beacbc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cegecg .Group );
|
||
_beacbc .SetIfNotNil ("\u0052\u0065\u0066",_cegecg .Ref );_beacbc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_cegecg .MetaData );_beacbc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cegecg .PieceInfo );_beacbc .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cegecg .LastModified );
|
||
_beacbc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_cegecg .StructParent );_beacbc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cegecg .StructParents );_beacbc .SetIfNotNil ("\u004f\u0050\u0049",_cegecg .OPI );
|
||
_beacbc .SetIfNotNil ("\u004f\u0043",_cegecg .OC );_beacbc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cegecg .Name );_beacbc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_cegecg .Stream ))));_dfecc .Stream =_cegecg .Stream ;
|
||
return _dfecc ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gffge *PdfColorCalGray )ToInteger (bits int )uint32 {_gcd :=_dgb .Pow (2,float64 (bits ))-1;return uint32 (_gcd *_gffge .Val ());};
|
||
|
||
// 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 *_egg .PdfObjectInteger ;TilingType *_egg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_egg .PdfObjectFloat ;YStep *_egg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_egg .PdfObjectArray ;};
|
||
func (_eddded *PdfWriter )writeOutputIntents ()error {if len (_eddded ._fadef )==0{return nil ;};_gcaca :=make ([]_egg .PdfObject ,len (_eddded ._fadef ));for _fbbed ,_aeda :=range _eddded ._fadef {_dgbgf :=_aeda .ToPdfObject ();_gcaca [_fbbed ]=_egg .MakeIndirectObject (_dgbgf );
|
||
};_aeegb :=_egg .MakeIndirectObject (_egg .MakeArray (_gcaca ...));_eddded ._acea .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_aeegb );if _acegg :=_eddded .addObjects (_aeegb );_acegg !=nil {return _acegg ;};return nil ;
|
||
};
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_eeac *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fcde :=_fb .NewReader (img .getBase ());_fdcda :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_gece :=_fb .NewWriter (_fdcda );
|
||
_agde :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_fgaeb :=make ([]uint32 ,3);var (_fddb error ;_cfabf ,_cee ,_cagdf ,_cgfd ,_bcbd ,_dfdc float64 ;);for {_fddb =_fcde .ReadSamples (_fgaeb );if _fddb ==_dag .EOF {break ;}else if _fddb !=nil {return img ,_fddb ;
|
||
};_cfabf =float64 (_fgaeb [0])/_agde ;_cee =float64 (_fgaeb [1])/_agde ;_cagdf =float64 (_fgaeb [2])/_agde ;_cgfd =_eeac .Matrix [0]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [3]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [6]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]);
|
||
_bcbd =_eeac .Matrix [1]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [4]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [7]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]);_dfdc =_eeac .Matrix [2]*_dgb .Pow (_cfabf ,_eeac .Gamma [0])+_eeac .Matrix [5]*_dgb .Pow (_cee ,_eeac .Gamma [1])+_eeac .Matrix [8]*_dgb .Pow (_cagdf ,_eeac .Gamma [2]);
|
||
_cfabf =3.240479*_cgfd +-1.537150*_bcbd +-0.498535*_dfdc ;_cee =-0.969256*_cgfd +1.875992*_bcbd +0.041556*_dfdc ;_cagdf =0.055648*_cgfd +-0.204043*_bcbd +1.057311*_dfdc ;_cfabf =_dgb .Min (_dgb .Max (_cfabf ,0),1.0);_cee =_dgb .Min (_dgb .Max (_cee ,0),1.0);
|
||
_cagdf =_dgb .Min (_dgb .Max (_cagdf ,0),1.0);_fgaeb [0]=uint32 (_cfabf *_agde );_fgaeb [1]=uint32 (_cee *_agde );_fgaeb [2]=uint32 (_cagdf *_agde );if _fddb =_gece .WriteSamples (_fgaeb );_fddb !=nil {return img ,_fddb ;};};return _cggba (&_fdcda ),nil ;
|
||
};
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_gfaaf *PdfFont )BytesToCharcodes (data []byte )[]_ef .CharCode {_bag .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 _deca ,_cgfcf :=_gfaaf ._edde .(*pdfFontType0 );_cgfcf &&_deca ._fcffd !=nil {if _afbfb ,_eddd :=_deca .bytesToCharcodes (data );_eddd {return _afbfb ;};};var (_cabgb =make ([]_ef .CharCode ,0,len (data )+len (data )%2);_bcgg =_gfaaf .baseFields ();
|
||
);if _bcgg ._bfbgf !=nil {if _bgddf ,_daccg :=_bcgg ._bfbgf .BytesToCharcodes (data );_daccg {for _ ,_afbbe :=range _bgddf {_cabgb =append (_cabgb ,_ef .CharCode (_afbbe ));};return _cabgb ;};};if _bcgg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
|
||
};if len (data )%2!=0{_bag .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 _ebfg :=0;_ebfg < len (data );_ebfg +=2{_efgge :=uint16 (data [_ebfg ])<<8|uint16 (data [_ebfg +1]);_cabgb =append (_cabgb ,_ef .CharCode (_efgge ));};}else {for _ ,_fdgad :=range data {_cabgb =append (_cabgb ,_ef .CharCode (_fdgad ));
|
||
};};return _cabgb ;};
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_dacd *PdfReader )Decrypt (password []byte )(bool ,error ){_cgbge ,_fbdfe :=_dacd ._dafgab .Decrypt (password );if _fbdfe !=nil {return false ,_fbdfe ;};if !_cgbge {return false ,nil ;};_fbdfe =_dacd .loadStructure ();if _fbdfe !=nil {_bag .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",_fbdfe );
|
||
return false ,_fbdfe ;};return true ,nil ;};
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_bfafc *PdfPageResources )GetXObjectByName (keyName _egg .PdfObjectName )(*_egg .PdfObjectStream ,XObjectType ){if _bfafc .XObject ==nil {return nil ,XObjectTypeUndefined ;};_fgffg ,_fedcc :=_egg .TraceToDirectObject (_bfafc .XObject ).(*_egg .PdfObjectDictionary );
|
||
if !_fedcc {_bag .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",_egg .TraceToDirectObject (_bfafc .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _fgfgf :=_fgffg .Get (keyName );_fgfgf !=nil {_ggdcb ,_aecfa :=_egg .GetStream (_fgfgf );if !_aecfa {_bag .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",_fgfgf );
|
||
return nil ,XObjectTypeUndefined ;};_aggeg :=_ggdcb .PdfObjectDictionary ;_cgfag ,_aecfa :=_egg .TraceToDirectObject (_aggeg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_egg .PdfObjectName );if !_aecfa {_bag .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",_aggeg .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_cgfag =="\u0049\u006d\u0061g\u0065"{return _ggdcb ,XObjectTypeImage ;}else if *_cgfag =="\u0046\u006f\u0072\u006d"{return _ggdcb ,XObjectTypeForm ;}else if *_cgfag =="\u0050\u0053"{return _ggdcb ,XObjectTypePS ;
|
||
}else {_bag .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",*_cgfag );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
|
||
};};
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _egg .PdfObject ;H _egg .PdfObject ;};func _bagfg (_cfbab *_egg .PdfIndirectObject )(*PdfOutline ,error ){_affa ,_dbafd :=_cfbab .PdfObject .(*_egg .PdfObjectDictionary );if !_dbafd {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_egce :=NewPdfOutline ();if _ddbda :=_affa .Get ("\u0054\u0079\u0070\u0065");_ddbda !=nil {_eccc ,_cdgcf :=_ddbda .(*_egg .PdfObjectName );if _cdgcf {if *_eccc !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_bag .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",*_eccc );
|
||
};};};if _aage :=_affa .Get ("\u0043\u006f\u0075n\u0074");_aage !=nil {_cgfda ,_cgbfc :=_egg .GetNumberAsInt64 (_aage );if _cgbfc !=nil {return nil ,_cgbfc ;};_egce .Count =&_cgfda ;};return _egce ,nil ;};
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_cecad *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_cecad .HiVal )};};
|
||
|
||
// 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 *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;DS *_egg .PdfObjectString ;RV _egg .PdfObject ;};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_fcdg *_egg .PdfObjectDictionary ;_fcgc *_egg .PdfIndirectObject ;};func _fedbe ()*modelManager {_gcdff :=modelManager {};_gcdff ._eefgc =map[PdfModel ]_egg .PdfObject {};
|
||
_gcdff ._ggbg =map[_egg .PdfObject ]PdfModel {};return &_gcdff ;};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_gedde FieldFlag )String ()string {_aedec :="";if _gedde ==FieldFlagClear {_aedec ="\u0043\u006c\u0065a\u0072";return _aedec ;};if _gedde &FieldFlagReadOnly > 0{_aedec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _gedde &FieldFlagRequired > 0{_aedec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";
|
||
};if _gedde &FieldFlagNoExport > 0{_aedec +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _gedde &FieldFlagNoToggleToOff > 0{_aedec +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _gedde &FieldFlagRadio > 0{_aedec +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _gedde &FieldFlagPushbutton > 0{_aedec +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _gedde &FieldFlagRadiosInUnision > 0{_aedec +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};
|
||
if _gedde &FieldFlagMultiline > 0{_aedec +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _gedde &FieldFlagPassword > 0{_aedec +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _gedde &FieldFlagFileSelect > 0{_aedec +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _gedde &FieldFlagDoNotScroll > 0{_aedec +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _gedde &FieldFlagComb > 0{_aedec +="\u007c\u0043\u006fm\u0062";};if _gedde &FieldFlagRichText > 0{_aedec +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";
|
||
};if _gedde &FieldFlagDoNotSpellCheck > 0{_aedec +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _gedde &FieldFlagCombo > 0{_aedec +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _gedde &FieldFlagEdit > 0{_aedec +="\u007c\u0045\u0064i\u0074";
|
||
};if _gedde &FieldFlagSort > 0{_aedec +="\u007c\u0053\u006fr\u0074";};if _gedde &FieldFlagMultiSelect > 0{_aedec +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _gedde &FieldFlagCommitOnSelChange > 0{_aedec +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";
|
||
};return _fc .Trim (_aedec ,"\u007c");};
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_aaba :=NewPdfAnnotation ();_feb :=&PdfAnnotationSound {};_feb .PdfAnnotation =_aaba ;_feb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaba .SetContext (_feb );return _feb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egfde *PdfFilespec )ToPdfObject ()_egg .PdfObject {_edfc :=_egfde .getDict ();_edfc .Clear ();_edfc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_edfc .SetIfNotNil ("\u0046\u0053",_egfde .FS );
|
||
_edfc .SetIfNotNil ("\u0046",_egfde .F );_edfc .SetIfNotNil ("\u0055\u0046",_egfde .UF );_edfc .SetIfNotNil ("\u0044\u004f\u0053",_egfde .DOS );_edfc .SetIfNotNil ("\u004d\u0061\u0063",_egfde .Mac );_edfc .SetIfNotNil ("\u0055\u006e\u0069\u0078",_egfde .Unix );
|
||
_edfc .SetIfNotNil ("\u0049\u0044",_egfde .ID );_edfc .SetIfNotNil ("\u0056",_egfde .V );_edfc .SetIfNotNil ("\u0045\u0046",_egfde .EF );_edfc .SetIfNotNil ("\u0052\u0046",_egfde .RF );_edfc .SetIfNotNil ("\u0044\u0065\u0073\u0063",_egfde .Desc );_edfc .SetIfNotNil ("\u0043\u0049",_egfde .CI );
|
||
return _egfde ._fbdd ;};type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_agcab *PdfSignature )SetName (name string ){_agcab .Name =_egg .MakeString (name )};
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_babd *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func (_bcff *PdfReader )newPdfAnnotationTextFromDict (_fcea *_egg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_ggfb :=PdfAnnotationText {};_fagf ,_gef :=_bcff .newPdfAnnotationMarkupFromDict (_fcea );
|
||
if _gef !=nil {return nil ,_gef ;};_ggfb .PdfAnnotationMarkup =_fagf ;_ggfb .Open =_fcea .Get ("\u004f\u0070\u0065\u006e");_ggfb .Name =_fcea .Get ("\u004e\u0061\u006d\u0065");_ggfb .State =_fcea .Get ("\u0053\u0074\u0061t\u0065");_ggfb .StateModel =_fcea .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
|
||
return &_ggfb ,nil ;};
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ddg :=NewPdfAction ();_bbf :=&PdfActionSetOCGState {};_bbf .PdfAction =_ddg ;_ddg .SetContext (_bbf );return _bbf ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_agcg *PdfAnnotationCircle )ToPdfObject ()_egg .PdfObject {_agcg .PdfAnnotation .ToPdfObject ();_adfe :=_agcg ._cef ;_cdad :=_adfe .PdfObject .(*_egg .PdfObjectDictionary );_agcg .PdfAnnotationMarkup .appendToPdfDictionary (_cdad );_cdad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_cdad .SetIfNotNil ("\u0042\u0053",_agcg .BS );_cdad .SetIfNotNil ("\u0049\u0043",_agcg .IC );_cdad .SetIfNotNil ("\u0042\u0045",_agcg .BE );_cdad .SetIfNotNil ("\u0052\u0044",_agcg .RD );return _adfe ;};func _babdd ()string {_cgag .Lock ();defer _cgag .Unlock ();
|
||
return _fcfbd };func _cegee (_bdfbc *_egg .PdfObjectStream )(*PdfFunctionType4 ,error ){_ceab :=&PdfFunctionType4 {};_ceab ._cbebd =_bdfbc ;_efcfd :=_bdfbc .PdfObjectDictionary ;_fgcaa ,_gfcc :=_egg .TraceToDirectObject (_efcfd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );
|
||
if !_gfcc {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .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 _fgcaa .Len ()%2!=0{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_beaa ,_gaee :=_fgcaa .ToFloat64Array ();
|
||
if _gaee !=nil {return nil ,_gaee ;};_ceab .Domain =_beaa ;_fgcaa ,_gfcc =_egg .TraceToDirectObject (_efcfd .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if _gfcc {if _fgcaa .Len ()< 0||_fgcaa .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_adbe ,_ggfdg :=_fgcaa .ToFloat64Array ();if _ggfdg !=nil {return nil ,_ggfdg ;};_ceab .Range =_adbe ;};_dfffg ,_gaee :=_egg .DecodeStream (_bdfbc );if _gaee !=nil {return nil ,_gaee ;};_ceab ._fafff =_dfffg ;_dcef :=_cde .NewPSParser (_dfffg );_gdece ,_gaee :=_dcef .Parse ();
|
||
if _gaee !=nil {return nil ,_gaee ;};_ceab .Program =_gdece ;return _ceab ,nil ;};
|
||
|
||
// GetContext returns the context of the outline tree node, which is either a
|
||
// *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized
|
||
// tree nodes.
|
||
func (_cgaa *PdfOutlineTreeNode )GetContext ()PdfModel {if _bfgb ,_gdgg :=_cgaa ._bgbfg .(*PdfOutline );_gdgg {return _bfgb ;};if _bbgfa ,_dacb :=_cgaa ._bgbfg .(*PdfOutlineItem );_dacb {return _bbgfa ;};_bag .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 (_cdgd *PdfReader )newPdfActionLaunchFromDict (_fga *_egg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_aadc ,_ecfg :=_fgb (_fga .Get ("\u0046"));if _ecfg !=nil {return nil ,_ecfg ;};return &PdfActionLaunch {Win :_fga .Get ("\u0057\u0069\u006e"),Mac :_fga .Get ("\u004d\u0061\u0063"),Unix :_fga .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_fga .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_aadc },nil ;
|
||
};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_bbgf *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_bbgf .Base .GetNumComponents ();_beca :=int (vals [0])*N ;
|
||
if _beca < 0||(_beca +N -1)>=len (_bbgf ._defc ){_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beca );return nil ,ErrColorOutOfRange ;};_bccd :=_bbgf ._defc [_beca :_beca +N ];
|
||
var _bbaf []float64 ;for _ ,_ccad :=range _bccd {_bbaf =append (_bbaf ,float64 (_ccad )/255.0);};_acce ,_cfcaa :=_bbgf .Base .ColorFromFloats (_bbaf );if _cfcaa !=nil {return nil ,_cfcaa ;};return _acce ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ead *PdfActionGoTo )ToPdfObject ()_egg .PdfObject {_ead .PdfAction .ToPdfObject ();_eea :=_ead ._bf ;_ca :=_eea .PdfObject .(*_egg .PdfObjectDictionary );_ca .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoTo )));_ca .SetIfNotNil ("\u0044",_ead .D );
|
||
return _eea ;};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_eddc *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_bag .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 ,_gd .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");};
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_eab :=NewPdfAction ();_dff :=&PdfActionSubmitForm {};_dff .PdfAction =_eab ;_eab .SetContext (_dff );return _dff ;};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_egg .PdfObjectArray ;Domain *_egg .PdfObjectArray ;Function []PdfFunction ;Extend *_egg .PdfObjectArray ;};type pdfSignDictionary struct{*_egg .PdfObjectDictionary ;_ebdca *SignatureHandler ;_gbbba *PdfSignature ;
|
||
_cagab int64 ;_fcade int ;_aabac int ;_dcfaa int ;_gbeab int ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_dfdb *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_cbdc :=_dgb .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_cbdc *_dfdb .C ()),uint32 (_cbdc *_dfdb .M ()),uint32 (_cbdc *_dfdb .Y ()),uint32 (_cbdc *_dfdb .K ())};};
|
||
|
||
// 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 ){_gaabc ,_ceedg :=_gf .Open (filePath );if _ceedg !=nil {_bag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_ceedg );
|
||
return nil ,_ceedg ;};defer _gaabc .Close ();return NewCompositePdfFontFromTTF (_gaabc );};
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_fcgfg *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _fcgfg ._bcce ==nil {_fcgfg .GetAnnotations ();};_fcgfg ._bcce =append (_fcgfg ._bcce ,annot );};
|
||
|
||
// 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 ;_bcecc *_egg .PdfIndirectObject ;};func (_cca *PdfReader )newPdfAnnotationPolyLineFromDict (_dec *_egg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bec :=PdfAnnotationPolyLine {};
|
||
_ggga ,_cbc :=_cca .newPdfAnnotationMarkupFromDict (_dec );if _cbc !=nil {return nil ,_cbc ;};_bec .PdfAnnotationMarkup =_ggga ;_bec .Vertices =_dec .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bec .LE =_dec .Get ("\u004c\u0045");_bec .BS =_dec .Get ("\u0042\u0053");
|
||
_bec .IC =_dec .Get ("\u0049\u0043");_bec .BE =_dec .Get ("\u0042\u0045");_bec .IT =_dec .Get ("\u0049\u0054");_bec .Measure =_dec .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bec ,nil ;};func _ecaae (_dffda *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_dffda }};
|
||
|
||
|
||
// 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 _egg .PdfObjectArray )(*PdfRectangle ,error ){_dabg :=PdfRectangle {};if arr .Len ()!=4{return nil ,_gd .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 _cbdf error ;_dabg .Llx ,_cbdf =_egg .GetNumberAsFloat (arr .Get (0));if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Lly ,_cbdf =_egg .GetNumberAsFloat (arr .Get (1));if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Urx ,_cbdf =_egg .GetNumberAsFloat (arr .Get (2));
|
||
if _cbdf !=nil {return nil ,_cbdf ;};_dabg .Ury ,_cbdf =_egg .GetNumberAsFloat (arr .Get (3));if _cbdf !=nil {return nil ,_cbdf ;};return &_dabg ,nil ;};
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_baeg :=PdfColorCalRGB {a ,b ,c };return &_baeg ;};func (_dgaa fontCommon )asPdfObjectDictionary (_cebg string )*_egg .PdfObjectDictionary {if _cebg !=""&&_dgaa ._ebdf !=""&&_cebg !=_dgaa ._ebdf {_bag .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",_cebg ,_dgaa );
|
||
}else if _cebg ==""&&_dgaa ._ebdf ==""{_bag .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",_dgaa );
|
||
}else if _dgaa ._ebdf ==""{_dgaa ._ebdf =_cebg ;};_acgb :=_egg .MakeDict ();_acgb .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u006e\u0074"));_acgb .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_egg .MakeName (_dgaa ._dgfdc ));
|
||
_acgb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName (_dgaa ._ebdf ));if _dgaa ._bgacg !=nil {_acgb .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_dgaa ._bgacg .ToPdfObject ());};if _dgaa ._gdbae !=nil {_acgb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dgaa ._gdbae );
|
||
}else if _dgaa ._bfbgf !=nil {_ecdgad ,_beace :=_dgaa ._bfbgf .Stream ();if _beace !=nil {_bag .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",_beace );
|
||
}else {_acgb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_ecdgad );};};return _acgb ;};func _afcaa (_ceaad _egg .PdfObject ,_cbcf *PdfReader )(*OutlineDest ,error ){_bgcecc ,_aegfae :=_egg .GetArray (_ceaad );if !_aegfae {return nil ,_gd .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");
|
||
};_ebac :=_bgcecc .Len ();if _ebac < 2{return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_ebac );
|
||
};_gaegg :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_adabd :=_bgcecc .Get (0);if _bcbdf ,_fccee :=_egg .GetIndirect (_adabd );_fccee {if _ ,_becad ,_ggege :=_cbcf .PageFromIndirectObject (_bcbdf );_ggege ==nil {_gaegg .Page =int64 (_becad -1);}else {_bag .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",_bcbdf );
|
||
};_gaegg .PageObj =_bcbdf ;}else if _gebbb ,_ecda :=_egg .GetIntVal (_adabd );_ecda {if _gebbb >=0&&_gebbb < len (_cbcf .PageList ){_gaegg .PageObj =_cbcf .PageList [_gebbb ].GetPageAsIndirectObject ();}else {_bag .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",_gebbb );
|
||
};_gaegg .Page =int64 (_gebbb );}else {return nil ,_f .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_adabd );};_fgeb ,_aegfae :=_egg .GetNameVal (_bgcecc .Get (1));
|
||
if !_aegfae {_bag .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",_bgcecc .Get (1));
|
||
return _gaegg ,nil ;};switch _fgeb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _ebac > 2{_gaegg .Y ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _ebac > 2{_gaegg .X ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _ebac > 4{_gaegg .X ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (2)));_gaegg .Y ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (3)));_gaegg .Zoom ,_ =_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_bgcecc .Get (4)));
|
||
};default:_fgeb ="\u0046\u0069\u0074";};_gaegg .Mode =_fgeb ;return _gaegg ,nil ;};func (_geeed *Image )samplesTrimPadding (_gddaf []uint32 )[]uint32 {_gdacc :=_geeed .ColorComponents *int (_geeed .Width )*int (_geeed .Height );if len (_gddaf )==_gdacc {return _gddaf ;
|
||
};_gaaca :=make ([]uint32 ,_gdacc );_bcfff :=int (_geeed .Width )*_geeed .ColorComponents ;var _fdab ,_gfafa ,_bfgfe ,_bfcfd int ;_eaaf :=_eg .BytesPerLine (int (_geeed .Width ),int (_geeed .BitsPerComponent ),_geeed .ColorComponents );for _fdab =0;_fdab < int (_geeed .Height );
|
||
_fdab ++{_gfafa =_fdab *int (_geeed .Width );_bfgfe =_fdab *_eaaf ;for _bfcfd =0;_bfcfd < _bcfff ;_bfcfd ++{_gaaca [_gfafa +_bfcfd ]=_gddaf [_bfgfe +_bfcfd ];};};return _gaaca ;};func (_dcgge *PdfWriter )optimizeDocument ()error {if _dcgge ._ebgad ==nil {return nil ;
|
||
};_bfbf ,_eaaae :=_egg .GetDict (_dcgge ._efage );if !_eaaae {return _gd .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");
|
||
};_fegf :=_dc .Document {ID :[2]string {_dcgge ._caddc ,_dcgge ._bagaa },Version :_dcgge ._dacce ,Objects :_dcgge ._bbead ,Info :_bfbf ,Crypt :_dcgge ._agdag ,UseHashBasedID :_dcgge ._aafeg };if _fdggd :=_dcgge ._ebgad .ApplyStandard (&_fegf );_fdggd !=nil {return _fdggd ;
|
||
};_dcgge ._caddc ,_dcgge ._bagaa =_fegf .ID [0],_fegf .ID [1];_dcgge ._dacce =_fegf .Version ;_dcgge ._bbead =_fegf .Objects ;_dcgge ._efage .PdfObject =_fegf .Info ;_dcgge ._aafeg =_fegf .UseHashBasedID ;_dcgge ._agdag =_fegf .Crypt ;_fgfcf :=make (map[_egg .PdfObject ]struct{},len (_dcgge ._bbead ));
|
||
for _ ,_fbeee :=range _dcgge ._bbead {_fgfcf [_fbeee ]=struct{}{};};_dcgge ._bacec =_fgfcf ;return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gcfc *PdfAnnotationProjection )ToPdfObject ()_egg .PdfObject {_gcfc .PdfAnnotation .ToPdfObject ();_ffab :=_gcfc ._cef ;_ceaf :=_ffab .PdfObject .(*_egg .PdfObjectDictionary );_gcfc .PdfAnnotationMarkup .appendToPdfDictionary (_ceaf );return _ffab ;
|
||
};
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_bfc :=NewPdfAction ();_dfg :=&PdfActionGoToE {};_dfg .PdfAction =_bfc ;_bfc .SetContext (_dfg );return _dfg ;};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_gcbd *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_efdgc ,_bgccg :=_gcbd .GetTrailer ();if _bgccg !=nil {return nil ,_bgccg ;};var _dabf *_egg .PdfObjectDictionary ;_gfbddb :=_efdgc .Get ("\u0049\u006e\u0066\u006f");switch _fbddd :=_gfbddb .(type ){case *_egg .PdfObjectReference :_bcca :=_fbddd ;
|
||
_gfbddb ,_bgccg =_gcbd .GetIndirectObjectByNumber (int (_bcca .ObjectNumber ));_gfbddb =_egg .TraceToDirectObject (_gfbddb );if _bgccg !=nil {return nil ,_bgccg ;};_dabf ,_ =_gfbddb .(*_egg .PdfObjectDictionary );case *_egg .PdfObjectDictionary :_dabf =_fbddd ;
|
||
};if _dabf ==nil {return nil ,_gd .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_ffdbg ,_bgccg :=NewPdfInfoFromObject (_dabf );if _bgccg !=nil {return nil ,_bgccg ;
|
||
};return _ffdbg ,nil ;};func (_ceecc *PdfWriter )writeString (_fdfed string ){if _ceecc ._gdbeb !=nil {return ;};_fgbe ,_dffab :=_ceecc ._beegad .WriteString (_fdfed );_ceecc ._cdaab +=int64 (_fgbe );_ceecc ._gdbeb =_dffab ;};
|
||
|
||
// 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 (_fdcgg *PdfFont )CharcodesToUnicode (charcodes []_ef .CharCode )[]rune {_aaab ,_ ,_ :=_fdcgg .CharcodesToUnicodeWithStats (charcodes );return _aaab ;};func _aeac (_dagb *PdfPage )map[_egg .PdfObjectName ]_egg .PdfObject {_facd :=make (map[_egg .PdfObjectName ]_egg .PdfObject );
|
||
if _dagb .Resources ==nil {return _facd ;};if _dagb .Resources .Font !=nil {if _cfdgb ,_aabg :=_egg .GetDict (_dagb .Resources .Font );_aabg {for _ ,_abad :=range _cfdgb .Keys (){_facd [_abad ]=_cfdgb .Get (_abad );};};};if _dagb .Resources .ExtGState !=nil {if _fbda ,_adfd :=_egg .GetDict (_dagb .Resources .ExtGState );
|
||
_adfd {for _ ,_gdef :=range _fbda .Keys (){_facd [_gdef ]=_fbda .Get (_gdef );};};};if _dagb .Resources .XObject !=nil {if _dfdd ,_dbffc :=_egg .GetDict (_dagb .Resources .XObject );_dbffc {for _ ,_gfbb :=range _dfdd .Keys (){_facd [_gfbb ]=_dfdd .Get (_gfbb );
|
||
};};};if _dagb .Resources .Pattern !=nil {if _afgd ,_gaab :=_egg .GetDict (_dagb .Resources .Pattern );_gaab {for _ ,_egfd :=range _afgd .Keys (){_facd [_egfd ]=_afgd .Get (_egfd );};};};if _dagb .Resources .Shading !=nil {if _acdg ,_ggec :=_egg .GetDict (_dagb .Resources .Shading );
|
||
_ggec {for _ ,_egde :=range _acdg .Keys (){_facd [_egde ]=_acdg .Get (_egde );};};};if _dagb .Resources .ProcSet !=nil {if _cfbad ,_afe :=_egg .GetDict (_dagb .Resources .ProcSet );_afe {for _ ,_bgag :=range _cfbad .Keys (){_facd [_bgag ]=_cfbad .Get (_bgag );
|
||
};};};if _dagb .Resources .Properties !=nil {if _dfbd ,_adcg :=_egg .GetDict (_dagb .Resources .Properties );_adcg {for _ ,_dfe :=range _dfbd .Keys (){_facd [_dfe ]=_dfbd .Get (_dfe );};};};return _facd ;};
|
||
|
||
// 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 _dag .ReadSeeker )(*PdfFont ,error ){const _efgd =_ef .CharCode (32);const _dddb =_ef .CharCode (255);_cgcbg ,_eddbd :=_ac .ReadAll (r );if _eddbd !=nil {_bag .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",_eddbd );
|
||
return nil ,_eddbd ;};_efegb ,_eddbd :=_bgd .TtfParse (_dd .NewReader (_cgcbg ));if _eddbd !=nil {_bag .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",_eddbd );
|
||
return nil ,_eddbd ;};_ecfe :=&pdfFontSimple {_babec :make (map[_ef .CharCode ]float64 ),fontCommon :fontCommon {_ebdf :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_ecfe ._cbdegf =_ef .NewWinAnsiEncoder ();_ecfe ._dgfdc =_efegb .PostScriptName ;
|
||
_ecfe .FirstChar =_egg .MakeInteger (int64 (_efgd ));_ecfe .LastChar =_egg .MakeInteger (int64 (_dddb ));_dgff :=1000.0/float64 (_efegb .UnitsPerEm );if len (_efegb .Widths )<=0{return nil ,_gd .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");
|
||
};_ccgaf :=_dgff *float64 (_efegb .Widths [0]);_dced :=make ([]float64 ,0,_dddb -_efgd +1);for _ddec :=_efgd ;_ddec <=_dddb ;_ddec ++{_dcfa ,_ceaec :=_ecfe .Encoder ().CharcodeToRune (_ddec );if !_ceaec {_bag .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_ddec );
|
||
_dced =append (_dced ,_ccgaf );continue ;};_aeca ,_acbb :=_efegb .Chars [_dcfa ];if !_acbb {_bag .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dced =append (_dced ,_ccgaf );continue ;
|
||
};_afdgc :=_dgff *float64 (_efegb .Widths [_aeca ]);_dced =append (_dced ,_afdgc );};_ecfe .Widths =_egg .MakeIndirectObject (_egg .MakeArrayFromFloats (_dced ));if len (_dced )< int (_dddb -_efgd +1){_bag .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 (_dced ),255-32+1);
|
||
return nil ,_egg .ErrRangeError ;};for _bffd :=_efgd ;_bffd <=_dddb ;_bffd ++{_ecfe ._babec [_bffd ]=_dced [_bffd -_efgd ];};_ecfe .Encoding =_egg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_efeag :=&PdfFontDescriptor {};
|
||
_efeag .FontName =_egg .MakeName (_efegb .PostScriptName );_efeag .Ascent =_egg .MakeFloat (_dgff *float64 (_efegb .TypoAscender ));_efeag .Descent =_egg .MakeFloat (_dgff *float64 (_efegb .TypoDescender ));_efeag .CapHeight =_egg .MakeFloat (_dgff *float64 (_efegb .CapHeight ));
|
||
_efeag .FontBBox =_egg .MakeArrayFromFloats ([]float64 {_dgff *float64 (_efegb .Xmin ),_dgff *float64 (_efegb .Ymin ),_dgff *float64 (_efegb .Xmax ),_dgff *float64 (_efegb .Ymax )});_efeag .ItalicAngle =_egg .MakeFloat (_efegb .ItalicAngle );_efeag .MissingWidth =_egg .MakeFloat (_dgff *float64 (_efegb .Widths [0]));
|
||
_fagd ,_eddbd :=_egg .MakeStream (_cgcbg ,_egg .NewFlateEncoder ());if _eddbd !=nil {_bag .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",_eddbd );
|
||
return nil ,_eddbd ;};_fagd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (len (_cgcbg ))));_efeag .FontFile2 =_fagd ;if _efegb .Bold {_efeag .StemV =_egg .MakeInteger (120);}else {_efeag .StemV =_egg .MakeInteger (70);
|
||
};_bfafb :=_cdadd ;if _efegb .IsFixedPitch {_bfafb |=_ebaa ;};if _efegb .ItalicAngle !=0{_bfafb |=_ggcggf ;};_efeag .Flags =_egg .MakeInteger (int64 (_bfafb ));_ecfe ._bgacg =_efeag ;_feged :=&PdfFont {_edde :_ecfe };return _feged ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_caga *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eadd :=_dgb .Pow (2,float64 (bits ))-1;return uint32 (_eadd *_caga .Val ());};
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_gcdg *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_cagac :=func (_fbdbc float64 )float64 {if _fbdbc >=6.0/29{return _fbdbc *_fbdbc *_fbdbc ;};return 108.0/841*(_fbdbc -4/29);};_babb ,_bbfc :=color .(*PdfColorLab );if !_bbfc {_bag .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_babb .L ();AStar :=_babb .A ();BStar :=_babb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_gcdg .WhitePoint [0]*_cagac (L );Y :=_gcdg .WhitePoint [1]*_cagac (M );Z :=_gcdg .WhitePoint [2]*_cagac (N );_adec :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cdcb :=-0.969256*X +1.875992*Y +0.041556*Z ;_bdfab :=0.055648*X +-0.204043*Y +1.057311*Z ;_adec =_dgb .Min (_dgb .Max (_adec ,0),1.0);
|
||
_cdcb =_dgb .Min (_dgb .Max (_cdcb ,0),1.0);_bdfab =_dgb .Min (_dgb .Max (_bdfab ,0),1.0);return NewPdfColorDeviceRGB (_adec ,_cdcb ,_bdfab ),nil ;};
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_fdf :=NewPdfAction ();_gff :=&PdfActionTrans {};_gff .PdfAction =_fdf ;_fdf .SetContext (_gff );return _gff ;};func (_gec *PdfReader )newPdfAnnotationLinkFromDict (_gbbg *_egg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_egd :=PdfAnnotationLink {};
|
||
_egd .A =_gbbg .Get ("\u0041");_egd .Dest =_gbbg .Get ("\u0044\u0065\u0073\u0074");_egd .H =_gbbg .Get ("\u0048");_egd .PA =_gbbg .Get ("\u0050\u0041");_egd .QuadPoints =_gbbg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_egd .BS =_gbbg .Get ("\u0042\u0053");
|
||
return &_egd ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbde *PdfAnnotationPrinterMark )ToPdfObject ()_egg .PdfObject {_cbde .PdfAnnotation .ToPdfObject ();_eccd :=_cbde ._cef ;_baga :=_eccd .PdfObject .(*_egg .PdfObjectDictionary );_baga .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_baga .SetIfNotNil ("\u004d\u004e",_cbde .MN );return _eccd ;};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_ggcd :=NewPdfAnnotation ();_efe :=&PdfAnnotationRichMedia {};_efe .PdfAnnotation =_ggcd ;_ggcd .SetContext (_efe );return _efe ;};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_fcce :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_fcce ;};
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_ed :=NewPdfAction ();_dce :=&PdfActionThread {};_dce .PdfAction =_ed ;_ed .SetContext (_dce );return _dce ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_defb *PdfAnnotationSound )ToPdfObject ()_egg .PdfObject {_defb .PdfAnnotation .ToPdfObject ();_bbbg :=_defb ._cef ;_aegg :=_bbbg .PdfObject .(*_egg .PdfObjectDictionary );_defb .PdfAnnotationMarkup .appendToPdfDictionary (_aegg );_aegg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_aegg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_defb .Sound );_aegg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_defb .Name );return _bbbg ;};
|
||
|
||
// 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 (_effb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggae :=vals [0];if _ggae < 0.0||_ggae > 100.0{_bag .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",_ggae );
|
||
return nil ,ErrColorOutOfRange ;};_ebab :=vals [1];_aedc :=float64 (-100);_gegad :=float64 (100);if len (_effb .Range )> 1{_aedc =_effb .Range [0];_gegad =_effb .Range [1];};if _ebab < _aedc ||_ebab > _gegad {_bag .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",_ebab ,_aedc ,_gegad );
|
||
return nil ,ErrColorOutOfRange ;};_gfba :=vals [2];_cafg :=float64 (-100);_edcg :=float64 (100);if len (_effb .Range )> 3{_cafg =_effb .Range [2];_edcg =_effb .Range [3];};if _gfba < _cafg ||_gfba > _edcg {_bag .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",_gfba ,_cafg ,_edcg );
|
||
return nil ,ErrColorOutOfRange ;};_dgge :=NewPdfColorLab (_ggae ,_ebab ,_gfba );return _dgge ,nil ;};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_fdgga *PdfFieldButton )IsCheckbox ()bool {return _fdgga .GetType ()==ButtonTypeCheckbox };
|
||
|
||
// GetFillImage get attached model.Image in push button.
|
||
func (_egef *PdfFieldButton )GetFillImage ()*Image {if _egef .IsPush (){return _egef ._ffcc ;};return nil ;};func (_cafge *LTV )buildCertChain (_fdbb ,_ffgfa []*_dg .Certificate )([]*_dg .Certificate ,map[string ]*_dg .Certificate ,error ){_gccb :=map[string ]*_dg .Certificate {};
|
||
for _ ,_eedd :=range _fdbb {_gccb [_eedd .Subject .CommonName ]=_eedd ;};_ddde :=_fdbb ;for _ ,_dbbfd :=range _ffgfa {_dgfc :=_dbbfd .Subject .CommonName ;if _ ,_ecgg :=_gccb [_dgfc ];_ecgg {continue ;};_gccb [_dgfc ]=_dbbfd ;_ddde =append (_ddde ,_dbbfd );
|
||
};if len (_ddde )==0{return nil ,nil ,ErrSignNoCertificates ;};var _fgfab error ;for _cacaa :=_ddde [0];_cacaa !=nil &&!_cafge .CertClient .IsCA (_cacaa );{_gfdgd ,_dbde :=_gccb [_cacaa .Issuer .CommonName ];if !_dbde {if _gfdgd ,_fgfab =_cafge .CertClient .GetIssuer (_cacaa );
|
||
_fgfab !=nil {_bag .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",_fgfab );
|
||
break ;};_gccb [_cacaa .Issuer .CommonName ]=_gfdgd ;_ddde =append (_ddde ,_gfdgd );};_cacaa =_gfdgd ;};return _ddde ,_gccb ,nil ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_ccgcb *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_acfac :=func (_adgf float64 )float64 {if _adgf >=6.0/29{return _adgf *_adgf *_adgf ;};return 108.0/841*(_adgf -4/29);};_deea :=img ._abfae ;if len (_deea )!=6{_bag .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");
|
||
_deea =_ccgcb .DecodeArray ();};_fgef :=_fb .NewReader (img .getBase ());_daafa :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._fgggb ,img ._abfae );_ebgeg :=_fb .NewWriter (_daafa );_afed :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_addd :=make ([]uint32 ,3);var (_gcac error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_dcda ,_cbegg ,_bedc float64 ;);for {_gcac =_fgef .ReadSamples (_addd );if _gcac ==_dag .EOF {break ;}else if _gcac !=nil {return img ,_gcac ;};Ls =float64 (_addd [0])/_afed ;As =float64 (_addd [1])/_afed ;
|
||
Bs =float64 (_addd [2])/_afed ;Ls =_eg .LinearInterpolate (Ls ,0.0,1.0,_deea [0],_deea [1]);As =_eg .LinearInterpolate (As ,0.0,1.0,_deea [2],_deea [3]);Bs =_eg .LinearInterpolate (Bs ,0.0,1.0,_deea [4],_deea [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;
|
||
N =(Ls +16)/116-Bs /200;X =_ccgcb .WhitePoint [0]*_acfac (L );Y =_ccgcb .WhitePoint [1]*_acfac (M );Z =_ccgcb .WhitePoint [2]*_acfac (N );_dcda =3.240479*X +-1.537150*Y +-0.498535*Z ;_cbegg =-0.969256*X +1.875992*Y +0.041556*Z ;_bedc =0.055648*X +-0.204043*Y +1.057311*Z ;
|
||
_dcda =_dgb .Min (_dgb .Max (_dcda ,0),1.0);_cbegg =_dgb .Min (_dgb .Max (_cbegg ,0),1.0);_bedc =_dgb .Min (_dgb .Max (_bedc ,0),1.0);_addd [0]=uint32 (_dcda *_afed );_addd [1]=uint32 (_cbegg *_afed );_addd [2]=uint32 (_bedc *_afed );if _gcac =_ebgeg .WriteSamples (_addd );
|
||
_gcac !=nil {return img ,_gcac ;};};return _cggba (&_daafa ),nil ;};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_egg .PdfIndirectObject )*PdfOutlineItem {_cgdb :=PdfOutlineItem {};_cgdb ._bgbfg =&_cgdb ;_cgdb .Title =_egg .MakeString (title );_beddb :=_egg .MakeArray ();_beddb .Append (page );_beddb .Append (_egg .MakeName ("\u0046\u0069\u0074"));
|
||
_cgdb .Dest =_beddb ;return &_cgdb ;};func _bdcd ()_e .Time {_cgag .Lock ();defer _cgag .Unlock ();return _fabb };func _fgafa (_agbc _egg .PdfObject )(*_egg .PdfObjectDictionary ,*fontCommon ,error ){_febee :=&fontCommon {};if _gagg ,_gggfe :=_agbc .(*_egg .PdfIndirectObject );
|
||
_gggfe {_febee ._ccaae =_gagg .ObjectNumber ;};_edbbbb ,_ddbb :=_egg .GetDict (_agbc );if !_ddbb {_bag .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",_agbc );
|
||
return nil ,nil ,ErrFontNotSupported ;};_dfgd ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u0054\u0079\u0070\u0065"));if !_ddbb {_bag .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 _dfgd !="\u0046\u006f\u006e\u0074"{_bag .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.",_dfgd ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_egg .ErrTypeError ;};_afcga ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ddbb {_bag .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 ;};_febee ._ebdf =_afcga ;_febb ,_ddbb :=_egg .GetNameVal (_edbbbb .Get ("\u004e\u0061\u006d\u0065"));if _ddbb {_febee ._cbgce =_febb ;};_aeea :=_edbbbb .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");
|
||
if _aeea !=nil {_febee ._gdbae =_egg .TraceToDirectObject (_aeea );_fcagg ,_cgacd :=_ebfda (_febee ._gdbae ,_febee );if _cgacd !=nil {return _edbbbb ,_febee ,_cgacd ;};_febee ._bfbgf =_fcagg ;}else if _afcga =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_afcga =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dcfc ,_bdgb :=_ga .NewCIDSystemInfo (_edbbbb .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _bdgb !=nil {return _edbbbb ,_febee ,_bdgb ;};_bfacg :=_f .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_dcfc .Registry ,_dcfc .Ordering );if _ga .IsPredefinedCMap (_bfacg ){_febee ._bfbgf ,_bdgb =_ga .LoadPredefinedCMap (_bfacg );
|
||
if _bdgb !=nil {_bag .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",_bfacg ,_bdgb );
|
||
};};};_fcge :=_edbbbb .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _fcge !=nil {_efcg ,_ggbd :=_gcgfb (_fcge );if _ggbd !=nil {_bag .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",_ggbd );
|
||
return _edbbbb ,_febee ,_ggbd ;};_febee ._bgacg =_efcg ;};if _afcga !="\u0054\u0079\u0070e\u0033"{_ccbe ,_cfaa :=_egg .GetNameVal (_edbbbb .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_cfaa {_bag .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 _edbbbb ,_febee ,ErrRequiredAttributeMissing ;};_febee ._dgfdc =_ccbe ;};return _edbbbb ,_febee ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfbc *PdfAnnotationStrikeOut )ToPdfObject ()_egg .PdfObject {_dfbc .PdfAnnotation .ToPdfObject ();_bed :=_dfbc ._cef ;_bdgd :=_bed .PdfObject .(*_egg .PdfObjectDictionary );_dfbc .PdfAnnotationMarkup .appendToPdfDictionary (_bdgd );_bdgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_bdgd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dfbc .QuadPoints );return _bed ;};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_fgbgg :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_fgbgg .N =N ;return _fgbgg ,nil ;};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;func _fgb (_fdcd _egg .PdfObject )(*PdfFilespec ,error ){if _fdcd ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_fdcd );};
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_efcf *PdfField )ToPdfObject ()_egg .PdfObject {_fbgge :=_efcf ._agef ;_begc :=_fbgge .PdfObject .(*_egg .PdfObjectDictionary );_bbagg :=_egg .MakeArray ();for _ ,_bacg :=range _efcf .Kids {_bbagg .Append (_bacg .ToPdfObject ());};for _ ,_bebcc :=range _efcf .Annotations {if _bebcc ._cef !=_efcf ._agef {_bbagg .Append (_bebcc .GetContext ().ToPdfObject ());
|
||
};};if _efcf .Parent !=nil {_begc .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_efcf .Parent .GetContainingPdfObject ());};if _bbagg .Len ()> 0{_begc .Set ("\u004b\u0069\u0064\u0073",_bbagg );};_begc .SetIfNotNil ("\u0046\u0054",_efcf .FT );_begc .SetIfNotNil ("\u0054",_efcf .T );
|
||
_begc .SetIfNotNil ("\u0054\u0055",_efcf .TU );_begc .SetIfNotNil ("\u0054\u004d",_efcf .TM );_begc .SetIfNotNil ("\u0046\u0066",_efcf .Ff );_begc .SetIfNotNil ("\u0056",_efcf .V );_begc .SetIfNotNil ("\u0044\u0056",_efcf .DV );_begc .SetIfNotNil ("\u0041\u0041",_efcf .AA );
|
||
if _efcf .VariableText !=nil {_begc .SetIfNotNil ("\u0044\u0041",_efcf .VariableText .DA );_begc .SetIfNotNil ("\u0051",_efcf .VariableText .Q );_begc .SetIfNotNil ("\u0044\u0053",_efcf .VariableText .DS );_begc .SetIfNotNil ("\u0052\u0056",_efcf .VariableText .RV );
|
||
};return _fbgge ;};
|
||
|
||
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
|
||
func NewPdfInfoFromObject (obj _egg .PdfObject )(*PdfInfo ,error ){var _bfbd PdfInfo ;_gagcd ,_dadgd :=obj .(*_egg .PdfObjectDictionary );if !_dadgd {return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj );
|
||
};for _ ,_cbfff :=range _gagcd .Keys (){switch _cbfff {case "\u0054\u0069\u0074l\u0065":_bfbd .Title ,_ =_egg .GetString (_gagcd .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_bfbd .Author ,_ =_egg .GetString (_gagcd .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
|
||
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_bfbd .Subject ,_ =_egg .GetString (_gagcd .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_bfbd .Keywords ,_ =_egg .GetString (_gagcd .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
|
||
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_bfbd .Creator ,_ =_egg .GetString (_gagcd .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_bfbd .Producer ,_ =_egg .GetString (_gagcd .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
|
||
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_bfbd .Trapped ,_ =_egg .GetName (_gagcd .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _dgfge ,_eaagb :=_egg .GetString (_gagcd .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
|
||
_eaagb &&_dgfge .String ()!=""{_cgfad ,_cdcd :=NewPdfDate (_dgfge .String ());if _cdcd !=nil {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_cdcd );
|
||
};_bfbd .CreationDate =&_cgfad ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _bcea ,_fcgfd :=_egg .GetString (_gagcd .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_fcgfd &&_bcea .String ()!=""{_aggd ,_dgca :=NewPdfDate (_bcea .String ());if _dgca !=nil {return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_dgca );
|
||
};_bfbd .ModifiedDate =&_aggd ;};default:_dgcba ,_ :=_egg .GetString (_gagcd .Get (_cbfff ));if _bfbd ._eggg ==nil {_bfbd ._eggg =_egg .MakeDict ();};_bfbd ._eggg .Set (_cbfff ,_dgcba );};};return &_bfbd ,nil ;};func _cfdec (_abag _egg .PdfObject )[]*_egg .PdfObjectStream {if _abag ==nil {return nil ;
|
||
};_ccgee ,_bccdf :=_egg .GetArray (_abag );if !_bccdf ||_ccgee .Len ()==0{return nil ;};_begcf :=make ([]*_egg .PdfObjectStream ,0,_ccgee .Len ());for _ ,_abbfa :=range _ccgee .Elements (){if _gdcddb ,_bbegg :=_egg .GetStream (_abbfa );_bbegg {_begcf =append (_begcf ,_gdcddb );
|
||
};};return _begcf ;};
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_bgfcd *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_bgfcd ._dacce .Major =majorVersion ;_bgfcd ._dacce .Minor =minorVersion ;};
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_ffag *PdfAppender )UpdatePage (page *PdfPage ){_ffag .updateObjectsDeep (page .ToPdfObject (),nil )};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abd *PdfActionLaunch )ToPdfObject ()_egg .PdfObject {_abd .PdfAction .ToPdfObject ();_bad :=_abd ._bf ;_fcb :=_bad .PdfObject .(*_egg .PdfObjectDictionary );_fcb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeLaunch )));if _abd .F !=nil {_fcb .Set ("\u0046",_abd .F .ToPdfObject ());
|
||
};_fcb .SetIfNotNil ("\u0057\u0069\u006e",_abd .Win );_fcb .SetIfNotNil ("\u004d\u0061\u0063",_abd .Mac );_fcb .SetIfNotNil ("\u0055\u006e\u0069\u0078",_abd .Unix );_fcb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_abd .NewWindow );return _bad ;
|
||
};
|
||
|
||
// 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 ;_fcbdg PdfModel ;_fgec _egg .PdfObject ;};
|
||
|
||
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
|
||
func (_aggfc *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _aggfc ._dafgab .GetRevisionNumber ()==0{return nil ,_gd .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 _fceg ,_cgec :=_aggfc ._gcfcf [_aggfc ];_cgec {return _fceg ,nil ;};_gadfb ,_deaffb :=_aggfc ._dafgab .GetPreviousRevisionReadSeeker ();if _deaffb !=nil {return nil ,_deaffb ;};_gfdfc ,_deaffb :=_ffee (_gadfb ,_aggfc ._ecbf ,_aggfc ._gddafb ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
|
||
if _deaffb !=nil {return nil ,_deaffb ;};_aggfc ._acad [_aggfc ._dafgab .GetRevisionNumber ()-1]=_gfdfc ;_aggfc ._gcfcf [_aggfc ]=_gfdfc ;_gfdfc ._gcfcf =_aggfc ._gcfcf ;return _gfdfc ,nil ;};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _egg .PdfObject ;IsMap _egg .PdfObject ;};
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_aafd *PdfColorCalGray )GetNumComponents ()int {return 1};func (_adbb *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_egg .PdfObjectArray ;Matrix *_egg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_cebf *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_eaee ,_cega :=color .(*PdfColorCalGray );if !_cega {_bag .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 ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_eaee .Val ();X :=_cebf .WhitePoint [0]*_dgb .Pow (ANorm ,_cebf .Gamma );Y :=_cebf .WhitePoint [1]*_dgb .Pow (ANorm ,_cebf .Gamma );
|
||
Z :=_cebf .WhitePoint [2]*_dgb .Pow (ANorm ,_cebf .Gamma );_dedg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ffe :=-0.969256*X +1.875992*Y +0.041556*Z ;_ggecd :=0.055648*X +-0.204043*Y +1.057311*Z ;_dedg =_dgb .Min (_dgb .Max (_dedg ,0),1.0);_ffe =_dgb .Min (_dgb .Max (_ffe ,0),1.0);
|
||
_ggecd =_dgb .Min (_dgb .Max (_ggecd ,0),1.0);return NewPdfColorDeviceRGB (_dedg ,_ffe ,_ggecd ),nil ;};func _dacc (_dbga _egg .PdfObject )(*PdfBorderStyle ,error ){_cddd :=&PdfBorderStyle {};_cddd ._fffd =_dbga ;var _bdc *_egg .PdfObjectDictionary ;_dbga =_egg .TraceToDirectObject (_dbga );
|
||
_bdc ,_gdeb :=_dbga .(*_egg .PdfObjectDictionary );if !_gdeb {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _fcbc :=_bdc .Get ("\u0054\u0079\u0070\u0065");_fcbc !=nil {_agb ,_ebea :=_fcbc .(*_egg .PdfObjectName );
|
||
if !_ebea {_bag .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",_fcbc );
|
||
}else {if *_agb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_bag .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",*_agb );};};};if _fad :=_bdc .Get ("\u0057");
|
||
_fad !=nil {_cgad ,_cbcg :=_egg .GetNumberAsFloat (_fad );if _cbcg !=nil {_bag .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_cbcg );return nil ,_cbcg ;};_cddd .W =&_cgad ;
|
||
};if _ccdd :=_bdc .Get ("\u0053");_ccdd !=nil {_daga ,_bdaa :=_ccdd .(*_egg .PdfObjectName );if !_bdaa {return nil ,_gd .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 _fgaf BorderStyle ;switch *_daga {case "\u0053":_fgaf =BorderStyleSolid ;case "\u0044":_fgaf =BorderStyleDashed ;case "\u0042":_fgaf =BorderStyleBeveled ;case "\u0049":_fgaf =BorderStyleInset ;case "\u0055":_fgaf =BorderStyleUnderline ;default:_bag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_daga );
|
||
return nil ,_gd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cddd .S =&_fgaf ;};if _bdeg :=_bdc .Get ("\u0044");_bdeg !=nil {_bdbc ,_edgb :=_bdeg .(*_egg .PdfObjectArray );
|
||
if !_edgb {_bag .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",_bdeg );return nil ,_gd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_cgd ,_ade :=_bdbc .ToIntegerArray ();if _ade !=nil {_bag .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",_ade );
|
||
return nil ,_ade ;};_cddd .D =&_cgd ;};return _cddd ,nil ;};func (_ccag *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _ccag ._dafgab .GetCrypter ()!=nil &&!_ccag ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_gdfcf :=_ccag ._eacf ;_bddff :=_gdfcf .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _bddff ==nil {return nil ,nil ;};_caggec ,_ :=_egg .GetIndirect (_bddff );_bddff =_egg .TraceToDirectObject (_bddff );if _egg .IsNullObject (_bddff ){_bag .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 ;};_adage ,_ggbfg :=_egg .GetDict (_bddff );if !_ggbfg {_bag .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bddff );_bag .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_bddff );};_bag .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_bag .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 !_ccag ._cede {_gbge :=_ccag .traverseObjectData (_adage );
|
||
if _gbge !=nil {_bag .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",_gbge );
|
||
return nil ,_gbge ;};};_dbbb ,_begfc :=_ccag .newPdfAcroFormFromDict (_caggec ,_adage );if _begfc !=nil {return nil ,_begfc ;};return _dbbb ,nil ;};func (_egea *LTV )getCRLs (_adgbc []*_dg .Certificate )([][]byte ,error ){_eggee :=make ([][]byte ,0,len (_adgbc ));
|
||
for _ ,_fcgb :=range _adgbc {for _ ,_agfd :=range _fcgb .CRLDistributionPoints {if _egea .CertClient .IsCA (_fcgb ){continue ;};_gaaac ,_egec :=_egea .CRLClient .MakeRequest (_agfd ,_fcgb );if _egec !=nil {_bag .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",_egec );
|
||
continue ;};_eggee =append (_eggee ,_gaaac );};};return _eggee ,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 (_gbdcd *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _gd .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");
|
||
};_ddge :=field .V ;if _ddge ==nil {return _gd .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");};_cag :=pageNum -1;if _cag < 0||_cag > len (_gbdcd ._beac )-1{return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );
|
||
};_bbagd :=_gbdcd .Reader .PageList [_cag ];field .P =_bbagd .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_egg .MakeString (_f .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_bbagd .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );
|
||
if _gbdcd ._aeec ==_gbdcd ._bgaa .AcroForm {_gbdcd ._aeec =_gbdcd .Reader .AcroForm ;};_gffd :=_gbdcd ._aeec ;if _gffd ==nil {_gffd =NewPdfAcroForm ();};_gffd .SigFlags =_egg .MakeInteger (3);_ccgc :=append (_gffd .AllFields (),field .PdfField );_gffd .Fields =&_ccgc ;
|
||
_gbdcd .ReplaceAcroForm (_gffd );_gbdcd .UpdatePage (_bbagd );_gbdcd ._beac [_cag ]=_bbagd ;if _ ,_eede :=field .V .GetDocMDPPermission ();_eede {_gbdcd ._aga =NewPermissions (field .V );};return nil ;};func (_cffad *pdfCIDFontType2 )baseFields ()*fontCommon {return &_cffad .fontCommon };
|
||
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _egg .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _bdea *_egg .PdfIndirectObject ;var _caba *_egg .PdfObjectName ;var _gbaed *_egg .PdfObjectArray ;if _ggfdc ,_eeda :=obj .(*_egg .PdfIndirectObject );
|
||
_eeda {_bdea =_ggfdc ;};obj =_egg .TraceToDirectObject (obj );switch _cecde :=obj .(type ){case *_egg .PdfObjectArray :_gbaed =_cecde ;case *_egg .PdfObjectName :_caba =_cecde ;};if _caba !=nil {switch *_caba {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:_bag .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",*_caba );return nil ,_ccgg ;};};if _gbaed !=nil &&_gbaed .Len ()> 0{var _ecef _egg .PdfObject =_bdea ;
|
||
if _bdea ==nil {_ecef =_gbaed ;};if _gddd ,_cbeg :=_egg .GetName (_gbaed .Get (0));_cbeg {switch _gddd .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _gbaed .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _deec (_ecef );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _ffc (_ecef );
|
||
case "\u004c\u0061\u0062":return _dagag (_ecef );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gbbb (_ecef );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _fef (_ecef );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _feaa (_ecef );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _bcgcb (_ecef );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _eggba (_ecef );default:_bag .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",*_gddd );
|
||
};};};_bag .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 ;};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_agac *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _agac ._cccbg };
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_edd *PdfColorDeviceRGB )G ()float64 {return _edd [1]};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_faf *PdfActionImportData )ToPdfObject ()_egg .PdfObject {_faf .PdfAction .ToPdfObject ();_gbde :=_faf ._bf ;_fde :=_gbde .PdfObject .(*_egg .PdfObjectDictionary );_fde .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeImportData )));if _faf .F !=nil {_fde .Set ("\u0046",_faf .F .ToPdfObject ());
|
||
};return _gbde ;};
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _egg .PdfObject )(*PdfFont ,error ){return _faffdb (fontObj ,true )};
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_aacgd *Image )ToGoImage ()(_cd .Image ,error ){_bag .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_dfce ,_fbaf :=_eg .NewImage (int (_aacgd .Width ),int (_aacgd .Height ),int (_aacgd .BitsPerComponent ),_aacgd .ColorComponents ,_aacgd .Data ,_aacgd ._fgggb ,_aacgd ._abfae );
|
||
if _fbaf !=nil {return nil ,_fbaf ;};return _dfce ,nil ;};
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_bbde :=NewPdfAnnotation ();_fgc :=&PdfAnnotation3D {};_fgc .PdfAnnotation =_bbde ;_bbde .SetContext (_fgc );return _fgc ;};func _acfec (_bebd *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_agcag ,_bbcg :=_egg .GetDict (_bebd .AP );
|
||
if !_bbcg {return nil ,nil ,_gd .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 _agcag ==nil {return nil ,nil ,nil ;};_gfdg ,_bbcg :=_egg .GetArray (_bebd .Rect );
|
||
if !_bbcg ||_gfdg .Len ()!=4{return nil ,nil ,_gd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_cbge ,_ccaee :=NewPdfRectangle (*_gfdg );if _ccaee !=nil {return nil ,nil ,_ccaee ;};_efgfg :=_egg .TraceToDirectObject (_agcag .Get ("\u004e"));
|
||
switch _feebd :=_efgfg .(type ){case *_egg .PdfObjectStream :_acdfa :=_feebd ;_bcgfe ,_gfeg :=NewXObjectFormFromStream (_acdfa );return _bcgfe ,_cbge ,_gfeg ;case *_egg .PdfObjectDictionary :_abcbd :=_feebd ;_aada ,_efffb :=_egg .GetName (_bebd .AS );if !_efffb {return nil ,nil ,nil ;
|
||
};if _abcbd .Get (*_aada )==nil {_bag .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 ;};_daadg ,_efffb :=_egg .GetStream (_abcbd .Get (*_aada ));if !_efffb {_bag .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",_aada );
|
||
return nil ,nil ,_gd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_edgfb ,_begce :=NewXObjectFormFromStream (_daadg );return _edgfb ,_cbge ,_begce ;};_bag .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_efgfg );
|
||
return nil ,nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;
|
||
BorderStyleUnderline BorderStyle =iota ;);func (_egdcad *PdfWriter )writeBytes (_cfaee []byte ){if _egdcad ._gdbeb !=nil {return ;};_bedeb ,_ddfcc :=_egdcad ._beegad .Write (_cfaee );_egdcad ._cdaab +=int64 (_bedeb );_egdcad ._gdbeb =_ddfcc ;};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_ccea :=PdfColorCalGray (grayVal );return &_ccea ;};func _caafc (_caae *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_caae }};func _dbffb (_dgbge *_egg .PdfObjectDictionary ,_ddeb *fontCommon )(*pdfCIDFontType2 ,error ){if _ddeb ._ebdf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bag .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",_ddeb );
|
||
return nil ,_egg .ErrRangeError ;};_fbgbb :=_geeb (_ddeb );_dfea ,_eefa :=_egg .GetDict (_dgbge .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_eefa {_bag .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",_ddeb );
|
||
return nil ,ErrRequiredAttributeMissing ;};_fbgbb .CIDSystemInfo =_dfea ;_fbgbb .DW =_dgbge .Get ("\u0044\u0057");_fbgbb .W =_dgbge .Get ("\u0057");_fbgbb .DW2 =_dgbge .Get ("\u0044\u0057\u0032");_fbgbb .W2 =_dgbge .Get ("\u0057\u0032");_fbgbb .CIDToGIDMap =_dgbge .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_fbgbb ._bgec =1000.0;if _gbdae ,_fgdd :=_egg .GetNumberAsFloat (_fbgbb .DW );_fgdd ==nil {_fbgbb ._bgec =_gbdae ;};_dffb ,_cddcb :=_babef (_fbgbb .W );if _cddcb !=nil {return nil ,_cddcb ;};if _dffb ==nil {_dffb =map[_ef .CharCode ]float64 {};};_fbgbb ._fafe =_dffb ;
|
||
return _fbgbb ,nil ;};
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_edgba *PdfSignature )Initialize ()error {if _edgba .Handler ==nil {return _gd .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 _edgba .Handler .InitSignature (_edgba );};
|
||
|
||
// 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 (_ebgbd *PdfReader )CheckAccessRights (password []byte )(bool ,_fe .Permissions ,error ){return _ebgbd ._dafgab .CheckAccessRights (password );};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_bgbfg interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};func (_afbf *PdfReader )newPdfAnnotationInkFromDict (_fgfc *_egg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dgcb :=PdfAnnotationInk {};_dgbc ,_eagg :=_afbf .newPdfAnnotationMarkupFromDict (_fgfc );
|
||
if _eagg !=nil {return nil ,_eagg ;};_dgcb .PdfAnnotationMarkup =_dgbc ;_dgcb .InkList =_fgfc .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dgcb .BS =_fgfc .Get ("\u0042\u0053");return &_dgcb ,nil ;};func _ddfce (_eedef *_egg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_bagdb :=&PdfFieldChoice {};
|
||
_bagdb .Opt ,_ =_egg .GetArray (_eedef .Get ("\u004f\u0070\u0074"));_bagdb .TI ,_ =_egg .GetInt (_eedef .Get ("\u0054\u0049"));_bagdb .I ,_ =_egg .GetArray (_eedef .Get ("\u0049"));return _bagdb ,nil ;};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };func _fccda (_aeeaf *_egg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_cbfdd :=PdfShadingType4 {};_fdgae :=_aeeaf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _fdgae ==nil {_bag .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 ;};_cadfg ,_fggbf :=_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .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",_fdgae );
|
||
return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerCoordinate =_cadfg ;_fdgae =_aeeaf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fdgae ==nil {_bag .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 ;};_cadfg ,_fggbf =_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .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",_fdgae );
|
||
return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerComponent =_cadfg ;_fdgae =_aeeaf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fdgae ==nil {_bag .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 ;};_cadfg ,_fggbf =_fdgae .(*_egg .PdfObjectInteger );if !_fggbf {_bag .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",_fdgae );
|
||
return nil ,_egg .ErrTypeError ;};_cbfdd .BitsPerComponent =_cadfg ;_fdgae =_aeeaf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fdgae ==nil {_bag .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 ;};_gbfb ,_fggbf :=_fdgae .(*_egg .PdfObjectArray );if !_fggbf {_bag .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",_fdgae );
|
||
return nil ,_egg .ErrTypeError ;};_cbfdd .Decode =_gbfb ;_fdgae =_aeeaf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fdgae ==nil {_bag .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 ;};_cbfdd .Function =[]PdfFunction {};if _cgcba ,_egbda :=_fdgae .(*_egg .PdfObjectArray );_egbda {for _ ,_fcaa :=range _cgcba .Elements (){_bbee ,_eddg :=_bdefe (_fcaa );if _eddg !=nil {_bag .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",_eddg );
|
||
return nil ,_eddg ;};_cbfdd .Function =append (_cbfdd .Function ,_bbee );};}else {_aeaacg ,_fdgda :=_bdefe (_fdgae );if _fdgda !=nil {_bag .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",_fdgda );
|
||
return nil ,_fdgda ;};_cbfdd .Function =append (_cbfdd .Function ,_aeaacg );};return &_cbfdd ,nil ;};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _egg .PdfObject ;Name _egg .PdfObject ;};
|
||
|
||
// 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 (_bddb *Image )Resample (targetBitsPerComponent int64 ){if _bddb .BitsPerComponent ==targetBitsPerComponent {return ;};_fbdf :=_bddb .GetSamples ();if targetBitsPerComponent < _bddb .BitsPerComponent {_dbcg :=_bddb .BitsPerComponent -targetBitsPerComponent ;
|
||
for _cgdaa :=range _fbdf {_fbdf [_cgdaa ]>>=uint (_dbcg );};}else if targetBitsPerComponent > _bddb .BitsPerComponent {_cbae :=targetBitsPerComponent -_bddb .BitsPerComponent ;for _efbdd :=range _fbdf {_fbdf [_efbdd ]<<=uint (_cbae );};};_bddb .BitsPerComponent =targetBitsPerComponent ;
|
||
if _bddb .BitsPerComponent < 8{_bddb .resampleLowBits (_fbdf );return ;};_edae :=_eg .BytesPerLine (int (_bddb .Width ),int (_bddb .BitsPerComponent ),_bddb .ColorComponents );_aaedd :=make ([]byte ,_edae *int (_bddb .Height ));var (_ffgg ,_dffged ,_feag ,_ecagf int ;
|
||
_bcggd uint32 ;);for _feag =0;_feag < int (_bddb .Height );_feag ++{_ffgg =_feag *_edae ;_dffged =(_feag +1)*_edae -1;_cfgad :=_fb .ResampleUint32 (_fbdf [_ffgg :_dffged ],int (targetBitsPerComponent ),8);for _ecagf ,_bcggd =range _cfgad {_aaedd [_ecagf +_ffgg ]=byte (_bcggd );
|
||
};};_bddb .Data =_aaedd ;};
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_fbb *PdfAnnotation )SetContext (ctx PdfModel ){_fbb ._gcf =ctx };
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_egcgf *Image )GetParamsDict ()*_egg .PdfObjectDictionary {_gefdg :=_egg .MakeDict ();_gefdg .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (_egcgf .Width ));_gefdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (_egcgf .Height ));
|
||
_gefdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_egcgf .ColorComponents )));_gefdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (_egcgf .BitsPerComponent ));
|
||
return _gefdg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edaf *PdfAnnotationScreen )ToPdfObject ()_egg .PdfObject {_edaf .PdfAnnotation .ToPdfObject ();_debe :=_edaf ._cef ;_eba :=_debe .PdfObject .(*_egg .PdfObjectDictionary );_eba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_eba .SetIfNotNil ("\u0054",_edaf .T );_eba .SetIfNotNil ("\u004d\u004b",_edaf .MK );_eba .SetIfNotNil ("\u0041",_edaf .A );_eba .SetIfNotNil ("\u0041\u0041",_edaf .AA );return _debe ;};func (_fdggg *DSS )addCRLs (_acca [][]byte )([]*_egg .PdfObjectStream ,error ){return _fdggg .add (&_fdggg .CRLs ,_fdggg ._eeecd ,_acca );
|
||
};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_fdaf *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_gacef *PdfAcroForm )AllFields ()[]*PdfField {if _gacef ==nil {return nil ;};var _bdae []*PdfField ;if _gacef .Fields !=nil {for _ ,_efbc :=range *_gacef .Fields {_bdae =append (_bdae ,_dgdba (_efbc )...);};};return _bdae ;};func (_fdee *PdfReader )newPdfAnnotationRichMediaFromDict (_fab *_egg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_bee :=&PdfAnnotationRichMedia {};
|
||
_bee .RichMediaSettings =_fab .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_bee .RichMediaContent =_fab .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
|
||
return _bee ,nil ;};func (_aacfc *PdfWriter )setDocumentIDs (_aecgbf ,_efbgg string ){_aacfc ._aaea =_egg .MakeArray (_egg .MakeHexString (_aecgbf ),_egg .MakeHexString (_efbgg ));};
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_caabf *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _caabf ._dafgab .GetCrypter ()!=nil &&!_caabf ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};if len (_caabf ._abgbc )< pageNumber {return nil ,_gd .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");
|
||
};_afcfc :=pageNumber -1;if _afcfc < 0{return nil ,_f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_fgbde :=_caabf .PageList [_afcfc ];
|
||
return _fgbde ,nil ;};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_fffa :=NewPdfAnnotation ();_adc :=&PdfAnnotationPrinterMark {};_adc .PdfAnnotation =_fffa ;_fffa .SetContext (_adc );return _adc ;};
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_adfbc *PdfColorDeviceCMYK )K ()float64 {return _adfbc [3]};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_gdecd *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_gdecd .Base .GetNumComponents ();if N < 1{return Image {},_f .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
|
||
};_fcfdf :=_eg .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._fgggb ,img ._abfae );_bfaa :=_fb .NewReader (img .getBase ());_fecc :=_fb .NewWriter (_fcfdf );var (_fcbe uint32 ;_bade int ;_dded error ;);for {_fcbe ,_dded =_bfaa .ReadSample ();
|
||
if _dded ==_dag .EOF {break ;}else if _dded !=nil {return img ,_dded ;};_bade =int (_fcbe );_bag .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",_bade ,N ,len (_gdecd ._defc ));
|
||
if (_bade +1)*N > len (_gdecd ._defc ){_bade =len (_gdecd ._defc )/N -1;_bag .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_bade );if _bade < 0{_bag .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 _bbed :=_bade *N ;_bbed < (_bade +1)*N ;_bbed ++{if _dded =_fecc .WriteSample (uint32 (_gdecd ._defc [_bbed ]));_dded !=nil {return img ,_dded ;};};};return _gdecd .Base .ImageToRGB (_cggba (&_fcfdf ));};
|
||
|
||
// 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 ;_fgggb []byte ;_abfae []float64 ;};func _bdefe (_dabd _egg .PdfObject )(PdfFunction ,error ){_dabd =_egg .ResolveReference (_dabd );if _aaedb ,_ffbeb :=_dabd .(*_egg .PdfObjectStream );
|
||
_ffbeb {_dcfcc :=_aaedb .PdfObjectDictionary ;_fgcfaa ,_ffedb :=_dcfcc .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );if !_ffedb {_bag .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 ,_gd .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 *_fgcfaa ==0{return _bcbae (_aaedb );}else if *_fgcfaa ==4{return _cegee (_aaedb );
|
||
}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _ebagbb ,_gfdbd :=_dabd .(*_egg .PdfIndirectObject );_gfdbd {_deag ,_debbe :=_ebagbb .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_debbe {_bag .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 ,_gd .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");};_fdcdd ,_debbe :=_deag .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );
|
||
if !_debbe {_bag .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 ,_gd .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 *_fdcdd ==2{return _ceeb (_ebagbb );}else if *_fdcdd ==3{return _gaec (_ebagbb );}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _cecf ,_afbae :=_dabd .(*_egg .PdfObjectDictionary );
|
||
_afbae {_dcadb ,_dcdf :=_cecf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_egg .PdfObjectInteger );if !_dcdf {_bag .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 ,_gd .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 *_dcadb ==2{return _ceeb (_cecf );}else if *_dcadb ==3{return _gaec (_cecf );
|
||
}else {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_bag .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_dabd );
|
||
return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
|
||
|
||
// 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 *_egg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_dadga *_egg .PdfIndirectObject ;};func (_gbff *PdfReader )newPdfActionNamedFromDict (_fbg *_egg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_fbg .Get ("\u004e")},nil ;
|
||
};
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_dggad :=PdfPage {};_dggad ._fgfd =_egg .MakeDict ();_dggad .Resources =NewPdfPageResources ();_acga :=_egg .PdfIndirectObject {};_acga .PdfObject =_dggad ._fgfd ;_dggad ._dfee =&_acga ;return &_dggad ;};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_ebfe :=PdfColorLab {l ,a ,b };return &_ebfe };
|
||
|
||
// 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 ,_gdaaa :_egg .MakeDict (),ColorComponents :colorComponents };
|
||
};
|
||
|
||
// 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 (_aabaa *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _debf []*PdfField ;_dcgae :=map[*_egg .PdfIndirectObject ]struct{}{};for _ ,_ceba :=range _aabaa .PageList {_dfabb ,_cfadg :=_ceba .GetAnnotations ();if _cfadg !=nil {return _cfadg ;
|
||
};for _ ,_baebe :=range _dfabb {var _afeag *PdfField ;switch _ddbc :=_baebe .GetContext ().(type ){case *PdfAnnotationWidget :if _ddbc ._daa !=nil {_afeag =_ddbc ._daa ;break ;};if _dgace ,_cdbaf :=_egg .GetIndirect (_ddbc .Parent );_cdbaf {_afeag ,_cfadg =_aabaa .newPdfFieldFromIndirectObject (_dgace ,nil );
|
||
if _cfadg ==nil {break ;};_bag .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",_dgace ,_cfadg );
|
||
};if _ddbc ._cef !=nil {_afeag ,_cfadg =_aabaa .newPdfFieldFromIndirectObject (_ddbc ._cef ,nil );if _cfadg ==nil {break ;};_bag .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",_ddbc ._cef ,_cfadg );
|
||
};};if _afeag ==nil {continue ;};if _ ,_gdbea :=_dcgae [_afeag ._agef ];_gdbea {continue ;};_dcgae [_afeag ._agef ]=struct{}{};_debf =append (_debf ,_afeag );};};if len (_debf )==0{return nil ;};if _aabaa .AcroForm ==nil {_aabaa .AcroForm =NewPdfAcroForm ();
|
||
};_aabaa .AcroForm .Fields =&_debf ;return nil ;};
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_egfdf *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _egfdf .AlternateSpace ==nil {return nil ,_gd .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 _egfdf .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_eedeg *PdfField )IsTerminal ()bool {return len (_eedeg .Kids )==0};func (_gfd *PdfReader )newPdfActionURIFromDict (_cgc *_egg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_cgc .Get ("\u0055\u0052\u0049"),IsMap :_cgc .Get ("\u0049\u0073\u004da\u0070")},nil ;
|
||
};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_daf :=NewPdfAnnotation ();_fcg :=&PdfAnnotationRedact {};_fcg .PdfAnnotation =_daf ;_fcg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_daf .SetContext (_fcg );return _fcg ;};
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_dcea *PdfField )FullName ()(string ,error ){var _deacb _dd .Buffer ;_ebfc :=[]string {};if _dcea .T !=nil {_ebfc =append (_ebfc ,_dcea .T .Decoded ());};_efdda :=map[*PdfField ]bool {};_efdda [_dcea ]=true ;_fgca :=_dcea .Parent ;for _fgca !=nil {if _ ,_faca :=_efdda [_fgca ];
|
||
_faca {return _deacb .String (),_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _fgca .T ==nil {return _deacb .String (),_gd .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");
|
||
};_ebfc =append (_ebfc ,_fgca .T .Decoded ());_efdda [_fgca ]=true ;_fgca =_fgca .Parent ;};for _bdaf :=len (_ebfc )-1;_bdaf >=0;_bdaf --{_deacb .WriteString (_ebfc [_bdaf ]);if _bdaf > 0{_deacb .WriteString ("\u002e");};};return _deacb .String (),nil ;
|
||
};func (_gba *PdfReader )newPdfAnnotationStrikeOut (_fdcg *_egg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_ege :=PdfAnnotationStrikeOut {};_ffa ,_afbe :=_gba .newPdfAnnotationMarkupFromDict (_fdcg );if _afbe !=nil {return nil ,_afbe ;};_ege .PdfAnnotationMarkup =_ffa ;
|
||
_ege .QuadPoints =_fdcg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ege ,nil ;};func (_bded *PdfReader )newPdfAnnotationHighlightFromDict (_cgfa *_egg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_cae :=PdfAnnotationHighlight {};
|
||
_fgabf ,_ffbc :=_bded .newPdfAnnotationMarkupFromDict (_cgfa );if _ffbc !=nil {return nil ,_ffbc ;};_cae .PdfAnnotationMarkup =_fgabf ;_cae .QuadPoints =_cgfa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cae ,nil ;};func (_adbff *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";
|
||
};
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _egg .PdfObject ;PreserveRB _egg .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gcff *PdfShadingType2 )ToPdfObject ()_egg .PdfObject {_gcff .PdfShading .ToPdfObject ();_dgecb ,_cbcgb :=_gcff .getShadingDict ();if _cbcgb !=nil {_bag .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 _dgecb ==nil {_bag .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _gcff .Coords !=nil {_dgecb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_gcff .Coords );
|
||
};if _gcff .Domain !=nil {_dgecb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gcff .Domain );};if _gcff .Function !=nil {if len (_gcff .Function )==1{_dgecb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gcff .Function [0].ToPdfObject ());}else {_bbbca :=_egg .MakeArray ();
|
||
for _ ,_badee :=range _gcff .Function {_bbbca .Append (_badee .ToPdfObject ());};_dgecb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bbbca );};};if _gcff .Extend !=nil {_dgecb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_gcff .Extend );};
|
||
return _gcff ._cfdbd ;};func (_gedd *PdfReader )newPdfAnnotationWatermarkFromDict (_gfge *_egg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_abdb :=PdfAnnotationWatermark {};_abdb .FixedPrint =_gfge .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
|
||
return &_abdb ,nil ;};func _dead (_gdcf string )map[string ]string {_fbdce :=_efdg .Split (_gdcf ,-1);_gecee :=map[string ]string {};for _ ,_aabda :=range _fbdce {_eacef :=_aafbcd .FindStringSubmatch (_aabda );if _eacef ==nil {continue ;};_afeed ,_baba :=_eacef [1],_eacef [2];
|
||
_gecee [_afeed ]=_baba ;};return _gecee ;};
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_fffd _egg .PdfObject ;};
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_cde .PSProgram ;_aafea *_cde .PSExecutor ;_fafff []byte ;_cbebd *_egg .PdfObjectStream ;};
|
||
|
||
// 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 ;_ccbda *_egg .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_egg .PdfObjectName ;Filter *_egg .PdfObjectName ;SubFilter *_egg .PdfObjectName ;Contents *_egg .PdfObjectString ;Cert _egg .PdfObject ;ByteRange *_egg .PdfObjectArray ;Reference *_egg .PdfObjectArray ;Changes *_egg .PdfObjectArray ;Name *_egg .PdfObjectString ;
|
||
M *_egg .PdfObjectString ;Location *_egg .PdfObjectString ;Reason *_egg .PdfObjectString ;ContactInfo *_egg .PdfObjectString ;R *_egg .PdfObjectInteger ;V *_egg .PdfObjectInteger ;PropBuild *_egg .PdfObjectDictionary ;PropAuthTime *_egg .PdfObjectInteger ;
|
||
PropAuthType *_egg .PdfObjectName ;};func _ebafc (_gdcgd *_egg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_cbcfb :=PdfShadingType3 {};_agbdd :=_gdcgd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _agbdd ==nil {_bag .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 ;};_gebbc ,_ggffg :=_agbdd .(*_egg .PdfObjectArray );if !_ggffg {_bag .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",_agbdd );
|
||
return nil ,_egg .ErrTypeError ;};if _gebbc .Len ()!=6{_bag .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",_gebbc .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_cbcfb .Coords =_gebbc ;if _egffb :=_gdcgd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_egffb !=nil {_egffb =_egg .TraceToDirectObject (_egffb );_gfdbb ,_cgabd :=_egffb .(*_egg .PdfObjectArray );if !_cgabd {_bag .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",_egffb );
|
||
return nil ,_egg .ErrTypeError ;};_cbcfb .Domain =_gfdbb ;};_agbdd =_gdcgd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agbdd ==nil {_bag .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 ;};_cbcfb .Function =[]PdfFunction {};if _ddbce ,_dgfed :=_agbdd .(*_egg .PdfObjectArray );_dgfed {for _ ,_bagff :=range _ddbce .Elements (){_bedfa ,_bedda :=_bdefe (_bagff );if _bedda !=nil {_bag .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",_bedda );
|
||
return nil ,_bedda ;};_cbcfb .Function =append (_cbcfb .Function ,_bedfa );};}else {_fafcd ,_fdfef :=_bdefe (_agbdd );if _fdfef !=nil {_bag .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",_fdfef );
|
||
return nil ,_fdfef ;};_cbcfb .Function =append (_cbcfb .Function ,_fafcd );};if _fgbdd :=_gdcgd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_fgbdd !=nil {_fgbdd =_egg .TraceToDirectObject (_fgbdd );_aecfg ,_ageagb :=_fgbdd .(*_egg .PdfObjectArray );if !_ageagb {_bag .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",_fgbdd );
|
||
return nil ,_egg .ErrTypeError ;};if _aecfg .Len ()!=2{_bag .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",_aecfg .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_cbcfb .Extend =_aecfg ;};return &_cbcfb ,nil ;};
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_egdd *_egg .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cgbdb *PdfShading )ToPdfObject ()_egg .PdfObject {_gfeded :=_cgbdb ._cfdbd ;_dbdd ,_ddba :=_cgbdb .getShadingDict ();if _ddba !=nil {_bag .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 _cgbdb .ShadingType !=nil {_dbdd .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_cgbdb .ShadingType );};if _cgbdb .ColorSpace !=nil {_dbdd .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_cgbdb .ColorSpace .ToPdfObject ());
|
||
};if _cgbdb .Background !=nil {_dbdd .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_cgbdb .Background );};if _cgbdb .BBox !=nil {_dbdd .Set ("\u0042\u0042\u006f\u0078",_cgbdb .BBox .ToPdfObject ());};if _cgbdb .AntiAlias !=nil {_dbdd .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_cgbdb .AntiAlias );
|
||
};return _gfeded ;};
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_cecg *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cecg .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cecg ._aeec =acroForm ;};
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_cgfgc *PdfRectangle )Normalize (){if _cgfgc .Llx > _cgfgc .Urx {_cgfgc .Llx ,_cgfgc .Urx =_cgfgc .Urx ,_cgfgc .Llx ;};if _cgfgc .Lly > _cgfgc .Ury {_cgfgc .Lly ,_cgfgc .Ury =_cgfgc .Ury ,_cgfgc .Lly ;};};
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_ebfca *Image )AlphaMap (mapFunc AlphaMapFunc ){for _fecdf ,_cdgca :=range _ebfca ._fgggb {_ebfca ._fgggb [_fecdf ]=mapFunc (_cdgca );};};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_feee *Permissions )GetContainingPdfObject ()_egg .PdfObject {return _feee ._ffgafc };
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_dafbe *PdfPattern )GetContext ()PdfModel {return _dafbe ._fcbdg };
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_edec *PdfColorspaceLab )DecodeArray ()[]float64 {_gbdbd :=[]float64 {0,100};if _edec .Range !=nil &&len (_edec .Range )==4{_gbdbd =append (_gbdbd ,_edec .Range ...);}else {_gbdbd =append (_gbdbd ,-100,100,-100,100);};return _gbdbd ;};
|
||
|
||
// Items returns all children outline items.
|
||
func (_abfb *OutlineItem )Items ()[]*OutlineItem {return _abfb .Entries };func _eeceg (_bddce *[]*PdfField ,_agefd FieldFilterFunc ,_acfef bool )[]*PdfField {if _bddce ==nil {return nil ;};_ccda :=*_bddce ;if len (*_bddce )==0{return nil ;};_fdacd :=_ccda [:0];
|
||
if _agefd ==nil {_agefd =func (*PdfField )bool {return true };};var _eefcgb []*PdfField ;for _ ,_bcdgb :=range _ccda {_fafgb :=_agefd (_bcdgb );if _fafgb {_eefcgb =append (_eefcgb ,_bcdgb );if len (_bcdgb .Kids )> 0{_eefcgb =append (_eefcgb ,_eeceg (&_bcdgb .Kids ,_agefd ,_acfef )...);
|
||
};};if !_acfef ||!_fafgb ||len (_bcdgb .Kids )> 0{_fdacd =append (_fdacd ,_bcdgb );};};*_bddce =_fdacd ;return _eefcgb ;};func (_fdgdb *pdfFontType0 )baseFields ()*fontCommon {return &_fdgdb .fontCommon };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eef *PdfActionThread )ToPdfObject ()_egg .PdfObject {_eef .PdfAction .ToPdfObject ();_ded :=_eef ._bf ;_edb :=_ded .PdfObject .(*_egg .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeThread )));if _eef .F !=nil {_edb .Set ("\u0046",_eef .F .ToPdfObject ());
|
||
};_edb .SetIfNotNil ("\u0044",_eef .D );_edb .SetIfNotNil ("\u0042",_eef .B );return _ded ;};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_fdddaf *PdfReader )PageFromIndirectObject (ind *_egg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_fdddaf .PageList )!=len (_fdddaf ._abgbc ){return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _fegdd ,_gcfg :=range _fdddaf ._abgbc {if _gcfg ==ind {return _fdddaf .PageList [_fegdd ],_fegdd +1,nil ;};};return nil ,0,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func (_cfgfa *PdfWriter )copyObjects (){_acfab :=make (map[_egg .PdfObject ]_egg .PdfObject );
|
||
_bccbe :=make ([]_egg .PdfObject ,0,len (_cfgfa ._bbead ));_dffag :=make (map[_egg .PdfObject ]struct{},len (_cfgfa ._bbead ));_dfbdd :=make (map[_egg .PdfObject ]struct{});for _ ,_efabc :=range _cfgfa ._bbead {_gadbf :=_cfgfa .copyObject (_efabc ,_acfab ,_dfbdd ,false );
|
||
if _ ,_gaffa :=_dfbdd [_efabc ];_gaffa {continue ;};_bccbe =append (_bccbe ,_gadbf );_dffag [_gadbf ]=struct{}{};};_cfgfa ._bbead =_bccbe ;_cfgfa ._bacec =_dffag ;_cfgfa ._efage =_cfgfa .copyObject (_cfgfa ._efage ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );
|
||
_cfgfa ._egad =_cfgfa .copyObject (_cfgfa ._egad ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );if _cfgfa ._afcc !=nil {_cfgfa ._afcc =_cfgfa .copyObject (_cfgfa ._afcc ,_acfab ,nil ,false ).(*_egg .PdfIndirectObject );};if _cfgfa ._gabaca {_fdgbe :=make (map[_egg .PdfObject ]int64 );
|
||
for _cdbc ,_bbdc :=range _cfgfa ._fcgfe {if _gefcd ,_bffc :=_acfab [_cdbc ];_bffc {_fdgbe [_gefcd ]=_bbdc ;}else {_bag .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");
|
||
};};_cfgfa ._fcgfe =_fdgbe ;};};
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _e .Time )(PdfDate ,error ){_ecafd :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_ageaf ,_ :=_da .ParseInt (_ecafd [1:3],10,32);_cbdgdd ,_ :=_da .ParseInt (_ecafd [4:6],10,32);return PdfDate {_acadbc :int64 (timeObj .Year ()),_cbffc :int64 (timeObj .Month ()),_fgddd :int64 (timeObj .Day ()),_bfcd :int64 (timeObj .Hour ()),_fceaf :int64 (timeObj .Minute ()),_ffccc :int64 (timeObj .Second ()),_ebcdc :_ecafd [0],_ebeed :_ageaf ,_fcafb :_cbdgdd },nil ;
|
||
};
|
||
|
||
// GetContainingPdfObject implements model.PdfModel interface.
|
||
func (_efaef *PdfOutputIntent )GetContainingPdfObject ()_egg .PdfObject {return _efaef ._gdaaa };
|
||
|
||
// 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 {_daace ,_bdead :=NewStandard14Font (basefont );if _bdead !=nil {panic (_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
|
||
};return _daace ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_cdba pdfFontType0 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){if _cdba .DescendantFont ==nil {_bag .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",_cdba );
|
||
return _bgd .CharMetrics {},false ;};return _cdba .DescendantFont .GetRuneMetrics (r );};
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_fgfaa *XObjectForm )GetContainingPdfObject ()_egg .PdfObject {return _fgfaa ._acgef };
|
||
|
||
// 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 (_eedc *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_gd .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");
|
||
};_cbegd :=&PdfColorPattern {};_fbeb ,_bbcaa :=objects [len (objects )-1].(*_egg .PdfObjectName );if !_bbcaa {_bag .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 ;};_cbegd .PatternName =*_fbeb ;if len (objects )> 1{_gdfe :=objects [0:len (objects )-1];if _eedc .UnderlyingCS ==nil {_bag .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 ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_deecb ,_gfdcc :=_eedc .UnderlyingCS .ColorFromPdfObjects (_gdfe );if _gfdcc !=nil {_bag .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",_gfdcc );
|
||
return nil ,_gfdcc ;};_cbegd .Color =_deecb ;};return _cbegd ,nil ;};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_gagbgc *PdfReader )GetPageLabels ()(_egg .PdfObject ,error ){_aafae :=_egg .ResolveReference (_gagbgc ._eacf .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _aafae ==nil {return nil ,nil ;};if !_gagbgc ._cede {_feedg :=_gagbgc .traverseObjectData (_aafae );
|
||
if _feedg !=nil {return nil ,_feedg ;};};return _aafae ,nil ;};
|
||
|
||
// FieldImageProvider provides fields images for specified fields.
|
||
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _egg .PdfObject ;AN _egg .PdfObject ;OP _egg .PdfObject ;JS _egg .PdfObject ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_badb *PdfColorspaceCalRGB )ToPdfObject ()_egg .PdfObject {_ebcb :=&_egg .PdfObjectArray {};_ebcb .Append (_egg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cdec :=_egg .MakeDict ();if _badb .WhitePoint !=nil {_cecded :=_egg .MakeArray (_egg .MakeFloat (_badb .WhitePoint [0]),_egg .MakeFloat (_badb .WhitePoint [1]),_egg .MakeFloat (_badb .WhitePoint [2]));
|
||
_cdec .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cecded );}else {_bag .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 _badb .BlackPoint !=nil {_aefe :=_egg .MakeArray (_egg .MakeFloat (_badb .BlackPoint [0]),_egg .MakeFloat (_badb .BlackPoint [1]),_egg .MakeFloat (_badb .BlackPoint [2]));_cdec .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_aefe );
|
||
};if _badb .Gamma !=nil {_agbda :=_egg .MakeArray (_egg .MakeFloat (_badb .Gamma [0]),_egg .MakeFloat (_badb .Gamma [1]),_egg .MakeFloat (_badb .Gamma [2]));_cdec .Set ("\u0047\u0061\u006dm\u0061",_agbda );};if _badb .Matrix !=nil {_gcbc :=_egg .MakeArray (_egg .MakeFloat (_badb .Matrix [0]),_egg .MakeFloat (_badb .Matrix [1]),_egg .MakeFloat (_badb .Matrix [2]),_egg .MakeFloat (_badb .Matrix [3]),_egg .MakeFloat (_badb .Matrix [4]),_egg .MakeFloat (_badb .Matrix [5]),_egg .MakeFloat (_badb .Matrix [6]),_egg .MakeFloat (_badb .Matrix [7]),_egg .MakeFloat (_badb .Matrix [8]));
|
||
_cdec .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gcbc );};_ebcb .Append (_cdec );if _badb ._fcgc !=nil {_badb ._fcgc .PdfObject =_ebcb ;return _badb ._fcgc ;};return _ebcb ;};
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _egg .PdfObject ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_efbfg *PdfColorspaceICCBased )ToPdfObject ()_egg .PdfObject {_cded :=&_egg .PdfObjectArray {};_cded .Append (_egg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _bdfe *_egg .PdfObjectStream ;if _efbfg ._bcda !=nil {_bdfe =_efbfg ._bcda ;
|
||
}else {_bdfe =&_egg .PdfObjectStream {};};_deg :=_egg .MakeDict ();_deg .Set ("\u004e",_egg .MakeInteger (int64 (_efbfg .N )));if _efbfg .Alternate !=nil {_deg .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_efbfg .Alternate .ToPdfObject ());};if _efbfg .Metadata !=nil {_deg .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_efbfg .Metadata );
|
||
};if _efbfg .Range !=nil {var _gcc []_egg .PdfObject ;for _ ,_gfbd :=range _efbfg .Range {_gcc =append (_gcc ,_egg .MakeFloat (_gfbd ));};_deg .Set ("\u0052\u0061\u006eg\u0065",_egg .MakeArray (_gcc ...));};_deg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_efbfg .Data ))));
|
||
_bdfe .Stream =_efbfg .Data ;_bdfe .PdfObjectDictionary =_deg ;_cded .Append (_bdfe );if _efbfg ._dcf !=nil {_efbfg ._dcf .PdfObject =_cded ;return _efbfg ._dcf ;};return _cded ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_aeag *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cdgag :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cdgag *_aeag .R ()),uint32 (_cdgag *_aeag .G ()),uint32 (_cdgag *_aeag .B ())};};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_fdafg *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_bag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_gd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func _gcgfb (_dggef _egg .PdfObject )(*PdfFontDescriptor ,error ){_cfefd :=&PdfFontDescriptor {};_dggef =_egg .ResolveReference (_dggef );
|
||
if _gdge ,_gebdb :=_dggef .(*_egg .PdfIndirectObject );_gebdb {_cfefd ._faeb =_gdge ;_dggef =_gdge .PdfObject ;};_ggadc ,_bedgc :=_egg .GetDict (_dggef );if !_bedgc {_bag .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",_dggef );
|
||
return nil ,_egg .ErrTypeError ;};if _cbea :=_ggadc .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cbea !=nil {_cfefd .FontName =_cbea ;}else {_bag .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");
|
||
};_gceg ,_ :=_egg .GetName (_cfefd .FontName );if _fdfe :=_ggadc .Get ("\u0054\u0079\u0070\u0065");_fdfe !=nil {_fedg ,_dddg :=_fdfe .(*_egg .PdfObjectName );if !_dddg ||string (*_fedg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_bag .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",_fdfe ,_gceg ,_cfefd .FontName );
|
||
};}else {_bag .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",_gceg ,_cfefd .FontName );
|
||
};_cfefd .FontFamily =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_cfefd .FontStretch =_ggadc .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_cfefd .FontWeight =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_cfefd .Flags =_ggadc .Get ("\u0046\u006c\u0061g\u0073");_cfefd .FontBBox =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_cfefd .ItalicAngle =_ggadc .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_cfefd .Ascent =_ggadc .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_cfefd .Descent =_ggadc .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_cfefd .Leading =_ggadc .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_cfefd .CapHeight =_ggadc .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_cfefd .XHeight =_ggadc .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_cfefd .StemV =_ggadc .Get ("\u0053\u0074\u0065m\u0056");_cfefd .StemH =_ggadc .Get ("\u0053\u0074\u0065m\u0048");_cfefd .AvgWidth =_ggadc .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_cfefd .MaxWidth =_ggadc .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_cfefd .MissingWidth =_ggadc .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_cfefd .FontFile =_ggadc .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_cfefd .FontFile2 =_ggadc .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_cfefd .FontFile3 =_ggadc .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_cfefd .CharSet =_ggadc .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_cfefd .Style =_ggadc .Get ("\u0053\u0074\u0079l\u0065");_cfefd .Lang =_ggadc .Get ("\u004c\u0061\u006e\u0067");
|
||
_cfefd .FD =_ggadc .Get ("\u0046\u0044");_cfefd .CIDSet =_ggadc .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _cfefd .Flags !=nil {if _faac ,_gbdcb :=_egg .GetIntVal (_cfefd .Flags );_gbdcb {_cfefd ._adfdfe =_faac ;};};if _cfefd .MissingWidth !=nil {if _cfad ,_gace :=_egg .GetNumberAsFloat (_cfefd .MissingWidth );
|
||
_gace ==nil {_cfefd ._eedab =_cfad ;};};if _cfefd .FontFile !=nil {_agbg ,_febdf :=_dbggc (_cfefd .FontFile );if _febdf !=nil {return _cfefd ,_febdf ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_agbg );_cfefd .fontFile =_agbg ;
|
||
};if _cfefd .FontFile2 !=nil {_ggca ,_edddg :=_bgd .NewFontFile2FromPdfObject (_cfefd .FontFile2 );if _edddg !=nil {return _cfefd ,_edddg ;};_bag .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_ggca .String ());_cfefd ._eccg =&_ggca ;
|
||
};return _cfefd ,nil ;};func (_gdcc *PdfReader )newPdfAnnotationSoundFromDict (_debg *_egg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_faef :=PdfAnnotationSound {};_gagaf ,_dcc :=_gdcc .newPdfAnnotationMarkupFromDict (_debg );if _dcc !=nil {return nil ,_dcc ;
|
||
};_faef .PdfAnnotationMarkup =_gagaf ;_faef .Name =_debg .Get ("\u004e\u0061\u006d\u0065");_faef .Sound =_debg .Get ("\u0053\u006f\u0075n\u0064");return &_faef ,nil ;};
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_ebef *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_bag .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_bag .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 );
|
||
_bag .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_bag .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_bfaf ,_gffgd :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _gffgd !=nil {return Image {},_gffgd ;};_cdfb ,_gffgd :=_eg .NRGBAConverter .Convert (_bfaf );
|
||
if _gffgd !=nil {return Image {},_gffgd ;};return _cggba (_cdfb .Base ()),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 (_bcga *PdfWriter )ApplyStandard (optimizer StandardApplier ){_bcga ._ebgad =optimizer };func _dadge (_dega string )(map[_ef .CharCode ]_ef .GlyphName ,error ){_gffe :=_fc .Split (_dega ,"\u000a");_affe :=make (map[_ef .CharCode ]_ef .GlyphName );
|
||
for _ ,_babc :=range _gffe {_gbc :=_daaa .FindStringSubmatch (_babc );if _gbc ==nil {continue ;};_cdae ,_gcgfg :=_gbc [1],_gbc [2];_gdcce ,_ecgd :=_da .Atoi (_cdae );if _ecgd !=nil {_bag .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",_babc );
|
||
return nil ,_egg .ErrTypeError ;};_affe [_ef .CharCode (_gdcce )]=_ef .GlyphName (_gcgfg );};_bag .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",_affe );
|
||
return _affe ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aeeb *PdfAnnotationSquiggly )ToPdfObject ()_egg .PdfObject {_aeeb .PdfAnnotation .ToPdfObject ();_agea :=_aeeb ._cef ;_fecf :=_agea .PdfObject .(*_egg .PdfObjectDictionary );_aeeb .PdfAnnotationMarkup .appendToPdfDictionary (_fecf );_fecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_fecf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aeeb .QuadPoints );return _agea ;};
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_egg .PdfObjectArray ;_ffcc *Image ;};func (_gdf *PdfReader )newPdfAnnotationSquigglyFromDict (_cfbd *_egg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_eaeg :=PdfAnnotationSquiggly {};_deda ,_fdba :=_gdf .newPdfAnnotationMarkupFromDict (_cfbd );
|
||
if _fdba !=nil {return nil ,_fdba ;};_eaeg .PdfAnnotationMarkup =_deda ;_eaeg .QuadPoints =_cfbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_eaeg ,nil ;};
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _egg .PdfObject ;Movie _egg .PdfObject ;A _egg .PdfObject ;};
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_fgcac *PdfRectangle )Width ()float64 {return _dgb .Abs (_fgcac .Urx -_fgcac .Llx )};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_aecgb :=&PdfOutlineItem {_gfcb :_egg .MakeIndirectObject (_egg .MakeDict ())};_aecgb ._bgbfg =_aecgb ;return _aecgb ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_bfed *PdfColorspaceDeviceCMYK )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_cgdag *PdfInfo )AddCustomInfo (name string ,value string )error {if _cgdag ._eggg ==nil {_cgdag ._eggg =_egg .MakeDict ();};if _ ,_gebd :=_cbaa [name ];_gebd {return _f .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
|
||
};_cgdag ._eggg .SetIfNotNil (*_egg .MakeName (name ),_egg .MakeString (value ));return nil ;};
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_aceb :=&PdfBorderStyle {};return _aceb };
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_debc *PdfColorDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_egg .PdfObject ,error );};
|
||
|
||
// 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 (_ggb *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aafa :=vals [0];if _aafa < 0.0||_aafa > 1.0{_bag .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 _aafa < 0.0{_aafa =0.0;}else if _aafa > 1.0{_aafa =1.0;};return NewPdfColorDeviceGray (_aafa ),nil ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_dcdb *PdfOutline )ToPdfObject ()_egg .PdfObject {_begf :=_dcdb ._egdd ;_aced :=_begf .PdfObject .(*_egg .PdfObjectDictionary );_aced .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _dcdb .First !=nil {_aced .Set ("\u0046\u0069\u0072s\u0074",_dcdb .First .ToPdfObject ());
|
||
};if _dcdb .Last !=nil {_aced .Set ("\u004c\u0061\u0073\u0074",_dcdb .Last .GetContext ().GetContainingPdfObject ());};if _dcdb .Parent !=nil {_aced .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dcdb .Parent .GetContext ().GetContainingPdfObject ());};
|
||
if _dcdb .Count !=nil {_aced .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (*_dcdb .Count ));};return _begf ;};
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_fdfag *PdfFieldChoice )ToPdfObject ()_egg .PdfObject {_fdfag .PdfField .ToPdfObject ();_cdef :=_fdfag ._agef ;_gfag :=_cdef .PdfObject .(*_egg .PdfObjectDictionary );_gfag .Set ("\u0046\u0054",_egg .MakeName ("\u0043\u0068"));if _fdfag .Opt !=nil {_gfag .Set ("\u004f\u0070\u0074",_fdfag .Opt );
|
||
};if _fdfag .TI !=nil {_gfag .Set ("\u0054\u0049",_fdfag .TI );};if _fdfag .I !=nil {_gfag .Set ("\u0049",_fdfag .I );};return _cdef ;};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_dfgfb *PdfColorLab )A ()float64 {return _dfgfb [1]};func _gfgfd (_cadga string )(string ,error ){var _abccd _dd .Buffer ;_abccd .WriteString (_cadga );_gfdbbe :=make ([]byte ,8+16);_bfcec :=_e .Now ().UTC ().UnixNano ();_bg .BigEndian .PutUint64 (_gfdbbe ,uint64 (_bfcec ));
|
||
_ ,_gabbg :=_c .Read (_gfdbbe [8:]);if _gabbg !=nil {return "",_gabbg ;};_abccd .WriteString (_fg .EncodeToString (_gfdbbe ));return _abccd .String (),nil ;};
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_bffa :=&PdfPageResourcesColorspaces {};_bffa .Names =[]string {};_bffa .Colorspaces =map[string ]PdfColorspace {};_bffa ._bcecc =&_egg .PdfIndirectObject {};return _bffa ;};
|
||
|
||
// 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 (_accaff *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_fgdcf :=_accaff .fill (provider ,appGen );if _fgdcf !=nil {return _fgdcf ;};if _ ,_ceggc :=provider .(FieldImageProvider );_ceggc {_fgdcf =_accaff .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
|
||
};return _fgdcf ;};
|
||
|
||
// 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 *_be .DiffResults ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _e .Time ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_bceb pdfCIDFontType2 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _ffbcc ,_dafc :=_bceb ._fafe [code ];_dafc {return _bgd .CharMetrics {Wx :_ffbcc },true ;};_edab :=rune (code );_cbcef ,_dagbf :=_bceb ._beec [_edab ];if !_dagbf {_cbcef =int (_bceb ._bgec );
|
||
};return _bgd .CharMetrics {Wx :float64 (_cbcef )},true ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_fbbag pdfFontType0 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _fbbag .DescendantFont ==nil {_bag .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",_fbbag );
|
||
return _bgd .CharMetrics {},false ;};return _fbbag .DescendantFont .GetCharMetrics (code );};
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_aacca *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_aacca ._dcedg =outlineTree };
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_cccbe *PdfField )Flags ()FieldFlag {var _egab FieldFlag ;_gedb ,_dagf :=_cccbe .inherit (func (_cdgg *PdfField )bool {if _cdgg .Ff !=nil {_egab =FieldFlag (*_cdgg .Ff );return true ;};return false ;});if _dagf !=nil {_bag .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",_dagf );
|
||
};if !_gedb {_bag .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 _egab ;};
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_dbgg :=&PdfFilespec {};_dbgg ._fbdd =_egg .MakeIndirectObject (_egg .MakeDict ());return _dbgg ;};
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_efdc *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _efdc .UnderlyingCS .GetNumComponents ();};
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_gaff *PdfBorderStyle )GetBorderWidth ()float64 {if _gaff .W ==nil {return 1;};return *_gaff .W ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_dea *PdfAction )GetContainingPdfObject ()_egg .PdfObject {return _dea ._bf };
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_fcdf :=PdfColorDeviceGray (grayVal );return &_fcdf ;};func (_decef *pdfFontType3 )baseFields ()*fontCommon {return &_decef .fontCommon };func (_daeb PdfFont )actualFont ()pdfFont {if _daeb ._edde ==nil {_bag .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",_daeb );
|
||
};return _daeb ._edde ;};func _gdcg (_bfce *_egg .PdfObjectDictionary ,_bddaf *fontCommon )(*pdfFontType3 ,error ){_cgfdc :=_ecaae (_bddaf );_febef :=_bfce .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _febef ==nil {_febef =_egg .MakeInteger (0);
|
||
};_cgfdc .FirstChar =_febef ;_cdaad ,_acdaf :=_egg .GetIntVal (_febef );if !_acdaf {_bag .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",_febef );
|
||
return nil ,_egg .ErrTypeError ;};_ffed :=_ef .CharCode (_cdaad );_febef =_bfce .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _febef ==nil {_febef =_egg .MakeInteger (255);};_cgfdc .LastChar =_febef ;_cdaad ,_acdaf =_egg .GetIntVal (_febef );
|
||
if !_acdaf {_bag .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",_febef );return nil ,_egg .ErrTypeError ;
|
||
};_cdce :=_ef .CharCode (_cdaad );_febef =_bfce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _febef !=nil {_cgfdc .Resources =_febef ;};_febef =_bfce .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _febef ==nil {_bag .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",_febef );
|
||
return nil ,_egg .ErrNotSupported ;};_cgfdc .CharProcs =_febef ;_febef =_bfce .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _febef ==nil {_bag .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",_febef );
|
||
return nil ,_egg .ErrNotSupported ;};_cgfdc .FontMatrix =_febef ;_cgfdc ._ecfgb =make (map[_ef .CharCode ]float64 );_febef =_bfce .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _febef !=nil {_cgfdc .Widths =_febef ;_fgffe ,_cdcg :=_egg .GetArray (_febef );
|
||
if !_cdcg {_bag .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",_febef );return nil ,_egg .ErrTypeError ;
|
||
};_eegff ,_bfdf :=_fgffe .ToFloat64Array ();if _bfdf !=nil {_bag .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 ,_bfdf ;};if len (_eegff )!=int (_cdce -_ffed +1){_bag .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",_cdce -_ffed +1,len (_eegff ));
|
||
return nil ,_egg .ErrRangeError ;};_affg ,_cdcg :=_egg .GetArray (_cgfdc .FontMatrix );if !_cdcg {_bag .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",_affg );
|
||
return nil ,_bfdf ;};_gfae ,_bfdf :=_affg .ToFloat64Array ();if _bfdf !=nil {_bag .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 ,_bfdf ;};_dacaf :=_gdg .NewMatrix (_gfae [0],_gfae [1],_gfae [2],_gfae [3],_gfae [4],_gfae [5]);for _dcbe ,_ceee :=range _eegff {_fabf ,_ :=_dacaf .Transform (_ceee ,_ceee );_cgfdc ._ecfgb [_ffed +_ef .CharCode (_dcbe )]=_fabf ;};};_cgfdc .Encoding =_egg .TraceToDirectObject (_bfce .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
_ddae :=_bfce .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _ddae !=nil {_cgfdc ._gdbae =_egg .TraceToDirectObject (_ddae );_gecf ,_cfebb :=_ebfda (_cgfdc ._gdbae ,&_cgfdc .fontCommon );if _cfebb !=nil {return nil ,_cfebb ;};_cgfdc ._bfbgf =_gecf ;
|
||
};if _acagf :=_cgfdc ._bfbgf ;_acagf !=nil {_cgfdc ._fbfed =_ef .NewCMapEncoder ("",nil ,_acagf );}else {_cgfdc ._fbfed =_ef .NewPdfDocEncoder ();};return _cgfdc ,nil ;};func (_gggbb *PdfAppender )replaceObject (_bgbf ,_fadd _egg .PdfObject ){switch _cfab :=_bgbf .(type ){case *_egg .PdfIndirectObject :_gggbb ._eegc [_fadd ]=_cfab .ObjectNumber ;
|
||
case *_egg .PdfObjectStream :_gggbb ._eegc [_fadd ]=_cfab .ObjectNumber ;};};
|
||
|
||
// 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 };};func _ceef (_fgcaf StdFontName )(pdfFontSimple ,error ){_ageag ,_aaff :=_bgd .NewStdFontByName (_fgcaf );if !_aaff {return pdfFontSimple {},ErrFontNotSupported ;
|
||
};_dgfdd :=_egaa (_ageag );return _dgfdd ,nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_cbbd *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cbbd .Range };
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_dbdg *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// 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 _dag .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _dfbed ="\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 _ffee (rs ,opts ,true ,_dfbed );
|
||
};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_bcgc *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
|
||
|
||
// 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 (_gagce *CompliancePdfReader )error ;};func _cffe (_beefg *_egg .PdfObjectDictionary )*VRI {_ebec ,_ :=_egg .GetString (_beefg .Get ("\u0054\u0055"));_addf ,_ :=_egg .GetString (_beefg .Get ("\u0054\u0053"));return &VRI {Cert :_cfdec (_beefg .Get ("\u0043\u0065\u0072\u0074")),OCSP :_cfdec (_beefg .Get ("\u004f\u0043\u0053\u0050")),CRL :_cfdec (_beefg .Get ("\u0043\u0052\u004c")),TU :_ebec ,TS :_addf };
|
||
};func _cggba (_deddee *_eg .ImageBase )(_eebbf Image ){_eebbf .Width =int64 (_deddee .Width );_eebbf .Height =int64 (_deddee .Height );_eebbf .BitsPerComponent =int64 (_deddee .BitsPerComponent );_eebbf .ColorComponents =_deddee .ColorComponents ;_eebbf .Data =_deddee .Data ;
|
||
_eebbf ._abfae =_deddee .Decode ;_eebbf ._fgggb =_deddee .Alpha ;return _eebbf ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cdd *PdfAction )ToPdfObject ()_egg .PdfObject {_bd :=_cdd ._bf ;_efd :=_bd .PdfObject .(*_egg .PdfObjectDictionary );_efd .Clear ();_efd .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_efd .SetIfNotNil ("\u0053",_cdd .S );
|
||
_efd .SetIfNotNil ("\u004e\u0065\u0078\u0074",_cdd .Next );return _bd ;};func _ddgfga ()_e .Time {_cgag .Lock ();defer _cgag .Unlock ();return _gfeea };
|
||
|
||
// 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 (_efeca *PdfPage )SetContentStreams (cStreams []string ,encoder _egg .StreamEncoder )error {if len (cStreams )==0{_efeca .Contents =nil ;return nil ;};if encoder ==nil {encoder =_egg .NewRawEncoder ();};var _egdba []*_egg .PdfObjectStream ;for _ ,_dagdf :=range cStreams {_eaffd :=&_egg .PdfObjectStream {};
|
||
_agdeb :=encoder .MakeStreamDict ();_ecaed ,_edega :=encoder .EncodeBytes ([]byte (_dagdf ));if _edega !=nil {return _edega ;};_agdeb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_ecaed ))));_eaffd .PdfObjectDictionary =_agdeb ;
|
||
_eaffd .Stream =_ecaed ;_egdba =append (_egdba ,_eaffd );};if len (_egdba )==1{_efeca .Contents =_egdba [0];}else {_abgcc :=_egg .MakeArray ();for _ ,_dcbff :=range _egdba {_abgcc .Append (_dcbff );};_efeca .Contents =_abgcc ;};return nil ;};
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_bcd :=NewPdfAnnotation ();_bcf :=&PdfAnnotationFileAttachment {};_bcf .PdfAnnotation =_bcd ;_bcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcd .SetContext (_bcf );return _bcf ;};
|
||
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_gcfe *PdfPage )AddExtGState (name _egg .PdfObjectName ,egs *_egg .PdfObjectDictionary )error {if _gcfe .Resources ==nil {_gcfe .Resources =NewPdfPageResources ();};if _gcfe .Resources .ExtGState ==nil {_gcfe .Resources .ExtGState =_egg .MakeDict ();
|
||
};_cbbddf ,_bccc :=_egg .TraceToDirectObject (_gcfe .Resources .ExtGState ).(*_egg .PdfObjectDictionary );if !_bccc {_bag .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",_egg .TraceToDirectObject (_gcfe .Resources .ExtGState ));
|
||
return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbbddf .Set (name ,egs );return nil ;};
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cfcc :=NewPdfAnnotation ();_baf :=&PdfAnnotationStrikeOut {};_baf .PdfAnnotation =_cfcc ;_baf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cfcc .SetContext (_baf );return _baf ;};
|
||
|
||
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
// Currently, the Outline object can only be used to construct PDF outlines.
|
||
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func (_bfgcf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _gabg []*PdfFieldSignature ;for _ ,_dgbged :=range _bfgcf .AllFields (){switch _dbedd :=_dgbged .GetContext ().(type ){case *PdfFieldSignature :_cbgcg :=_dbedd ;
|
||
_gabg =append (_gabg ,_cbgcg );};};return _gabg ;};func (_adbcb *pdfFontType0 )bytesToCharcodes (_gadf []byte )([]_ef .CharCode ,bool ){if _adbcb ._fcffd ==nil {return nil ,false ;};_gagca ,_gggda :=_adbcb ._fcffd .BytesToCharcodes (_gadf );if !_gggda {return nil ,false ;
|
||
};_fgda :=make ([]_ef .CharCode ,len (_gagca ));for _afffb ,_cbbdd :=range _gagca {_fgda [_afffb ]=_ef .CharCode (_cbbdd );};return _fgda ,true ;};
|
||
|
||
// 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 (_gafc *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cagg :=vals [0];if _cagg < 0.0||_cagg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );
|
||
return nil ,ErrColorOutOfRange ;};_dde :=vals [1];if _dde < 0.0||_dde > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );return nil ,ErrColorOutOfRange ;
|
||
};_ecdga :=vals [2];if _ecdga < 0.0||_ecdga > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cagg );return nil ,ErrColorOutOfRange ;};_gefce :=NewPdfColorDeviceRGB (_cagg ,_dde ,_ecdga );
|
||
return _gefce ,nil ;};
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_abgcb *PdfPageResources )SetXObjectFormByName (keyName _egg .PdfObjectName ,xform *XObjectForm )error {_eadff :=xform .ToPdfObject ().(*_egg .PdfObjectStream );_acgbf :=_abgcb .SetXObjectByName (keyName ,_eadff );return _acgbf ;};
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_cgag .Lock ();defer _cgag .Unlock ();_fafb =keywords };
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_dagaa *PdfAppender )RemovePage (pageNum int ){_cabb :=pageNum -1;_dagaa ._beac =append (_dagaa ._beac [0:_cabb ],_dagaa ._beac [pageNum :]...);};func (_egff *DSS )generateHashMaps ()error {_fdcab ,_aebed :=_egff .generateHashMap (_egff .Certs );
|
||
if _aebed !=nil {return _aebed ;};_aafbc ,_aebed :=_egff .generateHashMap (_egff .OCSPs );if _aebed !=nil {return _aebed ;};_bbac ,_aebed :=_egff .generateHashMap (_egff .CRLs );if _aebed !=nil {return _aebed ;};_egff ._gafe =_fdcab ;_egff ._gaaec =_aafbc ;
|
||
_egff ._eeecd =_bbac ;return nil ;};func _faffdb (_fccag _egg .PdfObject ,_dgfa bool )(*PdfFont ,error ){_adafc ,_abef ,_efge :=_fgafa (_fccag );if _adafc !=nil {_afaa (_adafc );};if _efge !=nil {if _efge ==ErrType1CFontNotSupported {_daec ,_ffbe :=_fbbfc (_adafc ,_abef ,nil );
|
||
if _ffbe !=nil {_bag .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",_abef ,_ffbe );
|
||
return nil ,_efge ;};return &PdfFont {_edde :_daec },_efge ;};return nil ,_efge ;};_geec :=&PdfFont {};switch _abef ._ebdf {case "\u0054\u0079\u0070e\u0030":if !_dgfa {_bag .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",_abef );
|
||
return nil ,_gd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_ecaf ,_adad :=_bedd (_adafc ,_abef );if _adad !=nil {_bag .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",_abef ,_adad );
|
||
return nil ,_adad ;};_geec ._edde =_ecaf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _bfdd *pdfFontSimple ;_fdafe ,_bagaf :=_bgd .NewStdFontByName (_bgd .StdFontName (_abef ._dgfdc ));
|
||
if _bagaf {_gdaa :=_egaa (_fdafe );_geec ._edde =&_gdaa ;_bdec :=_egg .TraceToDirectObject (_gdaa .ToPdfObject ());_aefef ,_gaba ,_aagca :=_fgafa (_bdec );if _aagca !=nil {_bag .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",_abef ,_gdaa );
|
||
return nil ,_aagca ;};for _ ,_gced :=range _adafc .Keys (){_aefef .Set (_gced ,_adafc .Get (_gced ));};_bfdd ,_aagca =_fbbfc (_aefef ,_gaba ,_gdaa ._cdee );if _aagca !=nil {_bag .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",_abef ,_gdaa );
|
||
return nil ,_aagca ;};_bfdd ._babec =_gdaa ._babec ;_bfdd ._dddd =_gdaa ._dddd ;if _bfdd ._dbbfc ==nil {_bfdd ._dbbfc =_gdaa ._dbbfc ;};}else {_bfdd ,_efge =_fbbfc (_adafc ,_abef ,nil );if _efge !=nil {_bag .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",_abef ,_efge );
|
||
return nil ,_efge ;};};_efge =_bfdd .addEncoding ();if _efge !=nil {return nil ,_efge ;};if _bagaf {_bfdd .updateStandard14Font ();};if _bagaf &&_bfdd ._cbdegf ==nil &&_bfdd ._cdee ==nil {_bag .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_bfdd );
|
||
_bag .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_fdafe );};if len (_bfdd ._babec )==0{_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_bfdd );};_geec ._edde =_bfdd ;
|
||
case "\u0054\u0079\u0070e\u0033":_dbgdb ,_fgcbf :=_gdcg (_adafc ,_abef );if _fgcbf !=nil {_bag .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",_fgcbf );
|
||
return nil ,_fgcbf ;};_geec ._edde =_dbgdb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_aggc ,_bgfbff :=_cbfde (_adafc ,_abef );if _bgfbff !=nil {_bag .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",_bgfbff );
|
||
return nil ,_bgfbff ;};_geec ._edde =_aggc ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_caaa ,_beedc :=_dbffb (_adafc ,_abef );if _beedc !=nil {_bag .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",_abef ,_beedc );
|
||
return nil ,_beedc ;};_geec ._edde =_caaa ;default:_bag .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",_abef );
|
||
return nil ,_f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abef );};return _geec ,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 ;
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_bgf :=NewPdfAnnotation ();_afb :=&PdfAnnotationLink {};_afb .PdfAnnotation =_bgf ;_bgf .SetContext (_afb );return _afb ;};
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_gfcabd *PdfWriter )GetOptimizer ()Optimizer {return _gfcabd ._cfgb };func (_ffedbd *Image )samplesAddPadding (_badffg []uint32 )[]uint32 {_efgace :=_eg .BytesPerLine (int (_ffedbd .Width ),int (_ffedbd .BitsPerComponent ),_ffedbd .ColorComponents )*(8/int (_ffedbd .BitsPerComponent ));
|
||
_cegf :=_efgace *int (_ffedbd .Height );if len (_badffg )==_cegf {return _badffg ;};_bgcff :=make ([]uint32 ,_cegf );_cgdda :=int (_ffedbd .Width )*_ffedbd .ColorComponents ;for _ecacd :=0;_ecacd < int (_ffedbd .Height );_ecacd ++{_edeff :=_ecacd *int (_ffedbd .Width );
|
||
_efgca :=_ecacd *_efgace ;for _gffgf :=0;_gffgf < _cgdda ;_gffgf ++{_bgcff [_efgca +_gffgf ]=_badffg [_edeff +_gffgf ];};};return _bgcff ;};func _gbbb (_gebc _egg .PdfObject )(*PdfColorspaceICCBased ,error ){_dggca :=&PdfColorspaceICCBased {};if _gafd ,_fcfef :=_gebc .(*_egg .PdfIndirectObject );
|
||
_fcfef {_dggca ._dcf =_gafd ;};_gebc =_egg .TraceToDirectObject (_gebc );_gfdd ,_ccbd :=_gebc .(*_egg .PdfObjectArray );if !_ccbd {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfdd .Len ()!=2{return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_gebc =_egg .TraceToDirectObject (_gfdd .Get (0));_fddd ,_ccbd :=_gebc .(*_egg .PdfObjectName );if !_ccbd {return nil ,_f .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if *_fddd !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_f .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_gebc =_gfdd .Get (1);
|
||
_gggad ,_ccbd :=_egg .GetStream (_gebc );if !_ccbd {_bag .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",_gebc );
|
||
return nil ,_f .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_feae :=_gggad .PdfObjectDictionary ;_aebe ,_ccbd :=_feae .Get ("\u004e").(*_egg .PdfObjectInteger );
|
||
if !_ccbd {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_aebe !=1&&*_aebe !=3&&*_aebe !=4{return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
|
||
};_dggca .N =int (*_aebe );if _efcb :=_feae .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_efcb !=nil {_egae ,_ccgf :=NewPdfColorspaceFromPdfObject (_efcb );if _ccgf !=nil {return nil ,_ccgf ;};_dggca .Alternate =_egae ;};if _dfed :=_feae .Get ("\u0052\u0061\u006eg\u0065");
|
||
_dfed !=nil {_dfed =_egg .TraceToDirectObject (_dfed );_fffcc ,_dbef :=_dfed .(*_egg .PdfObjectArray );if !_dbef {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
|
||
};if _fffcc .Len ()!=2*_dggca .N {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
|
||
};_bgda ,_ccf :=_fffcc .GetAsFloat64Slice ();if _ccf !=nil {return nil ,_ccf ;};_dggca .Range =_bgda ;}else {_dggca .Range =make ([]float64 ,2*_dggca .N );for _cgba :=0;_cgba < _dggca .N ;_cgba ++{_dggca .Range [2*_cgba ]=0.0;_dggca .Range [2*_cgba +1]=1.0;
|
||
};};if _agbb :=_feae .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agbb !=nil {_cfde ,_acffa :=_agbb .(*_egg .PdfObjectStream );if !_acffa {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
|
||
};_dggca .Metadata =_cfde ;};_agfe ,_fdgd :=_egg .DecodeStream (_gggad );if _fdgd !=nil {return nil ,_fdgd ;};_dggca .Data =_agfe ;_dggca ._bcda =_gggad ;return _dggca ,nil ;};
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_decf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_decf .Filter .UpdateParams (img .GetParamsDict ());_beeffb ,_dbgca :=_decf .Filter .EncodeBytes (img .Data );if _dbgca !=nil {return _dbgca ;};_decf .Stream =_beeffb ;_cgfde :=img .Width ;
|
||
_decf .Width =&_cgfde ;_dbfcg :=img .Height ;_decf .Height =&_dbfcg ;_cabbcc :=img .BitsPerComponent ;_decf .BitsPerComponent =&_cabbcc ;if cs ==nil {if img .ColorComponents ==1{_decf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_decf .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_decf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_decf .ColorSpace =cs ;};return nil ;
|
||
};func (_fdeb fontCommon )fontFlags ()int {if _fdeb ._bgacg ==nil {return 0;};return _fdeb ._bgacg ._adfdfe ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_bggg *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_geab :=vals [0];_ddedc :=[]float64 {_geab };_faeg ,_efba :=_bggg .TintTransform .Evaluate (_ddedc );
|
||
if _efba !=nil {_bag .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",_efba );_bag .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bggg .TintTransform );
|
||
return nil ,_efba ;};_bag .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",_faeg ,_bggg .AlternateSpace );
|
||
_ggac ,_efba :=_bggg .AlternateSpace .ColorFromFloats (_faeg );if _efba !=nil {_bag .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",_efba );
|
||
return nil ,_efba ;};return _ggac ,nil ;};func (_cbfdg *PdfReader )buildOutlineTree (_ggcgga _egg .PdfObject ,_adecba *PdfOutlineTreeNode ,_fcfbe *PdfOutlineTreeNode ,_adgbd map[_egg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _adgbd ==nil {_adgbd =map[_egg .PdfObject ]struct{}{};
|
||
};_adgbd [_ggcgga ]=struct{}{};_dbbfcd ,_cbbdc :=_ggcgga .(*_egg .PdfIndirectObject );if !_cbbdc {return nil ,nil ,_f .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_ggcgga );
|
||
};_cfgdg ,_fcfc :=_dbbfcd .PdfObject .(*_egg .PdfObjectDictionary );if !_fcfc {return nil ,nil ,_gd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_bag .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",_cfgdg ,_dbbfcd ,_dbbfcd );
|
||
if _ggagg :=_cfgdg .Get ("\u0054\u0069\u0074l\u0065");_ggagg !=nil {_faddf ,_gadc :=_cbfdg .newPdfOutlineItemFromIndirectObject (_dbbfcd );if _gadc !=nil {return nil ,nil ,_gadc ;};_faddf .Parent =_adecba ;_faddf .Prev =_fcfbe ;_degdc :=_egg .ResolveReference (_cfgdg .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_bbfg :=_adgbd [_degdc ];_degdc !=nil &&_degdc !=_dbbfcd &&!_bbfg {if !_egg .IsNullObject (_degdc ){_dggeb ,_fgcgfe ,_agafg :=_cbfdg .buildOutlineTree (_degdc ,&_faddf .PdfOutlineTreeNode ,nil ,_adgbd );if _agafg !=nil {_bag .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",_agafg );
|
||
}else {_faddf .First =_dggeb ;_faddf .Last =_fgcgfe ;};};};_bfaff :=_egg .ResolveReference (_cfgdg .Get ("\u004e\u0065\u0078\u0074"));if _ ,_cfdeb :=_adgbd [_bfaff ];_bfaff !=nil &&_bfaff !=_dbbfcd &&!_cfdeb {if !_egg .IsNullObject (_bfaff ){_cgabc ,_addc ,_edbfd :=_cbfdg .buildOutlineTree (_bfaff ,_adecba ,&_faddf .PdfOutlineTreeNode ,_adgbd );
|
||
if _edbfd !=nil {_bag .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",_edbfd );
|
||
}else {_faddf .Next =_cgabc ;return &_faddf .PdfOutlineTreeNode ,_addc ,nil ;};};};return &_faddf .PdfOutlineTreeNode ,&_faddf .PdfOutlineTreeNode ,nil ;};_bfff ,_ecffa :=_bagfg (_dbbfcd );if _ecffa !=nil {return nil ,nil ,_ecffa ;};_bfff .Parent =_adecba ;
|
||
if _ddgeg :=_cfgdg .Get ("\u0046\u0069\u0072s\u0074");_ddgeg !=nil {_ddgeg =_egg .ResolveReference (_ddgeg );if _ ,_acccb :=_adgbd [_ddgeg ];_ddgeg !=nil &&_ddgeg !=_dbbfcd &&!_acccb {_cabfc :=_egg .TraceToDirectObject (_ddgeg );if _ ,_bbfa :=_cabfc .(*_egg .PdfObjectNull );
|
||
!_bbfa &&_cabfc !=nil {_feeab ,_cccde ,_aeffg :=_cbfdg .buildOutlineTree (_ddgeg ,&_bfff .PdfOutlineTreeNode ,nil ,_adgbd );if _aeffg !=nil {_bag .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",_aeffg );
|
||
}else {_bfff .First =_feeab ;_bfff .Last =_cccde ;};};};};return &_bfff .PdfOutlineTreeNode ,&_bfff .PdfOutlineTreeNode ,nil ;};
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_cgag .Lock ();defer _cgag .Unlock ();_cdcf =author };func (_cff *PdfReader )newPdfActionGotoRFromDict (_bc *_egg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_cdg ,_ffbb :=_fgb (_bc .Get ("\u0046"));if _ffbb !=nil {return nil ,_ffbb ;
|
||
};return &PdfActionGoToR {D :_bc .Get ("\u0044"),NewWindow :_bc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cdg },nil ;};func _eaebg ()string {_abgc :="\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 _daaeba _dd .Buffer ;for _ccgba :=0;_ccgba < 6;_ccgba ++{_daaeba .WriteRune (rune (_abgc [_cg .Intn (len (_abgc ))]));};return _daaeba .String ();};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_aadbb *PdfReader )PdfVersion ()_egg .Version {return _aadbb ._dafgab .PdfVersion ()};
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_dfceg []byte )(_eadeeg int ,_bfdfd error );};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};
|
||
|
||
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
|
||
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_egg .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_egg .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
|
||
};
|
||
|
||
// 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 (_feff *pdfCIDFontType0 )baseFields ()*fontCommon {return &_feff .fontCommon };func (_fdecg *PdfReader )loadDSS ()(*DSS ,error ){if _fdecg ._dafgab .GetCrypter ()!=nil &&!_fdecg ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_gfefe :=_fdecg ._eacf .Get ("\u0044\u0053\u0053");if _gfefe ==nil {return nil ,nil ;};_gdeced ,_ :=_egg .GetIndirect (_gfefe );_gfefe =_egg .TraceToDirectObject (_gfefe );switch _efed :=_gfefe .(type ){case *_egg .PdfObjectNull :return nil ,nil ;case *_egg .PdfObjectDictionary :return _gfgga (_gdeced ,_efed );
|
||
};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_gfefe );};
|
||
|
||
// GetNameDictionary returns the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_dbcga *PdfReader )GetNameDictionary ()(_egg .PdfObject ,error ){_cdgggc :=_egg .ResolveReference (_dbcga ._eacf .Get ("\u004e\u0061\u006de\u0073"));if _cdgggc ==nil {return nil ,nil ;};if !_dbcga ._cede {_bcfa :=_dbcga .traverseObjectData (_cdgggc );
|
||
if _bcfa !=nil {return nil ,_bcfa ;};};return _cdgggc ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gfca *PdfActionJavaScript )ToPdfObject ()_egg .PdfObject {_gfca .PdfAction .ToPdfObject ();_aefc :=_gfca ._bf ;_eed :=_aefc .PdfObject .(*_egg .PdfObjectDictionary );_eed .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeJavaScript )));_eed .SetIfNotNil ("\u004a\u0053",_gfca .JS );
|
||
return _aefc ;};
|
||
|
||
// 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 ,_ef .SimpleEncoder ,error ){_baega ,_cffec :=_ceef (basefont );if _cffec !=nil {return nil ,nil ,_cffec ;};_bfda ,_eefge :=_baega .Encoder ().(_ef .SimpleEncoder );
|
||
if !_eefge {return nil ,nil ,_f .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_baega .Encoder ());
|
||
};_aefdc :=make (map[rune ]_ef .GlyphName );for _cfcd :=range alphabet {if _ ,_eedgg :=_bfda .RuneToCharcode (_cfcd );!_eedgg {_ ,_bgdc :=_baega ._dddd .Read (_cfcd );if !_bgdc {_bag .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",_cfcd ,_cfcd );
|
||
continue ;};_bbbd ,_bgdc :=_ef .RuneToGlyph (_cfcd );if !_bgdc {_bag .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_cfcd ,_cfcd );continue ;};if len (_aefdc )>=255{return nil ,nil ,_gd .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");
|
||
};_aefdc [_cfcd ]=_bbbd ;};};var (_aaaf []_ef .CharCode ;_dafb []_ef .CharCode ;);for _bccdb :=_ef .CharCode (1);_bccdb <=0xff;_bccdb ++{_dffgf ,_gacgd :=_bfda .CharcodeToRune (_bccdb );if !_gacgd {_aaaf =append (_aaaf ,_bccdb );continue ;};if _ ,_gacgd =alphabet [_dffgf ];
|
||
!_gacgd {_dafb =append (_dafb ,_bccdb );};};_efdfe :=append (_aaaf ,_dafb ...);if len (_efdfe )< len (_aefdc ){return nil ,nil ,_f .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_aefdc ),len (_efdfe ));
|
||
};_gggd :=make ([]rune ,0,len (_aefdc ));for _fadcf :=range _aefdc {_gggd =append (_gggd ,_fadcf );};_cf .Slice (_gggd ,func (_afddf ,_adecb int )bool {return _gggd [_afddf ]< _gggd [_adecb ]});_eega :=make (map[_ef .CharCode ]_ef .GlyphName ,len (_gggd ));
|
||
for _ ,_bdde :=range _gggd {_cacce :=_efdfe [0];_efdfe =_efdfe [1:];_eega [_cacce ]=_aefdc [_bdde ];};_bfda =_ef .ApplyDifferences (_bfda ,_eega );_baega .SetEncoder (_bfda );return &PdfFont {_edde :&_baega },_bfda ,nil ;};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_bdda :=&PdfColorspaceCalRGB {};_bdda .BlackPoint =[]float64 {0.0,0.0,0.0};_bdda .Gamma =[]float64 {1.0,1.0,1.0};_bdda .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _bdda ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_dbeg *PdfColorDeviceCMYK )M ()float64 {return _dbeg [1]};var ErrColorOutOfRange =_gd .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ecdg :=NewPdfAnnotation ();_ggg :=&PdfAnnotationFreeText {};_ggg .PdfAnnotation =_ecdg ;_ggg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecdg .SetContext (_ggg );return _ggg ;};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_abdgb *PdfColorspaceSpecialIndexed )ToPdfObject ()_egg .PdfObject {_eeded :=_egg .MakeArray (_egg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_eeded .Append (_abdgb .Base .ToPdfObject ());_eeded .Append (_egg .MakeInteger (int64 (_abdgb .HiVal )));
|
||
_eeded .Append (_abdgb .Lookup );if _abdgb ._ceed !=nil {_abdgb ._ceed .PdfObject =_eeded ;return _abdgb ._ceed ;};return _eeded ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgce *PdfAnnotationInk )ToPdfObject ()_egg .PdfObject {_bgce .PdfAnnotation .ToPdfObject ();_aeab :=_bgce ._cef ;_edeg :=_aeab .PdfObject .(*_egg .PdfObjectDictionary );_bgce .PdfAnnotationMarkup .appendToPdfDictionary (_edeg );_edeg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0049\u006e\u006b"));
|
||
_edeg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_bgce .InkList );_edeg .SetIfNotNil ("\u0042\u0053",_bgce .BS );return _aeab ;};func (_bfa *PdfReader )newPdfActionTransFromDict (_gbg *_egg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_gbg .Get ("\u0054\u0072\u0061n\u0073")},nil ;
|
||
};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _egg .PdfObject ;Popup *PdfAnnotationPopup ;CA _egg .PdfObject ;RC _egg .PdfObject ;CreationDate _egg .PdfObject ;IRT _egg .PdfObject ;Subj _egg .PdfObject ;RT _egg .PdfObject ;IT _egg .PdfObject ;ExData _egg .PdfObject ;
|
||
};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_eaceg :_egg .MakeIndirectObject (_egg .MakeDict ()),VRI :map[string ]*VRI {}};};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_afgde pdfCIDFontType0 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){_decee :=_afgde ._afdcf ;if _cbdgd ,_dbcbc :=_afgde ._decd [code ];_dbcbc {_decee =_cbdgd ;};return _bgd .CharMetrics {Wx :_decee },true ;};
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_decc *PdfField )PartialName ()string {_gfafe :="";if _decc .T !=nil {_gfafe =_decc .T .Decoded ();}else {_bag .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 _gfafe ;};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););func (_ccbdg *PdfWriter )copyObject (_gcgde _egg .PdfObject ,_abgbg map[_egg .PdfObject ]_egg .PdfObject ,_bgddca map[_egg .PdfObject ]struct{},_befee bool )_egg .PdfObject {_fecfd :=!_ccbdg ._gabaca &&_bgddca !=nil ;
|
||
if _dcffd ,_accbd :=_abgbg [_gcgde ];_accbd {if _fecfd &&!_befee {delete (_bgddca ,_gcgde );};return _dcffd ;};_deedd :=_gcgde ;switch _bdggc :=_gcgde .(type ){case *_egg .PdfObjectArray :_ecbag :=_egg .MakeArray ();_deedd =_ecbag ;_abgbg [_gcgde ]=_deedd ;
|
||
for _ ,_ccgfe :=range _bdggc .Elements (){_ecbag .Append (_ccbdg .copyObject (_ccgfe ,_abgbg ,_bgddca ,_befee ));};case *_egg .PdfObjectStreams :_aeeacc :=&_egg .PdfObjectStreams {PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_aeeacc ;_abgbg [_gcgde ]=_deedd ;
|
||
for _ ,_eafbf :=range _bdggc .Elements (){_aeeacc .Append (_ccbdg .copyObject (_eafbf ,_abgbg ,_bgddca ,_befee ));};case *_egg .PdfObjectStream :_efdbc :=&_egg .PdfObjectStream {Stream :_bdggc .Stream ,PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_efdbc ;
|
||
_abgbg [_gcgde ]=_deedd ;_efdbc .PdfObjectDictionary =_ccbdg .copyObject (_bdggc .PdfObjectDictionary ,_abgbg ,_bgddca ,_befee ).(*_egg .PdfObjectDictionary );case *_egg .PdfObjectDictionary :var _gfgfc bool ;if _fecfd &&!_befee {if _dagdc ,_ :=_egg .GetNameVal (_bdggc .Get ("\u0054\u0079\u0070\u0065"));
|
||
_dagdc =="\u0050\u0061\u0067\u0065"{_ ,_efaac :=_ccbdg ._fcdab [_bdggc ];_befee =!_efaac ;_gfgfc =_befee ;};};_egggb :=_egg .MakeDict ();_deedd =_egggb ;_abgbg [_gcgde ]=_deedd ;for _ ,_efffe :=range _bdggc .Keys (){_egggb .Set (_efffe ,_ccbdg .copyObject (_bdggc .Get (_efffe ),_abgbg ,_bgddca ,_befee ));
|
||
};if _gfgfc {_deedd =_egg .MakeNull ();_befee =false ;};case *_egg .PdfIndirectObject :_gbcfg :=&_egg .PdfIndirectObject {PdfObjectReference :_bdggc .PdfObjectReference };_deedd =_gbcfg ;_abgbg [_gcgde ]=_deedd ;_gbcfg .PdfObject =_ccbdg .copyObject (_bdggc .PdfObject ,_abgbg ,_bgddca ,_befee );
|
||
case *_egg .PdfObjectString :_beaae :=*_bdggc ;_deedd =&_beaae ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectName :_beeee :=*_bdggc ;_deedd =&_beeee ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectNull :_deedd =_egg .MakeNull ();_abgbg [_gcgde ]=_deedd ;
|
||
case *_egg .PdfObjectInteger :_dfbb :=*_bdggc ;_deedd =&_dfbb ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectReference :_geeeb :=*_bdggc ;_deedd =&_geeeb ;_abgbg [_gcgde ]=_deedd ;case *_egg .PdfObjectFloat :_fgcd :=*_bdggc ;_deedd =&_fgcd ;_abgbg [_gcgde ]=_deedd ;
|
||
case *_egg .PdfObjectBool :_ebfdgb :=*_bdggc ;_deedd =&_ebfdgb ;_abgbg [_gcgde ]=_deedd ;case *pdfSignDictionary :_addfe :=&pdfSignDictionary {PdfObjectDictionary :_egg .MakeDict (),_ebdca :_bdggc ._ebdca ,_gbbba :_bdggc ._gbbba };_deedd =_addfe ;_abgbg [_gcgde ]=_deedd ;
|
||
for _ ,_aebgg :=range _bdggc .Keys (){_addfe .Set (_aebgg ,_ccbdg .copyObject (_bdggc .Get (_aebgg ),_abgbg ,_bgddca ,_befee ));};default:_bag .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",_gcgde );
|
||
};if _fecfd &&_befee {_bgddca [_gcgde ]=struct{}{};};return _deedd ;};
|
||
|
||
// NewPermissions returns a new permissions object.
|
||
func NewPermissions (docMdp *PdfSignature )*Permissions {_ggbcae :=Permissions {};_ggbcae .DocMDP =docMdp ;_bafb :=_egg .MakeDict ();_bafb .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_ggbcae ._ffgafc =_bafb ;return &_ggbcae ;};
|
||
|
||
|
||
// 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 (_ccaed *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ef .CharCode )(_gfegf []rune ,_acdd ,_fgdc int ){_aagd ,_acdd ,_fgdc :=_ccaed .CharcodesToStrings (charcodes );return []rune (_fc .Join (_aagd ,"")),_acdd ,_fgdc ;};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_facge *PdfAcroForm )Fill (provider FieldValueProvider )error {return _facge .fill (provider ,nil )};func (_bedf *LTV )generateVRIKey (_bcdc *PdfSignature )(string ,error ){_bccda ,_cabed :=_eefdc (_bcdc .Contents .Bytes ());if _cabed !=nil {return "",_cabed ;
|
||
};return _fc .ToUpper (_fg .EncodeToString (_bccda )),nil ;};func (_age *PdfReader )newPdfActionImportDataFromDict (_aag *_egg .PdfObjectDictionary )(*PdfActionImportData ,error ){_bgb ,_ggd :=_fgb (_aag .Get ("\u0046"));if _ggd !=nil {return nil ,_ggd ;
|
||
};return &PdfActionImportData {F :_bgb },nil ;};
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _egg .PdfObject ;T _egg .PdfObject ;Operation _egg .PdfObject ;};
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _egg .PdfObject ;Name _egg .PdfObject ;State _egg .PdfObject ;StateModel _egg .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 ;
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_defd *PdfPageResources )HasXObjectByName (keyName _egg .PdfObjectName )bool {_eecdf ,_ :=_defd .GetXObjectByName (keyName );return _eecdf !=nil ;};func (_gageb *LTV )enable (_aega ,_gabce []*_dg .Certificate ,_fadf string )error {_bcaba ,_bbega ,_cbab :=_gageb .buildCertChain (_aega ,_gabce );
|
||
if _cbab !=nil {return _cbab ;};_gdag ,_cbab :=_gageb .getCerts (_bcaba );if _cbab !=nil {return _cbab ;};_cadf ,_cbab :=_gageb .getOCSPs (_bcaba ,_bbega );if _cbab !=nil {return _cbab ;};_gccg ,_cbab :=_gageb .getCRLs (_bcaba );if _cbab !=nil {return _cbab ;
|
||
};_bbegc :=_gageb ._cbbab ;_cbcae ,_cbab :=_bbegc .addCerts (_gdag );if _cbab !=nil {return _cbab ;};_aefdf ,_cbab :=_bbegc .addOCSPs (_cadf );if _cbab !=nil {return _cbab ;};_fadb ,_cbab :=_bbegc .addCRLs (_gccg );if _cbab !=nil {return _cbab ;};if _fadf !=""{_bbegc .VRI [_fadf ]=&VRI {Cert :_cbcae ,OCSP :_aefdf ,CRL :_fadb };
|
||
};_gageb ._dbdga .SetDSS (_bbegc );return nil ;};func (_cdcc *LTV )getOCSPs (_acfdd []*_dg .Certificate ,_aebg map[string ]*_dg .Certificate )([][]byte ,error ){_fcacd :=make ([][]byte ,0,len (_acfdd ));for _ ,_bdege :=range _acfdd {for _ ,_dabdf :=range _bdege .OCSPServer {if _cdcc .CertClient .IsCA (_bdege ){continue ;
|
||
};_ebed ,_ccafa :=_aebg [_bdege .Issuer .CommonName ];if !_ccafa {_bag .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 ;};_ ,_becebe ,_ffgd :=_cdcc .OCSPClient .MakeRequest (_dabdf ,_bdege ,_ebed );if _ffgd !=nil {_bag .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",_ffgd );
|
||
continue ;};_fcacd =append (_fcacd ,_becebe );};};return _fcacd ,nil ;};
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _e .Time ){_cgag .Lock ();defer _cgag .Unlock ();_gfeea =modifiedDate ;};
|
||
|
||
// ToImage converts an object to an Image which can be transformed or saved out.
|
||
// The image data is decoded and the Image returned.
|
||
func (_gfccc *XObjectImage )ToImage ()(*Image ,error ){_cgbfe :=&Image {};if _gfccc .Height ==nil {return nil ,_gd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_cgbfe .Height =*_gfccc .Height ;if _gfccc .Width ==nil {return nil ,_gd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_cgbfe .Width =*_gfccc .Width ;if _gfccc .BitsPerComponent ==nil {switch _gfccc .Filter .(type ){case *_egg .CCITTFaxEncoder ,*_egg .JBIG2Encoder :_cgbfe .BitsPerComponent =1;
|
||
case *_egg .LZWEncoder ,*_egg .RunLengthEncoder :_cgbfe .BitsPerComponent =8;default:return nil ,_gd .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 {_cgbfe .BitsPerComponent =*_gfccc .BitsPerComponent ;};_cgbfe .ColorComponents =_gfccc .ColorSpace .GetNumComponents ();_gfccc ._gefbe .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_cgbfe .ColorComponents )));
|
||
_gfgc ,_aeaae :=_egg .DecodeStream (_gfccc ._gefbe );if _aeaae !=nil {return nil ,_aeaae ;};_cgbfe .Data =_gfgc ;if _gfccc .Decode !=nil {_fegef ,_gegb :=_gfccc .Decode .(*_egg .PdfObjectArray );if !_gegb {_bag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_gd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_aecfe ,_gegcf :=_fegef .ToFloat64Array ();if _gegcf !=nil {return nil ,_gegcf ;};_cgbfe ._abfae =_aecfe ;};return _cgbfe ,nil ;};
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ece :=NewPdfAnnotation ();_bcg :=&PdfAnnotationTrapNet {};_bcg .PdfAnnotation =_ece ;_ece .SetContext (_bcg );return _bcg ;};
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_cbcb *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_cbcb .ToPdfOutline ().PdfOutlineTreeNode ;};func (_fgae *PdfReader )newPdfAnnotationPopupFromDict (_cbad *_egg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_dcdg :=PdfAnnotationPopup {};
|
||
_dcdg .Parent =_cbad .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dcdg .Open =_cbad .Get ("\u004f\u0070\u0065\u006e");return &_dcdg ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aecg *PdfAnnotationWidget )ToPdfObject ()_egg .PdfObject {_aecg .PdfAnnotation .ToPdfObject ();_cdfe :=_aecg ._cef ;_ffaa :=_cdfe .PdfObject .(*_egg .PdfObjectDictionary );if _aecg ._gae {return _cdfe ;};_aecg ._gae =true ;_ffaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_ffaa .SetIfNotNil ("\u0048",_aecg .H );_ffaa .SetIfNotNil ("\u004d\u004b",_aecg .MK );_ffaa .SetIfNotNil ("\u0041",_aecg .A );_ffaa .SetIfNotNil ("\u0041\u0041",_aecg .AA );_ffaa .SetIfNotNil ("\u0042\u0053",_aecg .BS );_bbag :=_aecg .Parent ;if _aecg ._daa !=nil {if _aecg ._daa ._agef ==_aecg ._cef {_aecg ._daa .ToPdfObject ();
|
||
};_bbag =_aecg ._daa .GetContainingPdfObject ();};if _bbag !=_cdfe {_ffaa .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_bbag );};_aecg ._gae =false ;return _cdfe ;};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _egg .PdfObject ;BS _egg .PdfObject ;LE _egg .PdfObject ;IC _egg .PdfObject ;LL _egg .PdfObject ;LLE _egg .PdfObject ;Cap _egg .PdfObject ;IT _egg .PdfObject ;LLO _egg .PdfObject ;CP _egg .PdfObject ;
|
||
Measure _egg .PdfObject ;CO _egg .PdfObject ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_edbbb *PdfColorCalRGB )B ()float64 {return _edbbb [1]};
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// 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 *_egg .PdfObjectName ;Colorants _egg .PdfObject ;Process _egg .PdfObject ;MixingHints _egg .PdfObject ;_cdgc *_egg .PdfIndirectObject ;};var _effdb =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":{}};
|
||
|
||
|
||
// String returns a string representation of PdfTransformParamsDocMDP.
|
||
func (_abcdf *PdfTransformParamsDocMDP )String ()string {return _f .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_abcdf .Type ,_abcdf .P ,_abcdf .V );};func (_ddaf *PdfReader )lookupPageByObject (_faffg _egg .PdfObject )(*PdfPage ,error ){return nil ,_gd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
|
||
};
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_egg .PdfObjectString ;Author *_egg .PdfObjectString ;Subject *_egg .PdfObjectString ;Keywords *_egg .PdfObjectString ;Creator *_egg .PdfObjectString ;Producer *_egg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;
|
||
Trapped *_egg .PdfObjectName ;_eggg *_egg .PdfObjectDictionary ;};func _dbefa (_gdecda *_egg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_gfaff :=PdfShadingType2 {};_ecfdd :=_gdecda .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _ecfdd ==nil {_bag .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 ;};_dcede ,_abga :=_ecfdd .(*_egg .PdfObjectArray );if !_abga {_bag .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",_ecfdd );
|
||
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _dcede .Len ()!=4{_bag .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",_dcede .Len ());
|
||
return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_gfaff .Coords =_dcede ;if _cfdaa :=_gdecda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cfdaa !=nil {_cfdaa =_egg .TraceToDirectObject (_cfdaa );
|
||
_dcca ,_fgcgd :=_cfdaa .(*_egg .PdfObjectArray );if !_fgcgd {_bag .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",_cfdaa );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_gfaff .Domain =_dcca ;};_ecfdd =_gdecda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ecfdd ==nil {_bag .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 ;};_gfaff .Function =[]PdfFunction {};if _bdcc ,_cdfbb :=_ecfdd .(*_egg .PdfObjectArray );_cdfbb {for _ ,_ddgcb :=range _bdcc .Elements (){_eeddea ,_fedfc :=_bdefe (_ddgcb );if _fedfc !=nil {_bag .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",_fedfc );
|
||
return nil ,_fedfc ;};_gfaff .Function =append (_gfaff .Function ,_eeddea );};}else {_dcffb ,_aaafe :=_bdefe (_ecfdd );if _aaafe !=nil {_bag .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",_aaafe );
|
||
return nil ,_aaafe ;};_gfaff .Function =append (_gfaff .Function ,_dcffb );};if _dgdce :=_gdecda .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_dgdce !=nil {_dgdce =_egg .TraceToDirectObject (_dgdce );_cceaff ,_gabe :=_dgdce .(*_egg .PdfObjectArray );if !_gabe {_bag .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",_dgdce );
|
||
return nil ,_egg .ErrTypeError ;};if _cceaff .Len ()!=2{_bag .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",_cceaff .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_gfaff .Extend =_cceaff ;};return &_gfaff ,nil ;};
|
||
|
||
// 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 (_bdagf byte )byte ;func (_geaa *PdfWriter )adjustXRefAffectedVersion (_egaec bool ){if _egaec &&_geaa ._dacce .Major ==1&&_geaa ._dacce .Minor < 5{_geaa ._dacce .Minor =5;};};
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_dccd *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_facb :=_fb .NewReader (img .getBase ());_bccgc :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cggd :=_fb .NewWriter (_bccgc );
|
||
_ccae :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_affff :=make ([]uint32 ,3);var (_dgbg uint32 ;ANorm ,X ,Y ,Z ,_ccee ,_eeee ,_daege float64 ;_ceafg error ;);for {_dgbg ,_ceafg =_facb .ReadSample ();if _ceafg ==_dag .EOF {break ;}else if _ceafg !=nil {return img ,_ceafg ;
|
||
};ANorm =float64 (_dgbg )/_ccae ;X =_dccd .WhitePoint [0]*_dgb .Pow (ANorm ,_dccd .Gamma );Y =_dccd .WhitePoint [1]*_dgb .Pow (ANorm ,_dccd .Gamma );Z =_dccd .WhitePoint [2]*_dgb .Pow (ANorm ,_dccd .Gamma );_ccee =3.240479*X +-1.537150*Y +-0.498535*Z ;
|
||
_eeee =-0.969256*X +1.875992*Y +0.041556*Z ;_daege =0.055648*X +-0.204043*Y +1.057311*Z ;_ccee =_dgb .Min (_dgb .Max (_ccee ,0),1.0);_eeee =_dgb .Min (_dgb .Max (_eeee ,0),1.0);_daege =_dgb .Min (_dgb .Max (_daege ,0),1.0);_affff [0]=uint32 (_ccee *_ccae );
|
||
_affff [1]=uint32 (_eeee *_ccae );_affff [2]=uint32 (_daege *_ccae );if _ceafg =_cggd .WriteSamples (_affff );_ceafg !=nil {return img ,_ceafg ;};};return _cggba (&_bccgc ),nil ;};var _ pdfFont =(*pdfFontSimple )(nil );
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_egg .PdfObject ;};func (_aeacc *PdfField )inherit (_accg func (*PdfField )bool )(bool ,error ){_befb :=map[*PdfField ]bool {};_bada :=false ;_fgaaa :=_aeacc ;for _fgaaa !=nil {if _ ,_febgb :=_befb [_fgaaa ];
|
||
_febgb {return false ,_gd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eecdd :=_accg (_fgaaa );if _eecdd {_bada =true ;break ;};_befb [_fgaaa ]=true ;_fgaaa =_fgaaa .Parent ;};return _bada ,nil ;
|
||
};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_eeeec :=&XObjectForm {};_dcfccb :=&_egg .PdfObjectStream {};_dcfccb .PdfObjectDictionary =_egg .MakeDict ();_eeeec ._acgef =_dcfccb ;return _eeeec ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_dgfabf *PdfShadingType4 )ToPdfObject ()_egg .PdfObject {_dgfabf .PdfShading .ToPdfObject ();_abcda ,_cfded :=_dgfabf .getShadingDict ();if _cfded !=nil {_bag .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 _dgfabf .BitsPerCoordinate !=nil {_abcda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgfabf .BitsPerCoordinate );};if _dgfabf .BitsPerComponent !=nil {_abcda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgfabf .BitsPerComponent );
|
||
};if _dgfabf .BitsPerFlag !=nil {_abcda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dgfabf .BitsPerFlag );};if _dgfabf .Decode !=nil {_abcda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgfabf .Decode );};if _dgfabf .Function !=nil {if len (_dgfabf .Function )==1{_abcda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgfabf .Function [0].ToPdfObject ());
|
||
}else {_acbac :=_egg .MakeArray ();for _ ,_dcgff :=range _dgfabf .Function {_acbac .Append (_dcgff .ToPdfObject ());};_abcda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acbac );};};return _dgfabf ._cfdbd ;};func (_aegec *PdfAcroForm )fill (_feeag FieldValueProvider ,_edbfb FieldAppearanceGenerator )error {if _aegec ==nil {return nil ;
|
||
};_adgac ,_fbbagf :=_feeag .FieldValues ();if _fbbagf !=nil {return _fbbagf ;};for _ ,_bbbb :=range _aegec .AllFields (){_dcfb :=_bbbb .PartialName ();_ddfd ,_defff :=_adgac [_dcfb ];if !_defff {if _ddgc ,_adfab :=_bbbb .FullName ();_adfab ==nil {_ddfd ,_defff =_adgac [_ddgc ];
|
||
};};if !_defff {_bag .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",_dcfb );
|
||
continue ;};if _bgae :=_ccaeg (_bbbb ,_ddfd );_bgae !=nil {return _bgae ;};if _edbfb ==nil {continue ;};for _ ,_cdcbf :=range _bbbb .Annotations {_fgfg ,_gecb :=_edbfb .GenerateAppearanceDict (_aegec ,_bbbb ,_cdcbf );if _gecb !=nil {return _gecb ;};_cdcbf .AP =_fgfg ;
|
||
_cdcbf .ToPdfObject ();};};return nil ;};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_faaef *PdfPage )AddImageResource (name _egg .PdfObjectName ,ximg *XObjectImage )error {var _dcde *_egg .PdfObjectDictionary ;if _faaef .Resources .XObject ==nil {_dcde =_egg .MakeDict ();_faaef .Resources .XObject =_dcde ;}else {var _gdgad bool ;
|
||
_dcde ,_gdgad =(_faaef .Resources .XObject ).(*_egg .PdfObjectDictionary );if !_gdgad {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_dcde .Set (name ,ximg .ToPdfObject ());
|
||
return nil ;};
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;B _egg .PdfObject ;};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_eebb *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _egg .PdfObject ;LE _egg .PdfObject ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;IT _egg .PdfObject ;Measure _egg .PdfObject ;};
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _egg .PdfObject ;};
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_edfcdb *PdfPage )GetContentStreamObjs ()[]_egg .PdfObject {if _edfcdb .Contents ==nil {return nil ;};_bdaeb :=_egg .TraceToDirectObject (_edfcdb .Contents );if _edada ,_gdfef :=_bdaeb .(*_egg .PdfObjectArray );_gdfef {return _edada .Elements ();
|
||
};return []_egg .PdfObject {_bdaeb };};
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_egdca *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_gdcbf ,_adaa :=_egdca .GetMediaBox ();if _adaa !=nil {return _adaa ;};_fadda :=_gdcbf .Urx -_gdcbf .Llx ;_abfdf :=_gdcbf .Ury -_gdcbf .Lly ;_gded :=float64 (*ximg .Width );
|
||
_dagd :=(_fadda -_gded )/2;if opt .FitToWidth {_gded =_fadda ;_dagd =0;};_cdeb :=_abfdf ;_dfeeg :=float64 (0);if opt .PreserveAspectRatio {_cdeb =_gded *float64 (*ximg .Height )/float64 (*ximg .Width );_dfeeg =(_abfdf -_cdeb )/2;};if _egdca .Resources ==nil {_egdca .Resources =NewPdfPageResources ();
|
||
};_gdbcgb :=0;_bgegg :=_egg .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_gdbcgb ));for _egdca .Resources .HasXObjectByName (_bgegg ){_gdbcgb ++;_bgegg =_egg .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_gdbcgb ));};_adaa =_egdca .AddImageResource (_bgegg ,ximg );
|
||
if _adaa !=nil {return _adaa ;};_gdbcgb =0;_aaacg :=_egg .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_gdbcgb ));for _egdca .HasExtGState (_aaacg ){_gdbcgb ++;_aaacg =_egg .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_gdbcgb ));};
|
||
_agfgcd :=_egg .MakeDict ();_agfgcd .Set ("\u0042\u004d",_egg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_agfgcd .Set ("\u0043\u0041",_egg .MakeFloat (opt .Alpha ));_agfgcd .Set ("\u0063\u0061",_egg .MakeFloat (opt .Alpha ));_adaa =_egdca .AddExtGState (_aaacg ,_agfgcd );
|
||
if _adaa !=nil {return _adaa ;};_afce :=_f .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_aaacg ,_gded ,_cdeb ,_dagd ,_dfeeg ,_bgegg );
|
||
_egdca .AddContentStreamByString (_afce );return nil ;};
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_ceaag *_egg .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_cdbac *PdfOutlineTreeNode )ToPdfObject ()_egg .PdfObject {return _cdbac .GetContext ().ToPdfObject ();};
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_egbce *PdfAcroForm )GetContainingPdfObject ()_egg .PdfObject {return _egbce ._befdb };
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_efgga *PdfPageResources )SetXObjectImageByName (keyName _egg .PdfObjectName ,ximg *XObjectImage )error {_dfgfgf :=ximg .ToPdfObject ().(*_egg .PdfObjectStream );_bfdce :=_efgga .SetXObjectByName (keyName ,_dfgfgf );return _bfdce ;};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_gbdca *PdfPageResources )GetXObjectFormByName (keyName _egg .PdfObjectName )(*XObjectForm ,error ){_gagd ,_gfefee :=_gbdca .GetXObjectByName (keyName );if _gagd ==nil {return nil ,nil ;};if _gfefee !=XObjectTypeForm {return nil ,_gd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_acfdc ,_ebcea :=NewXObjectFormFromStream (_gagd );if _ebcea !=nil {return nil ,_ebcea ;};return _acfdc ,nil ;};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;NewWindow _egg .PdfObject ;T _egg .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgdf *PdfActionNamed )ToPdfObject ()_egg .PdfObject {_bgdf .PdfAction .ToPdfObject ();_efff :=_bgdf ._bf ;_aab :=_efff .PdfObject .(*_egg .PdfObjectDictionary );_aab .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeNamed )));_aab .SetIfNotNil ("\u004e",_bgdf .N );
|
||
return _efff ;};
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bafd :=NewPdfAnnotation ();_ebg :=&PdfAnnotationScreen {};_ebg .PdfAnnotation =_bafd ;_bafd .SetContext (_ebg );return _ebg ;};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_bcgf *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};const (_ebaa =0x00001;_gcce =0x00002;_eeeef =0x00004;_cebff =0x00008;_cdadd =0x00020;_ggcggf =0x00040;_geggb =0x10000;_gadb =0x20000;_abacd =0x40000;);
|
||
|
||
// 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 (_fage *PdfFieldButton )GetType ()ButtonType {_ggdb :=ButtonTypeCheckbox ;if _fage .Ff !=nil {if (uint32 (*_fage .Ff )&FieldFlagPushbutton .Mask ())> 0{_ggdb =ButtonTypePush ;}else if (uint32 (*_fage .Ff )&FieldFlagRadio .Mask ())> 0{_ggdb =ButtonTypeRadio ;
|
||
};};return _ggdb ;};
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_aagcb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// 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 (_gaagd *PdfSignature ,_gddag Hasher ,_gddff SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";
|
||
TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_cfgf *PdfPage )GetXObjectByName (name _egg .PdfObjectName )(_egg .PdfObject ,bool ){_gbca ,_dbfaf :=_cfgf .Resources .XObject .(*_egg .PdfObjectDictionary );if !_dbfaf {return nil ,false ;};if _baec :=_gbca .Get (name );_baec !=nil {return _baec ,true ;
|
||
};return nil ,false ;};
|
||
|
||
// 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 ){_abadc ,_fcbae :=_gf .Open (filePath );if _fcbae !=nil {_bag .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",_fcbae );
|
||
return nil ,_fcbae ;};defer _abadc .Close ();return NewPdfFontFromTTF (_abadc );};
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_bbfbc *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _egg .GetNumberAsFloat (_bbfbc .Descent );};
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_aegc :=NewPdfAnnotation ();_cabg :=&PdfAnnotationSquiggly {};_cabg .PdfAnnotation =_aegc ;_cabg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aegc .SetContext (_cabg );return _cabg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbdb *PdfSignatureReference )ToPdfObject ()_egg .PdfObject {_dedf :=_egg .MakeDict ();_dedf .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cbdb .Type );_dedf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cbdb .TransformMethod );
|
||
_dedf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cbdb .TransformParams );_dedf .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cbdb .Data );_dedf .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cbdb .DigestMethod );
|
||
return _dedf ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_bbdd *OutlineItem )ToPdfObject ()_egg .PdfObject {_fgdg ,_ :=_bbdd .ToPdfOutlineItem ();return _fgdg .ToPdfObject ();};
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_acgc *PdfField )GetContainingPdfObject ()_egg .PdfObject {return _acgc ._agef };func (_fggcg *PdfWriter )writeObject (_ffddb int ,_afeg _egg .PdfObject ){_bag .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_ffddb );
|
||
if _daeae ,_gcdfca :=_afeg .(*_egg .PdfIndirectObject );_gcdfca {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_daeae .GenerationNumber };_ccegg :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );
|
||
if _defg ,_cabbca :=_daeae .PdfObject .(*pdfSignDictionary );_cabbca {_defg ._cagab =_fggcg ._cdaab +int64 (len (_ccegg ));};if _daeae .PdfObject ==nil {_bag .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");
|
||
_daeae .PdfObject =_egg .MakeNull ();};_ccegg +=_daeae .PdfObject .WriteString ();_ccegg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_fggcg .writeString (_ccegg );return ;};if _afaad ,_afcab :=_afeg .(*_egg .PdfObjectStream );_afcab {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_afaad .GenerationNumber };
|
||
_bebed :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );_bebed +=_afaad .PdfObjectDictionary .WriteString ();_bebed +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_fggcg .writeString (_bebed );_fggcg .writeBytes (_afaad .Stream );
|
||
_fggcg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _gaccgf ,_bbfea :=_afeg .(*_egg .PdfObjectStreams );_bbfea {_fggcg ._ccceb [_ffddb ]=crossReference {Type :1,Offset :_fggcg ._cdaab ,Generation :_gaccgf .GenerationNumber };
|
||
_cgcgf :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffddb );var _acfddf []string ;var _aaaa string ;var _dfdbg int64 ;for _gbfcd ,_fbbdg :=range _gaccgf .Elements (){_bgcgf ,_bbgbc :=_fbbdg .(*_egg .PdfIndirectObject );if !_bbgbc {_bag .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",_ffddb ,_fbbdg );
|
||
continue ;};_fedge :=_bgcgf .PdfObject .WriteString ()+"\u0020";_aaaa =_aaaa +_fedge ;_acfddf =append (_acfddf ,_f .Sprintf ("\u0025\u0064\u0020%\u0064",_bgcgf .ObjectNumber ,_dfdbg ));_fggcg ._ccceb [int (_bgcgf .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_ffddb ,Index :_gbfcd };
|
||
_dfdbg =_dfdbg +int64 (len ([]byte (_fedge )));};_eefdcb :=_fc .Join (_acfddf ,"\u0020")+"\u0020";_bead :=_egg .NewFlateEncoder ();_dgdebd :=_bead .MakeStreamDict ();_dgdebd .Set (_egg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_egg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_fgdgc :=int64 (_gaccgf .Len ());_dgdebd .Set (_egg .PdfObjectName ("\u004e"),_egg .MakeInteger (_fgdgc ));_aegb :=int64 (len (_eefdcb ));_dgdebd .Set (_egg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_egg .MakeInteger (_aegb ));_acfb ,_ :=_bead .EncodeBytes ([]byte (_eefdcb +_aaaa ));
|
||
_bfdga :=int64 (len (_acfb ));_dgdebd .Set (_egg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_egg .MakeInteger (_bfdga ));_cgcgf +=_dgdebd .WriteString ();_cgcgf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_fggcg .writeString (_cgcgf );
|
||
_fggcg .writeBytes (_acfb );_fggcg .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_fggcg .writeString (_afeg .WriteString ());};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_dgbde *PdfPage )GetContentStreams ()([]string ,error ){_fdae :=_dgbde .GetContentStreamObjs ();var _dfec []string ;for _ ,_fdgc :=range _fdae {_cbfc ,_geaea :=_bcfdf (_fdgc );if _geaea !=nil {return nil ,_geaea ;};_dfec =append (_dfec ,_cbfc );};
|
||
return _dfec ,nil ;};
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_fedcf *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fedcf .AcroForm ==nil {return nil ,nil ;};if _fedcf .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_beebf *PdfSignature ;
|
||
_fdgffe *PdfField ;_fgcfg SignatureHandler ;};var _eacfc []*sigFieldPair ;for _ ,_eaeec :=range _fedcf .AcroForm .AllFields (){if _eaeec .V ==nil {continue ;};if _badcb ,_dgaac :=_egg .GetDict (_eaeec .V );_dgaac {if _edeee ,_efggf :=_egg .GetNameVal (_badcb .Get ("\u0054\u0079\u0070\u0065"));
|
||
_efggf &&_edeee =="\u0053\u0069\u0067"{_afbda ,_aecde :=_egg .GetIndirect (_eaeec .V );if !_aecde {_bag .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 ;};_gbdab ,_dbgcf :=_fedcf .newPdfSignatureFromIndirect (_afbda );if _dbgcf !=nil {return nil ,_dbgcf ;};var _fdeg SignatureHandler ;for _ ,_bbdef :=range handlers {if _bbdef .IsApplicable (_gbdab ){_fdeg =_bbdef ;break ;};};_eacfc =append (_eacfc ,&sigFieldPair {_beebf :_gbdab ,_fdgffe :_eaeec ,_fgcfg :_fdeg });
|
||
};};};var _dabeb []SignatureValidationResult ;for _ ,_dfgdd :=range _eacfc {_aebca :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_dfgdd ._fdgffe }};if _dfgdd ._fgcfg ==nil {_aebca .Errors =append (_aebca .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
||
_dabeb =append (_dabeb ,_aebca );continue ;};_bafeac ,_deed :=_dfgdd ._fgcfg .NewDigest (_dfgdd ._beebf );if _deed !=nil {_aebca .Errors =append (_aebca .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_deed .Error ());_dabeb =append (_dabeb ,_aebca );
|
||
continue ;};_fcbacf :=_dfgdd ._beebf .ByteRange ;if _fcbacf ==nil {_aebca .Errors =append (_aebca .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_dabeb =append (_dabeb ,_aebca );continue ;};
|
||
for _feedb :=0;_feedb < _fcbacf .Len ();_feedb =_feedb +2{_gbbd ,_ :=_egg .GetNumberAsInt64 (_fcbacf .Get (_feedb ));_cbcfbd ,_ :=_egg .GetIntVal (_fcbacf .Get (_feedb +1));if _ ,_dbbge :=_fedcf ._eefb .Seek (_gbbd ,_dag .SeekStart );_dbbge !=nil {return nil ,_dbbge ;
|
||
};_fbcbe :=make ([]byte ,_cbcfbd );if _ ,_adbfa :=_fedcf ._eefb .Read (_fbcbe );_adbfa !=nil {return nil ,_adbfa ;};_bafeac .Write (_fbcbe );};var _eeddeg SignatureValidationResult ;if _eadeg ,_gcdef :=_dfgdd ._fgcfg .(SignatureHandlerDocMDP );_gcdef {_eeddeg ,_deed =_eadeg .ValidateWithOpts (_dfgdd ._beebf ,_bafeac ,SignatureHandlerDocMDPParams {Parser :_fedcf ._dafgab });
|
||
}else {_eeddeg ,_deed =_dfgdd ._fgcfg .Validate (_dfgdd ._beebf ,_bafeac );};if _deed !=nil {_bag .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_deed ,_dfgdd ._fgcfg );_eeddeg .Errors =append (_eeddeg .Errors ,_deed .Error ());
|
||
};_eeddeg .Name =_dfgdd ._beebf .Name .Decoded ();_eeddeg .Reason =_dfgdd ._beebf .Reason .Decoded ();if _dfgdd ._beebf .M !=nil {_ddgaf ,_dcade :=NewPdfDate (_dfgdd ._beebf .M .String ());if _dcade !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcade );
|
||
_eeddeg .Errors =append (_eeddeg .Errors ,_dcade .Error ());continue ;};_eeddeg .Date =_ddgaf ;};_eeddeg .ContactInfo =_dfgdd ._beebf .ContactInfo .Decoded ();_eeddeg .Location =_dfgdd ._beebf .Location .Decoded ();_eeddeg .Fields =_aebca .Fields ;_dabeb =append (_dabeb ,_eeddeg );
|
||
};return _dabeb ,nil ;};
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _egg .PdfObject ;Q _egg .PdfObject ;RC _egg .PdfObject ;DS _egg .PdfObject ;CL _egg .PdfObject ;IT _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;BS _egg .PdfObject ;LE _egg .PdfObject ;
|
||
};func (_abae *PdfPage )getParentResources ()(*PdfPageResources ,error ){_eecedf :=_abae .Parent ;for _eecedf !=nil {_edbbe ,_gdabd :=_egg .GetDict (_eecedf );if !_gdabd {_bag .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 ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _abab :=_edbbe .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_abab !=nil {_ddbdd ,_dfabee :=_egg .GetDict (_abab );
|
||
if !_dfabee {return nil ,_gd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_ebefg ,_aagf :=NewPdfPageResourcesFromDict (_ddbdd );if _aagf !=nil {return nil ,_aagf ;};return _ebefg ,nil ;
|
||
};_eecedf =_edbbe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,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 (_gcfd *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bffg :=vals [0];if _bffg < 0.0||_bffg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bffg );
|
||
return nil ,ErrColorOutOfRange ;};_cgda :=vals [1];if _cgda < 0.0||_cgda > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgda );return nil ,ErrColorOutOfRange ;
|
||
};_gggf :=vals [2];if _gggf < 0.0||_gggf > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gggf );return nil ,ErrColorOutOfRange ;};_bece :=NewPdfColorCalRGB (_bffg ,_cgda ,_gggf );
|
||
return _bece ,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 ;_efacf []byte ;_efbce []uint32 ;_adfae *_egg .PdfObjectStream ;};var (_bgegd =_bae .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
|
||
_aafbcd =_bae .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");_daaa =_bae .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");
|
||
_afbc ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_gcfbf ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_afba ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);func _ceeb (_aagbb _egg .PdfObject )(*PdfFunctionType2 ,error ){_bdbe :=&PdfFunctionType2 {};var _cgbb *_egg .PdfObjectDictionary ;if _daedg ,_eeeca :=_aagbb .(*_egg .PdfIndirectObject );_eeeca {_becd ,_fbfc :=_daedg .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_fbfc {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bdbe ._ffcfb =_daedg ;_cgbb =_becd ;}else if _gaagaa ,_aafe :=_aagbb .(*_egg .PdfObjectDictionary );_aafe {_cgbb =_gaagaa ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_bag .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cgbb .String ());_bgbc ,_ddbbg :=_egg .TraceToDirectObject (_cgbb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );if !_ddbbg {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_gd .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 _bgbc .Len ()< 0||_bgbc .Len ()%2!=0{_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");
|
||
return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_agbec ,_faabd :=_bgbc .ToFloat64Array ();if _faabd !=nil {return nil ,_faabd ;};_bdbe .Domain =_agbec ;_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );
|
||
if _ddbbg {if _bgbc .Len ()< 0||_bgbc .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_eeacb ,_cggfad :=_bgbc .ToFloat64Array ();if _cggfad !=nil {return nil ,_cggfad ;};_bdbe .Range =_eeacb ;
|
||
};_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0043\u0030")).(*_egg .PdfObjectArray );if _ddbbg {_fcefe ,_effeg :=_bgbc .ToFloat64Array ();if _effeg !=nil {return nil ,_effeg ;};_bdbe .C0 =_fcefe ;};_bgbc ,_ddbbg =_egg .TraceToDirectObject (_cgbb .Get ("\u0043\u0031")).(*_egg .PdfObjectArray );
|
||
if _ddbbg {_bdac ,_bfae :=_bgbc .ToFloat64Array ();if _bfae !=nil {return nil ,_bfae ;};_bdbe .C1 =_bdac ;};if len (_bdbe .C0 )!=len (_bdbe .C1 ){_bag .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");
|
||
return nil ,_egg .ErrRangeError ;};N ,_faabd :=_egg .GetNumberAsFloat (_egg .TraceToDirectObject (_cgbb .Get ("\u004e")));if _faabd !=nil {_bag .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",_cgbb .String ());
|
||
return nil ,_faabd ;};_bdbe .N =N ;return _bdbe ,nil ;};
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _egg .PdfObject ;Volume _egg .PdfObject ;Synchronous _egg .PdfObject ;Repeat _egg .PdfObject ;Mix _egg .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 (_ecfge *Image )GetSamples ()[]uint32 {_ebdd :=_fb .ResampleBytes (_ecfge .Data ,int (_ecfge .BitsPerComponent ));if _ecfge .BitsPerComponent < 8{_ebdd =_ecfge .samplesTrimPadding (_ebdd );};_fgge :=int (_ecfge .Width )*int (_ecfge .Height )*_ecfge .ColorComponents ;
|
||
if len (_ebdd )< _fgge {_bag .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 (_ebdd ),_fgge );
|
||
return _ebdd ;}else if len (_ebdd )> _fgge {_bag .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 (_ebdd ),_fgge );
|
||
_ebdd =_ebdd [:_fgge ];};return _ebdd ;};
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_ebcca *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _egg .GetNumberAsFloat (_ebcca .Ascent );};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _egg .PdfObject ;ColorSpace _egg .PdfObject ;Pattern _egg .PdfObject ;Shading _egg .PdfObject ;XObject _egg .PdfObject ;Font _egg .PdfObject ;ProcSet _egg .PdfObject ;Properties _egg .PdfObject ;_cbcba *_egg .PdfObjectDictionary ;
|
||
_dbbbd *PdfPageResourcesColorspaces ;};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_feef :=&PdfOutline {_egdd :_egg .MakeIndirectObject (_egg .MakeDict ())};_feef ._bgbfg =_feef ;return _feef ;};
|
||
|
||
// SetNameDictionary sets the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_bdeee *PdfWriter )SetNameDictionary (names _egg .PdfObject )error {if names ==nil {return nil ;};_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_bdeee ._acea .Set ("\u004e\u0061\u006de\u0073",names );return _bdeee .addObjects (names );};
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_aegcb *PdfFieldButton )IsRadio ()bool {return _aegcb .GetType ()==ButtonTypeRadio };var (CourierName =_bgd .CourierName ;CourierBoldName =_bgd .CourierBoldName ;CourierObliqueName =_bgd .CourierObliqueName ;CourierBoldObliqueName =_bgd .CourierBoldObliqueName ;
|
||
HelveticaName =_bgd .HelveticaName ;HelveticaBoldName =_bgd .HelveticaBoldName ;HelveticaObliqueName =_bgd .HelveticaObliqueName ;HelveticaBoldObliqueName =_bgd .HelveticaBoldObliqueName ;SymbolName =_bgd .SymbolName ;ZapfDingbatsName =_bgd .ZapfDingbatsName ;
|
||
TimesRomanName =_bgd .TimesRomanName ;TimesBoldName =_bgd .TimesBoldName ;TimesItalicName =_bgd .TimesItalicName ;TimesBoldItalicName =_bgd .TimesBoldItalicName ;);
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_ddddb *PdfShadingPattern )ToPdfObject ()_egg .PdfObject {_ddddb .PdfPattern .ToPdfObject ();_dabaef :=_ddddb .getDict ();if _ddddb .Shading !=nil {_dabaef .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ddddb .Shading .ToPdfObject ());};if _ddddb .Matrix !=nil {_dabaef .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ddddb .Matrix );
|
||
};if _ddddb .ExtGState !=nil {_dabaef .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ddddb .ExtGState );};return _ddddb ._fgec ;};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_afa *PdfFont )BaseFont ()string {return _afa .baseFields ()._dgfdc };
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_ddca *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_ddca ._dbbbd =colorspace ;};
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_ageb *PdfColorspaceDeviceN )GetNumComponents ()int {return _ageb .ColorantNames .Len ()};func (_bagf *PdfReader )newPdfActionGotoEFromDict (_fac *_egg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_fca ,_feg :=_fgb (_fac .Get ("\u0046"));if _feg !=nil {return nil ,_feg ;
|
||
};return &PdfActionGoToE {D :_fac .Get ("\u0044"),NewWindow :_fac .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fac .Get ("\u0054"),F :_fca },nil ;};func (_fag *PdfReader )newPdfActionThreadFromDict (_eedb *_egg .PdfObjectDictionary )(*PdfActionThread ,error ){_gdbc ,_geeg :=_fgb (_eedb .Get ("\u0046"));
|
||
if _geeg !=nil {return nil ,_geeg ;};return &PdfActionThread {D :_eedb .Get ("\u0044"),B :_eedb .Get ("\u0042"),F :_gdbc },nil ;};
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_gffa :=NewPdfAnnotation ();_bcc :=&PdfAnnotationStamp {};_bcc .PdfAnnotation =_gffa ;_bcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gffa .SetContext (_bcc );return _bcc ;};
|
||
|
||
// 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"`;};
|
||
|
||
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
|
||
func (_cdggge *PdfWriter )SetCatalogMetadata (meta _egg .PdfObject )error {if meta ==nil {_cdggge ._acea .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_ggaa ,_dddcaf :=_egg .GetStream (meta );if !_dddcaf {return _gd .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");
|
||
};_cdggge .addObject (_ggaa );_cdggge ._acea .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ggaa );return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_fbabg *PdfShadingType6 )ToPdfObject ()_egg .PdfObject {_fbabg .PdfShading .ToPdfObject ();_cbdda ,_afgb :=_fbabg .getShadingDict ();if _afgb !=nil {_bag .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 _fbabg .BitsPerCoordinate !=nil {_cbdda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbabg .BitsPerCoordinate );};if _fbabg .BitsPerComponent !=nil {_cbdda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbabg .BitsPerComponent );
|
||
};if _fbabg .BitsPerFlag !=nil {_cbdda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fbabg .BitsPerFlag );};if _fbabg .Decode !=nil {_cbdda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbabg .Decode );};if _fbabg .Function !=nil {if len (_fbabg .Function )==1{_cbdda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbabg .Function [0].ToPdfObject ());
|
||
}else {_fgffga :=_egg .MakeArray ();for _ ,_fabfb :=range _fbabg .Function {_fgffga .Append (_fabfb .ToPdfObject ());};_cbdda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgffga );};};return _fbabg ._cfdbd ;};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_edde pdfFont };func _aagbg ()string {_cgag .Lock ();defer _cgag .Unlock ();_fgdb :=_ace .GetLicenseKey ();if len (_bdbde )> 0&&(_fgdb .IsLicensed ()||_debadf ){return _bdbde ;};return _f .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_dceb (),_fgdb .TypeToString ());
|
||
};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_cfbb ,_eged :=_bgd .NewStdFontByName (HelveticaName );if !_eged {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");
|
||
};_gagae :=_egaa (_cfbb );return &PdfFont {_edde :&_gagae };};func _eecfg (_bffdc *_egg .PdfObjectArray )(float64 ,error ){_dbad ,_bbgba :=_bffdc .ToFloat64Array ();if _bbgba !=nil {_bag .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",_bffdc ,_bbgba );
|
||
};switch len (_dbad ){case 1:return _dbad [0],nil ;case 3:_eabbe :=PdfColorspaceDeviceRGB {};_fecfb ,_dgdbab :=_eabbe .ColorFromFloats (_dbad );if _dgdbab !=nil {return 0.0,_dgdbab ;};return _fecfb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_acebe :=PdfColorspaceDeviceCMYK {};
|
||
_ccec ,_cfecd :=_acebe .ColorFromFloats (_dbad );if _cfecd !=nil {return 0.0,_cfecd ;};_ggfdd ,_cfecd :=_acebe .ColorToRGB (_ccec .(*PdfColorDeviceCMYK ));if _cfecd !=nil {return 0.0,_cfecd ;};return _ggfdd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
|
||
};_bbgba =_gd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_bag .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_bffdc ,_bbgba );
|
||
return 0.0,_bbgba ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cgeg *PdfColorspaceDeviceRGB )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_baefb *PdfWriter )AddPage (page *PdfPage )error {const _bfeef ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_cceebc (page );_ecbcb :=page .ToPdfObject ();_bag .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_bag .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ecbcb );_gdbce ,_fbgadb :=_egg .GetIndirect (_ecbcb );if !_fbgadb {return _gd .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");
|
||
};_bag .Log .Trace ("\u0025\u0073",_gdbce );_bag .Log .Trace ("\u0025\u0073",_gdbce .PdfObject );_dfbaa ,_fbgadb :=_egg .GetDict (_gdbce .PdfObject );if !_fbgadb {return _gd .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");
|
||
};_fbbe ,_fbgadb :=_egg .GetName (_dfbaa .Get ("\u0054\u0079\u0070\u0065"));if !_fbgadb {return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_dfbaa .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _fbbe .String ()!="\u0050\u0061\u0067\u0065"{return _gd .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");};_edceb :=[]_egg .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"};
|
||
_bbge ,_cade :=_egg .GetIndirect (_dfbaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_bag .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_dfbaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cade );
|
||
for _cade {_bag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bbge );_dffbd ,_ceafgg :=_egg .GetDict (_bbge .PdfObject );if !_ceafgg {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_caff :=range _edceb {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_caff );if _dfbaa .Get (_caff )!=nil {_bag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _ebaeb :=_dffbd .Get (_caff );_ebaeb !=nil {_bag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_caff );_dfbaa .Set (_caff ,_ebaeb );};};_bbge ,_cade =_egg .GetIndirect (_dffbd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_bag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_dffbd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_bag .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_dfbaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_baefb ._gfbe );_gdbce .PdfObject =_dfbaa ;_beefe ,_fbgadb :=_egg .GetDict (_baefb ._gfbe .PdfObject );if !_fbgadb {return _gd .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");
|
||
};_faacac ,_fbgadb :=_egg .GetArray (_beefe .Get ("\u004b\u0069\u0064\u0073"));if !_fbgadb {return _gd .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");
|
||
};_faacac .Append (_gdbce );_baefb ._fcdab [_dfbaa ]=struct{}{};_gdgaeg ,_fbgadb :=_egg .GetInt (_beefe .Get ("\u0043\u006f\u0075n\u0074"));if !_fbgadb {return _gd .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");
|
||
};*_gdgaeg =*_gdgaeg +1;if page ._gcfcb ==nil {_gceee :=_ace .Track (_baefb ._fbgdb ,_bfeef );if _gceee !=nil {return _gceee ;};}else {_egcfg :=_ace .Track (page ._gcfcb ._faeea ,_bfeef );if _egcfg !=nil {return _egcfg ;};};_baefb .addObject (_gdbce );
|
||
_bcfcf :=_baefb .addObjects (_dfbaa );if _bcfcf !=nil {return _bcfcf ;};return nil ;};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_dadgc :=map[rune ]int {};for _ ,_gebea :=range text {_dadgc [_gebea ]++;};return _dadgc ;};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_gcgb *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_gd .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");
|
||
};_fcfg ,_cfff :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _cfff !=nil {return img ,_cfff ;};_dbab ,_cfff :=_eg .GrayConverter .Convert (_fcfg );if _cfff !=nil {return img ,_cfff ;
|
||
};return _cggba (_dbab .Base ()),nil ;};type pdfFontType0 struct{fontCommon ;_ebdc *_egg .PdfIndirectObject ;_bfddc _ef .TextEncoder ;Encoding _egg .PdfObject ;DescendantFont *PdfFont ;_fcffd *_ga .CMap ;};
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _egg .PdfObject ;MK _egg .PdfObject ;A _egg .PdfObject ;AA _egg .PdfObject ;};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_cbfac *PdfPageResources )AddExtGState (gsName _egg .PdfObjectName ,gsDict _egg .PdfObject )error {if _cbfac .ExtGState ==nil {_cbfac .ExtGState =_egg .MakeDict ();};_dadee :=_cbfac .ExtGState ;_agad ,_ccgd :=_egg .TraceToDirectObject (_dadee ).(*_egg .PdfObjectDictionary );
|
||
if !_ccgd {_bag .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",_dadee ,_egg .TraceToDirectObject (_dadee ));
|
||
return _egg .ErrTypeError ;};_agad .Set (gsName ,gsDict );return nil ;};func (_edff *pdfFontSimple )getFontEncoding ()(_bdbg string ,_cfffdf map[_ef .CharCode ]_ef .GlyphName ,_fccd error ){_bdbg ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
|
||
if _ggadf ,_egffd :=_fgefg [_edff ._dgfdc ];_egffd {_bdbg =_ggadf ;}else if _edff .fontFlags ()&_eeeef !=0{for _ccgcc ,_bdgc :=range _fgefg {if _fc .Contains (_edff ._dgfdc ,_ccgcc ){_bdbg =_bdgc ;break ;};};};if _edff .Encoding ==nil {return _bdbg ,nil ,nil ;
|
||
};switch _daafc :=_edff .Encoding .(type ){case *_egg .PdfObjectName :return string (*_daafc ),nil ,nil ;case *_egg .PdfObjectDictionary :_dgeb ,_ebbc :=_egg .GetName (_daafc .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
if _ebbc {_bdbg =_dgeb .String ();};if _bbeaf :=_daafc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_bbeaf !=nil {_beceb ,_debbc :=_egg .GetArray (_bbeaf );if !_debbc {_bag .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",_daafc ,_daafc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_egg .ErrTypeError ;};_cfffdf ,_fccd =_ef .FromFontDifferences (_beceb );};return _bdbg ,_cfffdf ,_fccd ;default:_bag .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",_edff .Encoding ,_edff .Encoding );
|
||
return "",nil ,_egg .ErrTypeError ;};};type pdfCIDFontType2 struct{fontCommon ;_gcfdg *_egg .PdfIndirectObject ;_bceaf _ef .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_egg .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _egg .PdfObject ;W _egg .PdfObject ;DW2 _egg .PdfObject ;W2 _egg .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _egg .PdfObject ;_fafe map[_ef .CharCode ]float64 ;_bgec float64 ;_beec map[rune ]int ;};func _facdg (_efdd _egg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_fcaeg :=&PdfColorspaceDeviceNAttributes {};var _cfbe *_egg .PdfObjectDictionary ;
|
||
switch _fdgfe :=_efdd .(type ){case *_egg .PdfIndirectObject :_fcaeg ._cdgc =_fdgfe ;var _ggbc bool ;_cfbe ,_ggbc =_fdgfe .PdfObject .(*_egg .PdfObjectDictionary );if !_ggbc {_bag .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 ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_egg .PdfObjectDictionary :_cfbe =_fdgfe ;case *_egg .PdfObjectReference :_gddcg :=_fdgfe .Resolve ();return _facdg (_gddcg );default:_bag .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 ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bgdg :=_cfbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_bgdg !=nil {_dafga ,_abeef :=_egg .TraceToDirectObject (_bgdg ).(*_egg .PdfObjectName );if !_abeef {_bag .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 ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_fcaeg .Subtype =_dafga ;};if _cbee :=_cfbe .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_cbee !=nil {_fcaeg .Colorants =_cbee ;};if _edfef :=_cfbe .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_edfef !=nil {_fcaeg .Process =_edfef ;};if _gddeb :=_cfbe .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_gddeb !=nil {_fcaeg .MixingHints =_gddeb ;};return _fcaeg ,nil ;};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_edgee *PdfInfo )CustomKeys ()[]string {if _edgee ._eggg ==nil {return nil ;};_gcdb :=make ([]string ,len (_edgee ._eggg .Keys ()));for _ ,_dbda :=range _edgee ._eggg .Keys (){_gcdb =append (_gcdb ,_dbda .String ());};return _gcdb ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_abede *PdfOutlineItem )ToPdfObject ()_egg .PdfObject {_fdebf :=_abede ._gfcb ;_dfeag :=_fdebf .PdfObject .(*_egg .PdfObjectDictionary );_dfeag .Set ("\u0054\u0069\u0074l\u0065",_abede .Title );if _abede .A !=nil {_dfeag .Set ("\u0041",_abede .A );
|
||
};if _ceaaf :=_dfeag .Get ("\u0053\u0045");_ceaaf !=nil {_dfeag .Remove ("\u0053\u0045");};if _abede .C !=nil {_dfeag .Set ("\u0043",_abede .C );};if _abede .Dest !=nil {_dfeag .Set ("\u0044\u0065\u0073\u0074",_abede .Dest );};if _abede .F !=nil {_dfeag .Set ("\u0046",_abede .F );
|
||
};if _abede .Count !=nil {_dfeag .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (*_abede .Count ));};if _abede .Next !=nil {_dfeag .Set ("\u004e\u0065\u0078\u0074",_abede .Next .ToPdfObject ());};if _abede .First !=nil {_dfeag .Set ("\u0046\u0069\u0072s\u0074",_abede .First .ToPdfObject ());
|
||
};if _abede .Prev !=nil {_dfeag .Set ("\u0050\u0072\u0065\u0076",_abede .Prev .GetContext ().GetContainingPdfObject ());};if _abede .Last !=nil {_dfeag .Set ("\u004c\u0061\u0073\u0074",_abede .Last .GetContext ().GetContainingPdfObject ());};if _abede .Parent !=nil {_dfeag .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_abede .Parent .GetContext ().GetContainingPdfObject ());
|
||
};return _fdebf ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egbd *PdfAnnotationPolygon )ToPdfObject ()_egg .PdfObject {_egbd .PdfAnnotation .ToPdfObject ();_eeg :=_egbd ._cef ;_cge :=_eeg .PdfObject .(*_egg .PdfObjectDictionary );_egbd .PdfAnnotationMarkup .appendToPdfDictionary (_cge );_cge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_cge .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_egbd .Vertices );_cge .SetIfNotNil ("\u004c\u0045",_egbd .LE );_cge .SetIfNotNil ("\u0042\u0053",_egbd .BS );_cge .SetIfNotNil ("\u0049\u0043",_egbd .IC );_cge .SetIfNotNil ("\u0042\u0045",_egbd .BE );
|
||
_cge .SetIfNotNil ("\u0049\u0054",_egbd .IT );_cge .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_egbd .Measure );return _eeg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ecf *PdfActionGoTo3DView )ToPdfObject ()_egg .PdfObject {_ecf .PdfAction .ToPdfObject ();_fdc :=_ecf ._bf ;_cb :=_fdc .PdfObject .(*_egg .PdfObjectDictionary );_cb .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoTo3DView )));_cb .SetIfNotNil ("\u0054\u0041",_ecf .TA );
|
||
_cb .SetIfNotNil ("\u0056",_ecf .V );return _fdc ;};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _egg .PdfObject ;};
|
||
|
||
// GetRevisionNumber returns the version of the current Pdf document
|
||
func (_abafb *PdfReader )GetRevisionNumber ()int {return _abafb ._dafgab .GetRevisionNumber ()};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_faea *pdfFontSimple )Encoder ()_ef .TextEncoder {if _faea ._cbdegf !=nil {return _faea ._cbdegf ;};if _faea ._cdee !=nil {return _faea ._cdee ;};_ddee ,_ :=_ef .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _ddee ;};func (_edgfd *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _edgfd ._bgacg ==nil &&_edgfd .DescendantFont !=nil {return _edgfd .DescendantFont .FontDescriptor ();};return _edgfd ._bgacg ;};
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_efda *PdfAnnotationLink )SetAction (action *PdfAction ){_efda ._fdb =action ;if action ==nil {_efda .A =nil ;};};
|
||
|
||
// GetRevision returns the specific version of the PdfReader for the current Pdf document
|
||
func (_ccfg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_ecdba :=_ccfg ._dafgab .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _ecdba {return nil ,_gd .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
|
||
};if revisionNumber ==_ecdba {return _ccfg ,nil ;};if _ccfg ._acad [revisionNumber ]!=nil {return _ccfg ._acad [revisionNumber ],nil ;};_eedgc :=_ccfg ;for _dbgc :=_ecdba -1;_dbgc >=revisionNumber ;_dbgc --{_dceec ,_gfbf :=_eedgc .GetPreviousRevision ();
|
||
if _gfbf !=nil {return nil ,_gfbf ;};_ccfg ._acad [_dbgc ]=_dceec ;_eedgc =_dceec ;};return _eedgc ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebe *PdfAnnotationRichMedia )ToPdfObject ()_egg .PdfObject {_ebe .PdfAnnotation .ToPdfObject ();_efea :=_ebe ._cef ;_fdg :=_efea .PdfObject .(*_egg .PdfObjectDictionary );_fdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_fdg .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_ebe .RichMediaSettings );_fdg .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_ebe .RichMediaContent );
|
||
return _efea ;};
|
||
|
||
// ParserMetadata gets the parser metadata.
|
||
func (_ddgaa *CompliancePdfReader )ParserMetadata ()_egg .ParserMetadata {if _ddgaa ._fgea ==(_egg .ParserMetadata {}){_ddgaa ._fgea ,_ =_ddgaa ._dafgab .ParserMetadata ();};return _ddgaa ._fgea ;};
|
||
|
||
// 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 _egg .PdfObject ;_defc []byte ;_ceed *_egg .PdfIndirectObject ;};func (_daae *PdfReader )newPdfAnnotationSquareFromDict (_acfd *_egg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_ffbf :=PdfAnnotationSquare {};
|
||
_aabd ,_cbaf :=_daae .newPdfAnnotationMarkupFromDict (_acfd );if _cbaf !=nil {return nil ,_cbaf ;};_ffbf .PdfAnnotationMarkup =_aabd ;_ffbf .BS =_acfd .Get ("\u0042\u0053");_ffbf .IC =_acfd .Get ("\u0049\u0043");_ffbf .BE =_acfd .Get ("\u0042\u0045");_ffbf .RD =_acfd .Get ("\u0052\u0044");
|
||
return &_ffbf ,nil ;};
|
||
|
||
// 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 (_gfdcg *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_bgbgd :=_gfdcg .actualFont ();if _bgbgd ==nil {_bag .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",_gfdcg ._edde );
|
||
return _bgd .CharMetrics {},false ;};if _aaag ,_dcdga :=_bgbgd .GetRuneMetrics (r );_dcdga {return _aaag ,true ;};if _gcdf ,_dgdd :=_gfdcg .GetFontDescriptor ();_dgdd ==nil &&_gcdf !=nil {return _bgd .CharMetrics {Wx :_gcdf ._eedab },true ;};_bag .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",_gfdcg );
|
||
return _bgd .CharMetrics {},false ;};
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};func _cceebc (_fgabfa *PdfPage ){_cbadb :=_ace .GetLicenseKey ();if _cbadb !=nil &&_cbadb .IsLicensed (){return ;};_eadcb :=_egg .PdfObjectName ("\u0055\u0046\u0031");
|
||
if !_fgabfa .Resources .HasFontByName (_eadcb ){_fgabfa .Resources .SetFontByName (_eadcb ,DefaultFont ().ToPdfObject ());};var _ccdbb []string ;_ccdbb =append (_ccdbb ,"\u0071");_ccdbb =append (_ccdbb ,"\u0042\u0054");_ccdbb =append (_ccdbb ,_f .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_eadcb .String ()));
|
||
_ccdbb =append (_ccdbb ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_ccdbb =append (_ccdbb ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_affbf :="\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";
|
||
_ccdbb =append (_ccdbb ,_f .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_affbf ));_ccdbb =append (_ccdbb ,"\u0045\u0054");_ccdbb =append (_ccdbb ,"\u0051");_gaaae :=_fc .Join (_ccdbb ,"\u000a");_fgabfa .AddContentStreamByString (_gaaae );_fgabfa .ToPdfObject ();
|
||
};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_ffde *PdfAppender )Write (w _dag .Writer )error {if _ffde ._faab {return _gd .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");
|
||
};_fbcd :=NewPdfWriter ();_adfb ,_bbga :=_egg .GetDict (_fbcd ._gfbe );if !_bbga {return _gd .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");
|
||
};_bff ,_bbga :=_adfb .Get ("\u004b\u0069\u0064\u0073").(*_egg .PdfObjectArray );if !_bbga {return _gd .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");
|
||
};_cffbd ,_bbga :=_adfb .Get ("\u0043\u006f\u0075n\u0074").(*_egg .PdfObjectInteger );if !_bbga {return _gd .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");
|
||
};_dfc :=_ffde ._bgaa ._dafgab ;_caf :=_dfc .GetTrailer ();if _caf ==nil {return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_gaeg ,_bbga :=_egg .GetIndirect (_caf .Get ("\u0052\u006f\u006f\u0074"));if !_bbga {return _gd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");
|
||
};_abeea ,_bbga :=_egg .GetDict (_gaeg );if !_bbga {_bag .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",_gaeg ,*_caf );
|
||
return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_gfcf :=range _abeea .Keys (){if _fbcd ._acea .Get (_gfcf )==nil {_gcef :=_abeea .Get (_gfcf );_fbcd ._acea .Set (_gfcf ,_gcef );};};if _ffde ._aeec !=nil {_fbcd ._acea .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ffde ._aeec .ToPdfObject ());
|
||
_ffde .updateObjectsDeep (_ffde ._aeec .ToPdfObject (),nil );};if _ffde ._dgdc !=nil {_ffde .updateObjectsDeep (_ffde ._dgdc .ToPdfObject (),nil );_fbcd ._acea .Set ("\u0044\u0053\u0053",_ffde ._dgdc .GetContainingPdfObject ());};if _ffde ._aga !=nil {_fbcd ._acea .Set ("\u0050\u0065\u0072m\u0073",_ffde ._aga .ToPdfObject ());
|
||
_ffde .updateObjectsDeep (_ffde ._aga .ToPdfObject (),nil );};if _fbcd ._dacce .Major < 2{_fbcd .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);_fbcd .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _fgee ,_dbea :=_egg .GetDict (_caf .Get ("\u0049\u006e\u0066\u006f"));
|
||
_dbea {if _ebgd ,_dabae :=_egg .GetDict (_fbcd ._efage );_dabae {for _ ,_eabe :=range _fgee .Keys (){if _ebgd .Get (_eabe )==nil {_ebgd .Set (_eabe ,_fgee .Get (_eabe ));};};};};if _ffde ._gaagg !=nil {_fbcd ._efage =_egg .MakeIndirectObject (_ffde ._gaagg .ToPdfObject ());
|
||
};_ffde .addNewObject (_fbcd ._efage );_ffde .addNewObject (_fbcd ._egad );_agdg :=false ;if len (_ffde ._bgaa .PageList )!=len (_ffde ._beac ){_agdg =true ;}else {for _efbf :=range _ffde ._bgaa .PageList {switch {case _ffde ._beac [_efbf ]==_ffde ._bgaa .PageList [_efbf ]:case _ffde ._beac [_efbf ]==_ffde .Reader .PageList [_efbf ]:default:_agdg =true ;
|
||
};if _agdg {break ;};};};if _agdg {_ffde .updateObjectsDeep (_fbcd ._gfbe ,nil );}else {_ffde ._eecgg [_fbcd ._gfbe ]=struct{}{};};_fbcd ._gfbe .ObjectNumber =_ffde .Reader ._cgcga .ObjectNumber ;_ffde ._eegc [_fbcd ._gfbe ]=_ffde .Reader ._cgcga .ObjectNumber ;
|
||
_fdca :=[]_egg .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 _ ,_ddff :=range _ffde ._beac {_eaad :=_ddff .ToPdfObject ();
|
||
*_cffbd =*_cffbd +1;if _fdcb ,_efgc :=_eaad .(*_egg .PdfIndirectObject );_efgc &&_fdcb .GetParser ()==_ffde ._bgaa ._dafgab {_bff .Append (&_fdcb .PdfObjectReference );continue ;};if _afffd ,_adca :=_egg .GetDict (_eaad );_adca {_gfbbf ,_bfbg :=_afffd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_egg .PdfIndirectObject );
|
||
for _bfbg {_bag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gfbbf );_gfaf ,_cgfc :=_gfbbf .PdfObject .(*_egg .PdfObjectDictionary );if !_cgfc {return _gd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_gabb :=range _fdca {_bag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gabb );if _afffd .Get (_gabb )!=nil {_bag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _ecebc :=_gfaf .Get (_gabb );_ecebc !=nil {_bag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gabb );_afffd .Set (_gabb ,_ecebc );};};_gfbbf ,_bfbg =_gfaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_egg .PdfIndirectObject );
|
||
_bag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gfaf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_afffd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbcd ._gfbe );};_ffde .updateObjectsDeep (_eaad ,nil );
|
||
_bff .Append (_eaad );};if _ ,_effc :=_ffde ._cbe .Seek (0,_dag .SeekStart );_effc !=nil {return _effc ;};_faec :=make (map[SignatureHandler ]_dag .Writer );_eace :=_egg .MakeArray ();for _ ,_cfeb :=range _ffde ._dbbe {if _ecece ,_eecd :=_egg .GetIndirect (_cfeb );
|
||
_eecd {if _acfaf ,_aaeg :=_ecece .PdfObject .(*pdfSignDictionary );_aaeg {_bdfa :=*_acfaf ._ebdca ;var _fcfd error ;_faec [_bdfa ],_fcfd =_bdfa .NewDigest (_acfaf ._gbbba );if _fcfd !=nil {return _fcfd ;};_eace .Append (_egg .MakeInteger (0xfffff),_egg .MakeInteger (0xfffff));
|
||
};};};if _eace .Len ()> 0{_eace .Append (_egg .MakeInteger (0xfffff),_egg .MakeInteger (0xfffff));};for _ ,_dgaf :=range _ffde ._dbbe {if _ddcd ,_fgfe :=_egg .GetIndirect (_dgaf );_fgfe {if _bca ,_cddc :=_ddcd .PdfObject .(*pdfSignDictionary );_cddc {_bca .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_eace );
|
||
};};};_bgeg :=len (_faec )> 0;var _eee _dag .Reader =_ffde ._cbe ;if _bgeg {_bedg :=make ([]_dag .Writer ,0,len (_faec ));for _ ,_eefcg :=range _faec {_bedg =append (_bedg ,_eefcg );};_eee =_dag .TeeReader (_ffde ._cbe ,_dag .MultiWriter (_bedg ...));};
|
||
_eage ,_gcfb :=_dag .Copy (w ,_eee );if _gcfb !=nil {return _gcfb ;};if len (_ffde ._dbbe )==0{return nil ;};_fbcd ._ddfee =_eage ;_fbcd .ObjNumOffset =_ffde ._gfdcd ;_fbcd ._gabaca =true ;_fbcd ._ecfgc =_ffde ._beed ;_fbcd ._gccgfe =_ffde ._gfbc ;_fbcd ._ggdad =_ffde ._bbba ;
|
||
_fbcd ._dacce =_ffde ._bgaa .PdfVersion ();_fbcd ._fcgfe =_ffde ._eegc ;_fbcd ._agdag =_ffde ._daac .GetCrypter ();_fbcd ._afcc =_ffde ._daac .GetEncryptObj ();_gfgg :=_ffde ._daac .GetXrefType ();if _gfgg !=nil {_bafcc :=*_gfgg ==_egg .XrefTypeObjectStream ;
|
||
_fbcd ._bfga =&_bafcc ;};_fbcd ._bacec =map[_egg .PdfObject ]struct{}{};_fbcd ._bbead =[]_egg .PdfObject {};for _ ,_ddad :=range _ffde ._dbbe {if _ ,_abdg :=_ffde ._eecgg [_ddad ];_abdg {continue ;};_fbcd .addObject (_ddad );};_afbfc :=w ;if _bgeg {_afbfc =_dd .NewBuffer (nil );
|
||
};if _ffde ._cbdd !=""&&_fbcd ._agdag ==nil {_fbcd .Encrypt ([]byte (_ffde ._cbdd ),[]byte (_ffde ._cbdd ),_ffde ._effa );};if _ccba :=_caf .Get ("\u0049\u0044");_ccba !=nil {if _gfgb ,_fcfe :=_egg .GetArray (_ccba );_fcfe {_fbcd ._aaea =_gfgb ;};};if _eaege :=_fbcd .Write (_afbfc );
|
||
_eaege !=nil {return _eaege ;};if _bgeg {_aac :=_afbfc .(*_dd .Buffer ).Bytes ();_cagd :=_egg .MakeArray ();var _eabg []*pdfSignDictionary ;var _bgdd int64 ;for _ ,_dffe :=range _fbcd ._bbead {if _dgfg ,_bgbgb :=_egg .GetIndirect (_dffe );_bgbgb {if _ggdfd ,_acg :=_dgfg .PdfObject .(*pdfSignDictionary );
|
||
_acg {_eabg =append (_eabg ,_ggdfd );_gaaga :=_ggdfd ._cagab +int64 (_ggdfd ._fcade );_cagd .Append (_egg .MakeInteger (_bgdd ),_egg .MakeInteger (_gaaga -_bgdd ));_bgdd =_ggdfd ._cagab +int64 (_ggdfd ._aabac );};};};_cagd .Append (_egg .MakeInteger (_bgdd ),_egg .MakeInteger (_eage +int64 (len (_aac ))-_bgdd ));
|
||
_gabc :=[]byte (_cagd .WriteString ());for _ ,_dfgfa :=range _eabg {_aefd :=int (_dfgfa ._cagab -_eage );for _febd :=_dfgfa ._dcfaa ;_febd < _dfgfa ._gbeab ;_febd ++{_aac [_aefd +_febd ]=' ';};_cdb :=_aac [_aefd +_dfgfa ._dcfaa :_aefd +_dfgfa ._gbeab ];
|
||
copy (_cdb ,_gabc );};var _bgcba int ;for _ ,_aaa :=range _eabg {_dbed :=int (_aaa ._cagab -_eage );_geff :=_aac [_bgcba :_dbed +_aaa ._fcade ];_agbd :=*_aaa ._ebdca ;_faec [_agbd ].Write (_geff );_bgcba =_dbed +_aaa ._aabac ;};for _ ,_fdfg :=range _eabg {_acdc :=_aac [_bgcba :];
|
||
_dedc :=*_fdfg ._ebdca ;_faec [_dedc ].Write (_acdc );};for _ ,_fbdad :=range _eabg {_adee :=int (_fbdad ._cagab -_eage );_efc :=*_fbdad ._ebdca ;_ffae :=_faec [_efc ];if _dfcf :=_efc .Sign (_fbdad ._gbbba ,_ffae );_dfcf !=nil {return _dfcf ;};_fbdad ._gbbba .ByteRange =_cagd ;
|
||
_gdac :=[]byte (_fbdad ._gbbba .Contents .WriteString ());for _cfbf :=_fbdad ._dcfaa ;_cfbf < _fbdad ._gbeab ;_cfbf ++{_aac [_adee +_cfbf ]=' ';};for _dgde :=_fbdad ._fcade ;_dgde < _fbdad ._aabac ;_dgde ++{_aac [_adee +_dgde ]=' ';};_edac :=_aac [_adee +_fbdad ._dcfaa :_adee +_fbdad ._gbeab ];
|
||
copy (_edac ,_gabc );_edac =_aac [_adee +_fbdad ._fcade :_adee +_fbdad ._aabac ];copy (_edac ,_gdac );};_dbdc :=_dd .NewBuffer (_aac );_ ,_gcfb =_dag .Copy (w ,_dbdc );if _gcfb !=nil {return _gcfb ;};};_ffde ._faab =true ;return nil ;};
|
||
|
||
// SetNamedDestinations sets the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_fdece *PdfWriter )SetNamedDestinations (dests _egg .PdfObject )error {if dests ==nil {return nil ;};_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
|
||
_fdece ._acea .Set ("\u0044\u0065\u0073t\u0073",dests );return _fdece .addObjects (dests );};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_bcecb *Outline )ToPdfObject ()_egg .PdfObject {return _bcecb .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
|
||
// a higher level access to work with PDF structure and information, such as the page structure etc.
|
||
type PdfReader struct{_dafgab *_egg .PdfParser ;_bcccb _egg .PdfObject ;_cgcga *_egg .PdfIndirectObject ;_gbeagf *_egg .PdfObjectDictionary ;_abgbc []*_egg .PdfIndirectObject ;PageList []*PdfPage ;_fced int ;_eacf *_egg .PdfObjectDictionary ;_cccbg *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_eacd *Permissions ;_gcfcf map[*PdfReader ]*PdfReader ;_acad []*PdfReader ;_dabaf *modelManager ;_cede bool ;_gbabf map[_egg .PdfObject ]struct{};_eefb _dag .ReadSeeker ;_faeea string ;_gccee bool ;_ecbf *ReaderOpts ;
|
||
_gddafb bool ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gbed *PdfAnnotationHighlight )ToPdfObject ()_egg .PdfObject {_gbed .PdfAnnotation .ToPdfObject ();_eaac :=_gbed ._cef ;_gbea :=_eaac .PdfObject .(*_egg .PdfObjectDictionary );_gbed .PdfAnnotationMarkup .appendToPdfDictionary (_gbea );_gbea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_gbea .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gbed .QuadPoints );return _eaac ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gaag *PdfBorderStyle )ToPdfObject ()_egg .PdfObject {_fgcf :=_egg .MakeDict ();if _gaag ._fffd !=nil {if _efdf ,_aabbg :=_gaag ._fffd .(*_egg .PdfIndirectObject );_aabbg {_efdf .PdfObject =_fgcf ;};};_fgcf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _gaag .W !=nil {_fgcf .Set ("\u0057",_egg .MakeFloat (*_gaag .W ));};if _gaag .S !=nil {_fgcf .Set ("\u0053",_egg .MakeName (_gaag .S .GetPdfName ()));};if _gaag .D !=nil {_fgcf .Set ("\u0044",_egg .MakeArrayFromIntegers (*_gaag .D ));};if _gaag ._fffd !=nil {return _gaag ._fffd ;
|
||
};return _fgcf ;};
|
||
|
||
// 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 (_adgfb *PdfFont )CharcodesToStrings (charcodes []_ef .CharCode )([]string ,int ,int ){_cbgg :=_adgfb .baseFields ();_aefeb :=make ([]string ,0,len (charcodes ));_cdddd :=0;_aadce :=_adgfb .Encoder ();_beacc :=_cbgg ._bfbgf !=nil &&_adgfb .IsSimple ()&&_adgfb .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_fc .Contains (_cbgg ._bfbgf .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
|
||
if !_beacc &&_aadce !=nil {switch _eadg :=_aadce .(type ){case _ef .SimpleEncoder :_dagab :=_eadg .BaseName ();if _ ,_dffge :=_eefde [_dagab ];_dffge {for _ ,_edad :=range charcodes {if _abccg ,_fdbcf :=_aadce .CharcodeToRune (_edad );_fdbcf {_aefeb =append (_aefeb ,string (_abccg ));
|
||
}else {_bag .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",_edad ,charcodes ,_cbgg .isCIDFont (),_adgfb ,_aadce );
|
||
_cdddd ++;_aefeb =append (_aefeb ,_ga .MissingCodeString );};};return _aefeb ,len (_aefeb ),_cdddd ;};};};for _ ,_bgee :=range charcodes {if _cbgg ._bfbgf !=nil {if _bgfe ,_aggbc :=_cbgg ._bfbgf .CharcodeToUnicode (_ga .CharCode (_bgee ));_aggbc {_aefeb =append (_aefeb ,_bgfe );
|
||
continue ;};};if _aadce !=nil {if _acag ,_begdb :=_aadce .CharcodeToRune (_bgee );_begdb {_aefeb =append (_aefeb ,string (_acag ));continue ;};};_bag .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",_bgee ,charcodes ,_cbgg .isCIDFont (),_adgfb ,_aadce );
|
||
_cdddd ++;_aefeb =append (_aefeb ,_ga .MissingCodeString );};if _cdddd !=0{_bag .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 ),_cdddd ,_adgfb );
|
||
};return _aefeb ,len (_aefeb ),_cdddd ;};func _facf (_ddceg []byte )[]byte {const _efgfb =52845;const _eecfc =22719;_fdgb :=55665;for _ ,_ebcef :=range _ddceg [:4]{_fdgb =(int (_ebcef )+_fdgb )*_efgfb +_eecfc ;};_dfcfc :=make ([]byte ,len (_ddceg )-4);
|
||
for _dddc ,_ccgaga :=range _ddceg [4:]{_dfcfc [_dddc ]=byte (int (_ccgaga )^_fdgb >>8);_fdgb =(int (_ccgaga )+_fdgb )*_efgfb +_eecfc ;};return _dfcfc ;};func (_fccgb *PdfWriter )writeXRefStreams (_gcdcd int ,_eeedc int64 )error {_ggcf :=_gcdcd +1;_fccgb ._ccceb [_ggcf ]=crossReference {Type :1,ObjectNumber :_ggcf ,Offset :_eeedc };
|
||
_dabgc :=_dd .NewBuffer (nil );_cbgfc :=_egg .MakeArray ();for _gddba :=0;_gddba <=_gcdcd ;{for ;_gddba <=_gcdcd ;_gddba ++{_gfcabc ,_bffce :=_fccgb ._ccceb [_gddba ];if _bffce &&(!_fccgb ._gabaca ||_fccgb ._gabaca &&(_gfcabc .Type ==1&&_gfcabc .Offset >=_fccgb ._ggdad ||_gfcabc .Type ==0)){break ;
|
||
};};var _gcdfcd int ;for _gcdfcd =_gddba +1;_gcdfcd <=_gcdcd ;_gcdfcd ++{_baegf ,_fbca :=_fccgb ._ccceb [_gcdfcd ];if _fbca &&(!_fccgb ._gabaca ||_fccgb ._gabaca &&(_baegf .Type ==1&&_baegf .Offset > _fccgb ._ggdad )){continue ;};break ;};_cbgfc .Append (_egg .MakeInteger (int64 (_gddba )),_egg .MakeInteger (int64 (_gcdfcd -_gddba )));
|
||
for _agged :=_gddba ;_agged < _gcdfcd ;_agged ++{_abda :=_fccgb ._ccceb [_agged ];switch _abda .Type {case 0:_bg .Write (_dabgc ,_bg .BigEndian ,byte (0));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (0));_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_bg .Write (_dabgc ,_bg .BigEndian ,byte (1));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (_abda .Offset ));_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (_abda .Generation ));case 2:_bg .Write (_dabgc ,_bg .BigEndian ,byte (2));_bg .Write (_dabgc ,_bg .BigEndian ,uint32 (_abda .ObjectNumber ));
|
||
_bg .Write (_dabgc ,_bg .BigEndian ,uint16 (_abda .Index ));};};_gddba =_gcdfcd +1;};_eagde ,_ecdgfd :=_egg .MakeStream (_dabgc .Bytes (),_egg .NewFlateEncoder ());if _ecdgfd !=nil {return _ecdgfd ;};_eagde .ObjectNumber =int64 (_ggcf );_eagde .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_eagde .PdfObjectDictionary .Set ("\u0057",_egg .MakeArray (_egg .MakeInteger (1),_egg .MakeInteger (4),_egg .MakeInteger (2)));_eagde .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_cbgfc );_eagde .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_egg .MakeInteger (int64 (_ggcf +1)));
|
||
_eagde .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_fccgb ._efage );_eagde .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_fccgb ._egad );if _fccgb ._gabaca &&_fccgb ._gccgfe > 0{_eagde .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_egg .MakeInteger (_fccgb ._gccgfe ));
|
||
};if _fccgb ._agdag !=nil {_eagde .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_fccgb ._afcc );};if _fccgb ._aaea ==nil &&_fccgb ._caddc !=""&&_fccgb ._bagaa !=""{_fccgb ._aaea =_egg .MakeArray (_egg .MakeHexString (_fccgb ._caddc ),_egg .MakeHexString (_fccgb ._bagaa ));
|
||
};if _fccgb ._aaea !=nil {_bag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_fccgb ._aaea );_eagde .Set ("\u0049\u0044",_fccgb ._aaea );};_fccgb .writeObject (int (_eagde .ObjectNumber ),_eagde );return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_edgd *PdfShadingType3 )ToPdfObject ()_egg .PdfObject {_edgd .PdfShading .ToPdfObject ();_feac ,_dcgfa :=_edgd .getShadingDict ();if _dcgfa !=nil {_bag .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 _edgd .Coords !=nil {_feac .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_edgd .Coords );};if _edgd .Domain !=nil {_feac .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edgd .Domain );};if _edgd .Function !=nil {if len (_edgd .Function )==1{_feac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edgd .Function [0].ToPdfObject ());
|
||
}else {_aeaeg :=_egg .MakeArray ();for _ ,_babdg :=range _edgd .Function {_aeaeg .Append (_babdg .ToPdfObject ());};_feac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aeaeg );};};if _edgd .Extend !=nil {_feac .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_edgd .Extend );
|
||
};return _edgd ._cfdbd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_ebgf *PdfAnnotation )ToPdfObject ()_egg .PdfObject {_bbdgg :=_ebgf ._cef ;_gaac :=_bbdgg .PdfObject .(*_egg .PdfObjectDictionary );_gaac .Clear ();_gaac .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0041\u006e\u006eo\u0074"));_gaac .SetIfNotNil ("\u0052\u0065\u0063\u0074",_ebgf .Rect );
|
||
_gaac .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_ebgf .Contents );_gaac .SetIfNotNil ("\u0050",_ebgf .P );_gaac .SetIfNotNil ("\u004e\u004d",_ebgf .NM );_gaac .SetIfNotNil ("\u004d",_ebgf .M );_gaac .SetIfNotNil ("\u0046",_ebgf .F );
|
||
_gaac .SetIfNotNil ("\u0041\u0050",_ebgf .AP );_gaac .SetIfNotNil ("\u0041\u0053",_ebgf .AS );_gaac .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_ebgf .Border );_gaac .SetIfNotNil ("\u0043",_ebgf .C );_gaac .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_ebgf .StructParent );
|
||
_gaac .SetIfNotNil ("\u004f\u0043",_ebgf .OC );return _bbdgg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdd *PdfActionSetOCGState )ToPdfObject ()_egg .PdfObject {_fdd .PdfAction .ToPdfObject ();_gbdc :=_fdd ._bf ;_fea :=_gbdc .PdfObject .(*_egg .PdfObjectDictionary );_fea .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSetOCGState )));_fea .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fdd .State );
|
||
_fea .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_fdd .PreserveRB );return _gbdc ;};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_ceag *PdfSignature )GetCerts ()([]*_dg .Certificate ,error ){var _cfbea []func ()([]*_dg .Certificate ,error );switch _febge ,_ :=_egg .GetNameVal (_ceag .SubFilter );_febge {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":_cfbea =append (_cfbea ,_ceag .extractChainFromPKCS7 ,_ceag .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_cfbea =append (_cfbea ,_ceag .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_cfbea =append (_cfbea ,_ceag .extractChainFromPKCS7 );
|
||
default:return nil ,_f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_febge );};for _ ,_dgddb :=range _cfbea {_accaa ,_egcbb :=_dgddb ();if _egcbb !=nil {return nil ,_egcbb ;
|
||
};if len (_accaa )> 0{return _accaa ,nil ;};};return nil ,ErrSignNoCertificates ;};
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_gbdb *PdfAppender )UpdateObject (obj _egg .PdfObject ){_gbdb .replaceObject (obj ,obj );if _ ,_eebc :=_gbdb ._bdba [obj ];!_eebc {_gbdb ._dbbe =append (_gbdb ._dbbe ,obj );_gbdb ._bdba [obj ]=struct{}{};};};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_bbbc pdfCIDFontType2 )Encoder ()_ef .TextEncoder {return _bbbc ._bceaf };func (_bgeb *PdfReader )newPdfAnnotationMarkupFromDict (_cdga *_egg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_cfe :=&PdfAnnotationMarkup {};if _cbgb :=_cdga .Get ("\u0054");
|
||
_cbgb !=nil {_cfe .T =_cbgb ;};if _gab :=_cdga .Get ("\u0050\u006f\u0070u\u0070");_gab !=nil {_bbca ,_gddc :=_gab .(*_egg .PdfIndirectObject );if !_gddc {if _ ,_afc :=_gab .(*_egg .PdfObjectNull );!_afc {return nil ,_gd .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 {_gbe ,_cdgae :=_bgeb .newPdfAnnotationFromIndirectObject (_bbca );if _cdgae !=nil {return nil ,_cdgae ;};if _gbe !=nil {_eafe ,_bab :=_gbe ._gcf .(*PdfAnnotationPopup );if !_bab {return nil ,_gd .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");
|
||
};_cfe .Popup =_eafe ;};};};if _caa :=_cdga .Get ("\u0043\u0041");_caa !=nil {_cfe .CA =_caa ;};if _egc :=_cdga .Get ("\u0052\u0043");_egc !=nil {_cfe .RC =_egc ;};if _bgfb :=_cdga .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_bgfb !=nil {_cfe .CreationDate =_bgfb ;};if _dbdfg :=_cdga .Get ("\u0049\u0052\u0054");_dbdfg !=nil {_cfe .IRT =_dbdfg ;};if _edbd :=_cdga .Get ("\u0053\u0075\u0062\u006a");_edbd !=nil {_cfe .Subj =_edbd ;};if _aeee :=_cdga .Get ("\u0052\u0054");_aeee !=nil {_cfe .RT =_aeee ;
|
||
};if _egf :=_cdga .Get ("\u0049\u0054");_egf !=nil {_cfe .IT =_egf ;};if _cfcg :=_cdga .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cfcg !=nil {_cfe .ExData =_cfcg ;};return _cfe ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gbeeg *PdfShadingType1 )ToPdfObject ()_egg .PdfObject {_gbeeg .PdfShading .ToPdfObject ();_fcage ,_gcba :=_gbeeg .getShadingDict ();if _gcba !=nil {_bag .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 _gbeeg .Domain !=nil {_fcage .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbeeg .Domain );};if _gbeeg .Matrix !=nil {_fcage .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbeeg .Matrix );};if _gbeeg .Function !=nil {if len (_gbeeg .Function )==1{_fcage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbeeg .Function [0].ToPdfObject ());
|
||
}else {_daebdb :=_egg .MakeArray ();for _ ,_gceb :=range _gbeeg .Function {_daebdb .Append (_gceb .ToPdfObject ());};_fcage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_daebdb );};};return _gbeeg ._cfdbd ;};func (_gdbca *PdfReader )traverseObjectData (_egbcc _egg .PdfObject )error {return _egg .ResolveReferencesDeep (_egbcc ,_gdbca ._gbabf );
|
||
};
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_gdda *BorderStyle )GetPdfName ()string {switch *_gdda {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_fgf :=NewPdfAction ();_dgd :=&PdfActionImportData {};_dgd .PdfAction =_fgf ;_fgf .SetContext (_dgd );return _dgd ;};
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_ccddf *PdfPattern )GetContainingPdfObject ()_egg .PdfObject {return _ccddf ._fgec };func _gaec (_gebdc _egg .PdfObject )(*PdfFunctionType3 ,error ){_cagacd :=&PdfFunctionType3 {};var _dfdcd *_egg .PdfObjectDictionary ;if _eege ,_gcdgd :=_gebdc .(*_egg .PdfIndirectObject );
|
||
_gcdgd {_afdb ,_dcgd :=_eege .PdfObject .(*_egg .PdfObjectDictionary );if !_dcgd {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cagacd ._cbbbc =_eege ;_dfdcd =_afdb ;}else if _dcdc ,_eebd :=_gebdc .(*_egg .PdfObjectDictionary );
|
||
_eebd {_dfdcd =_dcdc ;}else {return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgbd ,_gdgab :=_egg .TraceToDirectObject (_dfdcd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );
|
||
if !_gdgab {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .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 _cgbd .Len ()!=2{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bdge ,_fgeag :=_cgbd .ToFloat64Array ();
|
||
if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Domain =_bdge ;_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if _gdgab {if _cgbd .Len ()< 0||_cgbd .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_gegga ,_aagcd :=_cgbd .ToFloat64Array ();if _aagcd !=nil {return nil ,_aagcd ;};_cagacd .Range =_gegga ;};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_egg .PdfObjectArray );if !_gdgab {_bag .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 ,_gd .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");};_cagacd .Functions =[]PdfFunction {};
|
||
for _ ,_gecfd :=range _cgbd .Elements (){_gebca ,_fged :=_bdefe (_gecfd );if _fged !=nil {return nil ,_fged ;};_cagacd .Functions =append (_cagacd .Functions ,_gebca );};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_egg .PdfObjectArray );
|
||
if !_gdgab {_bag .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .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");
|
||
};_ecedc ,_fgeag :=_cgbd .ToFloat64Array ();if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Bounds =_ecedc ;if len (_cagacd .Bounds )!=len (_cagacd .Functions )-1{_bag .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 (_cagacd .Bounds ),len (_cagacd .Functions ));
|
||
return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgbd ,_gdgab =_egg .TraceToDirectObject (_dfdcd .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );if !_gdgab {_bag .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_gd .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");};_fedd ,_fgeag :=_cgbd .ToFloat64Array ();
|
||
if _fgeag !=nil {return nil ,_fgeag ;};_cagacd .Encode =_fedd ;if len (_cagacd .Encode )!=2*len (_cagacd .Functions ){_bag .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 (_cagacd .Encode ),len (_cagacd .Functions ));
|
||
return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _cagacd ,nil ;};func _bdabg (_dfgef *_egg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_bccdac :=PdfShadingType1 {};if _cadd :=_dfgef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");
|
||
_cadd !=nil {_cadd =_egg .TraceToDirectObject (_cadd );_aeeeg ,_afage :=_cadd .(*_egg .PdfObjectArray );if !_afage {_bag .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",_cadd );
|
||
return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bccdac .Domain =_aeeeg ;};if _aebac :=_dfgef .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_aebac !=nil {_aebac =_egg .TraceToDirectObject (_aebac );
|
||
_acfcc ,_dcdef :=_aebac .(*_egg .PdfObjectArray );if !_dcdef {_bag .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",_aebac );return nil ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_bccdac .Matrix =_acfcc ;};_fcaga :=_dfgef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fcaga ==nil {_bag .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 ;};_bccdac .Function =[]PdfFunction {};if _gdcgf ,_cdfc :=_fcaga .(*_egg .PdfObjectArray );_cdfc {for _ ,_bdbcc :=range _gdcgf .Elements (){_gfbg ,_ddfcff :=_bdefe (_bdbcc );if _ddfcff !=nil {_bag .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",_ddfcff );
|
||
return nil ,_ddfcff ;};_bccdac .Function =append (_bccdac .Function ,_gfbg );};}else {_befgf ,_cbfb :=_bdefe (_fcaga );if _cbfb !=nil {_bag .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",_cbfb );
|
||
return nil ,_cbfb ;};_bccdac .Function =append (_bccdac .Function ,_befgf );};return &_bccdac ,nil ;};func (_eceba *PdfWriter )seekByName (_ddcc _egg .PdfObject ,_aagdg []string ,_cefdb string )([]_egg .PdfObject ,error ){_bag .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_ddcc );
|
||
var _gggdad []_egg .PdfObject ;if _bbdaf ,_fgeeb :=_ddcc .(*_egg .PdfIndirectObject );_fgeeb {return _eceba .seekByName (_bbdaf .PdfObject ,_aagdg ,_cefdb );};if _degeb ,_dfbcb :=_ddcc .(*_egg .PdfObjectStream );_dfbcb {return _eceba .seekByName (_degeb .PdfObjectDictionary ,_aagdg ,_cefdb );
|
||
};if _beacbe ,_gadcef :=_ddcc .(*_egg .PdfObjectDictionary );_gadcef {_bag .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_dgaec :=range _beacbe .Keys (){_dccdg :=_beacbe .Get (_dgaec );if string (_dgaec )==_cefdb {_gggdad =append (_gggdad ,_dccdg );};
|
||
for _ ,_acdge :=range _aagdg {if string (_dgaec )==_acdge {_bag .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_acdge );_dfead ,_ccfb :=_eceba .seekByName (_dccdg ,_aagdg ,_cefdb );if _ccfb !=nil {return _gggdad ,_ccfb ;
|
||
};_gggdad =append (_gggdad ,_dfead ...);break ;};};};return _gggdad ,nil ;};return _gggdad ,nil ;};func _fef (_dffd _egg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_bag .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",_dffd .String (),_dffd );
|
||
_fafd :=NewPdfColorspaceSpecialPattern ();if _dadbb ,_fbgg :=_dffd .(*_egg .PdfIndirectObject );_fbgg {_fafd ._ceae =_dadbb ;};_dffd =_egg .TraceToDirectObject (_dffd );if _cabab ,_cgcg :=_dffd .(*_egg .PdfObjectName );_cgcg {if *_cabab !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _fafd ,nil ;};_ccddd ,_edfeg :=_dffd .(*_egg .PdfObjectArray );if !_edfeg {_bag .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",_dffd );
|
||
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _ccddd .Len ()!=1&&_ccddd .Len ()!=2{_bag .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",_ccddd );
|
||
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_dffd =_ccddd .Get (0);if _fdef ,_gfef :=_dffd .(*_egg .PdfObjectName );_gfef {if *_fdef !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_bag .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",_fdef );
|
||
return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _ccddd .Len ()> 1{_dffd =_ccddd .Get (1);_dffd =_egg .TraceToDirectObject (_dffd );_fdfga ,_dfab :=NewPdfColorspaceFromPdfObject (_dffd );if _dfab !=nil {return nil ,_dfab ;
|
||
};_fafd .UnderlyingCS =_fdfga ;};_bag .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",_fafd .UnderlyingCS );
|
||
return _fafd ,nil ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_ccca *PdfReader )loadAnnotations (_ffedd _egg .PdfObject )([]*PdfAnnotation ,error ){_ebdge ,_ggdba :=_egg .GetArray (_ffedd );if !_ggdba {return nil ,_f .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _bcdbf []*PdfAnnotation ;for _ ,_deebg :=range _ebdge .Elements (){_deebg =_egg .ResolveReference (_deebg );if _ ,_eeecc :=_deebg .(*_egg .PdfObjectNull );_eeecc {continue ;};_fbee ,_gfcad :=_deebg .(*_egg .PdfObjectDictionary );_affc ,_bedfb :=_deebg .(*_egg .PdfIndirectObject );
|
||
if _gfcad {_affc =&_egg .PdfIndirectObject {};_affc .PdfObject =_fbee ;}else {if !_bedfb {return nil ,_f .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};};_dgcea ,_efbcd :=_ccca .newPdfAnnotationFromIndirectObject (_affc );if _efbcd !=nil {return nil ,_efbcd ;};switch _eccgd :=_dgcea .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_aeeac :=range _ccca .AcroForm .AllFields (){if _aeeac ._agef ==_eccgd .Parent {_eccgd ._daa =_aeeac ;
|
||
break ;};};};if _dgcea !=nil {_bcdbf =append (_bcdbf ,_dgcea );};};return _bcdbf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dccda *PdfSignature )ToPdfObject ()_egg .PdfObject {_cabcf :=_dccda ._ccbda ;var _fcdea *_egg .PdfObjectDictionary ;if _afec ,_ccgbea :=_cabcf .PdfObject .(*pdfSignDictionary );_ccgbea {_fcdea =_afec .PdfObjectDictionary ;}else {_fcdea =_cabcf .PdfObject .(*_egg .PdfObjectDictionary );
|
||
};_fcdea .SetIfNotNil ("\u0054\u0079\u0070\u0065",_dccda .Type );_fcdea .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_dccda .Filter );_fcdea .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_dccda .SubFilter );_fcdea .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_dccda .ByteRange );
|
||
_fcdea .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dccda .Contents );_fcdea .SetIfNotNil ("\u0043\u0065\u0072\u0074",_dccda .Cert );_fcdea .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dccda .Name );_fcdea .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_dccda .Reason );
|
||
_fcdea .SetIfNotNil ("\u004d",_dccda .M );_fcdea .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_dccda .Reference );_fcdea .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_dccda .Changes );_fcdea .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_dccda .ContactInfo );
|
||
return _cabcf ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gdbcd *PdfAnnotationLine )ToPdfObject ()_egg .PdfObject {_gdbcd .PdfAnnotation .ToPdfObject ();_ebgfc :=_gdbcd ._cef ;_bfb :=_ebgfc .PdfObject .(*_egg .PdfObjectDictionary );_gdbcd .PdfAnnotationMarkup .appendToPdfDictionary (_bfb );_bfb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_bfb .SetIfNotNil ("\u004c",_gdbcd .L );_bfb .SetIfNotNil ("\u0042\u0053",_gdbcd .BS );_bfb .SetIfNotNil ("\u004c\u0045",_gdbcd .LE );_bfb .SetIfNotNil ("\u0049\u0043",_gdbcd .IC );_bfb .SetIfNotNil ("\u004c\u004c",_gdbcd .LL );_bfb .SetIfNotNil ("\u004c\u004c\u0045",_gdbcd .LLE );
|
||
_bfb .SetIfNotNil ("\u0043\u0061\u0070",_gdbcd .Cap );_bfb .SetIfNotNil ("\u0049\u0054",_gdbcd .IT );_bfb .SetIfNotNil ("\u004c\u004c\u004f",_gdbcd .LLO );_bfb .SetIfNotNil ("\u0043\u0050",_gdbcd .CP );_bfb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_gdbcd .Measure );
|
||
_bfb .SetIfNotNil ("\u0043\u004f",_gdbcd .CO );return _ebgfc ;};
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_gaf :=NewPdfAction ();_gb :=&PdfActionResetForm {};_gb .PdfAction =_gaf ;_gaf .SetContext (_gb );return _gb ;};func (_afgf *PdfWriter )makeOffSetReference (_abccb int64 ){_dfag :=_f .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_abccb );
|
||
_afgf .writeString (_dfag );_afgf .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_afbee *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_abee :=range pages {_abee =_abee .Duplicate ();_cceebc (_abee );_afbee ._beac =append (_afbee ._beac ,_abee );};};
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_egbdc *Image )SetAlpha (alpha []byte ){_egbdc ._fgggb =alpha };
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_eagbe *Outline )Add (item *OutlineItem ){_eagbe .Entries =append (_eagbe .Entries ,item )};
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_bfbbe *PdfPage )GetPageAsIndirectObject ()*_egg .PdfIndirectObject {return _bfbbe ._dfee };
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// 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 *_gfa .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_gfa .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_gfa .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_dbdga *PdfAppender ;_cbbab *DSS ;};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_dffdc *Image )SetDecode (decode []float64 ){_dffdc ._abfae =decode };
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _egg .PdfObject ;RichMediaContent _egg .PdfObject ;};
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_fcabe :=appender .Reader .DSS ;if _fcabe ==nil {_fcabe =NewDSS ();};if _gbba :=_fcabe .generateHashMaps ();_gbba !=nil {return nil ,_gbba ;};return <V {CertClient :_gfa .NewCertClient (),OCSPClient :_gfa .NewOCSPClient (),CRLClient :_gfa .NewCRLClient (),SkipExisting :true ,_dbdga :appender ,_cbbab :_fcabe },nil ;
|
||
};func _edbaa (_daeac _egg .PdfObject )(*PdfShading ,error ){_ggacb :=&PdfShading {};var _cedbe *_egg .PdfObjectDictionary ;if _eefce ,_gdcdd :=_egg .GetIndirect (_daeac );_gdcdd {_ggacb ._cfdbd =_eefce ;_dgffdd ,_aggee :=_eefce .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_aggee {_bag .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 ,_egg .ErrTypeError ;};_cedbe =_dgffdd ;}else if _eeecb ,_gagcf :=_egg .GetStream (_daeac );
|
||
_gagcf {_ggacb ._cfdbd =_eeecb ;_cedbe =_eeecb .PdfObjectDictionary ;}else if _dbfafc ,_eeffb :=_egg .GetDict (_daeac );_eeffb {_ggacb ._cfdbd =_dbfafc ;_cedbe =_dbfafc ;}else {_bag .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",_daeac );
|
||
return nil ,_egg .ErrTypeError ;};if _cedbe ==nil {_bag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_daeac =_cedbe .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _daeac ==nil {_bag .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 ;};_daeac =_egg .TraceToDirectObject (_daeac );_fgdff ,_gdee :=_daeac .(*_egg .PdfObjectInteger );if !_gdee {_bag .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",_daeac );
|
||
return nil ,_egg .ErrTypeError ;};if *_fgdff < 1||*_fgdff > 7{_bag .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",*_fgdff );
|
||
return nil ,_egg .ErrTypeError ;};_ggacb .ShadingType =_fgdff ;_daeac =_cedbe .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _daeac ==nil {_bag .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 ;};_gcde ,_efcd :=NewPdfColorspaceFromPdfObject (_daeac );if _efcd !=nil {_bag .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",_efcd );
|
||
return nil ,_efcd ;};_ggacb .ColorSpace =_gcde ;_daeac =_cedbe .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_cffcdc ,_daeacd :=_daeac .(*_egg .PdfObjectArray );if !_daeacd {_bag .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)",_daeac );
|
||
return nil ,_egg .ErrTypeError ;};_ggacb .Background =_cffcdc ;};_daeac =_cedbe .Get ("\u0042\u0042\u006f\u0078");if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_bacgg ,_affag :=_daeac .(*_egg .PdfObjectArray );if !_affag {_bag .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)",_daeac );
|
||
return nil ,_egg .ErrTypeError ;};_ebacf ,_cbece :=NewPdfRectangle (*_bacgg );if _cbece !=nil {_bag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cbece );return nil ,_cbece ;};_ggacb .BBox =_ebacf ;};_daeac =_cedbe .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _daeac !=nil {_daeac =_egg .TraceToDirectObject (_daeac );_aceda ,_bafgf :=_daeac .(*_egg .PdfObjectBool );if !_bafgf {_bag .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",_daeac );
|
||
return nil ,_egg .ErrTypeError ;};_ggacb .AntiAlias =_aceda ;};switch *_fgdff {case 1:_gbfef ,_aacfg :=_bdabg (_cedbe );if _aacfg !=nil {return nil ,_aacfg ;};_gbfef .PdfShading =_ggacb ;_ggacb ._fagfe =_gbfef ;return _ggacb ,nil ;case 2:_eedac ,_bcgfc :=_dbefa (_cedbe );
|
||
if _bcgfc !=nil {return nil ,_bcgfc ;};_eedac .PdfShading =_ggacb ;_ggacb ._fagfe =_eedac ;return _ggacb ,nil ;case 3:_efecg ,_cbcc :=_ebafc (_cedbe );if _cbcc !=nil {return nil ,_cbcc ;};_efecg .PdfShading =_ggacb ;_ggacb ._fagfe =_efecg ;return _ggacb ,nil ;
|
||
case 4:_gffeg ,_eeffgg :=_fccda (_cedbe );if _eeffgg !=nil {return nil ,_eeffgg ;};_gffeg .PdfShading =_ggacb ;_ggacb ._fagfe =_gffeg ;return _ggacb ,nil ;case 5:_aedcg ,_bedge :=_ggaeg (_cedbe );if _bedge !=nil {return nil ,_bedge ;};_aedcg .PdfShading =_ggacb ;
|
||
_ggacb ._fagfe =_aedcg ;return _ggacb ,nil ;case 6:_ecgcb ,_ffedbb :=_efdgd (_cedbe );if _ffedbb !=nil {return nil ,_ffedbb ;};_ecgcb .PdfShading =_ggacb ;_ggacb ._fagfe =_ecgcb ;return _ggacb ,nil ;case 7:_eceafd ,_fdgag :=_bdbba (_cedbe );if _fdgag !=nil {return nil ,_fdgag ;
|
||
};_eceafd .PdfShading =_ggacb ;_ggacb ._fagfe =_eceafd ;return _ggacb ,nil ;};return nil ,_gd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_bfgcc *PdfFontDescriptor )String ()string {var _gebfc []string ;if _bfgcc .FontName !=nil {_gebfc =append (_gebfc ,_bfgcc .FontName .String ());};if _bfgcc .FontFamily !=nil {_gebfc =append (_gebfc ,_bfgcc .FontFamily .String ());};if _bfgcc .fontFile !=nil {_gebfc =append (_gebfc ,_bfgcc .fontFile .String ());
|
||
};if _bfgcc ._eccg !=nil {_gebfc =append (_gebfc ,_bfgcc ._eccg .String ());};_gebfc =append (_gebfc ,_f .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bfgcc .FontFile3 !=nil ));return _f .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_fc .Join (_gebfc ,"\u002c\u0020"));
|
||
};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_fege *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_aeggf ,_cffd :=color .(*PdfColorDeviceCMYK );if !_cffd {_bag .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 ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cgb :=_aeggf .C ();_gage :=_aeggf .M ();_cgef :=_aeggf .Y ();_aacd :=_aeggf .K ();_cgb =_cgb *(1-_aacd )+_aacd ;_gage =_gage *(1-_aacd )+_aacd ;
|
||
_cgef =_cgef *(1-_aacd )+_aacd ;_eaff :=1-_cgb ;_bdbag :=1-_gage ;_egcb :=1-_cgef ;return NewPdfColorDeviceRGB (_eaff ,_bdbag ,_egcb ),nil ;};
|
||
|
||
// GetCatalogMarkInfo gets catalog MarkInfo object.
|
||
func (_fade *PdfReader )GetCatalogMarkInfo ()(_egg .PdfObject ,bool ){if _fade ._eacf ==nil {return nil ,false ;};_cbdgea :=_fade ._eacf .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _cbdgea ,_cbdgea !=nil ;};func (_cfbg *PdfReader )newPdfAnnotationLineFromDict (_efef *_egg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_beb :=PdfAnnotationLine {};
|
||
_geb ,_fcgf :=_cfbg .newPdfAnnotationMarkupFromDict (_efef );if _fcgf !=nil {return nil ,_fcgf ;};_beb .PdfAnnotationMarkup =_geb ;_beb .L =_efef .Get ("\u004c");_beb .BS =_efef .Get ("\u0042\u0053");_beb .LE =_efef .Get ("\u004c\u0045");_beb .IC =_efef .Get ("\u0049\u0043");
|
||
_beb .LL =_efef .Get ("\u004c\u004c");_beb .LLE =_efef .Get ("\u004c\u004c\u0045");_beb .Cap =_efef .Get ("\u0043\u0061\u0070");_beb .IT =_efef .Get ("\u0049\u0054");_beb .LLO =_efef .Get ("\u004c\u004c\u004f");_beb .CP =_efef .Get ("\u0043\u0050");_beb .Measure =_efef .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
|
||
_beb .CO =_efef .Get ("\u0043\u004f");return &_beb ,nil ;};func _cbfde (_dcbf *_egg .PdfObjectDictionary ,_eacgf *fontCommon )(*pdfCIDFontType0 ,error ){if _eacgf ._ebdf !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_bag .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",_eacgf );
|
||
return nil ,_egg .ErrRangeError ;};_cedd :=_caafc (_eacgf );_deffd ,_bgab :=_egg .GetDict (_dcbf .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bgab {_bag .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",_eacgf );
|
||
return nil ,ErrRequiredAttributeMissing ;};_cedd .CIDSystemInfo =_deffd ;_cedd .DW =_dcbf .Get ("\u0044\u0057");_cedd .W =_dcbf .Get ("\u0057");_cedd .DW2 =_dcbf .Get ("\u0044\u0057\u0032");_cedd .W2 =_dcbf .Get ("\u0057\u0032");_cedd ._afdcf =1000.0;if _bacd ,_fgaeda :=_egg .GetNumberAsFloat (_cedd .DW );
|
||
_fgaeda ==nil {_cedd ._afdcf =_bacd ;};_ffef ,_faebd :=_babef (_cedd .W );if _faebd !=nil {return nil ,_faebd ;};if _ffef ==nil {_ffef =map[_ef .CharCode ]float64 {};};_cedd ._decd =_ffef ;return _cedd ,nil ;};func (_cgbfb *fontFile )parseASCIIPart (_egegc []byte )error {if len (_egegc )< 2||string (_egegc [:2])!="\u0025\u0021"{return _gd .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");
|
||
};_badaf ,_dgddd ,_ggeg :=_cgdf (_egegc );if _ggeg !=nil {return _ggeg ;};_gcge :=_dead (_badaf );_cgbfb ._ebfa =_gcge ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _cgbfb ._ebfa ==""{_bag .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 _dgddd !=""{_fabd ,_bgddc :=_dadge (_dgddd );if _bgddc !=nil {return _bgddc ;};_abfdc ,_bgddc :=_ef .NewCustomSimpleTextEncoder (_fabd ,nil );if _bgddc !=nil {_bag .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",_bgddc );
|
||
return nil ;};_cgbfb ._gdcd =_abfdc ;};return nil ;};func (_gbb *PdfReader )newPdfActionGotoFromDict (_fec *_egg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_fec .Get ("\u0044")},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 _dag .ReadSeeker )(*PdfFont ,error ){_gcfbg ,_acfg :=_ac .ReadAll (r );if _acfg !=nil {_bag .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",_acfg );
|
||
return nil ,_acfg ;};_dfbe ,_acfg :=_bgd .TtfParse (_dd .NewReader (_gcfbg ));if _acfg !=nil {_bag .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",_acfg );
|
||
return nil ,_acfg ;};_aedg :=&pdfCIDFontType2 {fontCommon :fontCommon {_ebdf :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_egg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_dfbe .Widths )<=0{return nil ,_gd .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");
|
||
};_egdb :=1000.0/float64 (_dfbe .UnitsPerEm );_eabec :=_egdb *float64 (_dfbe .Widths [0]);_dcagd :=make (map[rune ]int );_fccfd :=make (map[_bgd .GID ]int );_edcf :=_bgd .GID (len (_dfbe .Widths ));for _fcbea ,_aedgc :=range _dfbe .Chars {if _aedgc > _edcf -1{continue ;
|
||
};_fccage :=int (_egdb *float64 (_dfbe .Widths [_aedgc ]));_dcagd [_fcbea ]=_fccage ;_fccfd [_aedgc ]=_fccage ;};_aedg ._beec =_dcagd ;_aedg .DW =_egg .MakeInteger (int64 (_eabec ));_fbfdb :=_baff (_fccfd ,uint16 (_edcf ));_aedg .W =_egg .MakeIndirectObject (_fbfdb );
|
||
_fadgd :=_egg .MakeDict ();_fadgd .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_egg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_fadgd .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_egg .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_fadgd .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_egg .MakeInteger (0));_aedg .CIDSystemInfo =_fadgd ;_ddbd :=&PdfFontDescriptor {FontName :_egg .MakeName (_dfbe .PostScriptName ),Ascent :_egg .MakeFloat (_egdb *float64 (_dfbe .TypoAscender )),Descent :_egg .MakeFloat (_egdb *float64 (_dfbe .TypoDescender )),CapHeight :_egg .MakeFloat (_egdb *float64 (_dfbe .CapHeight )),FontBBox :_egg .MakeArrayFromFloats ([]float64 {_egdb *float64 (_dfbe .Xmin ),_egdb *float64 (_dfbe .Ymin ),_egdb *float64 (_dfbe .Xmax ),_egdb *float64 (_dfbe .Ymax )}),ItalicAngle :_egg .MakeFloat (_dfbe .ItalicAngle ),MissingWidth :_egg .MakeFloat (_eabec )};
|
||
_bfea ,_acfg :=_egg .MakeStream (_gcfbg ,_egg .NewFlateEncoder ());if _acfg !=nil {_bag .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",_acfg );
|
||
return nil ,_acfg ;};_bfea .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (len (_gcfbg ))));_ddbd .FontFile2 =_bfea ;if _dfbe .Bold {_ddbd .StemV =_egg .MakeInteger (120);}else {_ddbd .StemV =_egg .MakeInteger (70);
|
||
};_bgdad :=_eeeef ;if _dfbe .IsFixedPitch {_bgdad |=_ebaa ;};if _dfbe .ItalicAngle !=0{_bgdad |=_ggcggf ;};_ddbd .Flags =_egg .MakeInteger (int64 (_bgdad ));_aedg ._dgfdc =_dfbe .PostScriptName ;_aedg ._bgacg =_ddbd ;_eddeb :=pdfFontType0 {fontCommon :fontCommon {_ebdf :"\u0054\u0079\u0070e\u0030",_dgfdc :_dfbe .PostScriptName },DescendantFont :&PdfFont {_edde :_aedg },Encoding :_egg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bfddc :_dfbe .NewEncoder ()};
|
||
if len (_dfbe .Chars )> 0{_aeacce :=make (map[_ga .CharCode ]rune ,len (_dfbe .Chars ));for _edeae ,_fcded :=range _dfbe .Chars {_efbb :=_ga .CharCode (_fcded );if _cceag ,_agfa :=_aeacce [_efbb ];!_agfa ||(_agfa &&_cceag > _edeae ){_aeacce [_efbb ]=_edeae ;
|
||
};};_eddeb ._bfbgf =_ga .NewToUnicodeCMap (_aeacce );};_cbdge :=PdfFont {_edde :&_eddeb };return &_cbdge ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_eggf *PdfOutline )GetContainingPdfObject ()_egg .PdfObject {return _eggf ._egdd };
|
||
|
||
// GetCatalogMetadata gets the catalog defined XMP Metadata.
|
||
func (_gfece *PdfReader )GetCatalogMetadata ()(_egg .PdfObject ,bool ){if _gfece ._eacf ==nil {return nil ,false ;};_bbfe :=_gfece ._eacf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _bbfe ,_bbfe !=nil ;};
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_ebcfc *PdfPageResourcesColorspaces )Set (key _egg .PdfObjectName ,val PdfColorspace ){if _ ,_eedgb :=_ebcfc .Colorspaces [string (key )];!_eedgb {_ebcfc .Names =append (_ebcfc .Names ,string (key ));};_ebcfc .Colorspaces [string (key )]=val ;};
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_egcfa *PdfColorDeviceRGB )R ()float64 {return _egcfa [0]};
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_gfgeg :=&PdfColorspaceCalGray {};_gfgeg .BlackPoint =[]float64 {0.0,0.0,0.0};_gfgeg .Gamma =1;return _gfgeg ;};
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_degbd *XObjectImage )SetFilter (encoder _egg .StreamEncoder )error {_cgcbc :=_degbd .Stream ;_ccaab ,_dgceb :=_degbd .Filter .DecodeBytes (_cgcbc );if _dgceb !=nil {return _dgceb ;};_degbd .Filter =encoder ;encoder .UpdateParams (_degbd .getParamsDict ());
|
||
_cgcbc ,_dgceb =encoder .EncodeBytes (_ccaab );if _dgceb !=nil {return _dgceb ;};_degbd .Stream =_cgcbc ;return nil ;};func (_cdf *PdfReader )newPdfAnnotationPolygonFromDict (_cgae *_egg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gfac :=PdfAnnotationPolygon {};
|
||
_fbbf ,_aged :=_cdf .newPdfAnnotationMarkupFromDict (_cgae );if _aged !=nil {return nil ,_aged ;};_gfac .PdfAnnotationMarkup =_fbbf ;_gfac .Vertices =_cgae .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gfac .LE =_cgae .Get ("\u004c\u0045");
|
||
_gfac .BS =_cgae .Get ("\u0042\u0053");_gfac .IC =_cgae .Get ("\u0049\u0043");_gfac .BE =_cgae .Get ("\u0042\u0045");_gfac .IT =_cgae .Get ("\u0049\u0054");_gfac .Measure =_cgae .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gfac ,nil ;};
|
||
|
||
// GetDocMDPPermission returns the DocMDP level of the restrictions
|
||
func (_bagab *PdfSignature )GetDocMDPPermission ()(_be .DocMDPPermission ,bool ){for _ ,_deafb :=range _bagab .Reference .Elements (){if _ggdgbe ,_efgae :=_egg .GetDict (_deafb );_efgae {if _cccg ,_bebbd :=_egg .GetNameVal (_ggdgbe .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
_bebbd &&_cccg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _eface ,_cdcecf :=_egg .GetDict (_ggdgbe .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_cdcecf {if P ,_bbcc :=_egg .GetIntVal (_eface .Get ("\u0050"));
|
||
_bbcc {return _be .DocMDPPermission (P ),true ;};};};};};return 0,false ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_eagea *XObjectImage )GetContainingPdfObject ()_egg .PdfObject {return _eagea ._gefbe };func _eegd (_effdc []byte )bool {if len (_effdc )< 4{return true ;};for _cdeac :=range _effdc [:4]{_faggd :=rune (_cdeac );if !_ad .Is (_ad .ASCII_Hex_Digit ,_faggd )&&!_ad .IsSpace (_faggd ){return true ;
|
||
};};return false ;};
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_abgg *PdfPageResources )SetPatternByName (keyName _egg .PdfObjectName ,pattern _egg .PdfObject )error {if _abgg .Pattern ==nil {_abgg .Pattern =_egg .MakeDict ();};_fdde ,_ebbaf :=_abgg .Pattern .(*_egg .PdfObjectDictionary );if !_ebbaf {return _egg .ErrTypeError ;
|
||
};_fdde .Set (keyName ,pattern );return nil ;};
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_bgbb *PdfPattern )IsTiling ()bool {return _bgbb .PatternType ==1};func (_bcfcc *PdfAcroForm )filteredFields (_cfccg FieldFilterFunc ,_cbdgg bool )[]*PdfField {if _bcfcc ==nil {return nil ;};return _eeceg (_bcfcc .Fields ,_cfccg ,_cbdgg );};
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_caeg *PdfPage )GetPageDict ()*_egg .PdfObjectDictionary {_bdeaa :=_caeg ._fgfd ;_bdeaa .Clear ();_bdeaa .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067\u0065"));_bdeaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_caeg .Parent );
|
||
if _caeg .LastModified !=nil {_bdeaa .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_caeg .LastModified .ToPdfObject ());};if _caeg .Resources !=nil {_bdeaa .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_caeg .Resources .ToPdfObject ());
|
||
};if _caeg .CropBox !=nil {_bdeaa .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_caeg .CropBox .ToPdfObject ());};if _caeg .MediaBox !=nil {_bdeaa .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_caeg .MediaBox .ToPdfObject ());};if _caeg .BleedBox !=nil {_bdeaa .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_caeg .BleedBox .ToPdfObject ());
|
||
};if _caeg .TrimBox !=nil {_bdeaa .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_caeg .TrimBox .ToPdfObject ());};if _caeg .ArtBox !=nil {_bdeaa .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_caeg .ArtBox .ToPdfObject ());};_bdeaa .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_caeg .BoxColorInfo );
|
||
_bdeaa .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_caeg .Contents );if _caeg .Rotate !=nil {_bdeaa .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_egg .MakeInteger (*_caeg .Rotate ));};_bdeaa .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_caeg .Group );
|
||
_bdeaa .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_caeg .Thumb );_bdeaa .SetIfNotNil ("\u0042",_caeg .B );_bdeaa .SetIfNotNil ("\u0044\u0075\u0072",_caeg .Dur );_bdeaa .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_caeg .Trans );_bdeaa .SetIfNotNil ("\u0041\u0041",_caeg .AA );
|
||
_bdeaa .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_caeg .Metadata );_bdeaa .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_caeg .PieceInfo );_bdeaa .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_caeg .StructParents );
|
||
_bdeaa .SetIfNotNil ("\u0049\u0044",_caeg .ID );_bdeaa .SetIfNotNil ("\u0050\u005a",_caeg .PZ );_bdeaa .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_caeg .SeparationInfo );_bdeaa .SetIfNotNil ("\u0054\u0061\u0062\u0073",_caeg .Tabs );
|
||
_bdeaa .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_caeg .TemplateInstantiated );_bdeaa .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_caeg .PresSteps );_bdeaa .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_caeg .UserUnit );
|
||
_bdeaa .SetIfNotNil ("\u0056\u0050",_caeg .VP );if _caeg ._bcce !=nil {_fcggg :=_egg .MakeArray ();for _ ,_caag :=range _caeg ._bcce {if _daecg :=_caag .GetContext ();_daecg !=nil {_fcggg .Append (_daecg .ToPdfObject ());}else {_fcggg .Append (_caag .ToPdfObject ());
|
||
};};if _fcggg .Len ()> 0{_bdeaa .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fcggg );};}else if _caeg .Annots !=nil {_bdeaa .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_caeg .Annots );};return _bdeaa ;};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_gda *PdfAction )GetContext ()PdfModel {if _gda ==nil {return nil ;};return _gda ._abb ;};
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_ggde *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dffg :=pageNum -1;for _bcbb :=range _ggde ._beac {if _bcbb ==_dffg {_afff :=page .Duplicate ();_cceebc (_afff );_ggde ._beac [_bcbb ]=_afff ;};};};
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_bfe :=NewPdfAnnotation ();_edge :=&PdfAnnotationCaret {};_edge .PdfAnnotation =_bfe ;_edge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfe .SetContext (_edge );return _edge ;};
|
||
|
||
// 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 ,_gdaaa :_egg .MakeDict ()};
|
||
};
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_gc :=NewPdfAction ();_gac :=&PdfActionHide {};_gac .PdfAction =_gc ;_gc .SetContext (_gac );return _gac ;};
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_ccdg *PdfFieldButton )ToPdfObject ()_egg .PdfObject {_ccdg .PdfField .ToPdfObject ();_ffba :=_ccdg ._agef ;_eafc :=_ffba .PdfObject .(*_egg .PdfObjectDictionary );_eafc .Set ("\u0046\u0054",_egg .MakeName ("\u0042\u0074\u006e"));if _ccdg .Opt !=nil {_eafc .Set ("\u004f\u0070\u0074",_ccdg .Opt );
|
||
};return _ffba ;};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_caec *PdfSignature )SetReason (reason string ){_caec .Reason =_egg .MakeString (reason )};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_aecf *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_gfgf :=0.3*_aecf .R ()+0.59*_aecf .G ()+0.11*_aecf .B ();_gfgf =_dgb .Min (_dgb .Max (_gfgf ,0.0),1.0);return NewPdfColorDeviceGray (_gfgf );};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_eabcg *OutlineItem )Insert (index uint ,item *OutlineItem ){_egee :=uint (len (_eabcg .Entries ));if index > _egee {index =_egee ;};_eabcg .Entries =append (_eabcg .Entries [:index ],append ([]*OutlineItem {item },_eabcg .Entries [index :]...)...);
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_eacb *PdfShading )GetContainingPdfObject ()_egg .PdfObject {return _eacb ._cfdbd };
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_eeffg *PdfReader )GetNumPages ()(int ,error ){if _eeffg ._dafgab .GetCrypter ()!=nil &&!_eeffg ._dafgab .IsAuthenticated (){return 0,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};return len (_eeffg ._abgbc ),nil ;};type pdfFontSimple struct{fontCommon ;_efde *_egg .PdfIndirectObject ;_babec map[_ef .CharCode ]float64 ;_cbdegf _ef .TextEncoder ;_cdee _ef .TextEncoder ;_dbbfc *PdfFontDescriptor ;
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _egg .PdfObject ;LastChar _egg .PdfObject ;Widths _egg .PdfObject ;Encoding _egg .PdfObject ;_dddd *_bgd .RuneCharSafeMap ;};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_ecaca *PdfPage )HasExtGState (name _egg .PdfObjectName )bool {if _ecaca .Resources ==nil {return false ;};if _ecaca .Resources .ExtGState ==nil {return false ;};_efca ,_fggfa :=_egg .TraceToDirectObject (_ecaca .Resources .ExtGState ).(*_egg .PdfObjectDictionary );
|
||
if !_fggfa {_bag .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",_egg .TraceToDirectObject (_ecaca .Resources .ExtGState ));
|
||
return false ;};_afdba :=_efca .Get (name );_agefa :=_afdba !=nil ;return _agefa ;};func (_dbba *PdfReader )newPdfActionJavaScriptFromDict (_abac *_egg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_abac .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_bbdgga *PdfField )SetFlag (flag FieldFlag ){_bbdgga .Ff =_egg .MakeInteger (int64 (flag ))};
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _egg .PdfObject ;Sy _egg .PdfObject ;};
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _egg .PdfObject ;LE _egg .PdfObject ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;IT _egg .PdfObject ;Measure _egg .PdfObject ;};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _egg .PdfObject ;Mac _egg .PdfObject ;Unix _egg .PdfObject ;NewWindow _egg .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbcg *PdfAnnotationSquare )ToPdfObject ()_egg .PdfObject {_fbcg .PdfAnnotation .ToPdfObject ();_egaf :=_fbcg ._cef ;_dgf :=_egaf .PdfObject .(*_egg .PdfObjectDictionary );if _fbcg .PdfAnnotationMarkup !=nil {_fbcg .PdfAnnotationMarkup .appendToPdfDictionary (_dgf );
|
||
};_dgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_dgf .SetIfNotNil ("\u0042\u0053",_fbcg .BS );_dgf .SetIfNotNil ("\u0049\u0043",_fbcg .IC );_dgf .SetIfNotNil ("\u0042\u0045",_fbcg .BE );
|
||
_dgf .SetIfNotNil ("\u0052\u0044",_fbcg .RD );return _egaf ;};
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};
|
||
|
||
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
|
||
func (_cedb *PdfReader )GetCatalogStructTreeRoot ()(_egg .PdfObject ,bool ){if _cedb ._eacf ==nil {return nil ,false ;};_bdebf :=_cedb ._eacf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _bdebf ,_bdebf !=nil ;
|
||
};
|
||
|
||
// Optimizer is the interface that performs optimization of PDF object structure for output writing.
|
||
//
|
||
// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
|
||
// output the optimized slice of objects.
|
||
type Optimizer interface{Optimize (_bgbcb []_egg .PdfObject )([]_egg .PdfObject ,error );};func _geeb (_abcag *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_abcag }};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_fcac *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_bcbf ,_afee :=color .(*PdfColorDeviceGray );if !_afee {_bag .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 ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_bcbf ),float64 (*_bcbf ),float64 (*_bcbf )),nil ;};func _ebfda (_gfed _egg .PdfObject ,_gfgeb *fontCommon )(*_ga .CMap ,error ){_cfga ,_ffeb :=_egg .GetStream (_gfed );
|
||
if !_ffeb {_bag .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",_gfed );
|
||
return nil ,_egg .ErrTypeError ;};_gfdfe ,_deef :=_egg .DecodeStream (_cfga );if _deef !=nil {return nil ,_deef ;};_gedaa ,_deef :=_ga .LoadCmapFromData (_gfdfe ,!_gfgeb .isCIDFont ());if _deef !=nil {_bag .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",_cfga .ObjectNumber ,_deef );
|
||
};return _gedaa ,_deef ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_abdc *pdfFontType0 )ToPdfObject ()_egg .PdfObject {if _abdc ._ebdc ==nil {_abdc ._ebdc =&_egg .PdfIndirectObject {};};_gcga :=_abdc .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_abdc ._ebdc .PdfObject =_gcga ;if _abdc .Encoding !=nil {_gcga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abdc .Encoding );
|
||
}else if _abdc ._bfddc !=nil {_gcga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_abdc ._bfddc .ToPdfObject ());};if _abdc .DescendantFont !=nil {_gcga .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_egg .MakeArray (_abdc .DescendantFont .ToPdfObject ()));
|
||
};return _abdc ._ebdc ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_dffeg *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adfa ,_aacb :=_egg .GetNumbersAsFloat (objects );
|
||
if _aacb !=nil {return nil ,_aacb ;};return _dffeg .ColorFromFloats (_adfa );};
|
||
|
||
// String returns a string representation of the field.
|
||
func (_fcbac *PdfField )String ()string {if _cege ,_fbdac :=_fcbac .ToPdfObject ().(*_egg .PdfIndirectObject );_fbdac {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fcbac ._gbdee ,_cege .PdfObject .String ());};return "";};
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_ddfc *PdfInfo )GetCustomInfo (name string )*_egg .PdfObjectString {var _egfc *_egg .PdfObjectString ;if _ddfc ._eggg ==nil {return _egfc ;};if _gfce ,_bagec :=_ddfc ._eggg .Get (*_egg .MakeName (name )).(*_egg .PdfObjectString );_bagec {_egfc =_gfce ;
|
||
};return _egfc ;};type pdfCIDFontType0 struct{fontCommon ;_aebag *_egg .PdfIndirectObject ;_dafeb _ef .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_egg .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _egg .PdfObject ;W _egg .PdfObject ;DW2 _egg .PdfObject ;W2 _egg .PdfObject ;_decd map[_ef .CharCode ]float64 ;_afdcf float64 ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gcgc *PdfAnnotationText )ToPdfObject ()_egg .PdfObject {_gcgc .PdfAnnotation .ToPdfObject ();_bgfa :=_gcgc ._cef ;_adcf :=_bgfa .PdfObject .(*_egg .PdfObjectDictionary );if _gcgc .PdfAnnotationMarkup !=nil {_gcgc .PdfAnnotationMarkup .appendToPdfDictionary (_adcf );
|
||
};_adcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0054\u0065\u0078\u0074"));_adcf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gcgc .Open );_adcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gcgc .Name );_adcf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_gcgc .State );
|
||
_adcf .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_gcgc .StateModel );return _bgfa ;};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_aeff FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_aeff .Mask ()&^fl .Mask ())};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_edbg *PdfField )GetContext ()PdfModel {return _edbg ._gbdee };func _ggeed ()string {_cgag .Lock ();defer _cgag .Unlock ();if len (_cefff )> 0{return _cefff ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
|
||
};func (_fcc *PdfReader )newPdfActionSetOCGStateFromDict (_agd *_egg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_agd .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_agd .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};func (_gedcd *PdfReader )newPdfFieldSignatureFromDict (_adgb *_egg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_acbe :=&PdfFieldSignature {};_fbgb ,_abgbb :=_egg .GetIndirect (_adgb .Get ("\u0056"));if _abgbb {var _gagb error ;_acbe .V ,_gagb =_gedcd .newPdfSignatureFromIndirect (_fbgb );
|
||
if _gagb !=nil {return nil ,_gagb ;};};_acbe .Lock ,_ =_egg .GetIndirect (_adgb .Get ("\u004c\u006f\u0063\u006b"));_acbe .SV ,_ =_egg .GetIndirect (_adgb .Get ("\u0053\u0056"));return _acbe ,nil ;};type fontCommon struct{_dgfdc string ;_ebdf string ;_cbgce string ;
|
||
_gdbae _egg .PdfObject ;_bfbgf *_ga .CMap ;_bgacg *PdfFontDescriptor ;_ccaae int64 ;};
|
||
|
||
// 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 (_gcdeg *_dc .Document )error ;};func _baff (_deeb map[_bgd .GID ]int ,_gdbb uint16 )*_egg .PdfObjectArray {_bfbb :=&_egg .PdfObjectArray {};_dfff :=_bgd .GID (_gdbb );for _gddab :=_bgd .GID (0);_gddab < _dfff ;
|
||
{_ccgag ,_ebgdd :=_deeb [_gddab ];if !_ebgdd {_gddab ++;continue ;};_decde :=_gddab ;for _gagbg :=_decde +1;_gagbg < _dfff ;_gagbg ++{if _dcad ,_aeae :=_deeb [_gagbg ];!_aeae ||_ccgag !=_dcad {break ;};_decde =_gagbg ;};_bfbb .Append (_egg .MakeInteger (int64 (_gddab )));
|
||
_bfbb .Append (_egg .MakeInteger (int64 (_decde )));_bfbb .Append (_egg .MakeInteger (int64 (_ccgag )));_gddab =_decde +1;};return _bfbb ;};
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_aeba *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func (_ggdca *PdfWriter )getPdfVersion ()string {return _f .Sprintf ("\u0025\u0064\u002e%\u0064",_ggdca ._dacce .Major ,_ggdca ._dacce .Minor );};
|
||
|
||
// 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 ;};
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_feeagc DefaultImageHandler )NewImageFromGoImage (goimg _cd .Image )(*Image ,error ){_afcaf ,_caad :=_eg .FromGoImage (goimg );if _caad !=nil {return nil ,_caad ;};_aecdc :=_cggba (_afcaf .Base ());return &_aecdc ,nil ;};
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;DS *_egg .PdfObjectString ;RV _egg .PdfObject ;MaxLen *_egg .PdfObjectInteger ;};
|
||
|
||
// 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{_eaceg *_egg .PdfIndirectObject ;Certs []*_egg .PdfObjectStream ;OCSPs []*_egg .PdfObjectStream ;CRLs []*_egg .PdfObjectStream ;VRI map[string ]*VRI ;_gafe map[string ]*_egg .PdfObjectStream ;_gaaec map[string ]*_egg .PdfObjectStream ;_eeecd map[string ]*_egg .PdfObjectStream ;
|
||
};
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_fcdc *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _fcdc ._aafea ==nil {_fcdc ._aafea =_cde .NewPSExecutor (_fcdc .Program );};var _afbg []_cde .PSObject ;for _ ,_bcfdg :=range xVec {_afbg =append (_afbg ,_cde .MakeReal (_bcfdg ));
|
||
};_dddgf ,_abec :=_fcdc ._aafea .Execute (_afbg );if _abec !=nil {return nil ,_abec ;};_cabgdc ,_abec :=_cde .PSObjectArrayToFloat64Array (_dddgf );if _abec !=nil {return nil ,_abec ;};return _cabgdc ,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 (_edafc *PdfFont )SubsetRegistered ()error {switch _abeg :=_edafc ._edde .(type ){case *pdfFontType0 :_daea :=_abeg .subsetRegistered ();if _daea !=nil {_bag .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_daea );
|
||
return _daea ;};if _abeg ._ebdc !=nil {if _abeg ._bfddc !=nil {_abeg ._bfddc .ToPdfObject ();};_abeg .ToPdfObject ();};default:_bag .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",_abeg );
|
||
};return nil ;};func (_afedd *PdfReader )resolveReference (_ebfgd *_egg .PdfObjectReference )(_egg .PdfObject ,bool ,error ){_aagfd ,_eagff :=_afedd ._dafgab .ObjCache [int (_ebfgd .ObjectNumber )];if !_eagff {_bag .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ebfgd );
|
||
_edddd ,_dcaa :=_afedd ._dafgab .LookupByReference (*_ebfgd );if _dcaa !=nil {return nil ,false ,_dcaa ;};_afedd ._dafgab .ObjCache [int (_ebfgd .ObjectNumber )]=_edddd ;return _edddd ,false ,nil ;};return _aagfd ,true ,nil ;};type fontFile struct{_ebfa string ;
|
||
_eecf string ;_gdcd _ef .SimpleEncoder ;};
|
||
|
||
// 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 ()_egg .PdfObject ;GetContainingPdfObject ()_egg .PdfObject ;};func _eebf (_cefe *XObjectImage )error {if _cefe .SMask ==nil {return nil ;};_acfcb ,_baaa :=_cefe .SMask .(*_egg .PdfObjectStream );if !_baaa {_bag .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 _egg .ErrTypeError ;};_bdggg :=_acfcb .PdfObjectDictionary ;_geaeb :=_bdggg .Get ("\u004d\u0061\u0074t\u0065");if _geaeb ==nil {return nil ;};_ccfa ,_gada :=_eecfg (_geaeb .(*_egg .PdfObjectArray ));if _gada !=nil {return _gada ;};_gagac :=_egg .MakeArrayFromFloats ([]float64 {_ccfa });
|
||
_bdggg .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_gagac );return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cdaa *PdfAnnotationRedact )ToPdfObject ()_egg .PdfObject {_cdaa .PdfAnnotation .ToPdfObject ();_gaeb :=_cdaa ._cef ;_fccf :=_gaeb .PdfObject .(*_egg .PdfObjectDictionary );_cdaa .PdfAnnotationMarkup .appendToPdfDictionary (_fccf );_fccf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_fccf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cdaa .QuadPoints );_fccf .SetIfNotNil ("\u0049\u0043",_cdaa .IC );_fccf .SetIfNotNil ("\u0052\u004f",_cdaa .RO );_fccf .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_cdaa .OverlayText );
|
||
_fccf .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_cdaa .Repeat );_fccf .SetIfNotNil ("\u0044\u0041",_cdaa .DA );_fccf .SetIfNotNil ("\u0051",_cdaa .Q );return _gaeb ;};func _eddee (_eegbf _egg .PdfObject ){_bag .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eegbf ,_eegbf .String ());
|
||
if _cfdbge ,_faaca :=_eegbf .(*_egg .PdfObjectStream );_faaca {_cadgg ,_gfbdc :=_egg .DecodeStream (_cfdbge );if _gfbdc !=nil {_bag .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_gfbdc );return ;};_bag .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_cadgg );
|
||
}else if _ceec ,_dbgab :=_eegbf .(*_egg .PdfIndirectObject );_dbgab {_bag .Log .Debug ("\u0025\u0054\u0020%\u0076",_ceec .PdfObject ,_ceec .PdfObject );_bag .Log .Debug ("\u0025\u0073",_ceec .PdfObject .String ());};};
|
||
|
||
// 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 ;_fgea _egg .ParserMetadata ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_fgfcd *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_fgfcd .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fcbbg ,_bbad :=_fgfcd .TintTransform .Evaluate (vals );
|
||
if _bbad !=nil {return nil ,_bbad ;};_ggbe ,_bbad :=_fgfcd .AlternateSpace .ColorFromFloats (_fcbbg );if _bbad !=nil {return nil ,_bbad ;};return _ggbe ,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 (_fgadb *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbe ,_cceaf :=color .(*PdfColorPattern );if !_cceaf {_bag .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 _bbe .Color ==nil {return color ,nil ;};if _fgadb .UnderlyingCS ==nil {return nil ,_gd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _fgadb .UnderlyingCS .ColorToRGB (_bbe .Color );
|
||
};
|
||
|
||
// GetNamedDestinations returns the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_fabfd *PdfReader )GetNamedDestinations ()(_egg .PdfObject ,error ){_dbdb :=_egg .ResolveReference (_fabfd ._eacf .Get ("\u0044\u0065\u0073t\u0073"));if _dbdb ==nil {return nil ,nil ;};if !_fabfd ._cede {_fggbc :=_fabfd .traverseObjectData (_dbdb );
|
||
if _fggbc !=nil {return nil ,_fggbc ;};};return _dbdb ,nil ;};
|
||
|
||
// 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 (_dbeb *PdfColorspaceLab )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acfe ,_adeg :=_egg .GetNumbersAsFloat (objects );
|
||
if _adeg !=nil {return nil ,_adeg ;};return _dbeb .ColorFromFloats (_acfe );};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_ecfd pdfCIDFontType0 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){return _bgd .CharMetrics {Wx :_ecfd ._afdcf },true ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_abedc *PdfFunctionType2 )ToPdfObject ()_egg .PdfObject {_ccgad :=_egg .MakeDict ();_ccgad .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (2));_gbgbd :=&_egg .PdfObjectArray {};for _ ,_fdddad :=range _abedc .Domain {_gbgbd .Append (_egg .MakeFloat (_fdddad ));
|
||
};_ccgad .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbgbd );if _abedc .Range !=nil {_cbade :=&_egg .PdfObjectArray {};for _ ,_daadd :=range _abedc .Range {_cbade .Append (_egg .MakeFloat (_daadd ));};_ccgad .Set ("\u0052\u0061\u006eg\u0065",_cbade );
|
||
};if _abedc .C0 !=nil {_fggcf :=&_egg .PdfObjectArray {};for _ ,_cdeab :=range _abedc .C0 {_fggcf .Append (_egg .MakeFloat (_cdeab ));};_ccgad .Set ("\u0043\u0030",_fggcf );};if _abedc .C1 !=nil {_gbafg :=&_egg .PdfObjectArray {};for _ ,_cggbf :=range _abedc .C1 {_gbafg .Append (_egg .MakeFloat (_cggbf ));
|
||
};_ccgad .Set ("\u0043\u0031",_gbafg );};_ccgad .Set ("\u004e",_egg .MakeFloat (_abedc .N ));if _abedc ._ffcfb !=nil {_abedc ._ffcfb .PdfObject =_ccgad ;return _abedc ._ffcfb ;};return _ccgad ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_fbcfa *PdfFunctionType4 )ToPdfObject ()_egg .PdfObject {_beee :=_fbcfa ._cbebd ;if _beee ==nil {_fbcfa ._cbebd =&_egg .PdfObjectStream {};_beee =_fbcfa ._cbebd ;};_deecbb :=_egg .MakeDict ();_deecbb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (4));
|
||
_efgac :=&_egg .PdfObjectArray {};for _ ,_fdeca :=range _fbcfa .Domain {_efgac .Append (_egg .MakeFloat (_fdeca ));};_deecbb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_efgac );_ffec :=&_egg .PdfObjectArray {};for _ ,_aaffa :=range _fbcfa .Range {_ffec .Append (_egg .MakeFloat (_aaffa ));
|
||
};_deecbb .Set ("\u0052\u0061\u006eg\u0065",_ffec );if _fbcfa ._fafff ==nil &&_fbcfa .Program !=nil {_fbcfa ._fafff =[]byte (_fbcfa .Program .String ());};_deecbb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_fbcfa ._fafff ))));
|
||
_beee .Stream =_fbcfa ._fafff ;_beee .PdfObjectDictionary =_deecbb ;return _beee ;};var _efdg =_bae .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_efdb *PdfPageResources )GetExtGState (keyName _egg .PdfObjectName )(_egg .PdfObject ,bool ){if _efdb .ExtGState ==nil {return nil ,false ;};_bfbdc ,_efbfb :=_egg .TraceToDirectObject (_efdb .ExtGState ).(*_egg .PdfObjectDictionary );if !_efbfb {_bag .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",_efdb .ExtGState );
|
||
return nil ,false ;};if _cgdg :=_bfbdc .Get (keyName );_cgdg !=nil {return _cgdg ,true ;};return nil ,false ;};
|
||
|
||
// 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 (_eggd *pdfFontSimple )SetEncoder (encoder _ef .TextEncoder ){_eggd ._cbdegf =encoder };func (_fcdd *Image )resampleLowBits (_edeaf []uint32 ){_gede :=_eg .BytesPerLine (int (_fcdd .Width ),int (_fcdd .BitsPerComponent ),_fcdd .ColorComponents );_daeca :=make ([]byte ,_fcdd .ColorComponents *_gede *int (_fcdd .Height ));
|
||
_bfab :=int (_fcdd .BitsPerComponent )*_fcdd .ColorComponents *int (_fcdd .Width );_aeagf :=uint8 (8);var (_bbaee ,_gaggd int ;_gdfb uint32 ;);for _gbcf :=0;_gbcf < int (_fcdd .Height );_gbcf ++{_gaggd =_gbcf *_gede ;for _acdac :=0;_acdac < _bfab ;_acdac ++{_gdfb =_edeaf [_bbaee ];
|
||
_aeagf -=uint8 (_fcdd .BitsPerComponent );_daeca [_gaggd ]|=byte (_gdfb )<<_aeagf ;if _aeagf ==0{_aeagf =8;_gaggd ++;};_bbaee ++;};};_fcdd .Data =_daeca ;};var _ pdfFont =(*pdfFontType3 )(nil );
|
||
|
||
// 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 (_ecdae *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _eadb []*PdfField ;if _ecdae .AcroForm !=nil {_eadb =_ecdae .AcroForm .AllFields ();};_bgaaa :=make (map[*PdfField ]struct{},len (_eadb ));for _ ,_baab :=range _eadb {_bgaaa [_baab ]=struct{}{};
|
||
};for _ ,_fedbc :=range _ecdae .PageList {_efcae ,_ceeed :=_fedbc .GetAnnotations ();if _ceeed !=nil {return false ,_ceeed ;};for _ ,_fecac :=range _efcae {_ceaef ,_edagf :=_fecac .GetContext ().(*PdfAnnotationWidget );if !_edagf {continue ;};_eebe :=_ceaef .Field ();
|
||
if _eebe ==nil {return true ,nil ;};if _ ,_gefdf :=_bgaaa [_eebe ];!_gefdf {return true ,nil ;};};};return false ,nil ;};func (_gfabe *PdfFilespec )getDict ()*_egg .PdfObjectDictionary {if _edgc ,_cbeb :=_gfabe ._fbdd .(*_egg .PdfIndirectObject );_cbeb {_adbfe ,_badab :=_edgc .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_badab {return nil ;};return _adbfe ;}else if _abbf ,_cegaa :=_gfabe ._fbdd .(*_egg .PdfObjectDictionary );_cegaa {return _abbf ;}else {_bag .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",_gfabe ._fbdd );
|
||
return nil ;};};func _dgagb (_bafeaf []*_egg .PdfObjectStream )*_egg .PdfObjectArray {if len (_bafeaf )==0{return nil ;};_cgbc :=make ([]_egg .PdfObject ,0,len (_bafeaf ));for _ ,_fdddb :=range _bafeaf {_cgbc =append (_cgbc ,_fdddb );};return _egg .MakeArray (_cgbc ...);
|
||
};
|
||
|
||
// 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 *_egg .PdfObjectArray ;ExtGState _egg .PdfObject ;};
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_ebfef *modelManager )GetModelFromPrimitive (primitive _egg .PdfObject )PdfModel {model ,_bcggc :=_ebfef ._ggbg [primitive ];if !_bcggc {return nil ;};return model ;};
|
||
|
||
// 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 _egg .PdfObject ;FontFamily _egg .PdfObject ;FontStretch _egg .PdfObject ;FontWeight _egg .PdfObject ;Flags _egg .PdfObject ;FontBBox _egg .PdfObject ;ItalicAngle _egg .PdfObject ;Ascent _egg .PdfObject ;Descent _egg .PdfObject ;
|
||
Leading _egg .PdfObject ;CapHeight _egg .PdfObject ;XHeight _egg .PdfObject ;StemV _egg .PdfObject ;StemH _egg .PdfObject ;AvgWidth _egg .PdfObject ;MaxWidth _egg .PdfObject ;MissingWidth _egg .PdfObject ;FontFile _egg .PdfObject ;FontFile2 _egg .PdfObject ;
|
||
FontFile3 _egg .PdfObject ;CharSet _egg .PdfObject ;_adfdfe int ;_eedab float64 ;*fontFile ;_eccg *_bgd .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _egg .PdfObject ;Lang _egg .PdfObject ;FD _egg .PdfObject ;CIDSet _egg .PdfObject ;_faeb *_egg .PdfIndirectObject ;};
|
||
|
||
// 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 (_dfadd int ,_cbbfc *PdfPage );func (_eebg *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_cgf :=NewPdfAction ();_egb :=&PdfActionGoTo {};_egb .PdfAction =_cgf ;_cgf .SetContext (_egb );return _egb ;};type pdfFont interface{_bgd .Font ;
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_egg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_ecga *PdfColorCalRGB )C ()float64 {return _ecga [2]};
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _egg .PdfObject )(*PdfFilespec ,error ){_fdfff :=&PdfFilespec {};var _gdff *_egg .PdfObjectDictionary ;if _cecgf ,_afbb :=_egg .GetIndirect (obj );_afbb {_fdfff ._fbdd =_cecgf ;_bcgd ,_fceb :=_egg .GetDict (_cecgf .PdfObject );
|
||
if !_fceb {_bag .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 ,_egg .ErrTypeError ;};_gdff =_bcgd ;}else if _fabc ,_dbede :=_egg .GetDict (obj );
|
||
_dbede {_fdfff ._fbdd =_fabc ;_gdff =_fabc ;}else {_bag .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 ,_egg .ErrTypeError ;};if _gdff ==nil {_bag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,_gd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _aecd :=_gdff .Get ("\u0054\u0079\u0070\u0065");_aecd !=nil {_dfdf ,_cbbb :=_aecd .(*_egg .PdfObjectName );if !_cbbb {_bag .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",_aecd );
|
||
}else {if *_dfdf !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_bag .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",*_dfdf );
|
||
};};};if _ffbg :=_gdff .Get ("\u0046\u0053");_ffbg !=nil {_fdfff .FS =_ffbg ;};if _gebf :=_gdff .Get ("\u0046");_gebf !=nil {_fdfff .F =_gebf ;};if _egfeb :=_gdff .Get ("\u0055\u0046");_egfeb !=nil {_fdfff .UF =_egfeb ;};if _efgf :=_gdff .Get ("\u0044\u004f\u0053");
|
||
_efgf !=nil {_fdfff .DOS =_efgf ;};if _bfbc :=_gdff .Get ("\u004d\u0061\u0063");_bfbc !=nil {_fdfff .Mac =_bfbc ;};if _bdef :=_gdff .Get ("\u0055\u006e\u0069\u0078");_bdef !=nil {_fdfff .Unix =_bdef ;};if _dbgde :=_gdff .Get ("\u0049\u0044");_dbgde !=nil {_fdfff .ID =_dbgde ;
|
||
};if _adaf :=_gdff .Get ("\u0056");_adaf !=nil {_fdfff .V =_adaf ;};if _eafcd :=_gdff .Get ("\u0045\u0046");_eafcd !=nil {_fdfff .EF =_eafcd ;};if _agbe :=_gdff .Get ("\u0052\u0046");_agbe !=nil {_fdfff .RF =_agbe ;};if _agge :=_gdff .Get ("\u0044\u0065\u0073\u0063");
|
||
_agge !=nil {_fdfff .Desc =_agge ;};if _fgag :=_gdff .Get ("\u0043\u0049");_fgag !=nil {_fdfff .CI =_fgag ;};return _fdfff ,nil ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_bcae *PdfColorLab )B ()float64 {return _bcae [2]};func (_egbb *PdfFont )baseFields ()*fontCommon {if _egbb ._edde ==nil {_bag .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 _egbb ._edde .baseFields ();};func (_aadg *PdfPage )setContainer (_fdggad *_egg .PdfIndirectObject ){_fdggad .PdfObject =_aadg ._fgfd ;_aadg ._dfee =_fdggad ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbff *PdfAnnotationMovie )ToPdfObject ()_egg .PdfObject {_cbff .PdfAnnotation .ToPdfObject ();_fgce :=_cbff ._cef ;_adbc :=_fgce .PdfObject .(*_egg .PdfObjectDictionary );_adbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_adbc .SetIfNotNil ("\u0054",_cbff .T );_adbc .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_cbff .Movie );_adbc .SetIfNotNil ("\u0041",_cbff .A );return _fgce ;};
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_aeg :=NewPdfAnnotation ();_edea :=&PdfAnnotationText {};_edea .PdfAnnotation =_aeg ;_edea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeg .SetContext (_edea );return _edea ;};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_egg .PdfObjectStream )(*XObjectForm ,error ){_fdbcc :=&XObjectForm {};_fdbcc ._acgef =stream ;_cefgd :=*(stream .PdfObjectDictionary );_bafab ,_fddf :=_egg .NewEncoderFromStream (stream );if _fddf !=nil {return nil ,_fddf ;
|
||
};_fdbcc .Filter =_bafab ;if _bagdf :=_cefgd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_bagdf !=nil {_dgeac ,_baaba :=_bagdf .(*_egg .PdfObjectName );if !_baaba {return nil ,_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_dgeac !="\u0046\u006f\u0072\u006d"{_bag .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _ggedf :=_cefgd .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_ggedf !=nil {_fdbcc .FormType =_ggedf ;};if _gcfbc :=_cefgd .Get ("\u0042\u0042\u006f\u0078");_gcfbc !=nil {_fdbcc .BBox =_gcfbc ;};if _cffadb :=_cefgd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_cffadb !=nil {_fdbcc .Matrix =_cffadb ;};if _afefe :=_cefgd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_afefe !=nil {_afefe =_egg .TraceToDirectObject (_afefe );_fcdce ,_abgae :=_afefe .(*_egg .PdfObjectDictionary );if !_abgae {_bag .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 ,_egg .ErrTypeError ;};_defbe ,_fdag :=NewPdfPageResourcesFromDict (_fcdce );if _fdag !=nil {_bag .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 ,_fdag ;};_fdbcc .Resources =_defbe ;_bag .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_fdbcc .Resources );};_fdbcc .Group =_cefgd .Get ("\u0047\u0072\u006fu\u0070");
|
||
_fdbcc .Ref =_cefgd .Get ("\u0052\u0065\u0066");_fdbcc .MetaData =_cefgd .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_fdbcc .PieceInfo =_cefgd .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fdbcc .LastModified =_cefgd .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_fdbcc .StructParent =_cefgd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fdbcc .StructParents =_cefgd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_fdbcc .OPI =_cefgd .Get ("\u004f\u0050\u0049");
|
||
_fdbcc .OC =_cefgd .Get ("\u004f\u0043");_fdbcc .Name =_cefgd .Get ("\u004e\u0061\u006d\u0065");_fdbcc .Stream =stream .Stream ;return _fdbcc ,nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cbdeg *PdfFont )Encoder ()_ef .TextEncoder {_dgdb :=_cbdeg .actualFont ();if _dgdb ==nil {_bag .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",_cbdeg ._edde );
|
||
return nil ;};return _dgdb .Encoder ();};
|
||
|
||
// 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 ;
|
||
|
||
// 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 ){_bfbdf ,_aacfd :=_ce .ParsePdfTime (dateStr );if _aacfd !=nil {return PdfDate {},_aacfd ;};return NewPdfDateFromTime (_bfbdf );};func (_faefc *fontFile )loadFromSegments (_dedd ,_abed []byte )error {_bag .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_dedd ),len (_abed ));
|
||
_abdeg :=_faefc .parseASCIIPart (_dedd );if _abdeg !=nil {return _abdeg ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_faefc );if len (_abed )==0{return nil ;};_bag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_faefc );
|
||
return nil ;};
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_egcg *PdfColorLab )L ()float64 {return _egcg [0]};
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_agef :_egg .MakeIndirectObject (_egg .MakeDict ())}};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_dfeg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _dfeg .UnderlyingCS ==nil {return nil ,_gd .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 _dfeg .UnderlyingCS .ColorFromFloats (vals );};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_fgaab *PdfShadingType7 )ToPdfObject ()_egg .PdfObject {_fgaab .PdfShading .ToPdfObject ();_cabbc ,_gacdb :=_fgaab .getShadingDict ();if _gacdb !=nil {_bag .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 _fgaab .BitsPerCoordinate !=nil {_cabbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fgaab .BitsPerCoordinate );};if _fgaab .BitsPerComponent !=nil {_cabbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fgaab .BitsPerComponent );
|
||
};if _fgaab .BitsPerFlag !=nil {_cabbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fgaab .BitsPerFlag );};if _fgaab .Decode !=nil {_cabbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fgaab .Decode );};if _fgaab .Function !=nil {if len (_fgaab .Function )==1{_cabbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgaab .Function [0].ToPdfObject ());
|
||
}else {_bcfcg :=_egg .MakeArray ();for _ ,_fbgad :=range _fgaab .Function {_bcfcg .Append (_fbgad .ToPdfObject ());};_cabbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcfcg );};};return _fgaab ._cfdbd ;};
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_feeb *PdfAnnotationLink )ToPdfObject ()_egg .PdfObject {_feeb .PdfAnnotation .ToPdfObject ();_dbgd :=_feeb ._cef ;_eecg :=_dbgd .PdfObject .(*_egg .PdfObjectDictionary );_eecg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _feeb ._fdb !=nil &&_feeb ._fdb ._abb !=nil {_eecg .Set ("\u0041",_feeb ._fdb ._abb .ToPdfObject ());}else if _feeb .A !=nil {_eecg .Set ("\u0041",_feeb .A );};_eecg .SetIfNotNil ("\u0044\u0065\u0073\u0074",_feeb .Dest );_eecg .SetIfNotNil ("\u0048",_feeb .H );
|
||
_eecg .SetIfNotNil ("\u0050\u0041",_feeb .PA );_eecg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_feeb .QuadPoints );_eecg .SetIfNotNil ("\u0042\u0053",_feeb .BS );return _dbgd ;};func (_eeca *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bbff *_egg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_aaeb :=PdfAnnotationFileAttachment {};
|
||
_daeg ,_abg :=_eeca .newPdfAnnotationMarkupFromDict (_bbff );if _abg !=nil {return nil ,_abg ;};_aaeb .PdfAnnotationMarkup =_daeg ;_aaeb .FS =_bbff .Get ("\u0046\u0053");_aaeb .Name =_bbff .Get ("\u004e\u0061\u006d\u0065");return &_aaeb ,nil ;};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_gcf PdfModel ;Rect _egg .PdfObject ;Contents _egg .PdfObject ;P _egg .PdfObject ;NM _egg .PdfObject ;M _egg .PdfObject ;F _egg .PdfObject ;AP _egg .PdfObject ;AS _egg .PdfObject ;Border _egg .PdfObject ;C _egg .PdfObject ;StructParent _egg .PdfObject ;
|
||
OC _egg .PdfObject ;_cef *_egg .PdfIndirectObject ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_dfeaa *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_dfeaa .NumInputs {_bag .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 ,_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _dfeaa ._efbce ==nil {_ccbcd :=_dfeaa .processSamples ();if _ccbcd !=nil {return nil ,_ccbcd ;};};_dbcda :=_dfeaa .Encode ;if _dbcda ==nil {_dbcda =[]float64 {};
|
||
for _decbg :=0;_decbg < len (_dfeaa .Size );_decbg ++{_dbcda =append (_dbcda ,0);_dbcda =append (_dbcda ,float64 (_dfeaa .Size [_decbg ]-1));};};_cbag :=_dfeaa .Decode ;if _cbag ==nil {_cbag =_dfeaa .Range ;};_aade :=make ([]int ,len (x ));for _cgbga :=0;
|
||
_cgbga < len (x );_cgbga ++{_fdddc :=x [_cgbga ];_fgefd :=_dgb .Min (_dgb .Max (_fdddc ,_dfeaa .Domain [2*_cgbga ]),_dfeaa .Domain [2*_cgbga +1]);_cedc :=_eg .LinearInterpolate (_fgefd ,_dfeaa .Domain [2*_cgbga ],_dfeaa .Domain [2*_cgbga +1],_dbcda [2*_cgbga ],_dbcda [2*_cgbga +1]);
|
||
_bcab :=_dgb .Min (_dgb .Max (_cedc ,0),float64 (_dfeaa .Size [_cgbga ]-1));_bbce :=int (_dgb .Floor (_bcab +0.5));if _bbce < 0{_bbce =0;}else if _bbce > _dfeaa .Size [_cgbga ]{_bbce =_dfeaa .Size [_cgbga ]-1;};_aade [_cgbga ]=_bbce ;};_dcba :=_aade [0];
|
||
for _ffegd :=1;_ffegd < _dfeaa .NumInputs ;_ffegd ++{_bgdab :=_aade [_ffegd ];for _cddcgf :=0;_cddcgf < _ffegd ;_cddcgf ++{_bgdab *=_dfeaa .Size [_cddcgf ];};_dcba +=_bgdab ;};_dcba *=_dfeaa .NumOutputs ;var _ddecg []float64 ;for _cdcdf :=0;_cdcdf < _dfeaa .NumOutputs ;
|
||
_cdcdf ++{_aafab :=_dcba +_cdcdf ;if _aafab >=len (_dfeaa ._efbce ){_bag .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 ;};_bdebg :=_dfeaa ._efbce [_aafab ];_aebaa :=_eg .LinearInterpolate (float64 (_bdebg ),0,_dgb .Pow (2,float64 (_dfeaa .BitsPerSample )),_cbag [2*_cdcdf ],_cbag [2*_cdcdf +1]);_cabba :=_dgb .Min (_dgb .Max (_aebaa ,_dfeaa .Range [2*_cdcdf ]),_dfeaa .Range [2*_cdcdf +1]);
|
||
_ddecg =append (_ddecg ,_cabba );};return _ddecg ,nil ;};func (_adcea *PdfReader )newPdfOutlineItemFromIndirectObject (_ddadf *_egg .PdfIndirectObject )(*PdfOutlineItem ,error ){_afggb ,_daaaf :=_ddadf .PdfObject .(*_egg .PdfObjectDictionary );if !_daaaf {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_deaf :=NewPdfOutlineItem ();_dgedb :=_afggb .Get ("\u0054\u0069\u0074l\u0065");if _dgedb ==nil {return nil ,_f .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
|
||
};_cdegc ,_dcbag :=_egg .GetString (_dgedb );if !_dcbag {return nil ,_f .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dgedb );};_deaf .Title =_cdegc ;if _bgcbd :=_afggb .Get ("\u0043\u006f\u0075n\u0074");
|
||
_bgcbd !=nil {_dedaa ,_cfcgb :=_bgcbd .(*_egg .PdfObjectInteger );if !_cfcgb {return nil ,_f .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_bgcbd );};_ddede :=int64 (*_dedaa );
|
||
_deaf .Count =&_ddede ;};if _cdcec :=_afggb .Get ("\u0044\u0065\u0073\u0074");_cdcec !=nil {_deaf .Dest =_egg .ResolveReference (_cdcec );if !_adcea ._cede {_ecdaf :=_adcea .traverseObjectData (_deaf .Dest );if _ecdaf !=nil {return nil ,_ecdaf ;};};};if _befaa :=_afggb .Get ("\u0041");
|
||
_befaa !=nil {_deaf .A =_egg .ResolveReference (_befaa );if !_adcea ._cede {_abaf :=_adcea .traverseObjectData (_deaf .A );if _abaf !=nil {return nil ,_abaf ;};};};if _ggff :=_afggb .Get ("\u0053\u0045");_ggff !=nil {_deaf .SE =nil ;};if _beaf :=_afggb .Get ("\u0043");
|
||
_beaf !=nil {_deaf .C =_egg .ResolveReference (_beaf );};if _bdadb :=_afggb .Get ("\u0046");_bdadb !=nil {_deaf .F =_egg .ResolveReference (_bdadb );};return _deaf ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_ffcga *PdfPageResources )ToPdfObject ()_egg .PdfObject {_gbee :=_ffcga ._cbcba ;_gbee .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ffcga .ExtGState );if _ffcga ._dbbbd !=nil {_ffcga .ColorSpace =_ffcga ._dbbbd .ToPdfObject ();};
|
||
_gbee .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ffcga .ColorSpace );_gbee .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_ffcga .Pattern );_gbee .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ffcga .Shading );
|
||
_gbee .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_ffcga .XObject );_gbee .SetIfNotNil ("\u0046\u006f\u006e\u0074",_ffcga .Font );_gbee .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_ffcga .ProcSet );_gbee .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_ffcga .Properties );
|
||
return _gbee ;};
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_cadfb *PdfSignature )SetDate (date _e .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_cadfb .M =_egg .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_gccgf *PdfPage )GetAllContentStreams ()(string ,error ){_dbce ,_gfecf :=_gccgf .GetContentStreams ();if _gfecf !=nil {return "",_gfecf ;};return _fc .Join (_dbce ,"\u0020"),nil ;};
|
||
|
||
// NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it
|
||
// `basefont` is not one of the standard 14 font names.
|
||
func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_dcgc ,_adda :=_ceef (basefont );if _adda !=nil {return nil ,_adda ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_dcgc ._cbdegf =_ef .NewWinAnsiEncoder ();};return &PdfFont {_edde :&_dcgc },nil ;
|
||
};
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_abce *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _abce ._fdb !=nil {return _abce ._fdb ,nil ;};if _abce .A ==nil {return nil ,nil ;};if _abce ._efb ==nil {return nil ,nil ;};_bagfa ,_edbc :=_abce ._efb .loadAction (_abce .A );if _edbc !=nil {return nil ,_edbc ;
|
||
};_abce ._fdb =_bagfa ;return _abce ._fdb ,nil ;};
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_ceaa *PdfColorDeviceCMYK )C ()float64 {return _ceaa [0]};
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_bgbga DefaultImageHandler )NewGrayImageFromGoImage (goimg _cd .Image )(*Image ,error ){_cgaf :=goimg .Bounds ();_bddeg :=&Image {Width :int64 (_cgaf .Dx ()),Height :int64 (_cgaf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _dfbg :=goimg .(type ){case *_cd .Gray :if len (_dfbg .Pix )!=_cgaf .Dx ()*_cgaf .Dy (){_fggb ,_bfeaf :=_eg .GrayConverter .Convert (goimg );
|
||
if _bfeaf !=nil {return nil ,_bfeaf ;};_bddeg .Data =_fggb .Pix ();}else {_bddeg .Data =_dfbg .Pix ;};case *_cd .Gray16 :_bddeg .BitsPerComponent =16;if len (_dfbg .Pix )!=_cgaf .Dx ()*_cgaf .Dy ()*2{_fgefdg ,_egfeg :=_eg .Gray16Converter .Convert (goimg );
|
||
if _egfeg !=nil {return nil ,_egfeg ;};_bddeg .Data =_fgefdg .Pix ();}else {_bddeg .Data =_dfbg .Pix ;};case _eg .Image :_dgffd :=_dfbg .Base ();if _dgffd .ColorComponents ==1{_bddeg .BitsPerComponent =int64 (_dgffd .BitsPerComponent );_bddeg .Data =_dgffd .Data ;
|
||
return _bddeg ,nil ;};_abfg ,_afcf :=_eg .GrayConverter .Convert (goimg );if _afcf !=nil {return nil ,_afcf ;};_bddeg .Data =_abfg .Pix ();default:_bcgfa ,_egdee :=_eg .GrayConverter .Convert (goimg );if _egdee !=nil {return nil ,_egdee ;};_bddeg .Data =_bcgfa .Pix ();
|
||
};return _bddeg ,nil ;};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_ddgcf DefaultImageHandler )Read (reader _dag .Reader )(*Image ,error ){_eeba ,_ ,_dabce :=_cd .Decode (reader );if _dabce !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_dabce );
|
||
return nil ,_dabce ;};return _ddgcf .NewImageFromGoImage (_eeba );};type modelManager struct{_eefgc map[PdfModel ]_egg .PdfObject ;_ggbg map[_egg .PdfObject ]PdfModel ;};func (_eefg *PdfReader )newPdfActionHideFromDict (_af *_egg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_af .Get ("\u0054"),H :_af .Get ("\u0048")},nil ;
|
||
};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _egg .PdfObject ;};
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_fbcdf FieldFlag )Has (fl FieldFlag )bool {return (_fbcdf .Mask ()&fl .Mask ())> 0};
|
||
|
||
// Items returns all children outline items.
|
||
func (_fgcad *Outline )Items ()[]*OutlineItem {return _fgcad .Entries };
|
||
|
||
// GetVersion gets the document version.
|
||
func (_gdad *PdfWriter )GetVersion ()_egg .Version {return _gdad ._dacce };
|
||
|
||
// 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 (_gfcd *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acba ,_agdb :=_egg .GetNumbersAsFloat (objects );
|
||
if _agdb !=nil {return nil ,_agdb ;};return _gfcd .ColorFromFloats (_acba );};
|
||
|
||
// 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 (_gfdgb *Image )ConvertToBinary ()error {if _gfdgb .ColorComponents ==1&&_gfdgb .BitsPerComponent ==1{return nil ;};_cabe ,_bfgcb :=_gfdgb .ToGoImage ();if _bfgcb !=nil {return _bfgcb ;};_abcaa ,_bfgcb :=_eg .MonochromeConverter .Convert (_cabe );
|
||
if _bfgcb !=nil {return _bfgcb ;};_gfdgb .Data =_abcaa .Base ().Data ;_gfdgb ._fgggb ,_bfgcb =_eg .ScaleAlphaToMonochrome (_gfdgb ._fgggb ,int (_gfdgb .Width ),int (_gfdgb .Height ));if _bfgcb !=nil {return _bfgcb ;};_gfdgb .BitsPerComponent =1;_gfdgb .ColorComponents =1;
|
||
_gfdgb ._abfae =nil ;return nil ;};
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_abcb *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_egdea :=pageNum -1;var _abbe *PdfPage ;for _gaae ,_gbab :=range _abcb ._beac {if _gaae ==_egdea {_abbe =_gbab ;};};if _abbe ==nil {return _f .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
|
||
};if _abbe ._dfee !=nil &&_abbe ._dfee .GetParser ()==_abcb ._bgaa ._dafgab {_abbe =_abbe .Duplicate ();_abcb ._beac [_egdea ]=_abbe ;};page =page .Duplicate ();_cceebc (page );_egdc :=_aeac (_abbe );_egge :=_aeac (page );_fbcga :=make (map[_egg .PdfObjectName ]_egg .PdfObjectName );
|
||
for _dgfd :=range _egge {if _ ,_cggg :=_egdc [_dgfd ];_cggg {for _abfa :=1;true ;_abfa ++{_abe :=_egg .PdfObjectName (string (_dgfd )+_da .Itoa (_abfa ));if _ ,_ebb :=_egdc [_abe ];!_ebb {_fbcga [_dgfd ]=_abe ;break ;};};};};_bfcg ,_bfef :=page .GetContentStreams ();
|
||
if _bfef !=nil {return _bfef ;};_cdeg ,_bfef :=_abbe .GetContentStreams ();if _bfef !=nil {return _bfef ;};for _aaf ,_fcba :=range _bfcg {for _agg ,_cbdg :=range _fbcga {_fcba =_fc .Replace (_fcba ,"\u002f"+string (_agg ),"\u002f"+string (_cbdg ),-1);};
|
||
_bfcg [_aaf ]=_fcba ;};_cdeg =append (_cdeg ,_bfcg ...);if _bebge :=_abbe .SetContentStreams (_cdeg ,_egg .NewFlateEncoder ());_bebge !=nil {return _bebge ;};_abbe ._bcce =append (_abbe ._bcce ,page ._bcce ...);if _abbe .Resources ==nil {_abbe .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_abbe .Resources .Font =_abcb .mergeResources (_abbe .Resources .Font ,page .Resources .Font ,_fbcga );_abbe .Resources .XObject =_abcb .mergeResources (_abbe .Resources .XObject ,page .Resources .XObject ,_fbcga );_abbe .Resources .Properties =_abcb .mergeResources (_abbe .Resources .Properties ,page .Resources .Properties ,_fbcga );
|
||
if _abbe .Resources .ProcSet ==nil {_abbe .Resources .ProcSet =page .Resources .ProcSet ;};_abbe .Resources .Shading =_abcb .mergeResources (_abbe .Resources .Shading ,page .Resources .Shading ,_fbcga );_abbe .Resources .ExtGState =_abcb .mergeResources (_abbe .Resources .ExtGState ,page .Resources .ExtGState ,_fbcga );
|
||
};_gddcb ,_bfef :=_abbe .GetMediaBox ();if _bfef !=nil {return _bfef ;};_daaeb ,_bfef :=page .GetMediaBox ();if _bfef !=nil {return _bfef ;};var _bcb bool ;if _gddcb .Llx > _daaeb .Llx {_gddcb .Llx =_daaeb .Llx ;_bcb =true ;};if _gddcb .Lly > _daaeb .Lly {_gddcb .Lly =_daaeb .Lly ;
|
||
_bcb =true ;};if _gddcb .Urx < _daaeb .Urx {_gddcb .Urx =_daaeb .Urx ;_bcb =true ;};if _gddcb .Ury < _daaeb .Ury {_gddcb .Ury =_daaeb .Ury ;_bcb =true ;};if _bcb {_abbe .MediaBox =_gddcb ;};return nil ;};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_eaeb :=NewPdfAnnotation ();_ebcc :=&PdfAnnotationProjection {};_ebcc .PdfAnnotation =_eaeb ;_ebcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eaeb .SetContext (_ebcc );return _ebcc ;};
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_dbaa *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
|
||
func NewPdfTransformParamsDocMDP (permission _be .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_egg .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_egg .MakeInteger (int64 (permission )),V :_egg .MakeName ("\u0031\u002e\u0032")};
|
||
};func (_bfddg *LTV )getCerts (_bcefa []*_dg .Certificate )([][]byte ,error ){_cbgf :=make ([][]byte ,0,len (_bcefa ));for _ ,_fbcb :=range _bcefa {_cbgf =append (_cbgf ,_fbcb .Raw );};return _cbgf ,nil ;};
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;func (_fgac *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};func _bcbae (_gbbe *_egg .PdfObjectStream )(*PdfFunctionType0 ,error ){_egag :=&PdfFunctionType0 {};_egag ._adfae =_gbbe ;_addda :=_gbbe .PdfObjectDictionary ;
|
||
_efgb ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_gd .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 _efgb .Len ()< 0||_efgb .Len ()%2!=0{_bag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_egag .NumInputs =_efgb .Len ()/2;_babeg ,_eeed :=_efgb .ToFloat64Array ();if _eeed !=nil {return nil ,_eeed ;};_egag .Domain =_babeg ;_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0052\u0061\u006eg\u0065")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_gd .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 _efgb .Len ()< 0||_efgb .Len ()%2!=0{return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_egag .NumOutputs =_efgb .Len ()/2;_dcbec ,_eeed :=_efgb .ToFloat64Array ();if _eeed !=nil {return nil ,_eeed ;};_egag .Range =_dcbec ;_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0053\u0069\u007a\u0065")).(*_egg .PdfObjectArray );if !_fcffg {_bag .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_gd .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");};_bdcb ,_eeed :=_efgb .ToIntegerArray ();
|
||
if _eeed !=nil {return nil ,_eeed ;};if len (_bdcb )!=_egag .NumInputs {_bag .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 ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .Size =_bdcb ;_fafgg ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_egg .PdfObjectInteger );
|
||
if !_fcffg {_bag .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 ,_gd .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 *_fafgg !=1&&*_fafgg !=2&&*_fafgg !=4&&*_fafgg !=8&&*_fafgg !=12&&*_fafgg !=16&&*_fafgg !=24&&*_fafgg !=32{_bag .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",*_fafgg );
|
||
return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .BitsPerSample =int (*_fafgg );_egag .Order =1;_cfbde ,_fcffg :=_egg .TraceToDirectObject (_addda .Get ("\u004f\u0072\u0064e\u0072")).(*_egg .PdfObjectInteger );
|
||
if _fcffg {if *_cfbde !=1&&*_cfbde !=3{_bag .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_cfbde );return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egag .Order =int (*_cfbde );
|
||
};_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );if _fcffg {_bddag ,_aeegd :=_efgb .ToFloat64Array ();if _aeegd !=nil {return nil ,_aeegd ;};_egag .Encode =_bddag ;};_efgb ,_fcffg =_egg .TraceToDirectObject (_addda .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_egg .PdfObjectArray );
|
||
if _fcffg {_ededd ,_bfbbg :=_efgb .ToFloat64Array ();if _bfbbg !=nil {return nil ,_bfbbg ;};_egag .Decode =_ededd ;};_baeefa ,_eeed :=_egg .DecodeStream (_gbbe );if _eeed !=nil {return nil ,_eeed ;};_egag ._efacf =_baeefa ;return _egag ,nil ;};func (_gfdbe *PdfAcroForm )fillImageWithAppearance (_deeab FieldImageProvider ,_fbbff FieldAppearanceGenerator )error {if _gfdbe ==nil {return nil ;
|
||
};_eeace ,_effff :=_deeab .FieldImageValues ();if _effff !=nil {return _effff ;};for _ ,_ebbf :=range _gfdbe .AllFields (){_gdegc :=_ebbf .PartialName ();_ggbb ,_bgaee :=_eeace [_gdegc ];if !_bgaee {if _debggd ,_dedaf :=_ebbf .FullName ();_dedaf ==nil {_ggbb ,_bgaee =_eeace [_debggd ];
|
||
};};if !_bgaee {_bag .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",_gdegc );
|
||
continue ;};switch _fgefgd :=_ebbf .GetContext ().(type ){case *PdfFieldButton :if _fgefgd .IsPush (){_fgefgd .SetFillImage (_ggbb );};};if _fbbff ==nil {continue ;};for _ ,_dddga :=range _ebbf .Annotations {_dedde ,_beddc :=_fbbff .GenerateAppearanceDict (_gfdbe ,_ebbf ,_dddga );
|
||
if _beddc !=nil {return _beddc ;};_dddga .AP =_dedde ;_dddga .ToPdfObject ();};};return nil ;};
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_bdefb *PdfPage )HasFontByName (name _egg .PdfObjectName )bool {_gfedb ,_abccge :=_bdefb .Resources .Font .(*_egg .PdfObjectDictionary );if !_abccge {return false ;};if _dbffd :=_gfedb .Get (name );_dbffd !=nil {return true ;};return false ;};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_ceae *_egg .PdfIndirectObject ;};
|
||
|
||
// 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 (_fggf *PdfPage )Size ()(float64 ,float64 ,error ){_gccf ,_dfadg :=_fggf .GetMediaBox ();if _dfadg !=nil {return 0,0,_dfadg ;};_fgead ,_gdca :=_gccf .Width (),_gccf .Height ();_affea ,_dfadg :=_fggf .GetRotate ();if _dfadg !=nil {_bag .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",_dfadg .Error ());
|
||
};if _ccgadf :=_affea ;_ccgadf %360!=0&&_ccgadf %90==0{if _ddfbd :=(360+_ccgadf %360)%360;_ddfbd ==90||_ddfbd ==270{_fgead ,_gdca =_gdca ,_fgead ;};};return _fgead ,_gdca ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efeb *PdfAnnotationFileAttachment )ToPdfObject ()_egg .PdfObject {_efeb .PdfAnnotation .ToPdfObject ();_fbbd :=_efeb ._cef ;_efg :=_fbbd .PdfObject .(*_egg .PdfObjectDictionary );_efeb .PdfAnnotationMarkup .appendToPdfDictionary (_efg );_efg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_efg .SetIfNotNil ("\u0046\u0053",_efeb .FS );_efg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_efeb .Name );return _fbbd ;};func _afaa (_ddeg *_egg .PdfObjectDictionary ){_ebaf ,_faga :=_egg .GetArray (_ddeg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));
|
||
_accaf ,_aaac :=_egg .GetIntVal (_ddeg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_ebce ,_faabe :=_egg .GetIntVal (_ddeg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _faga &&_aaac &&_faabe {_bgcge :=_ebaf .Len ();if _bgcge !=_ebce -_accaf +1{_bag .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",_bgcge ,_ebce );
|
||
_efdfd :=_egg .PdfObjectInteger (_accaf +_bgcge -1);_ddeg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_efdfd );};};};
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _e .Time ){_cgag .Lock ();defer _cgag .Unlock ();_fabb =creationDate ;};
|
||
|
||
// 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 (_ccfc *PdfWriter )SetOpenAction (dest _egg .PdfObject )error {if dest ==nil ||_egg .IsNullObject (dest ){return nil ;};_ccfc ._acea .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _ccfc .addObjects (dest );};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_bafea *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cced ,_fgd :=_egg .GetNumbersAsFloat (objects );
|
||
if _fgd !=nil {return nil ,_fgd ;};return _bafea .ColorFromFloats (_cced );};func (_edcd *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _edcd ._bgacg };
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_bdfad pdfFontType3 )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _dbcd ,_gfgbf :=_bdfad ._ecfgb [code ];_gfgbf {return _bgd .CharMetrics {Wx :_dbcd },true ;};if _bgd .IsStdFont (_bgd .StdFontName (_bdfad ._dgfdc )){return _bgd .CharMetrics {Wx :250},true ;
|
||
};return _bgd .CharMetrics {},false ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_bccde *XObjectImage )ToPdfObject ()_egg .PdfObject {_cagee :=_bccde ._gefbe ;_egebc :=_cagee .PdfObjectDictionary ;if _bccde .Filter !=nil {_egebc =_bccde .Filter .MakeStreamDict ();_cagee .PdfObjectDictionary =_egebc ;};_egebc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_egebc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0049\u006d\u0061g\u0065"));_egebc .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (*(_bccde .Width )));_egebc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (*(_bccde .Height )));
|
||
if _bccde .BitsPerComponent !=nil {_egebc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (*(_bccde .BitsPerComponent )));};if _bccde .ColorSpace !=nil {_egebc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_bccde .ColorSpace .ToPdfObject ());
|
||
};_egebc .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_bccde .Intent );_egebc .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_bccde .ImageMask );_egebc .SetIfNotNil ("\u004d\u0061\u0073\u006b",_bccde .Mask );_fcdcg :=_egebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
|
||
if _bccde .Decode ==nil &&_fcdcg {_egebc .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _bccde .Decode !=nil {_egebc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bccde .Decode );};_egebc .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_bccde .Interpolate );
|
||
_egebc .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_bccde .Alternatives );_egebc .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_bccde .SMask );_egebc .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_bccde .SMaskInData );
|
||
_egebc .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_bccde .Matte );_egebc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bccde .Name );_egebc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_bccde .StructParent );_egebc .SetIfNotNil ("\u0049\u0044",_bccde .ID );
|
||
_egebc .SetIfNotNil ("\u004f\u0050\u0049",_bccde .OPI );_egebc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bccde .Metadata );_egebc .SetIfNotNil ("\u004f\u0043",_bccde .OC );_egebc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_bccde .Stream ))));
|
||
_cagee .Stream =_bccde .Stream ;return _cagee ;};
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_aebedc :=&XObjectImage {};_feeda :=&_egg .PdfObjectStream {};_feeda .PdfObjectDictionary =_egg .MakeDict ();_aebedc ._gefbe =_feeda ;return _aebedc ;};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_cec :=NewPdfAction ();_dfgb :=&PdfActionNamed {};_dfgb .PdfAction =_cec ;_cec .SetContext (_dfgb );return _dfgb ;};
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_fd :=NewPdfAction ();_ff :=&PdfActionLaunch {};_ff .PdfAction =_fd ;_fd .SetContext (_ff );return _ff ;};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_dgec *PdfReader )GetOCProperties ()(_egg .PdfObject ,error ){_baffc :=_dgec ._eacf ;_gbfee :=_baffc .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gbfee =_egg .ResolveReference (_gbfee );if !_dgec ._cede {_bfecf :=_dgec .traverseObjectData (_gbfee );
|
||
if _bfecf !=nil {return nil ,_bfecf ;};};return _gbfee ,nil ;};func (_eece *PdfReader )newPdfAnnotationWidgetFromDict (_bba *_egg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_afgg :=PdfAnnotationWidget {};_afgg .H =_bba .Get ("\u0048");_afgg .MK =_bba .Get ("\u004d\u004b");
|
||
_afgg .A =_bba .Get ("\u0041");_afgg .AA =_bba .Get ("\u0041\u0041");_afgg .BS =_bba .Get ("\u0042\u0053");_afgg .Parent =_bba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_afgg ,nil ;};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_bfdac *PdfReader )GetEncryptionMethod ()string {_dgddf :=_bfdac ._dafgab .GetCrypter ();return _dgddf .String ();};
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_gegce *PdfSignatureReference )GetContainingPdfObject ()_egg .PdfObject {return _gegce ._fedcg };func _dbaf (_ccaec *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_ccaec }};func (_fdga *PdfAppender )addNewObject (_ebae _egg .PdfObject ){if _ ,_bcee :=_fdga ._bdba [_ebae ];
|
||
!_bcee {_fdga ._dbbe =append (_fdga ._dbbe ,_ebae );_fdga ._bdba [_ebae ]=struct{}{};};};func (_ddd *PdfReader )newPdfAnnotationStampFromDict (_ecdf *_egg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_aagc :=PdfAnnotationStamp {};_bafc ,_acfa :=_ddd .newPdfAnnotationMarkupFromDict (_ecdf );
|
||
if _acfa !=nil {return nil ,_acfa ;};_aagc .PdfAnnotationMarkup =_bafc ;_aagc .Name =_ecdf .Get ("\u004e\u0061\u006d\u0065");return &_aagc ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_dadef *PdfFunctionType3 )ToPdfObject ()_egg .PdfObject {_cead :=_egg .MakeDict ();_cead .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (3));_bcag :=&_egg .PdfObjectArray {};for _ ,_ffegg :=range _dadef .Domain {_bcag .Append (_egg .MakeFloat (_ffegg ));
|
||
};_cead .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcag );if _dadef .Range !=nil {_cgge :=&_egg .PdfObjectArray {};for _ ,_addge :=range _dadef .Range {_cgge .Append (_egg .MakeFloat (_addge ));};_cead .Set ("\u0052\u0061\u006eg\u0065",_cgge );};if _dadef .Functions !=nil {_fgcga :=&_egg .PdfObjectArray {};
|
||
for _ ,_gacc :=range _dadef .Functions {_fgcga .Append (_gacc .ToPdfObject ());};_cead .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_fgcga );};if _dadef .Bounds !=nil {_faegb :=&_egg .PdfObjectArray {};for _ ,_eafcg :=range _dadef .Bounds {_faegb .Append (_egg .MakeFloat (_eafcg ));
|
||
};_cead .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_faegb );};if _dadef .Encode !=nil {_fgfa :=&_egg .PdfObjectArray {};for _ ,_aadb :=range _dadef .Encode {_fgfa .Append (_egg .MakeFloat (_aadb ));};_cead .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_fgfa );
|
||
};if _dadef ._cbbbc !=nil {_dadef ._cbbbc .PdfObject =_cead ;return _dadef ._cbbbc ;};return _cead ;};
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_fdff *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_gd .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");
|
||
};_cbba ,_adcc :=_eg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fgggb ,img ._abfae );if _adcc !=nil {return img ,_adcc ;};_cfcb ,_adcc :=_eg .NRGBAConverter .Convert (_cbba );if _adcc !=nil {return img ,_adcc ;
|
||
};_bagb :=_cggba (_cfcb .Base ());_bag .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_bag .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_bag .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_bagb .Data );
|
||
_bag .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_bagb );return _bagb ,nil ;};
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_edbfbd *PdfPattern )IsShading ()bool {return _edbfbd .PatternType ==2};
|
||
|
||
// 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 *_egg .PdfObjectStream ;Data []byte ;_dcf *_egg .PdfIndirectObject ;_bcda *_egg .PdfObjectStream ;};func (_cfee *pdfFontSimple )baseFields ()*fontCommon {return &_cfee .fontCommon };func (_fcfcf *PdfReader )newPdfSignatureReferenceFromDict (_gabcd *_egg .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _gebgb ,_dfdbc :=_fcfcf ._dabaf .GetModelFromPrimitive (_gabcd ).(*PdfSignatureReference );
|
||
_dfdbc {return _gebgb ,nil ;};_feffe :=&PdfSignatureReference {_fedcg :_gabcd ,Data :_gabcd .Get ("\u0044\u0061\u0074\u0061")};var _aeaaf bool ;_feffe .Type ,_ =_egg .GetName (_gabcd .Get ("\u0054\u0079\u0070\u0065"));_feffe .TransformMethod ,_aeaaf =_egg .GetName (_gabcd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
if !_aeaaf {_bag .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 ;};_feffe .TransformParams ,_ =_egg .GetDict (_gabcd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_feffe .DigestMethod ,_ =_egg .GetName (_gabcd .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
return _feffe ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_dbae *PdfColorspaceICCBased )GetNumComponents ()int {return _dbae .N };func _bdbba (_agae *_egg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_cgafg :=PdfShadingType7 {};_cfbba :=_agae .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _cfbba ==nil {_bag .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 ;};_gdgac ,_gfgfb :=_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .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",_cfbba );
|
||
return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerCoordinate =_gdgac ;_cfbba =_agae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cfbba ==nil {_bag .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 ;};_gdgac ,_gfgfb =_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .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",_cfbba );
|
||
return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerComponent =_gdgac ;_cfbba =_agae .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cfbba ==nil {_bag .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 ;};_gdgac ,_gfgfb =_cfbba .(*_egg .PdfObjectInteger );if !_gfgfb {_bag .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",_cfbba );
|
||
return nil ,_egg .ErrTypeError ;};_cgafg .BitsPerComponent =_gdgac ;_cfbba =_agae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cfbba ==nil {_bag .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 ;};_eeae ,_gfgfb :=_cfbba .(*_egg .PdfObjectArray );if !_gfgfb {_bag .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",_cfbba );
|
||
return nil ,_egg .ErrTypeError ;};_cgafg .Decode =_eeae ;if _ccdgd :=_agae .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ccdgd !=nil {_cgafg .Function =[]PdfFunction {};if _afcfd ,_bbada :=_ccdgd .(*_egg .PdfObjectArray );_bbada {for _ ,_eagab :=range _afcfd .Elements (){_ffeddg ,_fdce :=_bdefe (_eagab );
|
||
if _fdce !=nil {_bag .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",_fdce );return nil ,_fdce ;};_cgafg .Function =append (_cgafg .Function ,_ffeddg );
|
||
};}else {_ccfee ,_ccgde :=_bdefe (_ccdgd );if _ccgde !=nil {_bag .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",_ccgde );return nil ,_ccgde ;
|
||
};_cgafg .Function =append (_cgafg .Function ,_ccfee );};};return &_cgafg ,nil ;};
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_aff :=NewPdfAnnotation ();_dbdf :=&PdfAnnotationCircle {};_dbdf .PdfAnnotation =_aff ;_dbdf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aff .SetContext (_dbdf );return _dbdf ;};
|
||
|
||
// 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 ;_cbbbc *_egg .PdfIndirectObject ;};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_fcbad *PdfColorDeviceCMYK )Y ()float64 {return _fcbad [2]};func _eefdc (_fgfbb []byte )([]byte ,error ){_ccaef :=_bbd .New ();if _ ,_acgdc :=_dag .Copy (_ccaef ,_dd .NewReader (_fgfbb ));_acgdc !=nil {return nil ,_acgdc ;};return _ccaef .Sum (nil ),nil ;
|
||
};
|
||
|
||
// GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there
|
||
// is a problem loading. Once loaded, the same object is returned on multiple calls.
|
||
func (_deebd *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _deebd ._dbbbd !=nil {return _deebd ._dbbbd ,nil ;};if _deebd .ColorSpace ==nil {return nil ,nil ;};_gddg ,_aaaga :=_aggea (_deebd .ColorSpace );if _aaaga !=nil {return nil ,_aaaga ;
|
||
};_deebd ._dbbbd =_gddg ;return _deebd ._dbbbd ,nil ;};
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_bbfb *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_fabg *PdfWriter )addObjects (_ecbcc _egg .PdfObject )error {_bag .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");
|
||
if _efgbc ,_edadg :=_ecbcc .(*_egg .PdfIndirectObject );_edadg {_bag .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_bag .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_ecbcc ,_efgbc );_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_efgbc .PdfObject );
|
||
if _fabg .addObject (_efgbc ){_bbgfab :=_fabg .addObjects (_efgbc .PdfObject );if _bbgfab !=nil {return _bbgfab ;};};return nil ;};if _badbc ,_ecggg :=_ecbcc .(*_egg .PdfObjectStream );_ecggg {_bag .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_bag .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_ecbcc ,_ecbcc );
|
||
if _fabg .addObject (_badbc ){_adege :=_fabg .addObjects (_badbc .PdfObjectDictionary );if _adege !=nil {return _adege ;};};return nil ;};if _gggba ,_dgebg :=_ecbcc .(*_egg .PdfObjectDictionary );_dgebg {_bag .Log .Trace ("\u0044\u0069\u0063\u0074");_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_ecbcc );
|
||
for _ ,_efaed :=range _gggba .Keys (){_dagabg :=_gggba .Get (_efaed );if _ceegc ,_adeb :=_dagabg .(*_egg .PdfObjectReference );_adeb {_dagabg =_ceegc .Resolve ();_gggba .Set (_efaed ,_dagabg );};if _efaed !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ccbga :=_fabg .addObjects (_dagabg );
|
||
_ccbga !=nil {return _ccbga ;};}else {if _ ,_baffcb :=_dagabg .(*_egg .PdfObjectNull );_baffcb {continue ;};if _ccada :=_fabg .hasObject (_dagabg );!_ccada {_bag .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",_dagabg ,_dagabg ,_dagabg );
|
||
_fabg ._afcd [_dagabg ]=append (_fabg ._afcd [_dagabg ],_gggba );};};};return nil ;};if _cfbgb ,_gffgfa :=_ecbcc .(*_egg .PdfObjectArray );_gffgfa {_bag .Log .Trace ("\u0041\u0072\u0072a\u0079");_bag .Log .Trace ("\u002d\u0020\u0025\u0073",_ecbcc );if _cfbgb ==nil {return _gd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _bgeea ,_cage :=range _cfbgb .Elements (){if _dccg ,_aefbb :=_cage .(*_egg .PdfObjectReference );_aefbb {_cage =_dccg .Resolve ();_cfbgb .Set (_bgeea ,_cage );};if _efegd :=_fabg .addObjects (_cage );_efegd !=nil {return _efegd ;};};return nil ;};
|
||
if _ ,_gbgeb :=_ecbcc .(*_egg .PdfObjectReference );_gbgeb {_bag .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",_ecbcc );
|
||
return _gd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";
|
||
ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";
|
||
ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";
|
||
ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";
|
||
ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";
|
||
ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};func (_abgce *PdfReader )loadPerms ()(*Permissions ,error ){if _dcegc :=_abgce ._eacf .Get ("\u0050\u0065\u0072m\u0073");_dcegc !=nil {if _fagbf ,_efebde :=_egg .GetDict (_dcegc );
|
||
_efebde {_ggbba :=_fagbf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _ggbba ==nil {return nil ,nil ;};if _beega ,_fcdee :=_egg .GetIndirect (_ggbba );_fcdee {_cfede ,_gefde :=_abgce .newPdfSignatureFromIndirect (_beega );if _gefde !=nil {return nil ,_gefde ;
|
||
};return NewPermissions (_cfede ),nil ;};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
|
||
};return nil ,nil ;};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_ccgb *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_ccgb .updateObjectsDeep (dss .ToPdfObject (),nil );};_ccgb ._dgdc =dss ;};
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_ggdf :=NewPdfAnnotation ();_dfb :=&PdfAnnotationHighlight {};_dfb .PdfAnnotation =_ggdf ;_dfb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggdf .SetContext (_dfb );return _dfb ;};
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_adecd FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_adecd .Mask ()|fl .Mask ())};
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_cgag .Lock ();defer _cgag .Unlock ();_bdbde =producer };func _ggaeg (_bcdff *_egg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_degaf :=PdfShadingType5 {};_afgee :=_bcdff .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _afgee ==nil {_bag .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 ;};_fgcec ,_edbbc :=_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .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",_afgee );
|
||
return nil ,_egg .ErrTypeError ;};_degaf .BitsPerCoordinate =_fgcec ;_afgee =_bcdff .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _afgee ==nil {_bag .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 ;};_fgcec ,_edbbc =_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .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",_afgee );
|
||
return nil ,_egg .ErrTypeError ;};_degaf .BitsPerComponent =_fgcec ;_afgee =_bcdff .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _afgee ==nil {_bag .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 ;};_fgcec ,_edbbc =_afgee .(*_egg .PdfObjectInteger );if !_edbbc {_bag .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",_afgee );
|
||
return nil ,_egg .ErrTypeError ;};_degaf .VerticesPerRow =_fgcec ;_afgee =_bcdff .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _afgee ==nil {_bag .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 ;};_acadb ,_edbbc :=_afgee .(*_egg .PdfObjectArray );if !_edbbc {_bag .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",_afgee );
|
||
return nil ,_egg .ErrTypeError ;};_degaf .Decode =_acadb ;if _bfcef :=_bcdff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bfcef !=nil {_degaf .Function =[]PdfFunction {};if _gdbg ,_bcbbb :=_bfcef .(*_egg .PdfObjectArray );_bcbbb {for _ ,_abefb :=range _gdbg .Elements (){_cbeaa ,_bgea :=_bdefe (_abefb );
|
||
if _bgea !=nil {_bag .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",_bgea );return nil ,_bgea ;};_degaf .Function =append (_degaf .Function ,_cbeaa );
|
||
};}else {_ceaba ,_ageae :=_bdefe (_bfcef );if _ageae !=nil {_bag .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",_ageae );return nil ,_ageae ;
|
||
};_degaf .Function =append (_degaf .Function ,_ceaba );};};return &_degaf ,nil ;};
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_fcdb :=NewPdfAnnotation ();_dga :=&PdfAnnotationPolygon {};_dga .PdfAnnotation =_fcdb ;_dga .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcdb .SetContext (_dga );return _dga ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_aede *PdfColorLab )GetNumComponents ()int {return 3};func _dceb ()string {return _bag .Version };
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _egg .PdfObjectName ;};
|
||
|
||
// 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 (_aafc *PdfReader )Inspect ()(map[string ]int ,error ){return _aafc ._dafgab .Inspect ()};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_dgbca *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func (_eabgc *PdfFunctionType0 )processSamples ()error {_eaaeb :=_fb .ResampleBytes (_eabgc ._efacf ,_eabgc .BitsPerSample );_eabgc ._efbce =_eaaeb ;return nil ;};
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_egcd *PdfRectangle )ToPdfObject ()_egg .PdfObject {return _egg .MakeArray (_egg .MakeFloat (_egcd .Llx ),_egg .MakeFloat (_egcd .Lly ),_egg .MakeFloat (_egcd .Urx ),_egg .MakeFloat (_egcd .Ury ));};
|
||
|
||
// SetFillImage attach a model.Image to push button.
|
||
func (_fafc *PdfFieldButton )SetFillImage (image *Image ){if _fafc .IsPush (){_fafc ._ffcc =image ;};};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_aca *PdfFont )ToUnicode ()string {if _aca .baseFields ()._bfbgf ==nil {return "";};return _aca .baseFields ()._bfbgf .Name ();};func (_ebcg *PdfWriter )setCatalogVersion (){_ebcg ._acea .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_egg .MakeName (_f .Sprintf ("\u0025\u0064\u002e%\u0064",_ebcg ._dacce .Major ,_ebcg ._dacce .Minor )));
|
||
};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_cgag .Lock ();defer _cgag .Unlock ();_cefff =creator };
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_gbdaf *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gbdaf .Base ==nil {return nil ,_gd .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 _gbdaf .Base .ColorToRGB (color );};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func _cbcgg ()string {_cgag .Lock ();defer _cgag .Unlock ();return _eggc };
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_acdf *PdfColorspaceDeviceNAttributes )ToPdfObject ()_egg .PdfObject {_efcc :=_egg .MakeDict ();if _acdf .Subtype !=nil {_efcc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_acdf .Subtype );};_efcc .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_acdf .Colorants );
|
||
_efcc .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_acdf .Process );_efcc .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_acdf .MixingHints );if _acdf ._cdgc !=nil {_acdf ._cdgc .PdfObject =_efcc ;return _acdf ._cdgc ;
|
||
};return _efcc ;};func (_afca *PdfReader )newPdfAnnotationMovieFromDict (_edfe *_egg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_gdde :=PdfAnnotationMovie {};_gdde .T =_edfe .Get ("\u0054");_gdde .Movie =_edfe .Get ("\u004d\u006f\u0076i\u0065");
|
||
_gdde .A =_edfe .Get ("\u0041");return &_gdde ,nil ;};
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_bgd .StdFontName ;
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_fbdeb *PdfPageResources )SetFontByName (keyName _egg .PdfObjectName ,obj _egg .PdfObject )error {if _fbdeb .Font ==nil {_fbdeb .Font =_egg .MakeDict ();};_gbbf ,_bdacb :=_egg .TraceToDirectObject (_fbdeb .Font ).(*_egg .PdfObjectDictionary );if !_bdacb {_bag .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",_egg .TraceToDirectObject (_fbdeb .Font ));
|
||
return _egg .ErrTypeError ;};_gbbf .Set (keyName ,obj );return nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_eeec *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func (_eddad *PdfShading )getShadingDict ()(*_egg .PdfObjectDictionary ,error ){_caccc :=_eddad ._cfdbd ;if _acgeg ,_egac :=_caccc .(*_egg .PdfIndirectObject );_egac {_bcfda ,_abeead :=_acgeg .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_abeead {return nil ,_egg .ErrTypeError ;};return _bcfda ,nil ;}else if _ebee ,_agbfc :=_caccc .(*_egg .PdfObjectStream );_agbfc {return _ebee .PdfObjectDictionary ,nil ;}else if _faebf ,_abbba :=_caccc .(*_egg .PdfObjectDictionary );_abbba {return _faebf ,nil ;
|
||
}else {_bag .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 ,_egg .ErrTypeError ;};};func (_abaee *PdfReader )buildPageList (_dcbfa *_egg .PdfIndirectObject ,_fcbbc *_egg .PdfIndirectObject ,_dafbb map[_egg .PdfObject ]struct{})error {if _dcbfa ==nil {return nil ;
|
||
};if _ ,_becda :=_dafbb [_dcbfa ];_becda {_bag .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",_dcbfa .ObjectNumber );
|
||
return nil ;};_dafbb [_dcbfa ]=struct{}{};_acfgf ,_cefg :=_dcbfa .PdfObject .(*_egg .PdfObjectDictionary );if !_cefg {return _gd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_dgbbc ,_cefg :=(*_acfgf ).Get ("\u0054\u0079\u0070\u0065").(*_egg .PdfObjectName );
|
||
if !_cefg {if _acfgf .Get ("\u004b\u0069\u0064\u0073")==nil {return _gd .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");};_bag .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.");
|
||
_dgbbc =_egg .MakeName ("\u0050\u0061\u0067e\u0073");_acfgf .Set ("\u0054\u0079\u0070\u0065",_dgbbc );};_bag .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",*_dgbbc ,_dcbfa );
|
||
if *_dgbbc =="\u0050\u0061\u0067\u0065"{_fccfc ,_aeedd :=_abaee .newPdfPageFromDict (_acfgf );if _aeedd !=nil {return _aeedd ;};_fccfc .setContainer (_dcbfa );if _fcbbc !=nil {_acfgf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcbbc );};_abaee ._abgbc =append (_abaee ._abgbc ,_dcbfa );
|
||
_abaee .PageList =append (_abaee .PageList ,_fccfc );return nil ;};if *_dgbbc !="\u0050\u0061\u0067e\u0073"{_bag .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",_dgbbc );
|
||
return _gd .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 _fcbbc !=nil {_acfgf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcbbc );};if !_abaee ._cede {_gbadb :=_abaee .traverseObjectData (_dcbfa );if _gbadb !=nil {return _gbadb ;};};_daebd ,_dcgdd :=_abaee ._dafgab .Resolve (_acfgf .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _dcgdd !=nil {_bag .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 _dcgdd ;};var _ecad *_egg .PdfObjectArray ;
|
||
_ecad ,_cefg =_daebd .(*_egg .PdfObjectArray );if !_cefg {_edegc ,_adge :=_daebd .(*_egg .PdfIndirectObject );if !_adge {return _gd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ecad ,_cefg =_edegc .PdfObject .(*_egg .PdfObjectArray );
|
||
if !_cefg {return _gd .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");};};_bag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_ecad );
|
||
for _ageac ,_gfbac :=range _ecad .Elements (){_baece ,_aabfa :=_egg .GetIndirect (_gfbac );if !_aabfa {_bag .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",_baece );
|
||
return _gd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ecad .Set (_ageac ,_baece );_dcgdd =_abaee .buildPageList (_baece ,_dcbfa ,_dafbb );if _dcgdd !=nil {return _dcgdd ;
|
||
};};return nil ;};
|
||
|
||
// OutlineDest represents the destination of an outline item.
|
||
// It holds the page and the position on the page an outline item points to.
|
||
type OutlineDest struct{PageObj *_egg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};var _fgefg =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"};
|
||
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_aebb *PdfAcroForm ,_gfcag *PdfField ,_dfcc *PdfAnnotationWidget )(*_egg .PdfObjectDictionary ,error );};
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_bgad *PdfRectangle )Height ()float64 {return _dgb .Abs (_bgad .Ury -_bgad .Lly )};
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _egg .PdfObject ;MK _egg .PdfObject ;A _egg .PdfObject ;AA _egg .PdfObject ;BS _egg .PdfObject ;Parent _egg .PdfObject ;_daa *PdfField ;_gae bool ;};
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_dad *PdfAction )SetContext (ctx PdfModel ){_dad ._abb =ctx };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbcgb *PdfAnnotationCaret )ToPdfObject ()_egg .PdfObject {_fbcgb .PdfAnnotation .ToPdfObject ();_dged :=_fbcgb ._cef ;_gdfa :=_dged .PdfObject .(*_egg .PdfObjectDictionary );_fbcgb .PdfAnnotationMarkup .appendToPdfDictionary (_gdfa );_gdfa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_gdfa .SetIfNotNil ("\u0052\u0044",_fbcgb .RD );_gdfa .SetIfNotNil ("\u0053\u0079",_fbcgb .Sy );return _dged ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_ggafb *pdfSignDictionary )WriteString ()string {_ggafb ._fcade =0;_ggafb ._aabac =0;_ggafb ._dcfaa =0;_ggafb ._gbeab =0;_cbcbd :=_dd .NewBuffer (nil );_cbcbd .WriteString ("\u003c\u003c");for _ ,_ffbebf :=range _ggafb .Keys (){_fbgade :=_ggafb .Get (_ffbebf );
|
||
switch _ffbebf {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_ggafb ._dcfaa =_cbcbd .Len ();_cbcbd .WriteString (_fbgade .WriteString ());_cbcbd .WriteString ("\u0020");
|
||
_ggafb ._gbeab =_cbcbd .Len ()-1;case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_ggafb ._fcade =_cbcbd .Len ();_cbcbd .WriteString (_fbgade .WriteString ());_cbcbd .WriteString ("\u0020");
|
||
_ggafb ._aabac =_cbcbd .Len ()-1;default:_cbcbd .WriteString (_ffbebf .WriteString ());_cbcbd .WriteString ("\u0020");_cbcbd .WriteString (_fbgade .WriteString ());};};_cbcbd .WriteString ("\u003e\u003e");return _cbcbd .String ();};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbaa *PdfAnnotationUnderline )ToPdfObject ()_egg .PdfObject {_fbaa .PdfAnnotation .ToPdfObject ();_fbcc :=_fbaa ._cef ;_fecd :=_fbcc .PdfObject .(*_egg .PdfObjectDictionary );_fbaa .PdfAnnotationMarkup .appendToPdfDictionary (_fecd );_fecd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_fecd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fbaa .QuadPoints );return _fbcc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_baed *PdfAnnotationPopup )ToPdfObject ()_egg .PdfObject {_baed .PdfAnnotation .ToPdfObject ();_fge :=_baed ._cef ;_cce :=_fge .PdfObject .(*_egg .PdfObjectDictionary );_cce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_cce .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_baed .Parent );_cce .SetIfNotNil ("\u004f\u0070\u0065\u006e",_baed .Open );return _fge ;};func _ccgbe (_gdgc _egg .PdfObject )(*PdfPattern ,error ){_abafc :=&PdfPattern {};var _aeaccb *_egg .PdfObjectDictionary ;
|
||
if _agdf ,_ceefd :=_egg .GetIndirect (_gdgc );_ceefd {_abafc ._fgec =_agdf ;_adddg ,_daedb :=_agdf .PdfObject .(*_egg .PdfObjectDictionary );if !_daedb {_bag .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",_agdf .PdfObject );
|
||
return nil ,_egg .ErrTypeError ;};_aeaccb =_adddg ;}else if _cdbd ,_aebcf :=_egg .GetStream (_gdgc );_aebcf {_abafc ._fgec =_cdbd ;_aeaccb =_cdbd .PdfObjectDictionary ;}else {_bag .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",_gdgc );
|
||
return nil ,_egg .ErrTypeError ;};_gfgd :=_aeaccb .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gfgd ==nil {_bag .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 ;};_ecbbg ,_dgcd :=_gfgd .(*_egg .PdfObjectInteger );if !_dgcd {_bag .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",_gfgd );
|
||
return nil ,_egg .ErrTypeError ;};if *_ecbbg !=1&&*_ecbbg !=2{_bag .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",*_ecbbg );return nil ,_egg .ErrRangeError ;
|
||
};_abafc .PatternType =int64 (*_ecbbg );switch *_ecbbg {case 1:_dagaaa ,_bdafc :=_cbcfd (_aeaccb );if _bdafc !=nil {return nil ,_bdafc ;};_dagaaa .PdfPattern =_abafc ;_abafc ._fcbdg =_dagaaa ;return _abafc ,nil ;case 2:_aedf ,_afedf :=_gfadc (_aeaccb );
|
||
if _afedf !=nil {return nil ,_afedf ;};_aedf .PdfPattern =_abafc ;_abafc ._fcbdg =_aedf ;return _abafc ,nil ;};return nil ,_gd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_gbabf :map[_egg .PdfObject ]struct{}{},_dabaf :_fedbe (),_dafgab :_egg .NewParserFromString (txt )};};
|
||
|
||
// 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 (_gcdc *PdfFont )GetCharMetrics (code _ef .CharCode )(CharMetrics ,bool ){var _gefd _bgd .CharMetrics ;switch _fdbcff :=_gcdc ._edde .(type ){case *pdfFontSimple :if _aaage ,_bcfg :=_fdbcff .GetCharMetrics (code );_bcfg {return _aaage ,_bcfg ;};case *pdfFontType0 :if _bbagdg ,_feda :=_fdbcff .GetCharMetrics (code );
|
||
_feda {return _bbagdg ,_feda ;};case *pdfCIDFontType0 :if _caaf ,_aabe :=_fdbcff .GetCharMetrics (code );_aabe {return _caaf ,_aabe ;};case *pdfCIDFontType2 :if _bcbdb ,_abeff :=_fdbcff .GetCharMetrics (code );_abeff {return _bcbdb ,_abeff ;};case *pdfFontType3 :if _dbeaa ,_fafdc :=_fdbcff .GetCharMetrics (code );
|
||
_fafdc {return _dbeaa ,_fafdc ;};default:_bag .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",_gcdc ._edde );
|
||
return _gefd ,false ;};if _egbc ,_bbgab :=_gcdc .GetFontDescriptor ();_bbgab ==nil &&_egbc !=nil {return _bgd .CharMetrics {Wx :_egbc ._eedab },true ;};_bag .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",_gcdc );
|
||
return _gefd ,false ;};func (_dggf *PdfReader )newPdfAnnotationTrapNetFromDict (_ecbe *_egg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_cgcc :=PdfAnnotationTrapNet {};return &_cgcc ,nil ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_agbf *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_bag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_efbcb :=[]float64 {0.0};if _agbf .C0 !=nil {_efbcb =_agbf .C0 ;};_cdddc :=[]float64 {1.0};if _agbf .C1 !=nil {_cdddc =_agbf .C1 ;};var _dfbfe []float64 ;for _bgdcb :=0;_bgdcb < len (_efbcb );_bgdcb ++{_gfecd :=_efbcb [_bgdcb ]+_dgb .Pow (x [0],_agbf .N )*(_cdddc [_bgdcb ]-_efbcb [_bgdcb ]);
|
||
_dfbfe =append (_dfbfe ,_gfecd );};return _dfbfe ,nil ;};func (_cdca *PdfReader )newPdfPageFromDict (_cdfef *_egg .PdfObjectDictionary )(*PdfPage ,error ){_ecfaf :=NewPdfPage ();_ecfaf ._fgfd =_cdfef ;_aggcc :=*_cdfef ;_ecggf ,_eegac :=_aggcc .Get ("\u0054\u0079\u0070\u0065").(*_egg .PdfObjectName );
|
||
if !_eegac {return nil ,_gd .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 *_ecggf !="\u0050\u0061\u0067\u0065"{return nil ,_gd .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 _aaagc :=_aggcc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_aaagc !=nil {_ecfaf .Parent =_aaagc ;};if _gfad :=_aggcc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_gfad !=nil {_agdca ,_ccaea :=_egg .GetString (_gfad );
|
||
if !_ccaea {return nil ,_gd .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");};
|
||
_bdabe ,_abcbb :=NewPdfDate (_agdca .Str ());if _abcbb !=nil {return nil ,_abcbb ;};_ecfaf .LastModified =&_bdabe ;};if _gbgd :=_aggcc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gbgd !=nil &&!_egg .IsNullObject (_gbgd ){_acecd ,_dccef :=_egg .GetDict (_gbgd );
|
||
if !_dccef {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_gbgd );};var _bgbge error ;_ecfaf .Resources ,_bgbge =NewPdfPageResourcesFromDict (_acecd );
|
||
if _bgbge !=nil {return nil ,_bgbge ;};}else {_ccaff ,_ffegdc :=_ecfaf .getParentResources ();if _ffegdc !=nil {return nil ,_ffegdc ;};if _ccaff ==nil {_ccaff =NewPdfPageResources ();};_ecfaf .Resources =_ccaff ;};if _edadb :=_aggcc .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_edadb !=nil {_bfega ,_dceed :=_egg .GetArray (_edadb );if !_dceed {return nil ,_gd .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 _gdaaag error ;
|
||
_ecfaf .MediaBox ,_gdaaag =NewPdfRectangle (*_bfega );if _gdaaag !=nil {return nil ,_gdaaag ;};};if _cfgae :=_aggcc .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_cfgae !=nil {_ecgge ,_gbdd :=_egg .GetArray (_cfgae );if !_gbdd {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _bcdgc error ;_ecfaf .CropBox ,_bcdgc =NewPdfRectangle (*_ecgge );if _bcdgc !=nil {return nil ,_bcdgc ;};};if _edefe :=_aggcc .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_edefe !=nil {_efgdc ,_adcab :=_egg .GetArray (_edefe );if !_adcab {return nil ,_gd .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 _bceca error ;_ecfaf .BleedBox ,_bceca =NewPdfRectangle (*_efgdc );if _bceca !=nil {return nil ,_bceca ;};};if _dabeg :=_aggcc .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_dabeg !=nil {_aceef ,_ceabg :=_egg .GetArray (_dabeg );if !_ceabg {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _cgacde error ;_ecfaf .TrimBox ,_cgacde =NewPdfRectangle (*_aceef );if _cgacde !=nil {return nil ,_cgacde ;};};if _ebgba :=_aggcc .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_ebgba !=nil {_aaegd ,_dbee :=_egg .GetArray (_ebgba );if !_dbee {return nil ,_gd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _fbbfd error ;_ecfaf .ArtBox ,_fbbfd =NewPdfRectangle (*_aaegd );if _fbbfd !=nil {return nil ,_fbbfd ;};};if _gbad :=_aggcc .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_gbad !=nil {_ecfaf .BoxColorInfo =_gbad ;};if _cabd :=_aggcc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
|
||
_cabd !=nil {_ecfaf .Contents =_cabd ;};if _bebcd :=_aggcc .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bebcd !=nil {_baacc ,_gbeda :=_egg .GetNumberAsInt64 (_bebcd );if _gbeda !=nil {return nil ,_gd .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");
|
||
};_ecfaf .Rotate =&_baacc ;};if _bdfg :=_aggcc .Get ("\u0047\u0072\u006fu\u0070");_bdfg !=nil {_ecfaf .Group =_bdfg ;};if _bcfbc :=_aggcc .Get ("\u0054\u0068\u0075m\u0062");_bcfbc !=nil {_ecfaf .Thumb =_bcfbc ;};if _bedacd :=_aggcc .Get ("\u0042");_bedacd !=nil {_ecfaf .B =_bedacd ;
|
||
};if _ddfg :=_aggcc .Get ("\u0044\u0075\u0072");_ddfg !=nil {_ecfaf .Dur =_ddfg ;};if _defca :=_aggcc .Get ("\u0054\u0072\u0061n\u0073");_defca !=nil {_ecfaf .Trans =_defca ;};if _cbddf :=_aggcc .Get ("\u0041\u0041");_cbddf !=nil {_ecfaf .AA =_cbddf ;};
|
||
if _fffg :=_aggcc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fffg !=nil {_ecfaf .Metadata =_fffg ;};if _fdfagd :=_aggcc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fdfagd !=nil {_ecfaf .PieceInfo =_fdfagd ;};if _dafef :=_aggcc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
|
||
_dafef !=nil {_ecfaf .StructParents =_dafef ;};if _effg :=_aggcc .Get ("\u0049\u0044");_effg !=nil {_ecfaf .ID =_effg ;};if _eeabe :=_aggcc .Get ("\u0050\u005a");_eeabe !=nil {_ecfaf .PZ =_eeabe ;};if _debad :=_aggcc .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
|
||
_debad !=nil {_ecfaf .SeparationInfo =_debad ;};if _bbbde :=_aggcc .Get ("\u0054\u0061\u0062\u0073");_bbbde !=nil {_ecfaf .Tabs =_bbbde ;};if _dggda :=_aggcc .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
|
||
_dggda !=nil {_ecfaf .TemplateInstantiated =_dggda ;};if _deaab :=_aggcc .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_deaab !=nil {_ecfaf .PresSteps =_deaab ;};if _ffcbb :=_aggcc .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_ffcbb !=nil {_ecfaf .UserUnit =_ffcbb ;
|
||
};if _aaecg :=_aggcc .Get ("\u0056\u0050");_aaecg !=nil {_ecfaf .VP =_aaecg ;};if _babga :=_aggcc .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_babga !=nil {_ecfaf .Annots =_babga ;};_ecfaf ._gcfcb =_cdca ;return _ecfaf ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
|
||
func _bedd (_eafea *_egg .PdfObjectDictionary ,_befcd *fontCommon )(*pdfFontType0 ,error ){_gaeba ,_eadc :=_egg .GetArray (_eafea .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));if !_eadc {_bag .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",_befcd );
|
||
return nil ,_egg .ErrRangeError ;};if _gaeba .Len ()!=1{_bag .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",_gaeba .Len ());
|
||
return nil ,_egg .ErrRangeError ;};_edba ,_cbgec :=_faffdb (_gaeba .Get (0),false );if _cbgec !=nil {_bag .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",_cbgec ,_befcd );
|
||
return nil ,_cbgec ;};_gefff :=_dbaf (_befcd );_gefff .DescendantFont =_edba ;_egegb ,_eadc :=_egg .GetNameVal (_eafea .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _eadc {if _egegb =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_egegb =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_gefff ._bfddc =_ef .NewIdentityTextEncoder (_egegb );
|
||
}else if _ga .IsPredefinedCMap (_egegb ){_gefff ._fcffd ,_cbgec =_ga .LoadPredefinedCMap (_egegb );if _cbgec !=nil {_bag .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",_egegb ,_cbgec );
|
||
};}else {_bag .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_egegb );};};if _acfc :=_edba .baseFields ()._bfbgf ;_acfc !=nil {if _dgga :=_acfc .Name ();_dgga =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_dgga =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_gefff ._bfddc =_ef .NewCMapEncoder (_egegb ,_gefff ._fcffd ,_acfc );
|
||
};};return _gefff ,nil ;};func (_edcge *PdfReader )loadStructure ()error {if _edcge ._dafgab .GetCrypter ()!=nil &&!_edcge ._dafgab .IsAuthenticated (){return _f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_fgdef :=_edcge ._dafgab .GetTrailer ();if _fgdef ==nil {return _f .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dbgdf ,_gdae :=_fgdef .Get ("\u0052\u006f\u006f\u0074").(*_egg .PdfObjectReference );if !_gdae {return _f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_fgdef );
|
||
};_eedde ,_bbbf :=_edcge ._dafgab .LookupByReference (*_dbgdf );if _bbbf !=nil {_bag .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",_bbbf );
|
||
return _bbbf ;};_ebde ,_gdae :=_eedde .(*_egg .PdfIndirectObject );if !_gdae {_bag .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",_eedde ,*_fgdef );
|
||
return _gd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_eadf ,_gdae :=(*_ebde ).PdfObject .(*_egg .PdfObjectDictionary );if !_gdae {_bag .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",_ebde .PdfObject );
|
||
return _gd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_bag .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_eadf );_dgfgb ,_gdae :=_eadf .Get ("\u0050\u0061\u0067e\u0073").(*_egg .PdfObjectReference );
|
||
if !_gdae {return _gd .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");};_gdabg ,_bbbf :=_edcge ._dafgab .LookupByReference (*_dgfgb );
|
||
if _bbbf !=nil {_bag .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 _bbbf ;};_afdbae ,_gdae :=_gdabg .(*_egg .PdfIndirectObject );if !_gdae {_bag .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");
|
||
_bag .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_afdbae );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_efbcee ,_gdae :=_afdbae .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_gdae {_bag .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",_afdbae );return _gd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");
|
||
};_fdcdf ,_gdae :=_egg .GetInt (_efbcee .Get ("\u0043\u006f\u0075n\u0074"));if !_gdae {_bag .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 _gd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_gdae =_egg .GetName (_efbcee .Get ("\u0054\u0079\u0070\u0065"));!_gdae {_bag .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");
|
||
_efbcee .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfgbb ,_aaacd :=_egg .GetInt (_efbcee .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_aaacd {_geba :=int64 (*_bfgbb );_edcge .Rotate =&_geba ;};_edcge ._bcccb =_dbgdf ;
|
||
_edcge ._eacf =_eadf ;_edcge ._gbeagf =_efbcee ;_edcge ._cgcga =_afdbae ;_edcge ._fced =int (*_fdcdf );_edcge ._abgbc =[]*_egg .PdfIndirectObject {};_ffbff :=map[_egg .PdfObject ]struct{}{};_bbbf =_edcge .buildPageList (_afdbae ,nil ,_ffbff );if _bbbf !=nil {return _bbbf ;
|
||
};_bag .Log .Trace ("\u002d\u002d\u002d");_bag .Log .Trace ("\u0054\u004f\u0043");_bag .Log .Trace ("\u0050\u0061\u0067e\u0073");_bag .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_edcge ._abgbc ),_edcge ._abgbc );_edcge ._cccbg ,_bbbf =_edcge .loadOutlines ();
|
||
if _bbbf !=nil {_bag .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",_bbbf );
|
||
return _bbbf ;};_edcge .AcroForm ,_bbbf =_edcge .loadForms ();if _bbbf !=nil {return _bbbf ;};_edcge .DSS ,_bbbf =_edcge .loadDSS ();if _bbbf !=nil {return _bbbf ;};_edcge ._eacd ,_bbbf =_edcge .loadPerms ();if _bbbf !=nil {return _bbbf ;};return 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 (_cfg *PdfFieldButton )SetType (btype ButtonType ){_dafe :=uint32 (0);if _cfg .Ff !=nil {_dafe =uint32 (*_cfg .Ff );};switch btype {case ButtonTypePush :_dafe |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_dafe |=FieldFlagRadio .Mask ();};_cfg .Ff =_egg .MakeInteger (int64 (_dafe ));
|
||
};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_ecaa *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ecaa .Alternate ==nil {if _ecaa .N ==1{_ggbf :=NewPdfColorspaceDeviceGray ();return _ggbf .ColorFromFloats (vals );}else if _ecaa .N ==3{_ggeb :=NewPdfColorspaceDeviceRGB ();
|
||
return _ggeb .ColorFromFloats (vals );}else if _ecaa .N ==4{_fdcba :=NewPdfColorspaceDeviceCMYK ();return _fdcba .ColorFromFloats (vals );}else {return nil ,_gd .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 _ecaa .Alternate .ColorFromFloats (vals );};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_bgca *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_abdgd :=NewPdfOutlineItem ();_abdgd .Title =_egg .MakeEncodedString (_bgca .Title ,true );_abdgd .Dest =_bgca .Dest .ToPdfObject ();var _fabcf []*PdfOutlineItem ;var _bafgaa int64 ;
|
||
var _gfede *PdfOutlineItem ;for _ ,_feebb :=range _bgca .Entries {_bcaa ,_bdgdf :=_feebb .ToPdfOutlineItem ();_bcaa .Parent =&_abdgd .PdfOutlineTreeNode ;if _gfede !=nil {_gfede .Next =&_bcaa .PdfOutlineTreeNode ;_bcaa .Prev =&_gfede .PdfOutlineTreeNode ;
|
||
};_fabcf =append (_fabcf ,_bcaa );_bafgaa +=_bdgdf ;_gfede =_bcaa ;};_bcabd :=len (_fabcf );_bafgaa +=int64 (_bcabd );if _bcabd > 0{_abdgd .First =&_fabcf [0].PdfOutlineTreeNode ;_abdgd .Last =&_fabcf [_bcabd -1].PdfOutlineTreeNode ;_abdgd .Count =&_bafgaa ;
|
||
};return _abdgd ,_bafgaa ;};
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_abfd *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dgab ,_eeea :=color .(*PdfColorCalRGB );if !_eeea {_bag .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 ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ecbc :=_dgab .A ();_edbdb :=_dgab .B ();_cfebf :=_dgab .C ();X :=_abfd .Matrix [0]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [3]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [6]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]);
|
||
Y :=_abfd .Matrix [1]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [4]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [7]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]);Z :=_abfd .Matrix [2]*_dgb .Pow (_ecbc ,_abfd .Gamma [0])+_abfd .Matrix [5]*_dgb .Pow (_edbdb ,_abfd .Gamma [1])+_abfd .Matrix [8]*_dgb .Pow (_cfebf ,_abfd .Gamma [2]);
|
||
_daaf :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cdfg :=-0.969256*X +1.875992*Y +0.041556*Z ;_bgde :=0.055648*X +-0.204043*Y +1.057311*Z ;_daaf =_dgb .Min (_dgb .Max (_daaf ,0),1.0);_cdfg =_dgb .Min (_dgb .Max (_cdfg ,0),1.0);_bgde =_dgb .Min (_dgb .Max (_bgde ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_daaf ,_cdfg ,_bgde ),nil ;};func (_edf *PdfReader )newPdfActionSubmitFormFromDict (_bea *_egg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_ged ,_fcd :=_fgb (_bea .Get ("\u0046"));if _fcd !=nil {return nil ,_fcd ;};
|
||
return &PdfActionSubmitForm {F :_ged ,Fields :_bea .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bea .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};
|
||
|
||
// 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 (_dgc *PdfAnnotationWidget )Field ()*PdfField {return _dgc ._daa };
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_dab :=NewPdfAction ();_dac :=&PdfActionMovie {};_dac .PdfAction =_dab ;_dab .SetContext (_dac );return _dac ;};func (_dba *PdfReader )newPdfAnnotationProjectionFromDict (_gdba *_egg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_bga :=&PdfAnnotationProjection {};
|
||
_abf ,_dbbc :=_dba .newPdfAnnotationMarkupFromDict (_gdba );if _dbbc !=nil {return nil ,_dbbc ;};_bga .PdfAnnotationMarkup =_abf ;return _bga ,nil ;};
|
||
|
||
// IsValid checks if the given pdf output intent type is valid.
|
||
func (_bfbeb PdfOutputIntentType )IsValid ()bool {return _bfbeb >=PdfOutputIntentTypeA1 &&_bfbeb <=PdfOutputIntentTypeX ;};
|
||
|
||
// GetContainingPdfObject gets the primitive used to parse the color space.
|
||
func (_cdfaa *PdfColorspaceICCBased )GetContainingPdfObject ()_egg .PdfObject {return _cdfaa ._bcda };func (_egbdd *PdfSignature )extractChainFromPKCS7 ()([]*_dg .Certificate ,error ){_ffdeb ,_fada :=_df .Parse (_egbdd .Contents .Bytes ());if _fada !=nil {return nil ,_fada ;
|
||
};return _ffdeb .Certificates ,nil ;};
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_edaaa *PdfPageResources )GetPatternByName (keyName _egg .PdfObjectName )(*PdfPattern ,bool ){if _edaaa .Pattern ==nil {return nil ,false ;};_cfge ,_fdfbd :=_egg .TraceToDirectObject (_edaaa .Pattern ).(*_egg .PdfObjectDictionary );if !_fdfbd {_bag .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",_edaaa .Pattern );
|
||
return nil ,false ;};if _aeedf :=_cfge .Get (keyName );_aeedf !=nil {_bagbb ,_eceaf :=_ccgbe (_aeedf );if _eceaf !=nil {_bag .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",_eceaf );
|
||
return nil ,false ;};return _bagbb ,true ;};return nil ,false ;};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_befdb :_egg .MakeIndirectObject (_egg .MakeDict ())};};func _ccaeg (_addac *PdfField ,_ddgb _egg .PdfObject )error {switch _addac .GetContext ().(type ){case *PdfFieldText :switch _cgga :=_ddgb .(type ){case *_egg .PdfObjectName :_cdaddc :=_cgga ;
|
||
_bag .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",_cdaddc .String ());
|
||
_addac .V =_egg .MakeEncodedString (_cgga .String (),true );case *_egg .PdfObjectString :_addac .V =_egg .MakeEncodedString (_cgga .String (),true );default:_bag .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",_cgga ,_cgga );
|
||
};case *PdfFieldButton :switch _ddgb .(type ){case *_egg .PdfObjectName :if len (_ddgb .String ())> 0{_addac .V =_ddgb ;_bbeb (_addac ,_ddgb );};case *_egg .PdfObjectString :if len (_ddgb .String ())> 0{_addac .V =_egg .MakeName (_ddgb .String ());_bbeb (_addac ,_addac .V );
|
||
};default:_bag .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",_addac .PartialName (),_ddgb );_addac .V =_ddgb ;};case *PdfFieldChoice :switch _ddgb .(type ){case *_egg .PdfObjectName :if len (_ddgb .String ())> 0{_addac .V =_egg .MakeString (_ddgb .String ());
|
||
_bbeb (_addac ,_ddgb );};case *_egg .PdfObjectString :if len (_ddgb .String ())> 0{_addac .V =_ddgb ;_bbeb (_addac ,_egg .MakeName (_ddgb .String ()));};default:_bag .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",_addac .PartialName (),_ddgb );
|
||
_addac .V =_ddgb ;};case *PdfFieldSignature :_bag .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",_addac .PartialName (),_ddgb );
|
||
};return nil ;};
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_fcff PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _fcff ._edde .getFontDescriptor (),nil ;};func _gfgga (_ada *_egg .PdfIndirectObject ,_fded *_egg .PdfObjectDictionary )(*DSS ,error ){if _ada ==nil {_ada =_egg .MakeIndirectObject (nil );
|
||
};_ada .PdfObject =_egg .MakeDict ();_ebbe :=map[string ]*VRI {};if _fadg ,_cfea :=_egg .GetDict (_fded .Get ("\u0056\u0052\u0049"));_cfea {for _ ,_eegg :=range _fadg .Keys (){if _bacc ,_accec :=_egg .GetDict (_fadg .Get (_eegg ));_accec {_ebbe [_fc .ToUpper (_eegg .String ())]=_cffe (_bacc );
|
||
};};};return &DSS {Certs :_cfdec (_fded .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_cfdec (_fded .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_cfdec (_fded .Get ("\u0043\u0052\u004c\u0073")),VRI :_ebbe ,_eaceg :_ada },nil ;};
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_fadbf *PdfPattern )SetContext (ctx PdfModel ){_fadbf ._fcbdg =ctx };
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_dbfc *DSS )GetContainingPdfObject ()_egg .PdfObject {return _dbfc ._eaceg };func (_deffcb *XObjectImage )getParamsDict ()*_egg .PdfObjectDictionary {_bgfdg :=_egg .MakeDict ();_bgfdg .Set ("\u0057\u0069\u0064t\u0068",_egg .MakeInteger (*_deffcb .Width ));
|
||
_bgfdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_egg .MakeInteger (*_deffcb .Height ));_bgfdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_egg .MakeInteger (int64 (_deffcb .ColorSpace .GetNumComponents ())));
|
||
_bgfdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egg .MakeInteger (*_deffcb .BitsPerComponent ));return _bgfdg ;};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _egg .StreamEncoder ;FormType _egg .PdfObject ;BBox _egg .PdfObject ;Matrix _egg .PdfObject ;Resources *PdfPageResources ;Group _egg .PdfObject ;Ref _egg .PdfObject ;MetaData _egg .PdfObject ;PieceInfo _egg .PdfObject ;LastModified _egg .PdfObject ;
|
||
StructParent _egg .PdfObject ;StructParents _egg .PdfObject ;OPI _egg .PdfObject ;OC _egg .PdfObject ;Name _egg .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_acgef *_egg .PdfObjectStream ;};
|
||
|
||
// 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 (_affb *Image )SetSamples (samples []uint32 ){if _affb .BitsPerComponent < 8{samples =_affb .samplesAddPadding (samples );};_fafgba :=_fb .ResampleUint32 (samples ,int (_affb .BitsPerComponent ),8);_babbg :=make ([]byte ,len (_fafgba ));for _cdde ,_bfdg :=range _fafgba {_babbg [_cdde ]=byte (_bfdg );
|
||
};_affb .Data =_babbg ;};func _gfadc (_beeg *_egg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_dabcf :=&PdfShadingPattern {};_bdcbg :=_beeg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _bdcbg ==nil {_bag .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_gcec ,_fedf :=_edbaa (_bdcbg );if _fedf !=nil {_bag .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_fedf );return nil ,_fedf ;
|
||
};_dabcf .Shading =_gcec ;if _cbec :=_beeg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbec !=nil {_ebeag ,_eddcgg :=_cbec .(*_egg .PdfObjectArray );if !_eddcgg {_bag .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",_cbec );
|
||
return nil ,_egg .ErrTypeError ;};_dabcf .Matrix =_ebeag ;};if _fadbfg :=_beeg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fadbfg !=nil {_dabcf .ExtGState =_fadbfg ;};return _dabcf ,nil ;};type pdfFontType3 struct{fontCommon ;_acdgb *_egg .PdfIndirectObject ;
|
||
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _egg .PdfObject ;Encoding _egg .PdfObject ;FontBBox _egg .PdfObject ;FontMatrix _egg .PdfObject ;FirstChar _egg .PdfObject ;LastChar _egg .PdfObject ;Widths _egg .PdfObject ;Resources _egg .PdfObject ;_ecfgb map[_ef .CharCode ]float64 ;_fbfed _ef .TextEncoder ;
|
||
};var (ErrRequiredAttributeMissing =_gd .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 =_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");
|
||
ErrTypeCheck =_gd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_ccgg =_gd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");ErrEncrypted =_gd .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 =_gd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");ErrFontNotSupported =_de .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_egg .ErrNotSupported );
|
||
ErrType1CFontNotSupported =_de .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",_egg .ErrNotSupported );
|
||
ErrType3FontNotSupported =_de .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",_egg .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_de .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",_egg .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_de .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 =_de .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););func (_eeaaa *PdfWriter )writeObjectsInStreams (_gaeff map[_egg .PdfObject ]bool )error {for _ ,_bafaca :=range _eeaaa ._bbead {if _caaac :=_gaeff [_bafaca ];
|
||
_caaac {continue ;};_gdfdc :=int64 (0);switch _fffccb :=_bafaca .(type ){case *_egg .PdfIndirectObject :_gdfdc =_fffccb .ObjectNumber ;case *_egg .PdfObjectStream :_gdfdc =_fffccb .ObjectNumber ;case *_egg .PdfObjectStreams :_gdfdc =_fffccb .ObjectNumber ;
|
||
default:_bag .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",_bafaca );
|
||
return ErrTypeCheck ;};if _eeaaa ._agdag !=nil &&_bafaca !=_eeaaa ._afcc {_deefb :=_eeaaa ._agdag .Encrypt (_bafaca ,_gdfdc ,0);if _deefb !=nil {_bag .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",_deefb );
|
||
return _deefb ;};};_eeaaa .writeObject (int (_gdfdc ),_bafaca );};return nil ;};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_fdfab *PdfTilingPattern )IsColored ()bool {if _fdfab .PaintType !=nil &&*_fdfab .PaintType ==1{return true ;};return false ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element in
|
||
// range 0-1.
|
||
func (_bdddb *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_accc ,_feafd :=_egg .GetNumbersAsFloat (objects );
|
||
if _feafd !=nil {return nil ,_feafd ;};return _bdddb .ColorFromFloats (_accc );};func (_fgg *PdfReader )newPdfAnnotationScreenFromDict (_gefc *_egg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_dcgg :=PdfAnnotationScreen {};_dcgg .T =_gefc .Get ("\u0054");
|
||
_dcgg .MK =_gefc .Get ("\u004d\u004b");_dcgg .A =_gefc .Get ("\u0041");_dcgg .AA =_gefc .Get ("\u0041\u0041");return &_dcgg ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_bebc *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_aegcd *PdfReader )newPdfAnnotationFreeTextFromDict (_bgbg *_egg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_eceb :=PdfAnnotationFreeText {};_faed ,_fgcg :=_aegcd .newPdfAnnotationMarkupFromDict (_bgbg );
|
||
if _fgcg !=nil {return nil ,_fgcg ;};_eceb .PdfAnnotationMarkup =_faed ;_eceb .DA =_bgbg .Get ("\u0044\u0041");_eceb .Q =_bgbg .Get ("\u0051");_eceb .RC =_bgbg .Get ("\u0052\u0043");_eceb .DS =_bgbg .Get ("\u0044\u0053");_eceb .CL =_bgbg .Get ("\u0043\u004c");
|
||
_eceb .IT =_bgbg .Get ("\u0049\u0054");_eceb .BE =_bgbg .Get ("\u0042\u0045");_eceb .RD =_bgbg .Get ("\u0052\u0044");_eceb .BS =_bgbg .Get ("\u0042\u0053");_eceb .LE =_bgbg .Get ("\u004c\u0045");return &_eceb ,nil ;};
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _egg .PdfObject ;IC _egg .PdfObject ;BE _egg .PdfObject ;RD _egg .PdfObject ;};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_egad *_egg .PdfIndirectObject ;_gfbe *_egg .PdfIndirectObject ;_fcdab map[_egg .PdfObject ]struct{};_bbead []_egg .PdfObject ;_bacec map[_egg .PdfObject ]struct{};_fbaeb []*_egg .PdfIndirectObject ;_dcedg *PdfOutlineTreeNode ;_acea *_egg .PdfObjectDictionary ;
|
||
_aedbe []_egg .PdfObject ;_efage *_egg .PdfIndirectObject ;_beegad *_d .Writer ;_cdaab int64 ;_gdbeb error ;_agdag *_egg .PdfCrypt ;_edafcc *_egg .PdfObjectDictionary ;_afcc *_egg .PdfIndirectObject ;_aaea *_egg .PdfObjectArray ;_dacce _egg .Version ;_bfga *bool ;
|
||
_afcd map[_egg .PdfObject ][]*_egg .PdfObjectDictionary ;_aggec *PdfAcroForm ;_cfgb Optimizer ;_ebgad StandardApplier ;_ccceb map[int ]crossReference ;_ddfee int64 ;ObjNumOffset int ;_gabaca bool ;_ecfgc _egg .XrefTable ;_gccgfe int64 ;_ggdad int64 ;_fcgfe map[_egg .PdfObject ]int64 ;
|
||
_adcd map[_egg .PdfObject ]struct{};_fbgdb string ;_fadef []*PdfOutputIntent ;_aafeg bool ;_caddc ,_bagaa string ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_abdgbd *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=_abdgbd .GetNumComponents (){return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cffce ,_gfaac :=_egg .GetNumbersAsFloat (objects );
|
||
if _gfaac !=nil {return nil ,_gfaac ;};return _abdgbd .ColorFromFloats (_cffce );};
|
||
|
||
// 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 []*_egg .PdfObjectStream ;OCSP []*_egg .PdfObjectStream ;CRL []*_egg .PdfObjectStream ;TU *_egg .PdfObjectString ;TS *_egg .PdfObjectString ;};func (_gdgbg *pdfFontSimple )addEncoding ()error {var (_gadfc string ;_daggf map[_ef .CharCode ]_ef .GlyphName ;
|
||
_fdac _ef .SimpleEncoder ;);if _gdgbg .Encoder ()!=nil {_ggefa ,_gffaa :=_gdgbg .Encoder ().(_ef .SimpleEncoder );if _gffaa &&_ggefa !=nil {_gadfc =_ggefa .BaseName ();};};if _gdgbg .Encoding !=nil {_dffdd ,_afdg ,_bgcfa :=_gdgbg .getFontEncoding ();if _bgcfa !=nil {_bag .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",_gdgbg ._dgfdc ,_gdgbg ._ebdf ,_gdgbg .Encoding ,_gdgbg .Encoding ,_bgcfa );
|
||
return _bgcfa ;};if _dffdd !=""{_gadfc =_dffdd ;};_daggf =_afdg ;_fdac ,_bgcfa =_ef .NewSimpleTextEncoder (_gadfc ,_daggf );if _bgcfa !=nil {return _bgcfa ;};};if _fdac ==nil {_fcab :=_gdgbg ._bgacg ;if _fcab !=nil {switch _gdgbg ._ebdf {case "\u0054\u0079\u0070e\u0031":if _fcab .fontFile !=nil &&_fcab .fontFile ._gdcd !=nil {_bag .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_fdac =_fcab .fontFile ._gdcd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _fcab ._eccg !=nil {_bag .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bcgcg ,_afbfe :=_fcab ._eccg .MakeEncoder ();
|
||
if _afbfe ==nil {_fdac =_bcgcg ;};};};};};if _fdac !=nil {if _daggf !=nil {_bag .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_daggf ,_gdgbg .baseFields ());
|
||
_fdac =_ef .ApplyDifferences (_fdac ,_daggf );};_gdgbg .SetEncoder (_fdac );};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_bgggdd *PdfShadingType5 )ToPdfObject ()_egg .PdfObject {_bgggdd .PdfShading .ToPdfObject ();_aaggec ,_fcbeac :=_bgggdd .getShadingDict ();if _fcbeac !=nil {_bag .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 _bgggdd .BitsPerCoordinate !=nil {_aaggec .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bgggdd .BitsPerCoordinate );};if _bgggdd .BitsPerComponent !=nil {_aaggec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bgggdd .BitsPerComponent );
|
||
};if _bgggdd .VerticesPerRow !=nil {_aaggec .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_bgggdd .VerticesPerRow );};if _bgggdd .Decode !=nil {_aaggec .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bgggdd .Decode );
|
||
};if _bgggdd .Function !=nil {if len (_bgggdd .Function )==1{_aaggec .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgggdd .Function [0].ToPdfObject ());}else {_cfbbg :=_egg .MakeArray ();for _ ,_edefb :=range _bgggdd .Function {_cfbbg .Append (_edefb .ToPdfObject ());
|
||
};_aaggec .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cfbbg );};};return _bgggdd ._cfdbd ;};
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _fe .Permissions ;Algorithm EncryptionAlgorithm ;};func (_gecfa *PdfSignature )extractChainFromCert ()([]*_dg .Certificate ,error ){var _aebcfe *_egg .PdfObjectArray ;switch _dfdec :=_gecfa .Cert .(type ){case *_egg .PdfObjectString :_aebcfe =_egg .MakeArray (_dfdec );
|
||
case *_egg .PdfObjectArray :_aebcfe =_dfdec ;default:return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dfdec );
|
||
};var _cebe _dd .Buffer ;for _ ,_aaffb :=range _aebcfe .Elements (){_dggefb ,_fgade :=_egg .GetString (_aaffb );if !_fgade {return nil ,_f .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_aaffb );
|
||
};if _ ,_gfeb :=_cebe .Write (_dggefb .Bytes ());_gfeb !=nil {return nil ,_gfeb ;};};return _dg .ParseCertificates (_cebe .Bytes ());};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_cc :=NewPdfAction ();_gad :=&PdfActionGoToR {};_gad .PdfAction =_cc ;_cc .SetContext (_gad );return _gad ;};
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_bfcce *PdfPageResources )GetXObjectImageByName (keyName _egg .PdfObjectName )(*XObjectImage ,error ){_cbbad ,_bebgb :=_bfcce .GetXObjectByName (keyName );if _cbbad ==nil {return nil ,nil ;};if _bebgb !=XObjectTypeImage {return nil ,_gd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_egaaa ,_accca :=NewXObjectImageFromStream (_cbbad );if _accca !=nil {return nil ,_accca ;};return _egaaa ,nil ;};func _dgdba (_dacae *PdfField )[]*PdfField {_ebdg :=[]*PdfField {_dacae };for _ ,_bcgcd :=range _dacae .Kids {_ebdg =append (_ebdg ,_dgdba (_bcgcd )...);
|
||
};return _ebdg ;};
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_agfgc *PdfPage )GetContainingPdfObject ()_egg .PdfObject {return _agfgc ._dfee };func (_aea *PdfReader )newPdfAnnotationUnderlineFromDict (_gfg *_egg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_bdag :=PdfAnnotationUnderline {};_baag ,_bbb :=_aea .newPdfAnnotationMarkupFromDict (_gfg );
|
||
if _bbb !=nil {return nil ,_bbb ;};_bdag .PdfAnnotationMarkup =_baag ;_bdag .QuadPoints =_gfg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bdag ,nil ;};
|
||
|
||
// NewReaderOpts generates a default `ReaderOpts` instance.
|
||
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
|
||
|
||
// 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 ,*_gf .File ,error ){const _gfgff ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
|
||
_deeag ,_gabac :=_gf .Open (pdfFile );if _gabac !=nil {return nil ,nil ,_gabac ;};_fbga ,_gabac :=_ffee (_deeag ,opts ,true ,_gfgff );if _gabac !=nil {_deeag .Close ();return nil ,nil ,_gabac ;};return _fbga ,_deeag ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gdga *PdfActionSound )ToPdfObject ()_egg .PdfObject {_gdga .PdfAction .ToPdfObject ();_eaf :=_gdga ._bf ;_ag :=_eaf .PdfObject .(*_egg .PdfObjectDictionary );_ag .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSound )));_ag .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_gdga .Sound );
|
||
_ag .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_gdga .Volume );_ag .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_gdga .Synchronous );_ag .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gdga .Repeat );_ag .SetIfNotNil ("\u004d\u0069\u0078",_gdga .Mix );
|
||
return _eaf ;};
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_eceddb *PdfWriter )WriteToFile (outputFilePath string )error {_fcagf ,_daegc :=_gf .Create (outputFilePath );if _daegc !=nil {return _daegc ;};defer _fcagf .Close ();return _eceddb .Write (_fcagf );};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_bbfd pdfFontSimple )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){if _bbfd ._dddd !=nil {_egegf ,_fgfbg :=_bbfd ._dddd .Read (r );if _fgfbg {return _egegf ,true ;};};_dcceg :=_bbfd .Encoder ();if _dcceg ==nil {_bag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bbfd );
|
||
return _bgd .CharMetrics {},false ;};_bcef ,_gedaab :=_dcceg .RuneToCharcode (r );if !_gedaab {if r !=' '{_bag .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 ,_bbfd );
|
||
};return _bgd .CharMetrics {},false ;};_eafb ,_fdbg :=_bbfd .GetCharMetrics (_bcef );return _eafb ,_fdbg ;};func _fbbfc (_addg *_egg .PdfObjectDictionary ,_cedg *fontCommon ,_geggg _ef .TextEncoder )(*pdfFontSimple ,error ){_dfcff :=_gefca (_cedg );_dfcff ._cdee =_geggg ;
|
||
if _geggg ==nil {_edaac :=_addg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _edaac ==nil {_edaac =_egg .MakeInteger (0);};_dfcff .FirstChar =_edaac ;_fedb ,_aaef :=_egg .GetIntVal (_edaac );if !_aaef {_bag .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",_edaac );
|
||
return nil ,_egg .ErrTypeError ;};_agfef :=_ef .CharCode (_fedb );_edaac =_addg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _edaac ==nil {_edaac =_egg .MakeInteger (255);};_dfcff .LastChar =_edaac ;_fedb ,_aaef =_egg .GetIntVal (_edaac );
|
||
if !_aaef {_bag .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",_edaac );return nil ,_egg .ErrTypeError ;
|
||
};_agabb :=_ef .CharCode (_fedb );_dfcff ._babec =make (map[_ef .CharCode ]float64 );_edaac =_addg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _edaac !=nil {_dfcff .Widths =_edaac ;_cfbgf ,_aacbc :=_egg .GetArray (_edaac );if !_aacbc {_bag .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",_edaac );
|
||
return nil ,_egg .ErrTypeError ;};_gdbcg ,_acgg :=_cfbgf .ToFloat64Array ();if _acgg !=nil {_bag .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 ,_acgg ;};if len (_gdbcg )!=int (_agabb -_agfef +1){_bag .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",_agabb -_agfef +1,len (_gdbcg ));
|
||
return nil ,_egg .ErrRangeError ;};for _aaabc ,_cbddd :=range _gdbcg {_dfcff ._babec [_agfef +_ef .CharCode (_aaabc )]=_cbddd ;};};};_dfcff .Encoding =_egg .TraceToDirectObject (_addg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _dfcff ,nil ;
|
||
};func _gefca (_abdccd *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_abdccd }};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cfec pdfCIDFontType0 )Encoder ()_ef .TextEncoder {return _cfec ._dafeb };
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_fae :=NewPdfAction ();_aba :=&PdfActionGoTo3DView {};_aba .PdfAction =_fae ;_fae .SetContext (_aba );return _aba ;};func _aggea (_addag _egg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbbac :=&PdfPageResourcesColorspaces {};
|
||
if _cbgeb ,_acgd :=_addag .(*_egg .PdfIndirectObject );_acgd {_gbbac ._bcecc =_cbgeb ;_addag =_cbgeb .PdfObject ;};_eabb ,_bcdac :=_egg .GetDict (_addag );if !_bcdac {return nil ,_gd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_gbbac .Names =[]string {};_gbbac .Colorspaces =map[string ]PdfColorspace {};for _ ,_dbdfd :=range _eabb .Keys (){_gbdf :=_eabb .Get (_dbdfd );_gbbac .Names =append (_gbbac .Names ,string (_dbdfd ));_gffbe ,_fdcc :=NewPdfColorspaceFromPdfObject (_gbdf );
|
||
if _fdcc !=nil {return nil ,_fdcc ;};_gbbac .Colorspaces [string (_dbdfd )]=_gffbe ;};return _gbbac ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_cddg *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// GetPdfVersion gets the version of the PDF used within this document.
|
||
func (_fbdfb *PdfWriter )GetPdfVersion ()string {return _fbdfb .getPdfVersion ()};
|
||
|
||
// 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 (_fcgbd *PdfPageResources )GetFontByName (keyName _egg .PdfObjectName )(_egg .PdfObject ,bool ){if _fcgbd .Font ==nil {return nil ,false ;};_gcddg ,_egceef :=_egg .TraceToDirectObject (_fcgbd .Font ).(*_egg .PdfObjectDictionary );if !_egceef {_bag .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",_egg .TraceToDirectObject (_fcgbd .Font ));
|
||
return nil ,false ;};if _edee :=_gcddg .Get (keyName );_edee !=nil {return _edee ,true ;};return nil ,false ;};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_ceff *PdfPageResources )GetContainingPdfObject ()_egg .PdfObject {return _ceff ._cbcba };
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_cgag .Lock ();defer _cgag .Unlock ();_eggc =subject };var _ pdfFont =(*pdfFontType0 )(nil );
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_ccaf *PdfFieldSignature )ToPdfObject ()_egg .PdfObject {if _ccaf .PdfAnnotationWidget !=nil {_ccaf .PdfAnnotationWidget .ToPdfObject ();};_ccaf .PdfField .ToPdfObject ();_aeded :=_ccaf ._agef ;_baacg :=_aeded .PdfObject .(*_egg .PdfObjectDictionary );
|
||
_baacg .SetIfNotNil ("\u0046\u0054",_egg .MakeName ("\u0053\u0069\u0067"));_baacg .SetIfNotNil ("\u004c\u006f\u0063\u006b",_ccaf .Lock );_baacg .SetIfNotNil ("\u0053\u0056",_ccaf .SV );if _ccaf .V !=nil {_baacg .SetIfNotNil ("\u0056",_ccaf .V .ToPdfObject ());
|
||
};return _aeded ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_adf *PdfAnnotation )GetContainingPdfObject ()_egg .PdfObject {return _adf ._cef };
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _egg .PdfObject ;NewWindow _egg .PdfObject ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_ffcg *PdfColorspaceLab )ToPdfObject ()_egg .PdfObject {_afcg :=_egg .MakeArray ();_afcg .Append (_egg .MakeName ("\u004c\u0061\u0062"));_ggef :=_egg .MakeDict ();if _ffcg .WhitePoint !=nil {_bcec :=_egg .MakeArray (_egg .MakeFloat (_ffcg .WhitePoint [0]),_egg .MakeFloat (_ffcg .WhitePoint [1]),_egg .MakeFloat (_ffcg .WhitePoint [2]));
|
||
_ggef .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bcec );}else {_bag .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 _ffcg .BlackPoint !=nil {_egfe :=_egg .MakeArray (_egg .MakeFloat (_ffcg .BlackPoint [0]),_egg .MakeFloat (_ffcg .BlackPoint [1]),_egg .MakeFloat (_ffcg .BlackPoint [2]));_ggef .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egfe );
|
||
};if _ffcg .Range !=nil {_gaea :=_egg .MakeArray (_egg .MakeFloat (_ffcg .Range [0]),_egg .MakeFloat (_ffcg .Range [1]),_egg .MakeFloat (_ffcg .Range [2]),_egg .MakeFloat (_ffcg .Range [3]));_ggef .Set ("\u0052\u0061\u006eg\u0065",_gaea );};_afcg .Append (_ggef );
|
||
if _ffcg ._ceaag !=nil {_ffcg ._ceaag .PdfObject =_afcg ;return _ffcg ._ceaag ;};return _afcg ;};func (_gcgcd *LTV )validateSig (_eedec *PdfSignature )error {if _eedec ==nil ||_eedec .Contents ==nil ||len (_eedec .Contents .Bytes ())==0{return _f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_eedec );
|
||
};return nil ;};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_fcbf *PdfPage )AppendContentStream (contentStr string )error {_faaa ,_afgc :=_fcbf .GetContentStreams ();if _afgc !=nil {return _afgc ;};if len (_faaa )==0{_faaa =[]string {contentStr };return _fcbf .SetContentStreams (_faaa ,_egg .NewFlateEncoder ());
|
||
};var _fffe _dd .Buffer ;_fffe .WriteString (_faaa [len (_faaa )-1]);_fffe .WriteString ("\u000a");_fffe .WriteString (contentStr );_faaa [len (_faaa )-1]=_fffe .String ();return _fcbf .SetContentStreams (_faaa ,_egg .NewFlateEncoder ());};
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_aeecg :=&PdfPageResources {};_aeecg ._cbcba =_egg .MakeDict ();return _aeecg ;};
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_dcefc *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_eegaf :=RC4_128bit ;if options !=nil {_eegaf =options .Algorithm ;};_cgdad :=_fe .PermOwner ;if options !=nil {_cgdad =options .Permissions ;};var _edca _gfc .Filter ;
|
||
switch _eegaf {case RC4_128bit :_edca =_gfc .NewFilterV2 (16);case AES_128bit :_edca =_gfc .NewFilterAESV2 ();case AES_256bit :_edca =_gfc .NewFilterAESV3 ();default:return _f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_gaaab ,_gafec ,_eacga :=_egg .PdfCryptNewEncrypt (_edca ,userPass ,ownerPass ,_cgdad );if _eacga !=nil {return _eacga ;};_dcefc ._agdag =_gaaab ;if _gafec .Major !=0{_dcefc .SetVersion (_gafec .Major ,_gafec .Minor );};_dcefc ._edafcc =_gafec .Encrypt ;
|
||
_dcefc ._caddc ,_dcefc ._bagaa =_gafec .ID0 ,_gafec .ID1 ;_gcdfc :=_egg .MakeIndirectObject (_gafec .Encrypt );_dcefc ._afcc =_gcdfc ;_dcefc .addObject (_gcdfc );return nil ;};
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_ccgae *PdfPageResources )HasColorspaceByName (keyName _egg .PdfObjectName )bool {_gggadd ,_ccdae :=_ccgae .GetColorspaces ();if _ccdae !=nil {_bag .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",_ccdae );
|
||
return false ;};if _gggadd ==nil {return false ;};_ ,_accgd :=_gggadd .Colorspaces [string (keyName )];return _accgd ;};
|
||
|
||
// 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 (_ddef *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgdd :=vals [0];if _cgdd < 0.0||_cgdd > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cgdd );
|
||
return nil ,ErrColorOutOfRange ;};_dfgg :=vals [1];if _dfgg < 0.0||_dfgg > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dfgg );return nil ,ErrColorOutOfRange ;
|
||
};_cfed :=vals [2];if _cfed < 0.0||_cfed > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cfed );return nil ,ErrColorOutOfRange ;};_bbgc :=vals [3];
|
||
if _bbgc < 0.0||_bbgc > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbgc );return nil ,ErrColorOutOfRange ;};_fcacf :=NewPdfColorDeviceCMYK (_cgdd ,_dfgg ,_cfed ,_bbgc );
|
||
return _fcacf ,nil ;};
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_bdf :=NewPdfAnnotation ();_bge :=&PdfAnnotationUnderline {};_bge .PdfAnnotation =_bdf ;_bge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bdf .SetContext (_bge );return _bge ;};func (_ggab *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
|
||
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_gbfg *PdfPageResourcesColorspaces )ToPdfObject ()_egg .PdfObject {_dbcgb :=_egg .MakeDict ();for _ ,_feeac :=range _gbfg .Names {_dbcgb .Set (_egg .PdfObjectName (_feeac ),_gbfg .Colorspaces [_feeac ].ToPdfObject ());};if _gbfg ._bcecc !=nil {_gbfg ._bcecc .PdfObject =_dbcgb ;
|
||
return _gbfg ._bcecc ;};return _dbcgb ;};
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_edbef *PdfTilingPattern )SetContentStream (content []byte ,encoder _egg .StreamEncoder )error {_eead ,_cacb :=_edbef ._fgec .(*_egg .PdfObjectStream );if !_cacb {_bag .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",_edbef ._fgec );
|
||
return _egg .ErrTypeError ;};if encoder ==nil {encoder =_egg .NewRawEncoder ();};_fdadg :=_eead .PdfObjectDictionary ;_gafb :=encoder .MakeStreamDict ();_fdadg .Merge (_gafb );_cgfg ,_dgae :=encoder .EncodeBytes (content );if _dgae !=nil {return _dgae ;
|
||
};_fdadg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_cgfg ))));_eead .Stream =_cgfg ;return nil ;};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_cdcaf *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _cdcaf .MediaBox !=nil {return _cdcaf .MediaBox ,nil ;};_fedda :=_cdcaf .Parent ;for _fedda !=nil {_gfaafa ,_efbag :=_egg .GetDict (_fedda );if !_efbag {return nil ,_gd .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 _ebgdc :=_gfaafa .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_ebgdc !=nil {_cdbg ,_efec :=_egg .GetArray (_ebgdc );if !_efec {return nil ,_gd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_beeff ,_ggee :=NewPdfRectangle (*_cdbg );if _ggee !=nil {return nil ,_ggee ;};return _beeff ,nil ;};_fedda =_gfaafa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_gd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_ebcgb *XObjectForm )GetContentStream ()([]byte ,error ){_dbafe ,_bcgcdb :=_egg .DecodeStream (_ebcgb ._acgef );if _bcgcdb !=nil {return nil ,_bcgcdb ;};return _dbafe ,nil ;};
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_ageg *PdfPage )error ;};func (_aeaa *PdfAppender )updateObjectsDeep (_abba _egg .PdfObject ,_ddfb map[_egg .PdfObject ]struct{}){if _ddfb ==nil {_ddfb =map[_egg .PdfObject ]struct{}{};};if _ ,_beae :=_ddfb [_abba ];
|
||
_beae ||_abba ==nil {return ;};_ddfb [_abba ]=struct{}{};_egcf :=_egg .ResolveReferencesDeep (_abba ,_aeaa ._bdbf );if _egcf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egcf );};switch _aeb :=_abba .(type ){case *_egg .PdfIndirectObject :switch {case _aeb .GetParser ()==_aeaa ._bgaa ._dafgab :return ;
|
||
case _aeb .GetParser ()==_aeaa .Reader ._dafgab :_bdgg ,_ :=_aeaa ._bgaa .GetIndirectObjectByNumber (int (_aeb .ObjectNumber ));_befe ,_agab :=_bdgg .(*_egg .PdfIndirectObject );if _agab &&_befe !=nil {if _befe .PdfObject !=_aeb .PdfObject &&_befe .PdfObject .WriteString ()!=_aeb .PdfObject .WriteString (){_aeaa .addNewObject (_abba );
|
||
_aeaa ._eegc [_abba ]=_aeb .ObjectNumber ;};};default:_aeaa .addNewObject (_abba );};_aeaa .updateObjectsDeep (_aeb .PdfObject ,_ddfb );case *_egg .PdfObjectArray :for _ ,_fgbfe :=range _aeb .Elements (){_aeaa .updateObjectsDeep (_fgbfe ,_ddfb );};case *_egg .PdfObjectDictionary :for _ ,_baef :=range _aeb .Keys (){_aeaa .updateObjectsDeep (_aeb .Get (_baef ),_ddfb );
|
||
};case *_egg .PdfObjectStreams :if _aeb .GetParser ()!=_aeaa ._bgaa ._dafgab {for _ ,_bafga :=range _aeb .Elements (){_aeaa .updateObjectsDeep (_bafga ,_ddfb );};};case *_egg .PdfObjectStream :switch {case _aeb .GetParser ()==_aeaa ._bgaa ._dafgab :return ;
|
||
case _aeb .GetParser ()==_aeaa .Reader ._dafgab :if _efag ,_bfcf :=_aeaa ._bgaa ._dafgab .LookupByReference (_aeb .PdfObjectReference );_bfcf ==nil {var _ccce bool ;if _bddg ,_ddga :=_egg .GetStream (_efag );_ddga &&_dd .Equal (_bddg .Stream ,_aeb .Stream ){_ccce =true ;
|
||
};if _edc ,_bdab :=_egg .GetDict (_efag );_ccce &&_bdab {_ccce =_edc .WriteString ()==_aeb .PdfObjectDictionary .WriteString ();};if _ccce {return ;};};if _aeb .ObjectNumber !=0{_aeaa ._eegc [_abba ]=_aeb .ObjectNumber ;};default:if _ ,_bgac :=_aeaa ._bdba [_abba ];
|
||
!_bgac {_aeaa .addNewObject (_abba );};};_aeaa .updateObjectsDeep (_aeb .PdfObjectDictionary ,_ddfb );};};
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_bgd .CharMetrics ;const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_beagac *PdfPageResources )GetShadingByName (keyName _egg .PdfObjectName )(*PdfShading ,bool ){if _beagac .Shading ==nil {return nil ,false ;};_fcga ,_ecbdf :=_egg .TraceToDirectObject (_beagac .Shading ).(*_egg .PdfObjectDictionary );if !_ecbdf {_bag .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",_beagac .Shading );
|
||
return nil ,false ;};if _aceg :=_fcga .Get (keyName );_aceg !=nil {_ceged ,_dcffa :=_edbaa (_aceg );if _dcffa !=nil {_bag .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",_dcffa );
|
||
return nil ,false ;};return _ceged ,true ;};return nil ,false ;};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_aa :=NewPdfAction ();_dgg :=&PdfActionRendition {};_dgg .PdfAction =_aa ;_aa .SetContext (_dgg );return _dgg ;};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_cga :=NewPdfAnnotation ();_fgff :=&PdfAnnotationPolyLine {};_fgff .PdfAnnotation =_cga ;_fgff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cga .SetContext (_fgff );return _fgff ;};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_ffdbc *PdfPageResources )SetXObjectByName (keyName _egg .PdfObjectName ,stream *_egg .PdfObjectStream )error {if _ffdbc .XObject ==nil {_ffdbc .XObject =_egg .MakeDict ();};_faaefg :=_egg .TraceToDirectObject (_ffdbc .XObject );_afbff ,_fdbab :=_faaefg .(*_egg .PdfObjectDictionary );
|
||
if !_fdbab {_bag .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",_ffdbc .XObject ,_faaefg );return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_afbff .Set (keyName ,stream );return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cecb *PdfActionTrans )ToPdfObject ()_egg .PdfObject {_cecb .PdfAction .ToPdfObject ();_gbf :=_cecb ._bf ;_gfaa :=_gbf .PdfObject .(*_egg .PdfObjectDictionary );_gfaa .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeTrans )));_gfaa .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cecb .Trans );
|
||
return _gbf ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bgbbd *PdfSignature )GetContainingPdfObject ()_egg .PdfObject {return _bgbbd ._ccbda };func (_cgbf *DSS )addCerts (_cace [][]byte )([]*_egg .PdfObjectStream ,error ){return _cgbf .add (&_cgbf .Certs ,_cgbf ._gafe ,_cace );};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_degb pdfCIDFontType2 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){_ddac ,_eaaa :=_degb ._beec [r ];if !_eaaa {_gcdd ,_accb :=_egg .GetInt (_degb .DW );if !_accb {return _bgd .CharMetrics {},false ;};_ddac =int (*_gcdd );};return _bgd .CharMetrics {Wx :float64 (_ddac )},true ;
|
||
};func (_abcd fontCommon )coreString ()string {_ebfde :="";if _abcd ._bgacg !=nil {_ebfde =_abcd ._bgacg .String ();};return _f .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_abcd ._ebdf ,_abcd ._dgfdc ,_abcd ._cbgce ,_abcd ._ccaae ,_abcd ._gdbae !=nil ,_abcd .fontFlags (),_ebfde );
|
||
};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_cgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _cgac .Alternate ==nil {_bag .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 _cgac .N ==1{_bag .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");
|
||
_fbcdb :=NewPdfColorspaceDeviceGray ();return _fbcdb .ColorToRGB (color );}else if _cgac .N ==3{_bag .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 _cgac .N ==4{_bag .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");
|
||
_dfaa :=NewPdfColorspaceDeviceCMYK ();return _dfaa .ColorToRGB (color );}else {return nil ,_gd .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");
|
||
};};_bag .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",_cgac );
|
||
return _cgac .Alternate .ColorToRGB (color );};
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_bfbdcf *PdfPageResources )GenerateXObjectName ()_egg .PdfObjectName {_dggdg :=1;for {_fdcbe :=_egg .MakeName (_f .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_dggdg ));if !_bfbdcf .HasXObjectByName (*_fdcbe ){return *_fdcbe ;};_dggdg ++;};};
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fff *PdfActionGoToE )ToPdfObject ()_egg .PdfObject {_fff .PdfAction .ToPdfObject ();_aef :=_fff ._bf ;_dge :=_aef .PdfObject .(*_egg .PdfObjectDictionary );_dge .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoToE )));if _fff .F !=nil {_dge .Set ("\u0046",_fff .F .ToPdfObject ());
|
||
};_dge .SetIfNotNil ("\u0044",_fff .D );_dge .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fff .NewWindow );_dge .SetIfNotNil ("\u0054",_fff .T );return _aef ;};
|
||
|
||
// 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{_fedcg *_egg .PdfObjectDictionary ;Type *_egg .PdfObjectName ;TransformMethod *_egg .PdfObjectName ;TransformParams _egg .PdfObject ;Data _egg .PdfObject ;DigestMethod *_egg .PdfObjectName ;};func _gecfbd ()string {_cgag .Lock ();
|
||
defer _cgag .Unlock ();return _fafb };func _ffee (_gbabe _dag .ReadSeeker ,_edgbb *ReaderOpts ,_cgbbe bool ,_dgfcd string )(*PdfReader ,error ){if _edgbb ==nil {_edgbb =NewReaderOpts ();};_adbgg :=*_edgbb ;_feadc :=&PdfReader {_eefb :_gbabe ,_gbabf :map[_egg .PdfObject ]struct{}{},_dabaf :_fedbe (),_cede :_edgbb .LazyLoad ,_gccee :_edgbb .ComplianceMode ,_gddafb :_cgbbe ,_ecbf :&_adbgg };
|
||
_cegcb ,_cgbag :=_gfgfd ("\u0072");if _cgbag !=nil {return nil ,_cgbag ;};_cgbag =_ace .Track (_cegcb ,_dgfcd );if _cgbag !=nil {return nil ,_cgbag ;};_feadc ._faeea =_cegcb ;var _bgcab *_egg .PdfParser ;if !_feadc ._gccee {_bgcab ,_cgbag =_egg .NewParser (_gbabe );
|
||
}else {_bgcab ,_cgbag =_egg .NewCompliancePdfParser (_gbabe );};if _cgbag !=nil {return nil ,_cgbag ;};_feadc ._dafgab =_bgcab ;_eddde ,_cgbag :=_feadc .IsEncrypted ();if _cgbag !=nil {return nil ,_cgbag ;};if !_eddde {_cgbag =_feadc .loadStructure ();
|
||
if _cgbag !=nil {return nil ,_cgbag ;};}else if _cgbbe {_dbgdc ,_debgd :=_feadc .Decrypt ([]byte (_edgbb .Password ));if _debgd !=nil {return nil ,_debgd ;};if !_dbgdc {return nil ,_gd .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");
|
||
};};_feadc ._gcfcf =make (map[*PdfReader ]*PdfReader );_feadc ._acad =make ([]*PdfReader ,_bgcab .GetRevisionNumber ());return _feadc ,nil ;};func _cbcfd (_edce *_egg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_fbac :=&PdfTilingPattern {};_bfdag :=_edce .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
|
||
if _bfdag ==nil {_bag .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dgfec ,_cgdaf :=_bfdag .(*_egg .PdfObjectInteger );if !_cgdaf {_bag .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",_bfdag );
|
||
return nil ,_egg .ErrTypeError ;};_fbac .PaintType =_dgfec ;_bfdag =_edce .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _bfdag ==nil {_bag .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_debgb ,_cgdaf :=_bfdag .(*_egg .PdfObjectInteger );if !_cgdaf {_bag .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",_bfdag );
|
||
return nil ,_egg .ErrTypeError ;};_fbac .TilingType =_debgb ;_bfdag =_edce .Get ("\u0042\u0042\u006f\u0078");if _bfdag ==nil {_bag .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_bfdag =_egg .TraceToDirectObject (_bfdag );_dagbc ,_cgdaf :=_bfdag .(*_egg .PdfObjectArray );if !_cgdaf {_bag .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",_bfdag );
|
||
return nil ,_egg .ErrTypeError ;};_efade ,_cfdgd :=NewPdfRectangle (*_dagbc );if _cfdgd !=nil {_bag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_cfdgd );return nil ,_cfdgd ;};_fbac .BBox =_efade ;_bfdag =_edce .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _bfdag ==nil {_bag .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_fcfba ,_cfdgd :=_egg .GetNumberAsFloat (_bfdag );if _cfdgd !=nil {_bag .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",_fcfba );
|
||
return nil ,_cfdgd ;};_fbac .XStep =_egg .MakeFloat (_fcfba );_bfdag =_edce .Get ("\u0059\u0053\u0074e\u0070");if _bfdag ==nil {_bag .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_feafa ,_cfdgd :=_egg .GetNumberAsFloat (_bfdag );if _cfdgd !=nil {_bag .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",_feafa );
|
||
return nil ,_cfdgd ;};_fbac .YStep =_egg .MakeFloat (_feafa );_bfdag =_edce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _bfdag ==nil {_bag .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_edce ,_cgdaf =_egg .TraceToDirectObject (_bfdag ).(*_egg .PdfObjectDictionary );if !_cgdaf {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_bfdag );
|
||
};_gcfea ,_cfdgd :=NewPdfPageResourcesFromDict (_edce );if _cfdgd !=nil {return nil ,_cfdgd ;};_fbac .Resources =_gcfea ;if _feaad :=_edce .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_feaad !=nil {_cbcgf ,_fggbe :=_feaad .(*_egg .PdfObjectArray );if !_fggbe {_bag .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",_feaad );
|
||
return nil ,_egg .ErrTypeError ;};_fbac .Matrix =_cbcgf ;};return _fbac ,nil ;};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_ddbde *PdfTilingPattern )GetContentStream ()([]byte ,error ){_cgca ,_ ,_adeea :=_ddbde .GetContentStreamWithEncoder ();return _cgca ,_adeea ;};
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_egg .PdfObjectArray ;Domain *_egg .PdfObjectArray ;Function []PdfFunction ;Extend *_egg .PdfObjectArray ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gde *PdfActionMovie )ToPdfObject ()_egg .PdfObject {_gde .PdfAction .ToPdfObject ();_dfgbd :=_gde ._bf ;_ccg :=_dfgbd .PdfObject .(*_egg .PdfObjectDictionary );_ccg .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeMovie )));_ccg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_gde .Annotation );
|
||
_ccg .SetIfNotNil ("\u0054",_gde .T );_ccg .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_gde .Operation );return _dfgbd ;};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_dbdfe *PdfWriter )SetOCProperties (ocProperties _egg .PdfObject )error {_gfeeae :=_dbdfe ._acea ;if ocProperties !=nil {_bag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_gfeeae .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _dbdfe .addObjects (ocProperties );};return nil ;};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_acdafb *PdfDate )ToPdfObject ()_egg .PdfObject {_dgeg :=_f .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_acdafb ._acadbc ,_acdafb ._cbffc ,_acdafb ._fgddd ,_acdafb ._bfcd ,_acdafb ._fceaf ,_acdafb ._ffccc ,_acdafb ._ebcdc ,_acdafb ._ebeed ,_acdafb ._fcafb );
|
||
return _egg .MakeString (_dgeg );};
|
||
|
||
// 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 (_eegcb *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _eegcb .flattenFieldsWithOpts (false ,appgen ,opts );};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_ae :=NewPdfAction ();_aad :=&PdfActionJavaScript {};_aad .PdfAction =_ae ;_ae .SetContext (_aad );return _aad ;};func (_ecgc *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
|
||
};
|
||
|
||
// 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 (_adfdf *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _adfdf .baseFields ()._bgacg !=nil {return _adfdf .baseFields ()._bgacg ;};if _bcbab :=_adfdf ._edde .getFontDescriptor ();_bcbab !=nil {return _bcbab ;};_bag .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",_adfdf );
|
||
return nil ;};func (_acc *PdfAnnotationMarkup )appendToPdfDictionary (_fcbd *_egg .PdfObjectDictionary ){_fcbd .SetIfNotNil ("\u0054",_acc .T );if _acc .Popup !=nil {_fcbd .Set ("\u0050\u006f\u0070u\u0070",_acc .Popup .ToPdfObject ());};_fcbd .SetIfNotNil ("\u0043\u0041",_acc .CA );
|
||
_fcbd .SetIfNotNil ("\u0052\u0043",_acc .RC );_fcbd .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_acc .CreationDate );_fcbd .SetIfNotNil ("\u0049\u0052\u0054",_acc .IRT );_fcbd .SetIfNotNil ("\u0053\u0075\u0062\u006a",_acc .Subj );
|
||
_fcbd .SetIfNotNil ("\u0052\u0054",_acc .RT );_fcbd .SetIfNotNil ("\u0049\u0054",_acc .IT );_fcbd .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_acc .ExData );};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_cacg *PdfBorderStyle )SetBorderWidth (width float64 ){_cacg .W =&width };
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_gbffb *Outline )ToPdfOutline ()*PdfOutline {_dbeae :=NewPdfOutline ();var _fcec []*PdfOutlineItem ;var _gfdbf int64 ;var _ggfa *PdfOutlineItem ;for _ ,_dgafa :=range _gbffb .Entries {_acbed ,_ebefe :=_dgafa .ToPdfOutlineItem ();_acbed .Parent =&_dbeae .PdfOutlineTreeNode ;
|
||
if _ggfa !=nil {_ggfa .Next =&_acbed .PdfOutlineTreeNode ;_acbed .Prev =&_ggfa .PdfOutlineTreeNode ;};_fcec =append (_fcec ,_acbed );_gfdbf +=_ebefe ;_ggfa =_acbed ;};_fgffd :=int64 (len (_fcec ));_gfdbf +=_fgffd ;if _fgffd > 0{_dbeae .First =&_fcec [0].PdfOutlineTreeNode ;
|
||
_dbeae .Last =&_fcec [_fgffd -1].PdfOutlineTreeNode ;_dbeae .Count =&_gfdbf ;};return _dbeae ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_afef *PdfOutlineTreeNode )GetContainingPdfObject ()_egg .PdfObject {return _afef .GetContext ().GetContainingPdfObject ();};func (_gcea *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _gcea ._bgacg };
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_gacf :=&PdfAnnotation {};_gacf ._cef =_egg .MakeIndirectObject (_egg .MakeDict ());return _gacf ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_bgcf *pdfCIDFontType0 )ToPdfObject ()_egg .PdfObject {return _egg .MakeNull ()};func (_agdc *PdfReader )newPdfAnnotationCircleFromDict (_dbff *_egg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_ffg :=PdfAnnotationCircle {};_cfa ,_dbcc :=_agdc .newPdfAnnotationMarkupFromDict (_dbff );
|
||
if _dbcc !=nil {return nil ,_dbcc ;};_ffg .PdfAnnotationMarkup =_cfa ;_ffg .BS =_dbff .Get ("\u0042\u0053");_ffg .IC =_dbff .Get ("\u0049\u0043");_ffg .BE =_dbff .Get ("\u0042\u0045");_ffg .RD =_dbff .Get ("\u0052\u0044");return &_ffg ,nil ;};func (_ececf *PdfWriter )addObject (_gcfef _egg .PdfObject )bool {_gafea :=_ececf .hasObject (_gcfef );
|
||
if !_gafea {_eefe :=_egg .ResolveReferencesDeep (_gcfef ,_ececf ._adcd );if _eefe !=nil {_bag .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_eefe );};_ececf ._bbead =append (_ececf ._bbead ,_gcfef );
|
||
_ececf ._bacec [_gcfef ]=struct{}{};return true ;};return false ;};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_ebedd :=&PdfSignature {Type :_egg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_faded :=&pdfSignDictionary {PdfObjectDictionary :_egg .MakeDict (),_ebdca :&handler ,_gbbba :_ebedd };
|
||
_ebedd ._ccbda =_egg .MakeIndirectObject (_faded );return _ebedd ;};
|
||
|
||
// 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 ;_gdaaa *_egg .PdfObjectDictionary ;};
|
||
|
||
// 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 *_egg .PdfObjectName ;P *_egg .PdfObjectInteger ;V *_egg .PdfObjectName ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cfdbg *PdfTransformParamsDocMDP )ToPdfObject ()_egg .PdfObject {_dcccb :=_egg .MakeDict ();_dcccb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cfdbg .Type );_dcccb .SetIfNotNil ("\u0056",_cfdbg .V );_dcccb .SetIfNotNil ("\u0050",_cfdbg .P );return _dcccb ;
|
||
};
|
||
|
||
// 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 ;_ffcfb *_egg .PdfIndirectObject ;};
|
||
|
||
// 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 (_bgbd *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgcec ,_acec :=_egg .GetNumbersAsFloat (objects );
|
||
if _acec !=nil {return nil ,_acec ;};return _bgbd .ColorFromFloats (_bgcec );};
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_fdbe *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbba ,_fagg :=color .(*PdfColorDeviceRGB );if !_fagg {_bag .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 ,_gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _fbba ,nil ;};func _bcgcb (_bbea _egg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_beacb :=NewPdfColorspaceSpecialSeparation ();
|
||
if _aagg ,_agaf :=_bbea .(*_egg .PdfIndirectObject );_agaf {_beacb ._eedg =_aagg ;};_bbea =_egg .TraceToDirectObject (_bbea );_ggccd ,_dcfg :=_bbea .(*_egg .PdfObjectArray );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
|
||
};if _ggccd .Len ()!=4{return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_bbea =_ggccd .Get (0);
|
||
_dggg ,_dcfg :=_bbea .(*_egg .PdfObjectName );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_dggg !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_f .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};_bbea =_ggccd .Get (1);_dggg ,_dcfg =_bbea .(*_egg .PdfObjectName );if !_dcfg {return nil ,_f .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
|
||
};_beacb .ColorantName =_dggg ;_bbea =_ggccd .Get (2);_dacg ,_cffc :=NewPdfColorspaceFromPdfObject (_bbea );if _cffc !=nil {return nil ,_cffc ;};_beacb .AlternateSpace =_dacg ;_cebc ,_cffc :=_bdefe (_ggccd .Get (3));if _cffc !=nil {return nil ,_cffc ;};
|
||
_beacb .TintTransform =_cebc ;return _beacb ,nil ;};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_baedb *PdfColorCalRGB )A ()float64 {return _baedb [0]};
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_bdaea *Image )ToJBIG2Image ()(*_egg .JBIG2Image ,error ){_dadefb ,_eaed :=_bdaea .ToGoImage ();if _eaed !=nil {return nil ,_eaed ;};return _egg .GoImageToJBIG2 (_dadefb ,_egg .JB2ImageAutoThreshold );};
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_gecc *PdfPage )AddContentStreamByString (contentStr string )error {_aeagd ,_dfgc :=_egg .MakeStream ([]byte (contentStr ),_egg .NewFlateEncoder ());if _dfgc !=nil {return _dfgc ;};if _gecc .Contents ==nil {_gecc .Contents =_aeagd ;}else {_eagce :=_egg .TraceToDirectObject (_gecc .Contents );
|
||
_cgab ,_badc :=_eagce .(*_egg .PdfObjectArray );if !_badc {_cgab =_egg .MakeArray (_eagce );};_cgab .Append (_aeagd );_gecc .Contents =_cgab ;};return nil ;};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_gdabe fontCommon )String ()string {return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_gdabe .coreString ());};func (_cdfa *PdfReader )newPdfAnnotationPrinterMarkFromDict (_fcf *_egg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gcgf :=PdfAnnotationPrinterMark {};
|
||
_gcgf .MN =_fcf .Get ("\u004d\u004e");return &_gcgf ,nil ;};
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _egg .PdfObject ;};
|
||
|
||
// 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 (_dgfac DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_befdc *PdfWriter )SetOptimizer (optimizer Optimizer ){_befdc ._cfgb =optimizer };func (_dda *PdfReader )newPdfActionMovieFromDict (_cfb *_egg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cfb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cfb .Get ("\u0054"),Operation :_cfb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};func (_acda *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _acda ._bgacg };
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_bcba *PdfFieldButton )IsPush ()bool {return _bcba .GetType ()==ButtonTypePush };
|
||
|
||
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
|
||
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_gbeag :=&PdfAppender {_cbe :reader ._eefb ,Reader :reader ,_daac :reader ._dafgab ,_bdbf :reader ._gbabf };_bgg ,_gega :=_gbeag ._cbe .Seek (0,_dag .SeekEnd );
|
||
if _gega !=nil {return nil ,_gega ;};_gbeag ._bbba =_bgg ;if _ ,_gega =_gbeag ._cbe .Seek (0,_dag .SeekStart );_gega !=nil {return nil ,_gega ;};_gbeag ._bgaa ,_gega =NewPdfReaderWithOpts (_gbeag ._cbe ,opts );if _gega !=nil {return nil ,_gega ;};for _ ,_fdbc :=range _gbeag .Reader .GetObjectNums (){if _gbeag ._gfdcd < _fdbc {_gbeag ._gfdcd =_fdbc ;
|
||
};};_gbeag ._beed =_gbeag ._daac .GetXrefTable ();_gbeag ._gfbc =_gbeag ._daac .GetXrefOffset ();_gbeag ._beac =append (_gbeag ._beac ,_gbeag ._bgaa .PageList ...);_gbeag ._bdba =make (map[_egg .PdfObject ]struct{});_gbeag ._eegc =make (map[_egg .PdfObject ]int64 );
|
||
_gbeag ._eecgg =make (map[_egg .PdfObject ]struct{});_gbeag ._aeec =_gbeag ._bgaa .AcroForm ;_gbeag ._dgdc =_gbeag ._bgaa .DSS ;if opts !=nil {_gbeag ._cbdd =opts .Password ;};if encryptOptions !=nil {_gbeag ._effa =encryptOptions ;};return _gbeag ,nil ;
|
||
};
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_bcdb *PdfFieldText )ToPdfObject ()_egg .PdfObject {_bcdb .PdfField .ToPdfObject ();_bcfc :=_bcdb ._agef ;_ebad :=_bcfc .PdfObject .(*_egg .PdfObjectDictionary );_ebad .Set ("\u0046\u0054",_egg .MakeName ("\u0054\u0078"));if _bcdb .DA !=nil {_ebad .Set ("\u0044\u0041",_bcdb .DA );
|
||
};if _bcdb .Q !=nil {_ebad .Set ("\u0051",_bcdb .Q );};if _bcdb .DS !=nil {_ebad .Set ("\u0044\u0053",_bcdb .DS );};if _bcdb .RV !=nil {_ebad .Set ("\u0052\u0056",_bcdb .RV );};if _bcdb .MaxLen !=nil {_ebad .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_bcdb .MaxLen );
|
||
};return _bcfc ;};func _fadfa ()string {_cgag .Lock ();defer _cgag .Unlock ();return _cdcf };
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_abgb *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};func _egaa (_ebba _bgd .StdFont )pdfFontSimple {_eagc :=_ebba .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_ebdf :"\u0054\u0079\u0070e\u0031",_dgfdc :_ebba .Name ()},_dddd :_ebba .GetMetricsTable (),_dbbfc :&PdfFontDescriptor {FontName :_egg .MakeName (string (_eagc .Name )),FontFamily :_egg .MakeName (_eagc .Family ),FontWeight :_egg .MakeFloat (float64 (_eagc .Weight )),Flags :_egg .MakeInteger (int64 (_eagc .Flags )),FontBBox :_egg .MakeArrayFromFloats (_eagc .BBox [:]),ItalicAngle :_egg .MakeFloat (_eagc .ItalicAngle ),Ascent :_egg .MakeFloat (_eagc .Ascent ),Descent :_egg .MakeFloat (_eagc .Descent ),CapHeight :_egg .MakeFloat (_eagc .CapHeight ),XHeight :_egg .MakeFloat (_eagc .XHeight ),StemV :_egg .MakeFloat (_eagc .StemV ),StemH :_egg .MakeFloat (_eagc .StemH )},_cdee :_ebba .Encoder ()};
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eb *PdfActionSubmitForm )ToPdfObject ()_egg .PdfObject {_eb .PdfAction .ToPdfObject ();_beg :=_eb ._bf ;_fbf :=_beg .PdfObject .(*_egg .PdfObjectDictionary );_fbf .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeSubmitForm )));if _eb .F !=nil {_fbf .Set ("\u0046",_eb .F .ToPdfObject ());
|
||
};_fbf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_eb .Fields );_fbf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_eb .Flags );return _beg ;};func (_fed *PdfReader )newPdfAnnotationRedactFromDict (_cfac *_egg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_dcb :=PdfAnnotationRedact {};
|
||
_ccd ,_gbfa :=_fed .newPdfAnnotationMarkupFromDict (_cfac );if _gbfa !=nil {return nil ,_gbfa ;};_dcb .PdfAnnotationMarkup =_ccd ;_dcb .QuadPoints =_cfac .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_dcb .IC =_cfac .Get ("\u0049\u0043");
|
||
_dcb .RO =_cfac .Get ("\u0052\u004f");_dcb .OverlayText =_cfac .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_dcb .Repeat =_cfac .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_dcb .DA =_cfac .Get ("\u0044\u0041");_dcb .Q =_cfac .Get ("\u0051");
|
||
return &_dcb ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_dfge *PdfColorspaceLab )GetNumComponents ()int {return 3};func (_cffcd fontCommon )isCIDFont ()bool {if _cffcd ._ebdf ==""{_bag .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",_cffcd );
|
||
};_facbd :=false ;switch _cffcd ._ebdf {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":_facbd =true ;};_bag .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",_facbd ,_cffcd );
|
||
return _facbd ;};
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _egg .PdfObject ;};
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_eddce *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _eddce .AlternateSpace ==nil {return nil ,_gd .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 _eddce .AlternateSpace .ColorToRGB (color );};func _dagag (_aecc _egg .PdfObject )(*PdfColorspaceLab ,error ){_ebd :=NewPdfColorspaceLab ();if _eabeg ,_bdfac :=_aecc .(*_egg .PdfIndirectObject );_bdfac {_ebd ._ceaag =_eabeg ;};_aecc =_egg .TraceToDirectObject (_aecc );
|
||
_fda ,_edbe :=_aecc .(*_egg .PdfObjectArray );if !_edbe {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fda .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_aecc =_egg .TraceToDirectObject (_fda .Get (0));_dbbd ,_edbe :=_aecc .(*_egg .PdfObjectName );if !_edbe {return nil ,_f .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if *_dbbd !="\u004c\u0061\u0062"{return nil ,_f .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_aecc =_egg .TraceToDirectObject (_fda .Get (1));_fbeg ,_edbe :=_aecc .(*_egg .PdfObjectDictionary );
|
||
if !_edbe {return nil ,_f .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_aecc =_fbeg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
|
||
_aecc =_egg .TraceToDirectObject (_aecc );_bgfg ,_edbe :=_aecc .(*_egg .PdfObjectArray );if !_edbe {return nil ,_f .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _bgfg .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
|
||
};_eccf ,_ggcc :=_bgfg .GetAsFloat64Slice ();if _ggcc !=nil {return nil ,_ggcc ;};_ebd .WhitePoint =_eccf ;_aecc =_fbeg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _aecc !=nil {_aecc =_egg .TraceToDirectObject (_aecc );_cggfa ,_ebcd :=_aecc .(*_egg .PdfObjectArray );
|
||
if !_ebcd {return nil ,_f .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _cggfa .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
|
||
};_gedc ,_gddb :=_cggfa .GetAsFloat64Slice ();if _gddb !=nil {return nil ,_gddb ;};_ebd .BlackPoint =_gedc ;};_aecc =_fbeg .Get ("\u0052\u0061\u006eg\u0065");if _aecc !=nil {_aecc =_egg .TraceToDirectObject (_aecc );_ebfea ,_edga :=_aecc .(*_egg .PdfObjectArray );
|
||
if !_edga {_bag .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_f .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ebfea .Len ()!=4{_bag .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
|
||
return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_bdfd ,_cgaeb :=_ebfea .GetAsFloat64Slice ();if _cgaeb !=nil {return nil ,_cgaeb ;};_ebd .Range =_bdfd ;};return _ebd ,nil ;};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_cda *PdfAction )String ()string {_deb ,_gg :=_cda .ToPdfObject ().(*_egg .PdfIndirectObject );if _gg {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cda ._abb ,_deb .PdfObject .String ());};return "";};
|
||
|
||
// GetRotate gets the inheritable rotate value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_cadb *PdfPage )GetRotate ()(int64 ,error ){if _cadb .Rotate !=nil {return *_cadb .Rotate ,nil ;};_dgbb :=_cadb .Parent ;for _dgbb !=nil {_fdefac ,_cgfb :=_egg .GetDict (_dgbb );if !_cgfb {return 0,_gd .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 _fafga :=_fdefac .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_fafga !=nil {_fabe ,_cgfbg :=_egg .GetInt (_fafga );if !_cgfbg {return 0,_gd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};
|
||
if _fabe !=nil {return int64 (*_fabe ),nil ;};return 0,_gd .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_dgbb =_fdefac .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_gd .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
|
||
};func _babef (_bgaf _egg .PdfObject )(map[_ef .CharCode ]float64 ,error ){if _bgaf ==nil {return nil ,nil ;};_eccb ,_cada :=_egg .GetArray (_bgaf );if !_cada {return nil ,nil ;};_gaaa :=map[_ef .CharCode ]float64 {};_aaabe :=_eccb .Len ();for _gaed :=0;
|
||
_gaed < _aaabe -1;_gaed ++{_gdgf :=_egg .TraceToDirectObject (_eccb .Get (_gaed ));_bgfcb ,_ccge :=_egg .GetIntVal (_gdgf );if !_ccge {return nil ,_f .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_gaed ,_gdgf );
|
||
};_gaed ++;if _gaed > _aaabe -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_eccb );};_ffefc :=_egg .TraceToDirectObject (_eccb .Get (_gaed ));
|
||
switch _ffefc .(type ){case *_egg .PdfObjectArray :_fafca ,_ :=_egg .GetArray (_ffefc );if _ceaeg ,_eaddf :=_fafca .ToFloat64Array ();_eaddf ==nil {for _adddb :=0;_adddb < len (_ceaeg );_adddb ++{_gaaa [_ef .CharCode (_bgfcb +_adddb )]=_ceaeg [_adddb ];
|
||
};}else {return nil ,_f .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gaed ,_ffefc );};case *_egg .PdfObjectInteger :_fbab ,_fbgga :=_egg .GetIntVal (_ffefc );
|
||
if !_fbgga {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gaed ,_ffefc );};_gaed ++;if _gaed > _aaabe -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_eccb );
|
||
};_bcaf :=_eccb .Get (_gaed );_bceg ,_fgbda :=_egg .GetNumberAsFloat (_bcaf );if _fgbda !=nil {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_gaed ,_bcaf );
|
||
};for _abdcc :=_bgfcb ;_abdcc <=_fbab ;_abdcc ++{_gaaa [_ef .CharCode (_abdcc )]=_bceg ;};default:return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_gaed ,_ffefc );
|
||
};};return _gaaa ,nil ;};
|
||
|
||
// IsSimple returns true if `font` is a simple font.
|
||
func (_edaa *PdfFont )IsSimple ()bool {_ ,_beda :=_edaa ._edde .(*pdfFontSimple );return _beda };func (_fbde *PdfAppender )mergeResources (_cegc ,_eeab _egg .PdfObject ,_bdbb map[_egg .PdfObjectName ]_egg .PdfObjectName )_egg .PdfObject {if _eeab ==nil &&_cegc ==nil {return nil ;
|
||
};if _eeab ==nil {return _cegc ;};_bcgb ,_acb :=_egg .GetDict (_eeab );if !_acb {return _cegc ;};if _cegc ==nil {_fgaa :=_egg .MakeDict ();_fgaa .Merge (_bcgb );return _eeab ;};_ggag ,_acb :=_egg .GetDict (_cegc );if !_acb {_bag .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");
|
||
_ggag =_egg .MakeDict ();};for _ ,_bdfb :=range _bcgb .Keys (){if _dgfe ,_aeeed :=_bdbb [_bdfb ];_aeeed {_ggag .Set (_dgfe ,_bcgb .Get (_bdfb ));}else {_ggag .Set (_bdfb ,_bcgb .Get (_bdfb ));};};return _ggag ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _egg .PdfObject ;T3DV _egg .PdfObject ;T3DA _egg .PdfObject ;T3DI _egg .PdfObject ;T3DB _egg .PdfObject ;};func (_eacgfe *PdfWriter )writeDocumentVersion (){if _eacgfe ._gabaca {_eacgfe .writeString ("\u000a");
|
||
}else {_eacgfe .writeString (_f .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_eacgfe ._dacce .Major ,_eacgfe ._dacce .Minor ));_eacgfe .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};func (_ddag *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _ddag ._dafgab .GetCrypter ()!=nil &&!_ddag ._dafgab .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_fdefd :=_ddag ._eacf ;_gagaa :=_fdefd .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _gagaa ==nil {return nil ,nil ;};_bag .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_efaa :=_egg .ResolveReference (_gagaa );
|
||
_bag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_efaa );if _cbabg :=_egg .IsNullObject (_efaa );_cbabg {_bag .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 ;};_aebd ,_cgbe :=_efaa .(*_egg .PdfIndirectObject );if !_cgbe {if _ ,_faeeb :=_egg .GetDict (_efaa );!_faeeb {_bag .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 ;};_bag .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");
|
||
_aebd =_egg .MakeIndirectObject (_efaa );};_gcfca ,_cgbe :=_aebd .PdfObject .(*_egg .PdfObjectDictionary );if !_cgbe {return nil ,_gd .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");
|
||
};_bag .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_gcfca );_eada ,_ ,_cafe :=_ddag .buildOutlineTree (_aebd ,nil ,nil ,nil );if _cafe !=nil {return nil ,_cafe ;};_bag .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",_eada );
|
||
return _eada ,nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_edbee *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_effe ,_egeg :=_egg .GetNumbersAsFloat (objects );
|
||
if _egeg !=nil {return nil ,_egeg ;};return _edbee .ColorFromFloats (_effe );};
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_egg .PdfObjectBool ;SigFlags *_egg .PdfObjectInteger ;CO *_egg .PdfObjectArray ;DR *PdfPageResources ;DA *_egg .PdfObjectString ;Q *_egg .PdfObjectInteger ;XFA _egg .PdfObject ;_befdb *_egg .PdfIndirectObject ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cffa *PdfAnnotation3D )ToPdfObject ()_egg .PdfObject {_cffa .PdfAnnotation .ToPdfObject ();_cbbf :=_cffa ._cef ;_cfdg :=_cbbf .PdfObject .(*_egg .PdfObjectDictionary );_cfdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0033\u0044"));
|
||
_cfdg .SetIfNotNil ("\u0033\u0044\u0044",_cffa .T3DD );_cfdg .SetIfNotNil ("\u0033\u0044\u0056",_cffa .T3DV );_cfdg .SetIfNotNil ("\u0033\u0044\u0041",_cffa .T3DA );_cfdg .SetIfNotNil ("\u0033\u0044\u0049",_cffa .T3DI );_cfdg .SetIfNotNil ("\u0033\u0044\u0042",_cffa .T3DB );
|
||
return _cbbf ;};
|
||
|
||
// SetSubtype sets the Subtype S for given PdfOutputIntent.
|
||
func (_aeef *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _gd .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");
|
||
};_aeef .S =subtype ;return nil ;};
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_dbfdf *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _dbfdf .Alternate ==nil {_bag .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 _dbfdf .N ==1{_bag .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");
|
||
_gegcc :=NewPdfColorspaceDeviceGray ();return _gegcc .ImageToRGB (img );}else if _dbfdf .N ==3{_bag .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 _dbfdf .N ==4{_bag .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");
|
||
_gdfc :=NewPdfColorspaceDeviceCMYK ();return _gdfc .ImageToRGB (img );}else {return img ,_gd .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");
|
||
};};_bag .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",_dbfdf );
|
||
_ebgg ,_bebb :=_dbfdf .Alternate .ImageToRGB (img );_bag .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_bag .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_ebgg );
|
||
return _ebgg ,_bebb ;};
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_cad *PdfAppender )WriteToFile (outputPath string )error {_addb ,_dfbcc :=_gf .Create (outputPath );if _dfbcc !=nil {return _dfbcc ;};defer _addb .Close ();return _cad .Write (_addb );};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dae :=NewPdfAnnotation ();_fce :=&PdfAnnotationWidget {};_fce .PdfAnnotation =_dae ;_dae .SetContext (_fce );return _fce ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cgcb *PdfAnnotationFreeText )ToPdfObject ()_egg .PdfObject {_cgcb .PdfAnnotation .ToPdfObject ();_ddce :=_cgcb ._cef ;_bage :=_ddce .PdfObject .(*_egg .PdfObjectDictionary );_cgcb .PdfAnnotationMarkup .appendToPdfDictionary (_bage );_bage .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_bage .SetIfNotNil ("\u0044\u0041",_cgcb .DA );_bage .SetIfNotNil ("\u0051",_cgcb .Q );_bage .SetIfNotNil ("\u0052\u0043",_cgcb .RC );_bage .SetIfNotNil ("\u0044\u0053",_cgcb .DS );_bage .SetIfNotNil ("\u0043\u004c",_cgcb .CL );_bage .SetIfNotNil ("\u0049\u0054",_cgcb .IT );
|
||
_bage .SetIfNotNil ("\u0042\u0045",_cgcb .BE );_bage .SetIfNotNil ("\u0052\u0044",_cgcb .RD );_bage .SetIfNotNil ("\u0042\u0053",_cgcb .BS );_bage .SetIfNotNil ("\u004c\u0045",_cgcb .LE );return _ddce ;};
|
||
|
||
// 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 _dag .ReadSeeker )(*CompliancePdfReader ,error ){const _ddgef ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_ecebg ,_aagaa :=_ffee (rs ,&ReaderOpts {ComplianceMode :true },false ,_ddgef );
|
||
if _aagaa !=nil {return nil ,_aagaa ;};return &CompliancePdfReader {PdfReader :_ecebg },nil ;};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_degd :=&PdfColorspaceDeviceN {};return _degd };
|
||
|
||
// 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 ;_ffgafc *_egg .PdfObjectDictionary ;};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_accd *fontFile )String ()string {_gcca :="\u005b\u004e\u006f\u006e\u0065\u005d";if _accd ._gdcd !=nil {_gcca =_accd ._gdcd .String ();};return _f .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_accd ._ebfa ,_gcca );
|
||
};func (_dffee *DSS )add (_eedge *[]*_egg .PdfObjectStream ,_gbaf map[string ]*_egg .PdfObjectStream ,_agbbb [][]byte )([]*_egg .PdfObjectStream ,error ){_bdad :=make ([]*_egg .PdfObjectStream ,0,len (_agbbb ));for _ ,_dece :=range _agbbb {_geef ,_agcgf :=_eefdc (_dece );
|
||
if _agcgf !=nil {return nil ,_agcgf ;};_ebeg ,_edda :=_gbaf [string (_geef )];if !_edda {_ebeg ,_agcgf =_egg .MakeStream (_dece ,_egg .NewRawEncoder ());if _agcgf !=nil {return nil ,_agcgf ;};_gbaf [string (_geef )]=_ebeg ;*_eedge =append (*_eedge ,_ebeg );
|
||
};_bdad =append (_bdad ,_ebeg );};return _bdad ,nil ;};
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_caccg *PdfAcroForm )ToPdfObject ()_egg .PdfObject {_fbgbf :=_caccg ._befdb ;_cfcgd :=_fbgbf .PdfObject .(*_egg .PdfObjectDictionary );if _caccg .Fields !=nil {_adafb :=_egg .PdfObjectArray {};for _ ,_cgaeg :=range *_caccg .Fields {_eafd :=_cgaeg .GetContext ();
|
||
if _eafd !=nil {_adafb .Append (_eafd .ToPdfObject ());}else {_adafb .Append (_cgaeg .ToPdfObject ());};};_cfcgd .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_adafb );};if _caccg .NeedAppearances !=nil {_cfcgd .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_caccg .NeedAppearances );
|
||
};if _caccg .SigFlags !=nil {_cfcgd .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_caccg .SigFlags );};if _caccg .CO !=nil {_cfcgd .Set ("\u0043\u004f",_caccg .CO );};if _caccg .DR !=nil {_cfcgd .Set ("\u0044\u0052",_caccg .DR .ToPdfObject ());
|
||
};if _caccg .DA !=nil {_cfcgd .Set ("\u0044\u0041",_caccg .DA );};if _caccg .Q !=nil {_cfcgd .Set ("\u0051",_caccg .Q );};if _caccg .XFA !=nil {_cfcgd .Set ("\u0058\u0046\u0041",_caccg .XFA );};return _fbgbf ;};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_aeeddc *PdfWriter )SetDocInfo (info *PdfInfo ){_aeeddc .setDocInfo (info .ToPdfObject ())};
|
||
|
||
// ToPdfObject implements model.PdfModel interface.
|
||
func (_ecdgf *PdfOutputIntent )ToPdfObject ()_egg .PdfObject {if _ecdgf ._gdaaa ==nil {_ecdgf ._gdaaa =_egg .MakeDict ();};_gafcf :=_ecdgf ._gdaaa ;if _ecdgf .Type !=""{_gafcf .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName (_ecdgf .Type ));};_gafcf .Set ("\u0053",_egg .MakeName (_ecdgf .S .String ()));
|
||
if _ecdgf .OutputCondition !=""{_gafcf .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_egg .MakeString (_ecdgf .OutputCondition ));};_gafcf .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_egg .MakeString (_ecdgf .OutputConditionIdentifier ));
|
||
_gafcf .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_egg .MakeString (_ecdgf .RegistryName ));if _ecdgf .Info !=""{_gafcf .Set ("\u0049\u006e\u0066\u006f",_egg .MakeString (_ecdgf .Info ));};if len (_ecdgf .DestOutputProfile )!=0{_eaea ,_bgcc :=_egg .MakeStream (_ecdgf .DestOutputProfile ,_egg .NewFlateEncoder ());
|
||
if _bgcc !=nil {_bag .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",_bgcc );
|
||
};_eaea .PdfObjectDictionary .Set ("\u004e",_egg .MakeInteger (int64 (_ecdgf .ColorComponents )));_gdaf :=make ([]float64 ,_ecdgf .ColorComponents *2);for _aggag :=0;_aggag < _ecdgf .ColorComponents *2;_aggag ++{_gfbcg :=0.0;if _aggag %2!=0{_gfbcg =1.0;
|
||
};_gdaf [_aggag ]=_gfbcg ;};_eaea .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_egg .MakeArrayFromFloats (_gdaf ));_gafcf .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_eaea );};return _gafcf ;
|
||
};
|
||
|
||
// 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 ;
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_faebdd *pdfFontType3 )ToPdfObject ()_egg .PdfObject {if _faebdd ._acdgb ==nil {_faebdd ._acdgb =&_egg .PdfIndirectObject {};};_cabf :=_faebdd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_faebdd ._acdgb .PdfObject =_cabf ;if _faebdd .FirstChar !=nil {_cabf .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_faebdd .FirstChar );
|
||
};if _faebdd .LastChar !=nil {_cabf .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_faebdd .LastChar );};if _faebdd .Widths !=nil {_cabf .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_faebdd .Widths );};if _faebdd .Encoding !=nil {_cabf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_faebdd .Encoding );
|
||
}else if _faebdd ._fbfed !=nil {_adga :=_faebdd ._fbfed .ToPdfObject ();if _adga !=nil {_cabf .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_adga );};};if _faebdd .FontBBox !=nil {_cabf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_faebdd .FontBBox );
|
||
};if _faebdd .FontMatrix !=nil {_cabf .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_faebdd .FontMatrix );};if _faebdd .CharProcs !=nil {_cabf .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_faebdd .CharProcs );};if _faebdd .Resources !=nil {_cabf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_faebdd .Resources );
|
||
};return _faebdd ._acdgb ;};func (_gaggf *PdfWriter )setWriter (_fbfg _dag .Writer ){_gaggf ._cdaab =_gaggf ._ddfee ;_gaggf ._beegad =_d .NewWriter (_fbfg );};func (_dage *PdfReader )newPdfActionSoundFromDict (_bgcb *_egg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bgcb .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bgcb .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bgcb .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bgcb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bgcb .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_bagd :=&PdfFieldSignature {};_bagd .PdfField =NewPdfField ();_bagd .PdfField .SetContext (_bagd );_bagd .PdfAnnotationWidget =NewPdfAnnotationWidget ();_bagd .PdfAnnotationWidget .SetContext (_bagd );
|
||
_bagd .PdfAnnotationWidget ._cef =_bagd .PdfField ._agef ;_bagd .T =_egg .MakeString ("");_bagd .F =_egg .MakeInteger (132);_bagd .V =signature ;return _bagd ;};
|
||
|
||
// 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 (_aacg *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_feec :=vals [0];if _feec < 0.0||_feec > 1.0{_bag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_feec );
|
||
return nil ,ErrColorOutOfRange ;};_dagg :=NewPdfColorCalGray (_feec );return _dagg ,nil ;};
|
||
|
||
// Enable LTV enables the specified signature. The signing certificate
|
||
// chain is extracted from the signature dictionary. Optionally, additional
|
||
// certificates can be specified through the `extraCerts` parameter.
|
||
// The LTV client attempts to build the certificate chain up to a trusted root
|
||
// by downloading any missing certificates.
|
||
func (_abdd *LTV )Enable (sig *PdfSignature ,extraCerts []*_dg .Certificate )error {if _gcad :=_abdd .validateSig (sig );_gcad !=nil {return _gcad ;};_dafa ,_ddegc :=_abdd .generateVRIKey (sig );if _ddegc !=nil {return _ddegc ;};if _ ,_bddad :=_abdd ._cbbab .VRI [_dafa ];
|
||
_bddad &&_abdd .SkipExisting {return nil ;};_dcbbg ,_ddegc :=sig .GetCerts ();if _ddegc !=nil {return _ddegc ;};return _abdd .enable (_dcbbg ,extraCerts ,_dafa );};
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_gbbgd *PdfShading )GetContext ()PdfModel {return _gbbgd ._fagfe };
|
||
|
||
// 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 (_gdgfa *LTV )EnableAll (extraCerts []*_dg .Certificate )error {_cdac :=_gdgfa ._dbdga ._bgaa .AcroForm ;for _ ,_egbg :=range _cdac .AllFields (){_eedff ,_ :=_egbg .GetContext ().(*PdfFieldSignature );if _eedff ==nil {continue ;};_agdea :=_eedff .V ;
|
||
if _dedgg :=_gdgfa .validateSig (_agdea );_dedgg !=nil {_bag .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",_dedgg );
|
||
};if _bbdgeb :=_gdgfa .Enable (_agdea ,extraCerts );_bbdgeb !=nil {return _bbdgeb ;};};return nil ;};func (_daggb *PdfWriter )checkPendingObjects (){for _acdfd ,_caaga :=range _daggb ._afcd {if !_daggb .hasObject (_acdfd ){_bag .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",_acdfd ,_acdfd ,_acdfd );
|
||
for _ ,_dcgga :=range _caaga {for _ ,_adae :=range _dcgga .Keys (){_bfgcbb :=_dcgga .Get (_adae );if _bfgcbb ==_acdfd {_bag .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");
|
||
_dcgga .Set (_adae ,_egg .MakeNull ());break ;};};};};};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ge *PdfActionGoToR )ToPdfObject ()_egg .PdfObject {_ge .PdfAction .ToPdfObject ();_aec :=_ge ._bf ;_ccc :=_aec .PdfObject .(*_egg .PdfObjectDictionary );_ccc .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeGoToR )));if _ge .F !=nil {_ccc .Set ("\u0046",_ge .F .ToPdfObject ());
|
||
};_ccc .SetIfNotNil ("\u0044",_ge .D );_ccc .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_ge .NewWindow );return _aec ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_aebc pdfFontType3 )Encoder ()_ef .TextEncoder {return _aebc ._fbfed };func _ffaf (_bcdg *_egg .PdfObjectDictionary )bool {for _ ,_bcfb :=range _bcdg .Keys (){if _ ,_cccb :=_effdb [_bcfb .String ()];_cccb {return true ;};};return false ;};
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_agdab *_egg .PdfIndirectObject ;};
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_cbd :=NewPdfAnnotation ();_dgcg :=&PdfAnnotationMovie {};_dgcg .PdfAnnotation =_cbd ;_cbd .SetContext (_dgcg );return _dgcg ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gegc *PdfColorLab )ToInteger (bits int )[3]uint32 {_fffc :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fffc *_gegc .L ()),uint32 (_fffc *_gegc .A ()),uint32 (_fffc *_gegc .B ())};};
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_bbgfd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _egg .GetNumberAsFloat (_bbgfd .CapHeight );};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;
|
||
XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_gbcc *PdfPage )Duplicate ()*PdfPage {_afag :=*_gbcc ;_afag ._fgfd =_egg .MakeDict ();_afag ._dfee =_egg .MakeIndirectObject (_afag ._fgfd );return &_afag ;};func _feaa (_cdbb _egg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_cfffd :=NewPdfColorspaceSpecialIndexed ();
|
||
if _bdbd ,_eegf :=_cdbb .(*_egg .PdfIndirectObject );_eegf {_cfffd ._ceed =_bdbd ;};_cdbb =_egg .TraceToDirectObject (_cdbb );_adfbb ,_ebagf :=_cdbb .(*_egg .PdfObjectArray );if !_ebagf {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _adfbb .Len ()!=4{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_cdbb =_adfbb .Get (0);
|
||
_ffcf ,_ebagf :=_cdbb .(*_egg .PdfObjectName );if !_ebagf {return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_ffcf !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_cdbb =_adfbb .Get (1);_eeff ,_ebfd :=DetermineColorspaceNameFromPdfObject (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};if _eeff =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_eeff =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_bag .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",_eeff );
|
||
return nil ,_ccgg ;};_gea ,_ebfd :=NewPdfColorspaceFromPdfObject (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};_cfffd .Base =_gea ;_cdbb =_adfbb .Get (2);_gfab ,_ebfd :=_egg .GetNumberAsInt64 (_cdbb );if _ebfd !=nil {return nil ,_ebfd ;};if _gfab > 255{return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_cfffd .HiVal =int (_gfab );_cdbb =_adfbb .Get (3);_cfffd .Lookup =_cdbb ;_cdbb =_egg .TraceToDirectObject (_cdbb );var _dgabe []byte ;if _efeg ,_gcaf :=_cdbb .(*_egg .PdfObjectString );_gcaf {_dgabe =_efeg .Bytes ();_bag .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",_dgabe );
|
||
}else if _bgef ,_dffa :=_cdbb .(*_egg .PdfObjectStream );_dffa {_bag .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_cdbb .String ());_bag .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_bgef .Stream ),_bgef .Stream );
|
||
_aeeg ,_cefa :=_egg .DecodeStream (_bgef );if _cefa !=nil {return nil ,_cefa ;};_bag .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_aeeg ),_aeeg );_dgabe =_aeeg ;}else {_bag .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cdbb );
|
||
return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_dgabe )< _cfffd .Base .GetNumComponents ()*(_cfffd .HiVal +1){_bag .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");
|
||
_bag .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 (_dgabe ),_cfffd .Base .GetNumComponents (),_cfffd .HiVal );
|
||
}else {_dgabe =_dgabe [:_cfffd .Base .GetNumComponents ()*(_cfffd .HiVal +1)];};_cfffd ._defc =_dgabe ;return _cfffd ,nil ;};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _egg .PdfObject ;V _egg .PdfObject ;};func (_ggbef *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _dcaf :=_ggbef ._bgacg ;_dcaf !=nil {return _dcaf ;};return _ggbef ._dbbfc ;};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_aecff *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_aecff ._bcce =annotations };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_acd *PdfAnnotationTrapNet )ToPdfObject ()_egg .PdfObject {_acd .PdfAnnotation .ToPdfObject ();_fbccd :=_acd ._cef ;_bbda :=_fbccd .PdfObject .(*_egg .PdfObjectDictionary );_bbda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _fbccd ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_aagb *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_accdd *pdfSignDictionary )GetSubFilter ()string {_aeecge :=_accdd .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _aeecge ==nil {return "";};if _ceeg ,_ccdbg :=_egg .GetNameVal (_aeecge );_ccdbg {return _ceeg ;};return "";};
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_geded *PdfShading )SetContext (ctx PdfModel ){_geded ._fagfe =ctx };
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _egg .PdfObject ;Dest _egg .PdfObject ;H _egg .PdfObject ;PA _egg .PdfObject ;QuadPoints _egg .PdfObject ;BS _egg .PdfObject ;_fdb *PdfAction ;_efb *PdfReader ;};
|
||
|
||
// 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 _egg .StreamEncoder )(*XObjectImage ,error ){_fagfcb :=NewXObjectImage ();return UpdateXObjectImageFromImage (_fagfcb ,img ,cs ,encoder );};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_cadgd *pdfCIDFontType2 )ToPdfObject ()_egg .PdfObject {if _cadgd ._gcfdg ==nil {_cadgd ._gcfdg =&_egg .PdfIndirectObject {};};_afbd :=_cadgd .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
|
||
_cadgd ._gcfdg .PdfObject =_afbd ;if _cadgd .CIDSystemInfo !=nil {_afbd .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_cadgd .CIDSystemInfo );};if _cadgd .DW !=nil {_afbd .Set ("\u0044\u0057",_cadgd .DW );};if _cadgd .DW2 !=nil {_afbd .Set ("\u0044\u0057\u0032",_cadgd .DW2 );
|
||
};if _cadgd .W !=nil {_afbd .Set ("\u0057",_cadgd .W );};if _cadgd .W2 !=nil {_afbd .Set ("\u0057\u0032",_cadgd .W2 );};if _cadgd .CIDToGIDMap !=nil {_afbd .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_cadgd .CIDToGIDMap );};return _cadgd ._gcfdg ;
|
||
};
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_agdcad *PdfWriter )SetForms (form *PdfAcroForm )error {_agdcad ._aggec =form ;return nil };
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_ccb :=NewPdfAction ();_ede :=&PdfActionSound {};_ede .PdfAction =_ccb ;_ccb .SetContext (_ede );return _ede ;};func (_dfbf *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";
|
||
};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_bdceg *PdfReader )GetTrailer ()(*_egg .PdfObjectDictionary ,error ){_fbead :=_bdceg ._dafgab .GetTrailer ();if _fbead ==nil {return nil ,_gd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _fbead ,nil ;
|
||
};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_geda *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_egcee *PdfPage )HasXObjectByName (name _egg .PdfObjectName )bool {_ffeddc ,_febda :=_egcee .Resources .XObject .(*_egg .PdfObjectDictionary );if !_febda {return false ;};if _gafa :=_ffeddc .Get (name );_gafa !=nil {return true ;};return false ;};
|
||
|
||
|
||
// 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 *_egg .PdfIndirectObject ;SV *_egg .PdfIndirectObject ;};func _eggba (_eefcc _egg .PdfObject )(*PdfColorspaceDeviceN ,error ){_dfbfc :=NewPdfColorspaceDeviceN ();if _eddcg ,_bfee :=_eefcc .(*_egg .PdfIndirectObject );
|
||
_bfee {_dfbfc ._dadga =_eddcg ;};_eefcc =_egg .TraceToDirectObject (_eefcc );_feca ,_cbef :=_eefcc .(*_egg .PdfObjectArray );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if _feca .Len ()!=4&&_feca .Len ()!=5{return nil ,_f .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_eefcc =_feca .Get (0);
|
||
_degg ,_cbef :=_eefcc .(*_egg .PdfObjectName );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_degg !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_f .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_eefcc =_feca .Get (1);
|
||
_eefcc =_egg .TraceToDirectObject (_eefcc );_dcbc ,_cbef :=_eefcc .(*_egg .PdfObjectArray );if !_cbef {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_dfbfc .ColorantNames =_dcbc ;_eefcc =_feca .Get (2);_degdg ,_bbgad :=NewPdfColorspaceFromPdfObject (_eefcc );if _bbgad !=nil {return nil ,_bbgad ;};_dfbfc .AlternateSpace =_degdg ;_ffdd ,_bbgad :=_bdefe (_feca .Get (3));if _bbgad !=nil {return nil ,_bbgad ;
|
||
};_dfbfc .TintTransform =_ffdd ;if _feca .Len ()==5{_ecebe ,_degf :=_facdg (_feca .Get (4));if _degf !=nil {return nil ,_degf ;};_dfbfc .Attributes =_ecebe ;};return _dfbfc ,nil ;};var _cbaa =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":{}};
|
||
func (_bdcda *PdfWriter )writeObjects (){_bag .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_bdcda ._bbead ));_bdcda ._ccceb =make (map[int ]crossReference );_bdcda ._ccceb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
|
||
if _bdcda ._ecfgc .ObjectMap !=nil {for _bgacb ,_ecbgf :=range _bdcda ._ecfgc .ObjectMap {if _bgacb ==0{continue ;};if _ecbgf .XType ==_egg .XrefTypeObjectStream {_aaecc :=crossReference {Type :2,ObjectNumber :_ecbgf .OsObjNumber ,Index :_ecbgf .OsObjIndex };
|
||
_bdcda ._ccceb [_bgacb ]=_aaecc ;};if _ecbgf .XType ==_egg .XrefTypeTableEntry {_gcfda :=crossReference {Type :1,ObjectNumber :_ecbgf .ObjectNumber ,Offset :_ecbgf .Offset };_bdcda ._ccceb [_bgacb ]=_gcfda ;};};};};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_agca *PdfColorspaceSpecialPattern )ToPdfObject ()_egg .PdfObject {if _agca .UnderlyingCS ==nil {return _egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_baad :=_egg .MakeArray (_egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));
|
||
_baad .Append (_agca .UnderlyingCS .ToPdfObject ());if _agca ._ceae !=nil {_agca ._ceae .PdfObject =_baad ;return _agca ._ceae ;};return _baad ;};func (_baeef *PdfReader )newPdfFieldFromIndirectObject (_afdd *_egg .PdfIndirectObject ,_gdfd *PdfField )(*PdfField ,error ){if _ffad ,_febf :=_baeef ._dabaf .GetModelFromPrimitive (_afdd ).(*PdfField );
|
||
_febf {return _ffad ,nil ;};_fdfb ,_aggbb :=_egg .GetDict (_afdd );if !_aggbb {return nil ,_f .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_dcbg :=NewPdfField ();_dcbg ._agef =_afdd ;_dcbg ._agef .PdfObject =_fdfb ;if _ccaa ,_gcgg :=_egg .GetName (_fdfb .Get ("\u0046\u0054"));_gcgg {_dcbg .FT =_ccaa ;};if _gdfd !=nil {_dcbg .Parent =_gdfd ;};_dcbg .T ,_ =_fdfb .Get ("\u0054").(*_egg .PdfObjectString );
|
||
_dcbg .TU ,_ =_fdfb .Get ("\u0054\u0055").(*_egg .PdfObjectString );_dcbg .TM ,_ =_fdfb .Get ("\u0054\u004d").(*_egg .PdfObjectString );_dcbg .Ff ,_ =_fdfb .Get ("\u0046\u0066").(*_egg .PdfObjectInteger );_dcbg .V =_fdfb .Get ("\u0056");_dcbg .DV =_fdfb .Get ("\u0044\u0056");
|
||
_dcbg .AA =_fdfb .Get ("\u0041\u0041");if DA :=_fdfb .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_egg .GetString (DA );_dcbg .VariableText =&VariableText {DA :DA };Q ,_ :=_fdfb .Get ("\u0051").(*_egg .PdfObjectInteger );DS ,_ :=_fdfb .Get ("\u0044\u0053").(*_egg .PdfObjectString );
|
||
RV :=_fdfb .Get ("\u0052\u0056");_dcbg .VariableText .Q =Q ;_dcbg .VariableText .DS =DS ;_dcbg .VariableText .RV =RV ;};_eecaf :=_dcbg .FT ;if _eecaf ==nil &&_gdfd !=nil {_eecaf =_gdfd .FT ;};if _eecaf !=nil {switch *_eecaf {case "\u0054\u0078":_bccb ,_gcbb :=_aefg (_fdfb );
|
||
if _gcbb !=nil {return nil ,_gcbb ;};_bccb .PdfField =_dcbg ;_dcbg ._gbdee =_bccb ;case "\u0043\u0068":_agga ,_aaed :=_ddfce (_fdfb );if _aaed !=nil {return nil ,_aaed ;};_agga .PdfField =_dcbg ;_dcbg ._gbdee =_agga ;case "\u0042\u0074\u006e":_gaabe ,_bdce :=_aedd (_fdfb );
|
||
if _bdce !=nil {return nil ,_bdce ;};_gaabe .PdfField =_dcbg ;_dcbg ._gbdee =_gaabe ;case "\u0053\u0069\u0067":_befg ,_gafef :=_baeef .newPdfFieldSignatureFromDict (_fdfb );if _gafef !=nil {return nil ,_gafef ;};_befg .PdfField =_dcbg ;_dcbg ._gbdee =_befg ;
|
||
default:_bag .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",*_dcbg .FT );return nil ,_gd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
|
||
};};if _debce ,_bdaaa :=_egg .GetName (_fdfb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_bdaaa {if *_debce =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bbeg ,_deaa :=_baeef .newPdfAnnotationFromIndirectObject (_afdd );if _deaa !=nil {return nil ,_deaa ;
|
||
};_fgfb ,_afede :=_bbeg .GetContext ().(*PdfAnnotationWidget );if !_afede {return nil ,_gd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fgfb ._daa =_dcbg ;_fgfb .Parent =_dcbg ._agef ;
|
||
_dcbg .Annotations =append (_dcbg .Annotations ,_fgfb );return _dcbg ,nil ;};};_gddac :=true ;if _fagfc ,_cccc :=_egg .GetArray (_fdfb .Get ("\u004b\u0069\u0064\u0073"));_cccc {_befc :=make ([]*_egg .PdfIndirectObject ,0,_fagfc .Len ());for _ ,_cdggg :=range _fagfc .Elements (){_cggb ,_bdfeg :=_egg .GetIndirect (_cdggg );
|
||
if !_bdfeg {_eaca ,_faeff :=_egg .GetStream (_cdggg );if _faeff &&_eaca .PdfObjectDictionary !=nil {_efbde ,_bcacd :=_egg .GetNameVal (_eaca .Get ("\u0054\u0079\u0070\u0065"));if _bcacd &&_efbde =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_bag .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 ,_gd .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");};_efac ,_ffcd :=_egg .GetDict (_cggb );
|
||
if !_ffcd {return nil ,ErrTypeCheck ;};if _gddac {_gddac =!_ffaf (_efac );};_befc =append (_befc ,_cggb );};for _ ,_fgaed :=range _befc {if _gddac {_gcafa ,_ebff :=_baeef .newPdfAnnotationFromIndirectObject (_fgaed );if _ebff !=nil {_bag .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",_ebff );
|
||
return nil ,_ebff ;};_bgfbf ,_bfgc :=_gcafa ._gcf .(*PdfAnnotationWidget );if !_bfgc {return nil ,ErrTypeCheck ;};_bgfbf ._daa =_dcbg ;_dcbg .Annotations =append (_dcbg .Annotations ,_bgfbf );}else {_ddbe ,_gaef :=_baeef .newPdfFieldFromIndirectObject (_fgaed ,_dcbg );
|
||
if _gaef !=nil {_bag .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",_gaef );return nil ,_gaef ;};_dcbg .Kids =append (_dcbg .Kids ,_ddbe );
|
||
};};};return _dcbg ,nil ;};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_cegcg *PdfSignature )SetLocation (location string ){_cegcg .Location =_egg .MakeString (location )};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_dgdgg *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _dgdgg ._fcbdg .(*PdfTilingPattern );};
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_abgd :=PdfColorDeviceRGB {r ,g ,b };return &_abgd ;};
|
||
|
||
// 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 (_ffce *PdfWriter )SetRotation (rotate int64 )error {_dgcdb ,_bdgbe :=_egg .GetDict (_ffce ._gfbe );if !_bdgbe {return ErrTypeCheck ;};_dgcdb .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_egg .MakeInteger (rotate ));return nil ;};
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_aeace *modelManager )Register (primitive _egg .PdfObject ,model PdfModel ){_aeace ._eefgc [model ]=primitive ;_aeace ._ggbg [primitive ]=model ;};func (_cfcda *PdfReader )newPdfSignatureFromIndirect (_aedba *_egg .PdfIndirectObject )(*PdfSignature ,error ){_gcdbe ,_abefbf :=_aedba .PdfObject .(*_egg .PdfObjectDictionary );
|
||
if !_abefbf {_bag .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 _fcagb ,_accdb :=_cfcda ._dabaf .GetModelFromPrimitive (_aedba ).(*PdfSignature );_accdb {return _fcagb ,nil ;};_aggbg :=&PdfSignature {};_aggbg ._ccbda =_aedba ;_aggbg .Type ,_ =_egg .GetName (_gcdbe .Get ("\u0054\u0079\u0070\u0065"));
|
||
_aggbg .Filter ,_abefbf =_egg .GetName (_gcdbe .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_abefbf {_bag .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 ;};_aggbg .SubFilter ,_ =_egg .GetName (_gcdbe .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_aggbg .Contents ,_abefbf =_egg .GetString (_gcdbe .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_abefbf {_bag .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 _begcd ,_ccab :=_egg .GetArray (_gcdbe .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_ccab {_aggbg .Reference =_egg .MakeArray ();for _ ,_dccdb :=range _begcd .Elements (){_gfaec ,_dggae :=_egg .GetDict (_dccdb );
|
||
if !_dggae {_bag .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 ;
|
||
};_bgdfb ,_eaceb :=_cfcda .newPdfSignatureReferenceFromDict (_gfaec );if _eaceb !=nil {return nil ,_eaceb ;};_aggbg .Reference .Append (_bgdfb .ToPdfObject ());};};_aggbg .Cert =_gcdbe .Get ("\u0043\u0065\u0072\u0074");_aggbg .ByteRange ,_ =_egg .GetArray (_gcdbe .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
|
||
_aggbg .Changes ,_ =_egg .GetArray (_gcdbe .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_aggbg .Name ,_ =_egg .GetString (_gcdbe .Get ("\u004e\u0061\u006d\u0065"));_aggbg .M ,_ =_egg .GetString (_gcdbe .Get ("\u004d"));_aggbg .Location ,_ =_egg .GetString (_gcdbe .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_aggbg .Reason ,_ =_egg .GetString (_gcdbe .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_aggbg .ContactInfo ,_ =_egg .GetString (_gcdbe .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_aggbg .R ,_ =_egg .GetInt (_gcdbe .Get ("\u0052"));
|
||
_aggbg .V ,_ =_egg .GetInt (_gcdbe .Get ("\u0056"));_aggbg .PropBuild ,_ =_egg .GetDict (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_aggbg .PropAuthTime ,_ =_egg .GetInt (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_aggbg .PropAuthType ,_ =_egg .GetName (_gcdbe .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_cfcda ._dabaf .Register (_aedba ,_aggbg );return _aggbg ,nil ;};
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_cbb :=NewPdfAnnotation ();_gge :=&PdfAnnotationInk {};_gge .PdfAnnotation =_cbb ;_gge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbb .SetContext (_gge );return _gge ;};
|
||
|
||
// GetStandardApplier gets currently used StandardApplier..
|
||
func (_ffcde *PdfWriter )GetStandardApplier ()StandardApplier {return _ffcde ._ebgad };
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_deefg PdfDate )ToGoTime ()_e .Time {_eabef :=int (_deefg ._ebeed *60*60+_deefg ._fcafb *60);switch _deefg ._ebcdc {case '-':_eabef =-_eabef ;case 'Z':_eabef =0;};_bebe :=_f .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_deefg ._ebcdc ,_deefg ._ebeed ,_deefg ._fcafb );
|
||
_cdaea :=_e .FixedZone (_bebe ,_eabef );return _e .Date (int (_deefg ._acadbc ),_e .Month (_deefg ._cbffc ),int (_deefg ._fgddd ),int (_deefg ._bfcd ),int (_deefg ._fceaf ),int (_deefg ._ffccc ),0,_cdaea );};
|
||
|
||
// 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 ;};
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_bcdgg *PdfPage )AddFont (name _egg .PdfObjectName ,font _egg .PdfObject )error {if _bcdgg .Resources ==nil {_bcdgg .Resources =NewPdfPageResources ();};if _bcdgg .Resources .Font ==nil {_bcdgg .Resources .Font =_egg .MakeDict ();};_deeba ,_aeacb :=_egg .TraceToDirectObject (_bcdgg .Resources .Font ).(*_egg .PdfObjectDictionary );
|
||
if !_aeacb {_bag .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",_egg .TraceToDirectObject (_bcdgg .Resources .Font ));
|
||
return _gd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_deeba .Set (name ,font );return nil ;};
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_cfdb :=&PdfColorspaceLab {};_cfdb .BlackPoint =[]float64 {0.0,0.0,0.0};_cfdb .Range =[]float64 {-100,100,-100,100};return _cfdb ;};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_dgggd *PdfWriter )SetPageLabels (pageLabels _egg .PdfObject )error {if pageLabels ==nil {return nil ;};_bag .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");
|
||
_dgggd ._acea .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dgggd .addObjects (pageLabels );};
|
||
|
||
// 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 (_cedf int ,_beeb *PdfPage )error ;
|
||
|
||
// Val returns the color value.
|
||
func (_fggg *PdfColorDeviceGray )Val ()float64 {return float64 (*_fggg )};
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_abb PdfModel ;Type _egg .PdfObject ;S _egg .PdfObject ;Next _egg .PdfObject ;_bf *_egg .PdfIndirectObject ;};func (_eaddb *PdfWriter )checkCrossReferenceStream ()bool {_fceag :=_eaddb ._dacce .Major > 1||(_eaddb ._dacce .Major ==1&&_eaddb ._dacce .Minor > 4);
|
||
if _eaddb ._bfga !=nil {_fceag =*_eaddb ._bfga ;};return _fceag ;};
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_bbafa *PdfPageResources )GetColorspaceByName (keyName _egg .PdfObjectName )(PdfColorspace ,bool ){_ffff ,_bdfdf :=_bbafa .GetColorspaces ();if _bdfdf !=nil {_bag .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",_bdfdf );
|
||
return nil ,false ;};if _ffff ==nil {return nil ,false ;};_effad ,_bfca :=_ffff .Colorspaces [string (keyName )];if !_bfca {return nil ,false ;};return _effad ,true ;};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
// Format: [/DeviceN names alternateSpace tintTransform]
|
||
// or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
func (_ecbd *PdfColorspaceDeviceN )ToPdfObject ()_egg .PdfObject {_fbfd :=_egg .MakeArray (_egg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_fbfd .Append (_ecbd .ColorantNames );_fbfd .Append (_ecbd .AlternateSpace .ToPdfObject ());_fbfd .Append (_ecbd .TintTransform .ToPdfObject ());
|
||
if _ecbd .Attributes !=nil {_fbfd .Append (_ecbd .Attributes .ToPdfObject ());};if _ecbd ._dadga !=nil {_ecbd ._dadga .PdfObject =_fbfd ;return _ecbd ._dadga ;};return _fbfd ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};func (_gfbbc *PdfWriter )writeAcroFormFields ()error {if _gfbbc ._aggec ==nil {return nil ;};_bag .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");
|
||
_bbgg :=_gfbbc ._aggec .ToPdfObject ();_bag .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bbgg );_gfbbc ._acea .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bbgg );_ceece :=_gfbbc .addObjects (_bbgg );
|
||
if _ceece !=nil {return _ceece ;};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_dceg *PdfPattern )ToPdfObject ()_egg .PdfObject {_debec :=_dceg .getDict ();_debec .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_debec .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (_dceg .PatternType ));
|
||
return _dceg ._fgec ;};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_cgag .Lock ();defer _cgag .Unlock ();_fcfbd =title };
|
||
|
||
// 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 _egg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_egg .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_effcd ,_abaa :=encoder .EncodeBytes (img .Data );
|
||
if _abaa !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_abaa );return nil ,_abaa ;};_aeeea :=NewXObjectImage ();_bgacgc :=img .Width ;_cbbed :=img .Height ;
|
||
_aeeea .Width =&_bgacgc ;_aeeea .Height =&_cbbed ;_gdaeb :=img .BitsPerComponent ;_aeeea .BitsPerComponent =&_gdaeb ;_aeeea .Filter =encoder ;_aeeea .Stream =_effcd ;if cs ==nil {if img .ColorComponents ==1{_aeeea .ColorSpace =NewPdfColorspaceDeviceGray ();
|
||
}else if img .ColorComponents ==3{_aeeea .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_aeeea .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_gd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
|
||
};}else {_aeeea .ColorSpace =cs ;};if len (img ._fgggb )!=0{_gbga :=NewXObjectImage ();_gbga .Filter =encoder ;_bfffe ,_fedga :=encoder .EncodeBytes (img ._fgggb );if _fedga !=nil {_bag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_fedga );
|
||
return nil ,_fedga ;};_gbga .Stream =_bfffe ;_gbga .BitsPerComponent =_aeeea .BitsPerComponent ;_gbga .Width =&img .Width ;_gbga .Height =&img .Height ;_gbga .ColorSpace =NewPdfColorspaceDeviceGray ();_aeeea .SMask =_gbga .ToPdfObject ();}else {_aeeea .SMask =xobjIn .SMask ;
|
||
_aeeea .ImageMask =xobjIn .ImageMask ;if _aeeea .ColorSpace .GetNumComponents ()==1{_eebf (_aeeea );};};return _aeeea ,nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_cegd pdfFontType3 )GetRuneMetrics (r rune )(_bgd .CharMetrics ,bool ){_gcae :=_cegd .Encoder ();if _gcae ==nil {_bag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_cegd );
|
||
return _bgd .CharMetrics {},false ;};_gbbbg ,_cfcf :=_gcae .RuneToCharcode (r );if !_cfcf {if r !=' '{_bag .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 ,_cegd );
|
||
};return _bgd .CharMetrics {},false ;};_faag ,_bfeg :=_cegd .GetCharMetrics (_gbbbg );return _faag ,_bfeg ;};
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_cfdab *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fdfc :=_fb .NewReader (img .getBase ());_ceaea :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._fgggb ,img ._abfae );
|
||
_egfa :=_fb .NewWriter (_ceaea );_eafed :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_gdgb :=_cfdab .GetNumComponents ();_gebe :=make ([]uint32 ,_gdgb );_acfdf :=make ([]float64 ,_gdgb );for {_bcbfc :=_fdfc .ReadSamples (_gebe );if _bcbfc ==_dag .EOF {break ;
|
||
}else if _bcbfc !=nil {return img ,_bcbfc ;};for _eagf :=0;_eagf < _gdgb ;_eagf ++{_dgce :=float64 (_gebe [_eagf ])/_eafed ;_acfdf [_eagf ]=_dgce ;};_bedce ,_bcbfc :=_cfdab .TintTransform .Evaluate (_acfdf );if _bcbfc !=nil {return img ,_bcbfc ;};for _ ,_ccbde :=range _bedce {_ccbde =_dgb .Min (_dgb .Max (0,_ccbde ),1.0);
|
||
if _bcbfc =_egfa .WriteSample (uint32 (_ccbde *_eafed ));_bcbfc !=nil {return img ,_bcbfc ;};};};return _cfdab .AlternateSpace .ImageToRGB (_cggba (&_ceaea ));};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_fdccf *PdfReader )IsEncrypted ()(bool ,error ){return _fdccf ._dafgab .IsEncrypted ()};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bbdec *PdfAnnotationStamp )ToPdfObject ()_egg .PdfObject {_bbdec .PdfAnnotation .ToPdfObject ();_eceg :=_bbdec ._cef ;_cbce :=_eceg .PdfObject .(*_egg .PdfObjectDictionary );_bbdec .PdfAnnotationMarkup .appendToPdfDictionary (_cbce );_cbce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_cbce .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bbdec .Name );return _eceg ;};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_ffga *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _egg .PdfObject ;Flags _egg .PdfObject ;};
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// 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 *_egg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_egg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_egg .PdfObjectBool ;_fagfe PdfModel ;_cfdbd _egg .PdfObject ;};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_edecb *modelManager )GetPrimitiveFromModel (model PdfModel )_egg .PdfObject {_egeba ,_bbgcg :=_edecb ._eefgc [model ];if !_bbgcg {return nil ;};return _egeba ;};func (_deegb *PdfPattern )getDict ()*_egg .PdfObjectDictionary {if _acface ,_gfde :=_deegb ._fgec .(*_egg .PdfIndirectObject );
|
||
_gfde {_cbafg ,_dfde :=_acface .PdfObject .(*_egg .PdfObjectDictionary );if !_dfde {return nil ;};return _cbafg ;}else if _efgbd ,_gebg :=_deegb ._fgec .(*_egg .PdfObjectStream );_gebg {return _efgbd .PdfObjectDictionary ;}else {_bag .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",_deegb ._fgec );
|
||
return nil ;};};func (_adfdb *PdfReader )newPdfAcroFormFromDict (_bede *_egg .PdfIndirectObject ,_gcag *_egg .PdfObjectDictionary )(*PdfAcroForm ,error ){_daaag :=NewPdfAcroForm ();if _bede !=nil {_daaag ._befdb =_bede ;_bede .PdfObject =_egg .MakeDict ();
|
||
};if _dgdcc :=_gcag .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_dgdcc !=nil &&!_egg .IsNullObject (_dgdcc ){_ffded ,_ecafc :=_egg .GetArray (_dgdcc );if !_ecafc {return nil ,_f .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_dgdcc );
|
||
};var _ebgff []*PdfField ;for _ ,_dfba :=range _ffded .Elements (){_facg ,_fbed :=_egg .GetIndirect (_dfba );if !_fbed {if _ ,_baea :=_dfba .(*_egg .PdfObjectNull );_baea {_bag .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 ;};_bag .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",_dfba );
|
||
return nil ,_f .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_acbef ,_eaga :=_adfdb .newPdfFieldFromIndirectObject (_facg ,nil );
|
||
if _eaga !=nil {return nil ,_eaga ;};_bag .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_acbef );_ebgff =append (_ebgff ,_acbef );};_daaag .Fields =&_ebgff ;};if _ddgd :=_gcag .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_ddgd !=nil {_ddgf ,_cdcgd :=_egg .GetBool (_ddgd );if _cdcgd {_daaag .NeedAppearances =_ddgf ;}else {_bag .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",_ddgd );
|
||
};};if _fbbb :=_gcag .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_fbbb !=nil {_afbac ,_gabd :=_egg .GetInt (_fbbb );if _gabd {_daaag .SigFlags =_afbac ;}else {_bag .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",_fbbb );
|
||
};};if _adfbbb :=_gcag .Get ("\u0043\u004f");_adfbbb !=nil {_ffdb ,_fecag :=_egg .GetArray (_adfbbb );if _fecag {_daaag .CO =_ffdb ;}else {_bag .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",_adfbbb );
|
||
};};if _ccddb :=_gcag .Get ("\u0044\u0052");_ccddb !=nil {if _gfcac ,_dgfff :=_egg .GetDict (_ccddb );_dgfff {_bfdcc ,_beacf :=NewPdfPageResourcesFromDict (_gfcac );if _beacf !=nil {_bag .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_beacf );
|
||
return nil ,_beacf ;};_daaag .DR =_bfdcc ;}else {_bag .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",_ccddb );};};if _fbbdf :=_gcag .Get ("\u0044\u0041");
|
||
_fbbdf !=nil {_agfeff ,_aaaff :=_egg .GetString (_fbbdf );if _aaaff {_daaag .DA =_agfeff ;}else {_bag .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",_fbbdf );
|
||
};};if _gcee :=_gcag .Get ("\u0051");_gcee !=nil {_defa ,_aegea :=_egg .GetInt (_gcee );if _aegea {_daaag .Q =_defa ;}else {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_gcee );
|
||
};};if _cegg :=_gcag .Get ("\u0058\u0046\u0041");_cegg !=nil {_daaag .XFA =_cegg ;};_daaag .ToPdfObject ();return _daaag ,nil ;};
|
||
|
||
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
|
||
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
|
||
type PdfColorDeviceGray float64 ;
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ecgf *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_ffabd :=_dgb .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_ffabd *_ecgf .A ()),uint32 (_ffabd *_ecgf .B ()),uint32 (_ffabd *_ecgf .C ())};};
|
||
|
||
// SetDocInfo sets the document /Info metadata.
|
||
// This will overwrite any globally declared document info.
|
||
func (_ebag *PdfAppender )SetDocInfo (info *PdfInfo ){_ebag ._gaagg =info };
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_gacee *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_egg .StreamEncoder ,error ){_egafe ,_cgea :=_gacee ._fgec .(*_egg .PdfObjectStream );if !_cgea {_bag .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",_gacee ._fgec );
|
||
return nil ,nil ,_egg .ErrTypeError ;};_eacec ,_fgcbg :=_egg .DecodeStream (_egafe );if _fgcbg !=nil {_bag .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",_fgcbg );
|
||
return nil ,nil ,_fgcbg ;};_gedf ,_fgcbg :=_egg .NewEncoderFromStream (_egafe );if _fgcbg !=nil {_bag .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",_fgcbg );
|
||
return nil ,nil ,_fgcbg ;};return _eacec ,_gedf ,nil ;};
|
||
|
||
// ParsePdfObject parses input pdf object into given output intent.
|
||
func (_cbddc *PdfOutputIntent )ParsePdfObject (object _egg .PdfObject )error {_bgfbfc ,_cbced :=_egg .GetDict (object );if !_cbced {_bag .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 _gd .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");
|
||
};_cbddc ._gdaaa =_bgfbfc ;_cbddc .Type ,_ =_bgfbfc .GetString ("\u0054\u0079\u0070\u0065");_gegd ,_cbced :=_bgfbfc .GetString ("\u0053");if _cbced {switch _gegd {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_cbddc .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_cbddc .S =PdfOutputIntentTypeA2 ;
|
||
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_cbddc .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_cbddc .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_cbddc .S =PdfOutputIntentTypeX ;
|
||
};};_cbddc .OutputCondition ,_ =_bgfbfc .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_cbddc .OutputConditionIdentifier ,_ =_bgfbfc .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
|
||
_cbddc .RegistryName ,_ =_bgfbfc .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_cbddc .Info ,_ =_bgfbfc .GetString ("\u0049\u006e\u0066\u006f");if _dgag ,_dfad :=_egg .GetStream (_bgfbfc .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
|
||
_dfad {_cbddc .ColorComponents ,_ =_egg .GetIntVal (_dgag .Get ("\u004e"));_dfcb ,_bfge :=_egg .DecodeStream (_dgag );if _bfge !=nil {return _bfge ;};_cbddc .DestOutputProfile =_dfcb ;};return nil ;};func (_gedaaf *pdfFontType0 )subsetRegistered ()error {_fecb ,_bedac :=_gedaaf .DescendantFont ._edde .(*pdfCIDFontType2 );
|
||
if !_bedac {_bag .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",_gedaaf .DescendantFont );return nil ;};if _fecb ==nil {return nil ;
|
||
};if _fecb ._bgacg ==nil {_bag .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 _gedaaf ._bfddc ==nil {_bag .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 ;};_egebf ,_bedac :=_egg .GetStream (_fecb ._bgacg .FontFile2 );if !_bedac {_bag .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 _gd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_edefc ,_bdeae :=_egg .DecodeStream (_egebf );if _bdeae !=nil {_bag .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_bdeae );
|
||
return _bdeae ;};_ddbg ,_bdeae :=_ec .Parse (_dd .NewReader (_edefc ));if _bdeae !=nil {_bag .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 (_egebf .Stream ));
|
||
return _bdeae ;};var _eacg []rune ;var _caab *_ec .Font ;switch _gcgd :=_gedaaf ._bfddc .(type ){case *_ef .TrueTypeFontEncoder :_eacg =_gcgd .RegisteredRunes ();_caab ,_bdeae =_ddbg .SubsetKeepRunes (_eacg );if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );
|
||
return _bdeae ;};_gcgd .SubsetRegistered ();case *_ef .IdentityEncoder :_eacg =_gcgd .RegisteredRunes ();_deba :=make ([]_ec .GlyphIndex ,len (_eacg ));for _baedc ,_ecba :=range _eacg {_deba [_baedc ]=_ec .GlyphIndex (_ecba );};_caab ,_bdeae =_ddbg .SubsetKeepIndices (_deba );
|
||
if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );return _bdeae ;};case _ef .SimpleEncoder :_fcfb :=_gcgd .Charcodes ();for _ ,_fgggc :=range _fcfb {_ebfed ,_efead :=_gcgd .CharcodeToRune (_fgggc );if !_efead {_bag .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",_fgggc );
|
||
continue ;};_eacg =append (_eacg ,_ebfed );};default:return _f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_gedaaf ._bfddc );
|
||
};var _gegaf _dd .Buffer ;_bdeae =_caab .Write (&_gegaf );if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );return _bdeae ;};if _gedaaf ._bfbgf !=nil {_fcda :=make (map[_ga .CharCode ]rune ,len (_eacg ));for _ ,_ccdb :=range _eacg {_aeed ,_fbae :=_gedaaf ._bfddc .RuneToCharcode (_ccdb );
|
||
if !_fbae {continue ;};_fcda [_ga .CharCode (_aeed )]=_ccdb ;};_gedaaf ._bfbgf =_ga .NewToUnicodeCMap (_fcda );};_egebf ,_bdeae =_egg .MakeStream (_gegaf .Bytes (),_egg .NewFlateEncoder ());if _bdeae !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeae );
|
||
return _bdeae ;};_egebf .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_egg .MakeInteger (int64 (_gegaf .Len ())));if _edaaf ,_abeed :=_egg .GetStream (_fecb ._bgacg .FontFile2 );_abeed {*_edaaf =*_egebf ;}else {_fecb ._bgacg .FontFile2 =_egebf ;};_gbgf :=_eaebg ();
|
||
if len (_gedaaf ._dgfdc )> 0{_gedaaf ._dgfdc =_egcge (_gedaaf ._dgfdc ,_gbgf );};if len (_fecb ._dgfdc )> 0{_fecb ._dgfdc =_egcge (_fecb ._dgfdc ,_gbgf );};if len (_gedaaf ._cbgce )> 0{_gedaaf ._cbgce =_egcge (_gedaaf ._cbgce ,_gbgf );};if _fecb ._bgacg !=nil {_fgaca ,_gddcc :=_egg .GetName (_fecb ._bgacg .FontName );
|
||
if _gddcc &&len (_fgaca .String ())> 0{_cgbfa :=_egcge (_fgaca .String (),_gbgf );_fecb ._bgacg .FontName =_egg .MakeName (_cgbfa );};};return nil ;};func (_facdc *PdfWriter )updateObjectNumbers (){_daccd :=_facdc .ObjNumOffset ;_cbfae :=0;for _ ,_gaca :=range _facdc ._bbead {_agbeb :=int64 (_cbfae +1+_daccd );
|
||
_ffeddd :=true ;if _facdc ._gabaca {if _gcab ,_aaaac :=_facdc ._fcgfe [_gaca ];_aaaac {_agbeb =_gcab ;_ffeddd =false ;};};switch _aeeba :=_gaca .(type ){case *_egg .PdfIndirectObject :_aeeba .ObjectNumber =_agbeb ;_aeeba .GenerationNumber =0;case *_egg .PdfObjectStream :_aeeba .ObjectNumber =_agbeb ;
|
||
_aeeba .GenerationNumber =0;case *_egg .PdfObjectStreams :_aeeba .ObjectNumber =_agbeb ;_aeeba .GenerationNumber =0;default:_bag .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",_aeeba );
|
||
continue ;};if _ffeddd {_cbfae ++;};};_gedfd :=func (_afdf _egg .PdfObject )int64 {switch _gcdgc :=_afdf .(type ){case *_egg .PdfIndirectObject :return _gcdgc .ObjectNumber ;case *_egg .PdfObjectStream :return _gcdgc .ObjectNumber ;case *_egg .PdfObjectStreams :return _gcdgc .ObjectNumber ;
|
||
};return 0;};_cf .SliceStable (_facdc ._bbead ,func (_eedeb ,_bgggb int )bool {return _gedfd (_facdc ._bbead [_eedeb ])< _gedfd (_facdc ._bbead [_bgggb ])});};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_bfcfa *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_gd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdea ,_aggb :=_egg .GetNumbersAsFloat (objects );
|
||
if _aggb !=nil {return nil ,_aggb ;};return _bfcfa .ColorFromFloats (_cdea );};
|
||
|
||
// 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 *_egg .PdfParser ;DiffPolicy _be .DiffPolicy ;};
|
||
|
||
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
|
||
func NewPdfOutputIntentFromPdfObject (object _egg .PdfObject )(*PdfOutputIntent ,error ){_bdebc :=&PdfOutputIntent {};if _bdfc :=_bdebc .ParsePdfObject (object );_bdfc !=nil {return nil ,_bdfc ;};return _bdebc ,nil ;};func _bbeb (_edbdbd *PdfField ,_fagge _egg .PdfObject ){for _ ,_cdaae :=range _edbdbd .Annotations {_cdaae .AS =_fagge ;
|
||
_cdaae .ToPdfObject ();};};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_dgaca *DSS )ToPdfObject ()_egg .PdfObject {_gfdb :=_dgaca ._eaceg .PdfObject .(*_egg .PdfObjectDictionary );_gfdb .Clear ();_fcgg :=_egg .MakeDict ();for _eadee ,_bdbbd :=range _dgaca .VRI {_fcgg .Set (*_egg .MakeName (_eadee ),_bdbbd .ToPdfObject ());
|
||
};_gfdb .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_dgagb (_dgaca .Certs ));_gfdb .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_dgagb (_dgaca .OCSPs ));_gfdb .SetIfNotNil ("\u0043\u0052\u004c\u0073",_dgagb (_dgaca .CRLs ));_gfdb .Set ("\u0056\u0052\u0049",_fcgg );
|
||
return _dgaca ._eaceg ;};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_adcgf *PdfFont )Subtype ()string {_befbf :=_adcgf .baseFields ()._ebdf ;if _fdec ,_fede :=_adcgf ._edde .(*pdfFontType0 );_fede {_befbf =_befbf +"\u003a"+_fdec .DescendantFont .Subtype ();};return _befbf ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_babe *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_acadbc int64 ;_cbffc int64 ;_fgddd int64 ;_bfcd int64 ;_fceaf int64 ;_ffccc int64 ;_ebcdc byte ;_ebeed int64 ;_fcafb int64 ;};
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_bgbfb *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_bdggf :=_fb .NewReader (img .getBase ());_cdeag :=_eg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_bgbfb .AlternateSpace .GetNumComponents (),nil ,img ._fgggb ,nil );
|
||
_bbaeb :=_fb .NewWriter (_cdeag );_ffgf :=_dgb .Pow (2,float64 (img .BitsPerComponent ))-1;_bag .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");
|
||
_bag .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_bgbfb .TintTransform );_aebaf :=_bgbfb .AlternateSpace .DecodeArray ();var (_gdcb uint32 ;_gddf error ;);for {_gdcb ,_gddf =_bdggf .ReadSample ();
|
||
if _gddf ==_dag .EOF {break ;};if _gddf !=nil {return img ,_gddf ;};_gdddf :=float64 (_gdcb )/_ffgf ;_dfabe ,_eagb :=_bgbfb .TintTransform .Evaluate ([]float64 {_gdddf });if _eagb !=nil {return img ,_eagb ;};for _bdeb ,_gcgcf :=range _dfabe {_ccbf :=_eg .LinearInterpolate (_gcgcf ,_aebaf [_bdeb *2],_aebaf [_bdeb *2+1],0,1);
|
||
if _eagb =_bbaeb .WriteSample (uint32 (_ccbf *_ffgf ));_eagb !=nil {return img ,_eagb ;};};};return _bgbfb .AlternateSpace .ImageToRGB (_cggba (&_cdeag ));};var _eefde =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":{}};
|
||
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_bfgf *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// 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 (_afbeea *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_egeag :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_fefa ,_bcgbf :=_afbeea .GetNumPages ();if _bcgbf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bcgbf );
|
||
return nil ,_bcgbf ;};for _afeeg :=1;_afeeg <=_fefa ;_afeeg ++{_gegafg ,_bdeba :=_afbeea .GetPage (_afeeg );if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );return nil ,_bdeba ;};if opts .PageProcessCallback !=nil {_bdeba =opts .PageProcessCallback (_afeeg ,_gegafg );
|
||
if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );return nil ,_bdeba ;};}else if opts .PageCallback !=nil {opts .PageCallback (_afeeg ,_gegafg );};_bdeba =_egeag .AddPage (_gegafg );if _bdeba !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bdeba );
|
||
return nil ,_bdeba ;};};_egeag ._dacce =_afbeea .PdfVersion ();if !opts .SkipInfo {_ffead ,_fcbcb :=_afbeea .GetPdfInfo ();if _fcbcb !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fcbcb );}else {_egeag ._efage .PdfObject =_ffead .ToPdfObject ();
|
||
};};if !opts .SkipMetadata {if _aadad :=_afbeea ._eacf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_aadad !=nil {if _cccd :=_egeag .SetCatalogMetadata (_aadad );_cccd !=nil {return nil ,_cccd ;};};};if !opts .SkipAcroForm {_ecfff :=_egeag .SetForms (_afbeea .AcroForm );
|
||
if _ecfff !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecfff );return nil ,_ecfff ;};};if !opts .SkipOutlines {_egeag .AddOutlineTree (_afbeea .GetOutlineTree ());};if !opts .SkipOCProperties {_bdbbc ,_degbc :=_afbeea .GetOCProperties ();
|
||
if _degbc !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_degbc );}else {_degbc =_egeag .SetOCProperties (_bdbbc );if _degbc !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_degbc );};};};if !opts .SkipPageLabels {_cccac ,_fggfg :=_afbeea .GetPageLabels ();
|
||
if _fggfg !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fggfg );}else {_fggfg =_egeag .SetPageLabels (_cccac );if _fggfg !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fggfg );};};};if !opts .SkipNamedDests {_dceag ,_aabf :=_afbeea .GetNamedDestinations ();
|
||
if _aabf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aabf );}else {_aabf =_egeag .SetNamedDestinations (_dceag );if _aabf !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aabf );};};};if !opts .SkipNameDictionary {_bgggg ,_bbeag :=_afbeea .GetNameDictionary ();
|
||
if _bbeag !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbeag );}else {_bbeag =_egeag .SetNameDictionary (_bgggg );if _bbeag !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbeag );};};};if !opts .SkipRotation &&_afbeea .Rotate !=nil {if _cbbdb :=_egeag .SetRotation (*_afbeea .Rotate );
|
||
_cbbdb !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cbbdb );};};return &_egeag ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_ccac *PdfFunctionType0 )ToPdfObject ()_egg .PdfObject {if _ccac ._adfae ==nil {_ccac ._adfae =&_egg .PdfObjectStream {};};_dccc :=_egg .MakeDict ();_dccc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_egg .MakeInteger (0));
|
||
_affd :=&_egg .PdfObjectArray {};for _ ,_efae :=range _ccac .Domain {_affd .Append (_egg .MakeFloat (_efae ));};_dccc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_affd );_gcaa :=&_egg .PdfObjectArray {};for _ ,_bdbfa :=range _ccac .Range {_gcaa .Append (_egg .MakeFloat (_bdbfa ));
|
||
};_dccc .Set ("\u0052\u0061\u006eg\u0065",_gcaa );_faee :=&_egg .PdfObjectArray {};for _ ,_bbebc :=range _ccac .Size {_faee .Append (_egg .MakeInteger (int64 (_bbebc )));};_dccc .Set ("\u0053\u0069\u007a\u0065",_faee );_dccc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_egg .MakeInteger (int64 (_ccac .BitsPerSample )));
|
||
if _ccac .Order !=1{_dccc .Set ("\u004f\u0072\u0064e\u0072",_egg .MakeInteger (int64 (_ccac .Order )));};_dccc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_egg .MakeInteger (int64 (len (_ccac ._efacf ))));_ccac ._adfae .Stream =_ccac ._efacf ;_ccac ._adfae .PdfObjectDictionary =_dccc ;
|
||
return _ccac ._adfae ;};
|
||
|
||
// 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{_gbdee PdfModel ;_agef *_egg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_egg .PdfObjectName ;T *_egg .PdfObjectString ;TU *_egg .PdfObjectString ;TM *_egg .PdfObjectString ;Ff *_egg .PdfObjectInteger ;
|
||
V _egg .PdfObject ;DV _egg .PdfObject ;AA _egg .PdfObject ;VariableText *VariableText ;};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};func (_edfcd *PdfReader )flattenFieldsWithOpts (_baagf bool ,_cbefg FieldAppearanceGenerator ,_fgdf *FieldFlattenOpts )error {if _fgdf ==nil {_fgdf =&FieldFlattenOpts {};
|
||
};var _ffbgg bool ;_adgg :=map[*PdfAnnotation ]bool {};{var _fadc []*PdfField ;_fbcf :=_edfcd .AcroForm ;if _fbcf !=nil {if _fgdf .FilterFunc !=nil {_fadc =_fbcf .filteredFields (_fgdf .FilterFunc ,true );_ffbgg =_fbcf .Fields !=nil &&len (*_fbcf .Fields )> 0;
|
||
}else {_fadc =_fbcf .AllFields ();};};for _ ,_gdecb :=range _fadc {for _ ,_degdga :=range _gdecb .Annotations {_adgg [_degdga .PdfAnnotation ]=_gdecb .V !=nil ;if _cbefg !=nil {_fdad ,_fbfe :=_cbefg .GenerateAppearanceDict (_fbcf ,_gdecb ,_degdga );if _fbfe !=nil {return _fbfe ;
|
||
};_degdga .AP =_fdad ;};};};};if _baagf {for _ ,_ggcg :=range _edfcd .PageList {_abbfg ,_fgfee :=_ggcg .GetAnnotations ();if _fgfee !=nil {return _fgfee ;};for _ ,_aegd :=range _abbfg {_adgg [_aegd ]=true ;};};};for _ ,_ggcgg :=range _edfcd .PageList {var _afdca []*PdfAnnotation ;
|
||
if _cbefg !=nil {if _gebb :=_cbefg .WrapContentStream (_ggcgg );_gebb !=nil {return _gebb ;};};_ddfe ,_ccbc :=_ggcgg .GetAnnotations ();if _ccbc !=nil {return _ccbc ;};for _ ,_cbca :=range _ddfe {_dfgfg ,_dbcb :=_adgg [_cbca ];if !_dbcb &&_fgdf .AnnotFilterFunc !=nil {if _ ,_cbcge :=_cbca .GetContext ().(*PdfAnnotationWidget );
|
||
!_cbcge {_dbcb =_fgdf .AnnotFilterFunc (_cbca );};};if !_dbcb {_afdca =append (_afdca ,_cbca );continue ;};switch _cbca .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
|
||
};_fagb ,_febe ,_gggeae :=_acfec (_cbca );if _gggeae !=nil {if !_dfgfg {_bag .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 ;};_bag .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",_gggeae );
|
||
continue ;};if _fagb ==nil {continue ;};_efga :=_ggcgg .Resources .GenerateXObjectName ();_ggcgg .Resources .SetXObjectFormByName (_efga ,_fagb );_cbcee :=_dgb .Min (_febe .Llx ,_febe .Urx );_begd :=_dgb .Min (_febe .Lly ,_febe .Ury );var _befgb []string ;
|
||
_befgb =append (_befgb ,"\u0071");_befgb =append (_befgb ,_f .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_cbcee ,_begd ));
|
||
_befgb =append (_befgb ,_f .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_efga .String ()));_befgb =append (_befgb ,"\u0051");_faafc :=_fc .Join (_befgb ,"\u000a");_gggeae =_ggcgg .AppendContentStream (_faafc );if _gggeae !=nil {return _gggeae ;};if _fagb .Resources !=nil {_dfae ,_gcfdb :=_egg .GetDict (_fagb .Resources .Font );
|
||
if _gcfdb {for _ ,_egeb :=range _dfae .Keys (){if !_ggcgg .Resources .HasFontByName (_egeb ){_ggcgg .Resources .SetFontByName (_egeb ,_dfae .Get (_egeb ));};};};};};if len (_afdca )> 0{_ggcgg ._bcce =_afdca ;}else {_ggcgg ._bcce =[]*PdfAnnotation {};};
|
||
};if !_ffbgg {_edfcd .AcroForm =nil ;};return nil ;};
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_egg .PdfObjectArray ;TI *_egg .PdfObjectInteger ;I *_egg .PdfObjectArray ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cea *PdfAnnotationWatermark )ToPdfObject ()_egg .PdfObject {_cea .PdfAnnotation .ToPdfObject ();_aed :=_cea ._cef ;_daba :=_aed .PdfObject .(*_egg .PdfObjectDictionary );_daba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_daba .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_cea .FixedPrint );return _aed ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_gefcg *PdfTilingPattern )ToPdfObject ()_egg .PdfObject {_gefcg .PdfPattern .ToPdfObject ();_fcdcc :=_gefcg .getDict ();if _gefcg .PaintType !=nil {_fcdcc .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_gefcg .PaintType );};if _gefcg .TilingType !=nil {_fcdcc .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_gefcg .TilingType );
|
||
};if _gefcg .BBox !=nil {_fcdcc .Set ("\u0042\u0042\u006f\u0078",_gefcg .BBox .ToPdfObject ());};if _gefcg .XStep !=nil {_fcdcc .Set ("\u0058\u0053\u0074e\u0070",_gefcg .XStep );};if _gefcg .YStep !=nil {_fcdcc .Set ("\u0059\u0053\u0074e\u0070",_gefcg .YStep );
|
||
};if _gefcg .Resources !=nil {_fcdcc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gefcg .Resources .ToPdfObject ());};if _gefcg .Matrix !=nil {_fcdcc .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gefcg .Matrix );};return _gefcg ._fgec ;};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_beafg *PdfPageResources )HasExtGState (keyName _egg .PdfObjectName )bool {_ ,_bccca :=_beafg .GetFontByName (keyName );return _bccca ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cecag *Permissions )ToPdfObject ()_egg .PdfObject {return _cecag ._ffgafc };func _egcge (_dabe ,_fbbfe string )string {if _fc .Contains (_dabe ,"\u002b"){_dcga :=_fc .Split (_dabe ,"\u002b");if len (_dcga )==2{_dabe =_dcga [1];};};return _fbbfe +"\u002b"+_dabe ;
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_eaccc *PdfOutlineItem )GetContainingPdfObject ()_egg .PdfObject {return _eaccc ._gfcb };
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_gfe *PdfColorDeviceRGB )B ()float64 {return _gfe [2]};
|
||
|
||
// 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 (_ecac *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _ecac .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgbe *PdfActionRendition )ToPdfObject ()_egg .PdfObject {_dgbe .PdfAction .ToPdfObject ();_fcbb :=_dgbe ._bf ;_gga :=_fcbb .PdfObject .(*_egg .PdfObjectDictionary );_gga .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeRendition )));_gga .SetIfNotNil ("\u0052",_dgbe .R );
|
||
_gga .SetIfNotNil ("\u0041\u004e",_dgbe .AN );_gga .SetIfNotNil ("\u004f\u0050",_dgbe .OP );_gga .SetIfNotNil ("\u004a\u0053",_dgbe .JS );return _fcbb ;};
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_abadb *PdfInfo )ToPdfObject ()_egg .PdfObject {_fdgg :=_egg .MakeDict ();_fdgg .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_abadb .Title );_fdgg .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_abadb .Author );_fdgg .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_abadb .Subject );
|
||
_fdgg .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_abadb .Keywords );_fdgg .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_abadb .Creator );_fdgg .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_abadb .Producer );
|
||
_fdgg .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_abadb .Trapped );if _abadb .CreationDate !=nil {_fdgg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_abadb .CreationDate .ToPdfObject ());};if _abadb .ModifiedDate !=nil {_fdgg .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_abadb .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_eefd :=range _abadb ._eggg .Keys (){_fdgg .SetIfNotNil (_eefd ,_abadb ._eggg .Get (_eefd ));};return _fdgg ;};
|
||
|
||
// 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 _egg .PdfObject )(_egg .PdfObjectName ,error ){var _fbccg *_egg .PdfObjectName ;var _fcca *_egg .PdfObjectArray ;if _baac ,_debgg :=obj .(*_egg .PdfIndirectObject );_debgg {if _cgedb ,_gggea :=_baac .PdfObject .(*_egg .PdfObjectArray );
|
||
_gggea {_fcca =_cgedb ;}else if _dgbd ,_dbfd :=_baac .PdfObject .(*_egg .PdfObjectName );_dbfd {_fbccg =_dgbd ;};}else if _bbae ,_cddcg :=obj .(*_egg .PdfObjectArray );_cddcg {_fcca =_bbae ;}else if _ebga ,_aacf :=obj .(*_egg .PdfObjectName );_aacf {_fbccg =_ebga ;
|
||
};if _fbccg !=nil {switch *_fbccg {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 *_fbccg ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_fbccg ,nil ;
|
||
};};if _fcca !=nil &&_fcca .Len ()> 0{if _fgbd ,_fcadf :=_fcca .Get (0).(*_egg .PdfObjectName );_fcadf {switch *_fgbd {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 _fcca .Len ()==1{return *_fgbd ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_fgbd ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_fgbd ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_fgbd ,nil ;};};};return "",nil ;};func _aefg (_deee *_egg .PdfObjectDictionary )(*PdfFieldText ,error ){_eagbd :=&PdfFieldText {};_eagbd .DA ,_ =_egg .GetString (_deee .Get ("\u0044\u0041"));
|
||
_eagbd .Q ,_ =_egg .GetInt (_deee .Get ("\u0051"));_eagbd .DS ,_ =_egg .GetString (_deee .Get ("\u0044\u0053"));_eagbd .RV =_deee .Get ("\u0052\u0056");_eagbd .MaxLen ,_ =_egg .GetInt (_deee .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _eagbd ,nil ;
|
||
};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_gefb :=&PdfColorspaceSpecialSeparation {};return _gefb ;};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_fcfa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _eeaf []float64 ;for _gdab :=0;_gdab < _fcfa .GetNumComponents ();_gdab ++{_eeaf =append (_eeaf ,0.0,1.0);};return _eeaf ;};
|
||
|
||
// 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 (_gcbbb *PdfSignature )bool ;
|
||
|
||
// Validate validates a PDF signature against a given digest (hash) such as that determined
|
||
// for an input file. Returns validation results.
|
||
Validate (_dcgag *PdfSignature ,_cdgage 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 (_ddgfg *PdfSignature )error ;
|
||
|
||
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
|
||
NewDigest (_befbe *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 (_cgfbe *PdfSignature ,_cdfag Hasher )error ;};
|
||
|
||
// 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 (_gdeg *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_cfag ,_ ,_aaggef :=_gdeg .CharcodesToUnicodeWithStats (_gdeg .BytesToCharcodes (data ));_fegd :=_ef .ExpandLigatures (_cfag );return _fegd ,_ab .RuneCountInString (_fegd ),_aaggef ;
|
||
};func (_ddgce *PdfWriter )mapObjectStreams (_gcdcc bool )(map[_egg .PdfObject ]bool ,bool ){_aadbg :=make (map[_egg .PdfObject ]bool );for _ ,_ebaeg :=range _ddgce ._bbead {if _eggcb ,_addcd :=_ebaeg .(*_egg .PdfObjectStreams );_addcd {_gcdcc =true ;for _ ,_bcaea :=range _eggcb .Elements (){_aadbg [_bcaea ]=true ;
|
||
if _cfce ,_eccgf :=_bcaea .(*_egg .PdfIndirectObject );_eccgf {_aadbg [_cfce .PdfObject ]=true ;};};};};return _aadbg ,_gcdcc ;};func (_gfga *DSS )generateHashMap (_adfc []*_egg .PdfObjectStream )(map[string ]*_egg .PdfObjectStream ,error ){_gfdce :=map[string ]*_egg .PdfObjectStream {};
|
||
for _ ,_edgf :=range _adfc {_ced ,_bdgf :=_egg .DecodeStream (_edgf );if _bdgf !=nil {return nil ,_bdgf ;};_daad ,_bdgf :=_eefdc (_ced );if _bdgf !=nil {return nil ,_bdgf ;};_gfdce [string (_daad )]=_edgf ;};return _gfdce ,nil ;};
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_aee :=NewPdfAnnotation ();_eda :=&PdfAnnotationWatermark {};_eda .PdfAnnotation =_aee ;_aee .SetContext (_eda );return _eda ;};func (_ecbce *PdfWriter )writeOutlines ()error {if _ecbce ._dcedg ==nil {return nil ;
|
||
};_bag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_ecbce ._dcedg );_gcadg :=_ecbce ._dcedg .ToPdfObject ();_bag .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gcadg ,_gcadg ,_gcadg );
|
||
_ecbce ._acea .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gcadg );_fgeee :=_ecbce .addObjects (_gcadg );if _fgeee !=nil {return _fgeee ;};return nil ;};
|
||
|
||
// ImageHandler interface implements common image loading and processing tasks.
|
||
// Implementing as an interface allows for the possibility to use non-standard libraries for faster
|
||
// loading and processing of images.
|
||
type ImageHandler interface{
|
||
|
||
// Read any image type and load into a new Image object.
|
||
Read (_afeaa _dag .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_gggaf _cd .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_eeffc _cd .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_ecbbd *Image ,_cddgg int64 )(*Image ,error );};
|
||
|
||
// 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 _egg .StreamEncoder ;Intent _egg .PdfObject ;ImageMask _egg .PdfObject ;Mask _egg .PdfObject ;Matte _egg .PdfObject ;Decode _egg .PdfObject ;Interpolate _egg .PdfObject ;
|
||
Alternatives _egg .PdfObject ;SMask _egg .PdfObject ;SMaskInData _egg .PdfObject ;Name _egg .PdfObject ;StructParent _egg .PdfObject ;ID _egg .PdfObject ;OPI _egg .PdfObject ;Metadata _egg .PdfObject ;OC _egg .PdfObject ;Stream []byte ;_gefbe *_egg .PdfObjectStream ;
|
||
};
|
||
|
||
// 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 ;
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_aafee *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_afddb ,_cagbd :=_egg .GetDict (_aafee ._acea .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_cagbd {_afddb =_egg .MakeDict ();_aafee ._acea .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_afddb );
|
||
};_daaae ,_cagbd :=_egg .GetDict (_afddb .Get (_egg .PdfObjectName (extName )));if !_cagbd {_daaae =_egg .MakeDict ();_afddb .Set (_egg .PdfObjectName (extName ),_daaae );};if _acdab ,_ :=_egg .GetNameVal (_daaae .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_acdab !=baseVersion {_daaae .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_egg .MakeName (baseVersion ));};if _egega ,_ :=_egg .GetIntVal (_daaae .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_egega !=extLevel {_daaae .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_egg .MakeInteger (int64 (extLevel )));};};func _deec (_feeg _egg .PdfObject )(*PdfColorspaceCalGray ,error ){_cggf :=NewPdfColorspaceCalGray ();
|
||
if _edgg ,_befa :=_feeg .(*_egg .PdfIndirectObject );_befa {_cggf ._agdab =_edgg ;};_feeg =_egg .TraceToDirectObject (_feeg );_ecfa ,_agfb :=_feeg .(*_egg .PdfObjectArray );if !_agfb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _ecfa .Len ()!=2{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_feeg =_egg .TraceToDirectObject (_ecfa .Get (0));_bacb ,_agfb :=_feeg .(*_egg .PdfObjectName );
|
||
if !_agfb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_bacb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_f .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
|
||
};_feeg =_egg .TraceToDirectObject (_ecfa .Get (1));_beab ,_agfb :=_feeg .(*_egg .PdfObjectDictionary );if !_agfb {return nil ,_f .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};_feeg =_beab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_feeg =_egg .TraceToDirectObject (_feeg );_aeaac ,_agfb :=_feeg .(*_egg .PdfObjectArray );if !_agfb {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
|
||
};if _aeaac .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_fdfgg ,_fead :=_aeaac .GetAsFloat64Slice ();
|
||
if _fead !=nil {return nil ,_fead ;};_cggf .WhitePoint =_fdfgg ;_feeg =_beab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _feeg !=nil {_feeg =_egg .TraceToDirectObject (_feeg );_gddcbd ,_bbgb :=_feeg .(*_egg .PdfObjectArray );
|
||
if !_bbgb {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");};if _gddcbd .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");
|
||
};_dafg ,_eggb :=_gddcbd .GetAsFloat64Slice ();if _eggb !=nil {return nil ,_eggb ;};_cggf .BlackPoint =_dafg ;};_feeg =_beab .Get ("\u0047\u0061\u006dm\u0061");if _feeg !=nil {_feeg =_egg .TraceToDirectObject (_feeg );_cbfd ,_eeced :=_egg .GetNumberAsFloat (_feeg );
|
||
if _eeced !=nil {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_cggf .Gamma =_cbfd ;};return _cggf ,nil ;};
|
||
|
||
// Val returns the value of the color.
|
||
func (_ecff *PdfColorCalGray )Val ()float64 {return float64 (*_ecff )};
|
||
|
||
// 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 *_egg .PdfObjectStream )(*XObjectImage ,error ){_fbdfc :=&XObjectImage {};_fbdfc ._gefbe =stream ;_dedae :=*(stream .PdfObjectDictionary );_ebacc ,_gddda :=_egg .NewEncoderFromStream (stream );if _gddda !=nil {return nil ,_gddda ;
|
||
};_fbdfc .Filter =_ebacc ;if _bgdcd :=_egg .TraceToDirectObject (_dedae .Get ("\u0057\u0069\u0064t\u0068"));_bgdcd !=nil {_adbfac ,_bggb :=_bgdcd .(*_egg .PdfObjectInteger );if !_bggb {return nil ,_gd .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");
|
||
};_abfge :=int64 (*_adbfac );_fbdfc .Width =&_abfge ;}else {return nil ,_gd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _egdgb :=_egg .TraceToDirectObject (_dedae .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_egdgb !=nil {_cdacd ,_aded :=_egdgb .(*_egg .PdfObjectInteger );if !_aded {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dbdgb :=int64 (*_cdacd );
|
||
_fbdfc .Height =&_dbdgb ;}else {return nil ,_gd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ddgfd :=_egg .TraceToDirectObject (_dedae .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_ddgfd !=nil {_bbfad ,_dfagb :=NewPdfColorspaceFromPdfObject (_ddgfd );if _dfagb !=nil {return nil ,_dfagb ;};_fbdfc .ColorSpace =_bbfad ;}else {_bag .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");
|
||
_fbdfc .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dcaca :=_egg .TraceToDirectObject (_dedae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dcaca !=nil {_ddafb ,_accac :=_dcaca .(*_egg .PdfObjectInteger );
|
||
if !_accac {return nil ,_gd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cbadd :=int64 (*_ddafb );_fbdfc .BitsPerComponent =&_cbadd ;};_fbdfc .Intent =_dedae .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_fbdfc .ImageMask =_dedae .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_fbdfc .Mask =_dedae .Get ("\u004d\u0061\u0073\u006b");_fbdfc .Decode =_dedae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_fbdfc .Interpolate =_dedae .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_fbdfc .Alternatives =_dedae .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_fbdfc .SMask =_dedae .Get ("\u0053\u004d\u0061s\u006b");_fbdfc .SMaskInData =_dedae .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_fbdfc .Matte =_dedae .Get ("\u004d\u0061\u0074t\u0065");_fbdfc .Name =_dedae .Get ("\u004e\u0061\u006d\u0065");_fbdfc .StructParent =_dedae .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_fbdfc .ID =_dedae .Get ("\u0049\u0044");
|
||
_fbdfc .OPI =_dedae .Get ("\u004f\u0050\u0049");_fbdfc .Metadata =_dedae .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fbdfc .OC =_dedae .Get ("\u004f\u0043");_fbdfc .Stream =stream .Stream ;return _fbdfc ,nil ;};
|
||
|
||
// Write writes out the PDF.
|
||
func (_cdefg *PdfWriter )Write (writer _dag .Writer )error {_bag .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_ecedd :=_cdefg .checkLicense ();if _ecedd !=nil {return _ecedd ;};if _ecedd =_cdefg .writeOutlines ();_ecedd !=nil {return _ecedd ;};
|
||
if _ecedd =_cdefg .writeAcroFormFields ();_ecedd !=nil {return _ecedd ;};_cdefg .checkPendingObjects ();if _ecedd =_cdefg .writeOutputIntents ();_ecedd !=nil {return _ecedd ;};_cdefg .setCatalogVersion ();_cdefg .copyObjects ();if _ecedd =_cdefg .optimize ();
|
||
_ecedd !=nil {return _ecedd ;};if _ecedd =_cdefg .optimizeDocument ();_ecedd !=nil {return _ecedd ;};var _fcebc _bb .Hash ;if _cdefg ._aafeg {_fcebc =_ea .New ();writer =_dag .MultiWriter (_fcebc ,writer );};_cdefg .setWriter (writer );_fbdcc :=_cdefg .checkCrossReferenceStream ();
|
||
_gfcef ,_fbdcc :=_cdefg .mapObjectStreams (_fbdcc );_cdefg .adjustXRefAffectedVersion (_fbdcc );_cdefg .writeDocumentVersion ();_cdefg .updateObjectNumbers ();_cdefg .writeObjects ();if _ecedd =_cdefg .writeObjectsInStreams (_gfcef );_ecedd !=nil {return _ecedd ;
|
||
};_dagdd :=_cdefg ._cdaab ;var _bbfdc int ;for _aebafc :=range _cdefg ._ccceb {if _aebafc > _bbfdc {_bbfdc =_aebafc ;};};if _cdefg ._aafeg {if _ecedd =_cdefg .setHashIDs (_fcebc );_ecedd !=nil {return _ecedd ;};};if _fbdcc {if _ecedd =_cdefg .writeXRefStreams (_bbfdc ,_dagdd );
|
||
_ecedd !=nil {return _ecedd ;};}else {_cdefg .writeTrailer (_bbfdc );};_cdefg .makeOffSetReference (_dagdd );if _ecedd =_cdefg .flushWriter ();_ecedd !=nil {return _ecedd ;};return nil ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _egg .PdfObject ;FS _egg .PdfObject ;F _egg .PdfObject ;UF _egg .PdfObject ;DOS _egg .PdfObject ;Mac _egg .PdfObject ;Unix _egg .PdfObject ;ID _egg .PdfObject ;V _egg .PdfObject ;EF _egg .PdfObject ;RF _egg .PdfObject ;Desc _egg .PdfObject ;
|
||
CI _egg .PdfObject ;_fbdd _egg .PdfObject ;};
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_afcb :=NewPdfOutline ();_afcb ._bgbfg =&_afcb ;return _afcb };
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_abcce pdfFontType0 )Encoder ()_ef .TextEncoder {return _abcce ._bfddc };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eag *PdfActionHide )ToPdfObject ()_egg .PdfObject {_eag .PdfAction .ToPdfObject ();_efa :=_eag ._bf ;_gbd :=_efa .PdfObject .(*_egg .PdfObjectDictionary );_gbd .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeHide )));_gbd .SetIfNotNil ("\u0054",_eag .T );
|
||
_gbd .SetIfNotNil ("\u0048",_eag .H );return _efa ;};
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_egg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _egg .PdfObject ;A _egg .PdfObject ;SE _egg .PdfObject ;C _egg .PdfObject ;F _egg .PdfObject ;
|
||
_gfcb *_egg .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_dcbd *pdfFontSimple )ToPdfObject ()_egg .PdfObject {if _dcbd ._efde ==nil {_dcbd ._efde =&_egg .PdfIndirectObject {};};_adab :=_dcbd .baseFields ().asPdfObjectDictionary ("");_dcbd ._efde .PdfObject =_adab ;if _dcbd .FirstChar !=nil {_adab .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_dcbd .FirstChar );
|
||
};if _dcbd .LastChar !=nil {_adab .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_dcbd .LastChar );};if _dcbd .Widths !=nil {_adab .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_dcbd .Widths );};if _dcbd .Encoding !=nil {_adab .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dcbd .Encoding );
|
||
}else if _dcbd ._cbdegf !=nil {_cdcbg :=_dcbd ._cbdegf .ToPdfObject ();if _cdcbg !=nil {_adab .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cdcbg );};};return _dcbd ._efde ;};func (_adce *DSS )addOCSPs (_dfeb [][]byte )([]*_egg .PdfObjectStream ,error ){return _adce .add (&_adce .OCSPs ,_adce ._gaaec ,_dfeb );
|
||
};func (_aae *PdfReader )newPdfActionRenditionFromDict (_bbg *_egg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_bbg .Get ("\u0052"),AN :_bbg .Get ("\u0041\u004e"),OP :_bbg .Get ("\u004f\u0050"),JS :_bbg .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// FieldFilterFunc represents a PDF field filtering function. If the function
|
||
// returns true, the PDF field is kept, otherwise it is discarded.
|
||
type FieldFilterFunc func (*PdfField )bool ;func (_gbfdf SignatureValidationResult )String ()string {var _ccgafd _dd .Buffer ;_ccgafd .WriteString (_f .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_gbfdf .Name ));if _gbfdf .Date ._acadbc > 0{_ccgafd .WriteString (_f .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_gbfdf .Date .ToGoTime ().String ()));
|
||
}else {_ccgafd .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_gbfdf .Reason )> 0{_ccgafd .WriteString (_f .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gbfdf .Reason ));
|
||
}else {_ccgafd .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_gbfdf .Location )> 0{_ccgafd .WriteString (_f .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gbfdf .Location ));
|
||
}else {_ccgafd .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_gbfdf .ContactInfo )> 0{_ccgafd .WriteString (_f .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_gbfdf .ContactInfo ));
|
||
}else {_ccgafd .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_ccgafd .WriteString (_f .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_gbfdf .Fields )));
|
||
if _gbfdf .IsSigned {_ccgafd .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 {_ccgafd .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");
|
||
};if _gbfdf .IsVerified {_ccgafd .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 {_ccgafd .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 _gbfdf .IsTrusted {_ccgafd .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 {_ccgafd .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 !_gbfdf .GeneralizedTime .IsZero (){_ccgafd .WriteString (_f .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_gbfdf .GeneralizedTime .String ()));};if _gbfdf .DiffResults !=nil {_ccgafd .WriteString (_f .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_gbfdf .DiffResults .IsPermitted ()));
|
||
if len (_gbfdf .DiffResults .Warnings )> 0{_ccgafd .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_gfggg :=range _gbfdf .DiffResults .Warnings {_ccgafd .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_gfggg ));
|
||
};};if len (_gbfdf .DiffResults .Errors )> 0{_ccgafd .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_aaccg :=range _gbfdf .DiffResults .Errors {_ccgafd .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_aaccg ));
|
||
};};};return _ccgafd .String ();};func (_cabcc *PdfReader )newPdfActionGoTo3DViewFromDict (_fbd *_egg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_fbd .Get ("\u0054\u0041"),V :_fbd .Get ("\u0056")},nil ;};
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _egg .PdfObject ;};var _debadf =false ;
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _egg .PdfObject ;BS _egg .PdfObject ;};func (_cebgb PdfOutputIntentType )String ()string {switch _cebgb {case PdfOutputIntentTypeA1 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";
|
||
case PdfOutputIntentTypeA2 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412";case PdfOutputIntentTypeA3 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413";case PdfOutputIntentTypeA4 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414";case PdfOutputIntentTypeX :return "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058";
|
||
default:return "\u0055N\u0044\u0045\u0046\u0049\u004e\u0045D";};};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_feed OutlineDest )ToPdfObject ()_egg .PdfObject {if (_feed .PageObj ==nil &&_feed .Page < 0)||_feed .Mode ==""{return _egg .MakeNull ();};_fbfedc :=_egg .MakeArray ();if _feed .PageObj !=nil {_fbfedc .Append (_feed .PageObj );}else {_fbfedc .Append (_egg .MakeInteger (_feed .Page ));
|
||
};_fbfedc .Append (_egg .MakeName (_feed .Mode ));switch _feed .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_fbfedc .Append (_egg .MakeFloat (_feed .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_fbfedc .Append (_egg .MakeFloat (_feed .X ));
|
||
case "\u0058\u0059\u005a":_fbfedc .Append (_egg .MakeFloat (_feed .X ));_fbfedc .Append (_egg .MakeFloat (_feed .Y ));_fbfedc .Append (_egg .MakeFloat (_feed .Zoom ));default:_fbfedc .Set (1,_egg .MakeName ("\u0046\u0069\u0074"));};return _fbfedc ;};
|
||
|
||
// 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 (_dgfb *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_fdgff :=_dgfb .GetContentStreamObjs ();wrapContents =wrapContents &&len (_fdgff )> 0;_gdacf :=_egg .NewFlateEncoder ();_degaa :=_egg .MakeArray ();if wrapContents {_gdgae ,_gfbccb :=_egg .MakeStream ([]byte ("\u0071\u000a"),_gdacf );
|
||
if _gfbccb !=nil {return _gfbccb ;};_degaa .Append (_gdgae );};_degaa .Append (_fdgff ...);if wrapContents {_ffbbg ,_eceda :=_egg .MakeStream ([]byte ("\u000a\u0051\u000a"),_gdacf );if _eceda !=nil {return _eceda ;};_degaa .Append (_ffbbg );};_dcac ,_cacaf :=_egg .MakeStream (cs ,_gdacf );
|
||
if _cacaf !=nil {return _cacaf ;};_degaa .Append (_dcac );_dgfb .Contents =_degaa ;return nil ;};func (_gffad *PdfWriter )flushWriter ()error {if _gffad ._gdbeb ==nil {_gffad ._gdbeb =_gffad ._beegad .Flush ();};return _gffad ._gdbeb ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_dagbcc *PdfTransformParamsDocMDP )WriteString ()string {return _dagbcc .ToPdfObject ().WriteString ();};
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_dgdca *PdfFontDescriptor )ToPdfObject ()_egg .PdfObject {_eegb :=_egg .MakeDict ();if _dgdca ._faeb ==nil {_dgdca ._faeb =&_egg .PdfIndirectObject {};};_dgdca ._faeb .PdfObject =_eegb ;_eegb .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _dgdca .FontName !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dgdca .FontName );};if _dgdca .FontFamily !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_dgdca .FontFamily );};if _dgdca .FontStretch !=nil {_eegb .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_dgdca .FontStretch );
|
||
};if _dgdca .FontWeight !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_dgdca .FontWeight );};if _dgdca .Flags !=nil {_eegb .Set ("\u0046\u006c\u0061g\u0073",_dgdca .Flags );};if _dgdca .FontBBox !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_dgdca .FontBBox );
|
||
};if _dgdca .ItalicAngle !=nil {_eegb .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_dgdca .ItalicAngle );};if _dgdca .Ascent !=nil {_eegb .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_dgdca .Ascent );};if _dgdca .Descent !=nil {_eegb .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_dgdca .Descent );
|
||
};if _dgdca .Leading !=nil {_eegb .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_dgdca .Leading );};if _dgdca .CapHeight !=nil {_eegb .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_dgdca .CapHeight );};if _dgdca .XHeight !=nil {_eegb .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_dgdca .XHeight );
|
||
};if _dgdca .StemV !=nil {_eegb .Set ("\u0053\u0074\u0065m\u0056",_dgdca .StemV );};if _dgdca .StemH !=nil {_eegb .Set ("\u0053\u0074\u0065m\u0048",_dgdca .StemH );};if _dgdca .AvgWidth !=nil {_eegb .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_dgdca .AvgWidth );
|
||
};if _dgdca .MaxWidth !=nil {_eegb .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_dgdca .MaxWidth );};if _dgdca .MissingWidth !=nil {_eegb .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_dgdca .MissingWidth );};if _dgdca .FontFile !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_dgdca .FontFile );
|
||
};if _dgdca .FontFile2 !=nil {_eegb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_dgdca .FontFile2 );};if _dgdca .FontFile3 !=nil {_eegb .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_dgdca .FontFile3 );};if _dgdca .CharSet !=nil {_eegb .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_dgdca .CharSet );
|
||
};if _dgdca .Style !=nil {_eegb .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_dgdca .FontName );};if _dgdca .Lang !=nil {_eegb .Set ("\u004c\u0061\u006e\u0067",_dgdca .Lang );};if _dgdca .FD !=nil {_eegb .Set ("\u0046\u0044",_dgdca .FD );};
|
||
if _dgdca .CIDSet !=nil {_eegb .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_dgdca .CIDSet );};return _dgdca ._faeb ;};func (_gfdc *PdfReader )newPdfActionResetFormFromDict (_cbg *_egg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_cbg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cbg .Get ("\u0046\u006c\u0061g\u0073")},nil ;
|
||
};
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_eae :=NewPdfAnnotation ();_agc :=&PdfAnnotationLine {};_agc .PdfAnnotation =_eae ;_agc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eae .SetContext (_agc );return _agc ;};
|
||
|
||
// 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 _dag .ReadSeeker )(*PdfReader ,error ){const _ffea ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _ffee (rs ,&ReaderOpts {},false ,_ffea );};
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_afdc FieldFlag )Mask ()uint32 {return uint32 (_afdc )};
|
||
|
||
// 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 (_gfdff *PdfReader )GetObjectNums ()[]int {return _gfdff ._dafgab .GetObjectNums ()};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;BitsPerFlag *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// 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 _dag .ReadSeeker )(*PdfReader ,error ){const _dceaa ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _ffee (rs ,&ReaderOpts {LazyLoad :true },false ,_dceaa );
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_dbeba *PdfColorspaceSpecialSeparation )ToPdfObject ()_egg .PdfObject {_fdefa :=_egg .MakeArray (_egg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fdefa .Append (_dbeba .ColorantName );_fdefa .Append (_dbeba .AlternateSpace .ToPdfObject ());
|
||
_fdefa .Append (_dbeba .TintTransform .ToPdfObject ());if _dbeba ._eedg !=nil {_dbeba ._eedg .PdfObject =_fdefa ;return _dbeba ._eedg ;};return _fdefa ;};
|
||
|
||
// 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 (_efefg *LTV )EnableChain (chain []*_dg .Certificate )error {return _efefg .enable (nil ,chain ,"")};
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_geefae *Image )ColorAt (x ,y int )(_ba .Color ,error ){_feffg :=_eg .BytesPerLine (int (_geefae .Width ),int (_geefae .BitsPerComponent ),_geefae .ColorComponents );switch _geefae .ColorComponents {case 1:return _eg .ColorAtGrayscale (x ,y ,int (_geefae .BitsPerComponent ),_feffg ,_geefae .Data ,_geefae ._abfae );
|
||
case 3:return _eg .ColorAtNRGBA (x ,y ,int (_geefae .Width ),_feffg ,int (_geefae .BitsPerComponent ),_geefae .Data ,_geefae ._fgggb ,_geefae ._abfae );case 4:return _eg .ColorAtCMYK (x ,y ,int (_geefae .Width ),_geefae .Data ,_geefae ._abfae );};_bag .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",_geefae .ColorComponents ,_geefae .BitsPerComponent );
|
||
return nil ,_gd .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");};
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_bfbea *PdfPage )ToPdfObject ()_egg .PdfObject {_gabff :=_bfbea ._dfee ;_bfbea .GetPageDict ();return _gabff ;};
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_cefd :=PdfWriter {};_cefd ._bacec =map[_egg .PdfObject ]struct{}{};_cefd ._bbead =[]_egg .PdfObject {};_cefd ._afcd =map[_egg .PdfObject ][]*_egg .PdfObjectDictionary {};_cefd ._adcd =map[_egg .PdfObject ]struct{}{};_cefd ._dacce .Major =1;
|
||
_cefd ._dacce .Minor =3;_gaecc :=_egg .MakeDict ();_cdegb :=[]struct{_eecba _egg .PdfObjectName ;_dgffb string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_aagbg ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ggeed ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_fadfa ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_cbcgg ()},{"\u0054\u0069\u0074l\u0065",_babdd ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_gecfbd ()}};
|
||
for _ ,_agfgd :=range _cdegb {if _agfgd ._dgffb !=""{_gaecc .Set (_agfgd ._eecba ,_egg .MakeString (_agfgd ._dgffb ));};};if _dbca :=_bdcd ();!_dbca .IsZero (){if _bafac ,_gfdda :=NewPdfDateFromTime (_dbca );_gfdda ==nil {_gaecc .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_bafac .ToPdfObject ());
|
||
};};if _cceg :=_ddgfga ();!_cceg .IsZero (){if _efbg ,_baffe :=NewPdfDateFromTime (_cceg );_baffe ==nil {_gaecc .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_efbg .ToPdfObject ());};};_aaee :=_egg .PdfIndirectObject {};_aaee .PdfObject =_gaecc ;_cefd ._efage =&_aaee ;
|
||
_cefd .addObject (&_aaee );_acgad :=_egg .PdfIndirectObject {};_bccdc :=_egg .MakeDict ();_bccdc .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_acgad .PdfObject =_bccdc ;_cefd ._egad =&_acgad ;_cefd .addObject (_cefd ._egad );
|
||
_cdcfc ,_adgfa :=_gfgfd ("\u0077");if _adgfa !=nil {_bag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adgfa );};_cefd ._fbgdb =_cdcfc ;_gggc :=_egg .PdfIndirectObject {};_efged :=_egg .MakeDict ();_efged .Set ("\u0054\u0079\u0070\u0065",_egg .MakeName ("\u0050\u0061\u0067e\u0073"));
|
||
_cefb :=_egg .PdfObjectArray {};_efged .Set ("\u004b\u0069\u0064\u0073",&_cefb );_efged .Set ("\u0043\u006f\u0075n\u0074",_egg .MakeInteger (0));_gggc .PdfObject =_efged ;_cefd ._gfbe =&_gggc ;_cefd ._fcdab =map[_egg .PdfObject ]struct{}{};_cefd .addObject (_cefd ._gfbe );
|
||
_bccdc .Set ("\u0050\u0061\u0067e\u0073",&_gggc );_cefd ._acea =_bccdc ;_bag .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_acgad );return _cefd ;};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_fafg *PdfFont )String ()string {_gcbf :="";if _fafg ._edde .Encoder ()!=nil {_gcbf =_fafg ._edde .Encoder ().String ();};return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_fafg ._edde ,_fafg .baseFields ().coreString (),_gcbf );
|
||
};func (_dabcfd *PdfWriter )setHashIDs (_feba _bb .Hash )error {_ggefe :=_feba .Sum (nil );if _dabcfd ._caddc ==""{_dabcfd ._caddc =_fg .EncodeToString (_ggefe [:8]);};_dabcfd .setDocumentIDs (_dabcfd ._caddc ,_fg .EncodeToString (_ggefe [8:]));return nil ;
|
||
};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;func _ffc (_eddb _egg .PdfObject )(*PdfColorspaceCalRGB ,error ){_dggc :=NewPdfColorspaceCalRGB ();if _dagc ,_aagbc :=_eddb .(*_egg .PdfIndirectObject );_aagbc {_dggc ._fcgc =_dagc ;};_eddb =_egg .TraceToDirectObject (_eddb );_beag ,_ebagb :=_eddb .(*_egg .PdfObjectArray );
|
||
if !_ebagb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beag .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_eddb =_egg .TraceToDirectObject (_beag .Get (0));_gdea ,_ebagb :=_eddb .(*_egg .PdfObjectName );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
|
||
};if *_gdea !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_f .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_eddb =_egg .TraceToDirectObject (_beag .Get (1));
|
||
_eaaca ,_ebagb :=_eddb .(*_egg .PdfObjectDictionary );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
|
||
};_eddb =_eaaca .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_eddb =_egg .TraceToDirectObject (_eddb );_aafb ,_ebagb :=_eddb .(*_egg .PdfObjectArray );if !_ebagb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
|
||
};if _aafb .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_febg ,_dbgf :=_aafb .GetAsFloat64Slice ();
|
||
if _dbgf !=nil {return nil ,_dbgf ;};_dggc .WhitePoint =_febg ;_eddb =_eaaca .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_dadfb ,_gbda :=_eddb .(*_egg .PdfObjectArray );
|
||
if !_gbda {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _dadfb .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_gdbab ,_deac :=_dadfb .GetAsFloat64Slice ();if _deac !=nil {return nil ,_deac ;};_dggc .BlackPoint =_gdbab ;};_eddb =_eaaca .Get ("\u0047\u0061\u006dm\u0061");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_dffegd ,_bcfd :=_eddb .(*_egg .PdfObjectArray );
|
||
if !_bcfd {return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _dffegd .Len ()!=3{return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
|
||
};_cffdd ,_bgage :=_dffegd .GetAsFloat64Slice ();if _bgage !=nil {return nil ,_bgage ;};_dggc .Gamma =_cffdd ;};_eddb =_eaaca .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _eddb !=nil {_eddb =_egg .TraceToDirectObject (_eddb );_ggad ,_gacg :=_eddb .(*_egg .PdfObjectArray );
|
||
if !_gacg {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _ggad .Len ()!=9{_bag .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_ggad .String ());
|
||
return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_bcac ,_beaga :=_ggad .GetAsFloat64Slice ();if _beaga !=nil {return nil ,_beaga ;
|
||
};_dggc .Matrix =_bcac ;};return _dggc ,nil ;};
|
||
|
||
// PdfColorspace interface defines the common methods of a PDF colorspace.
|
||
// The colorspace defines the data storage format for each color and color representation.
|
||
//
|
||
// Device based colorspace, specified by name
|
||
// - /DeviceGray
|
||
// - /DeviceRGB
|
||
// - /DeviceCMYK
|
||
//
|
||
// CIE based colorspace specified by [name, dictionary]
|
||
// - [/CalGray dict]
|
||
// - [/CalRGB dict]
|
||
// - [/Lab dict]
|
||
// - [/ICCBased dict]
|
||
//
|
||
// Special colorspaces
|
||
// - /Pattern
|
||
// - /Indexed
|
||
// - /Separation
|
||
// - /DeviceN
|
||
//
|
||
// Work is in progress to support all colorspaces. At the moment ICCBased color spaces fall back to the alternate
|
||
// colorspace which works OK in most cases. For full color support, will need fully featured ICC support.
|
||
type PdfColorspace interface{
|
||
|
||
// String returns the PdfColorspace's name.
|
||
String ()string ;
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
ImageToRGB (Image )(Image ,error );
|
||
|
||
// ColorToRGB converts a single color in a given PdfColorspace to an RGB color.
|
||
ColorToRGB (_bafe PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_egg .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_fgad []_egg .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_gbae []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};func (_gffdf *PdfWriter )checkLicense ()error {_dbag :=_ace .GetLicenseKey ();if (_dbag ==nil ||!_dbag .IsLicensed ())&&!_debadf {_f .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
|
||
_f .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
|
||
return _gd .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 ;};
|
||
|
||
// 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 ;};
|
||
|
||
// GetPerms returns the Permissions dictionary
|
||
func (_eacab *PdfReader )GetPerms ()*Permissions {return _eacab ._eacd };
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;};
|
||
|
||
// 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 (_egeca *XObjectForm )SetContentStream (content []byte ,encoder _egg .StreamEncoder )error {_dgegb :=content ;if encoder ==nil {if _egeca .Filter !=nil {encoder =_egeca .Filter ;}else {encoder =_egg .NewRawEncoder ();};};_eaada ,_bbfbf :=encoder .EncodeBytes (_dgegb );
|
||
if _bbfbf !=nil {return _bbfbf ;};_dgegb =_eaada ;_egeca .Stream =_dgegb ;_egeca .Filter =encoder ;return nil ;};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_fba :=NewPdfAnnotation ();_edg :=&PdfAnnotationSquare {};_edg .PdfAnnotation =_fba ;_edg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fba .SetContext (_edg );return _edg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ceb *PdfActionResetForm )ToPdfObject ()_egg .PdfObject {_ceb .PdfAction .ToPdfObject ();_acf :=_ceb ._bf ;_db :=_acf .PdfObject .(*_egg .PdfObjectDictionary );_db .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeResetForm )));_db .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ceb .Fields );
|
||
_db .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ceb .Flags );return _acf ;};func (_dbfdd *PdfWriter )hasObject (_abacc _egg .PdfObject )bool {_ ,_cdedf :=_dbfdd ._bacec [_abacc ];return _cdedf ;};func (_dadf *PdfReader )newPdfAnnotation3DFromDict (_eaa *_egg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_aaga :=PdfAnnotation3D {};
|
||
_aaga .T3DD =_eaa .Get ("\u0033\u0044\u0044");_aaga .T3DV =_eaa .Get ("\u0033\u0044\u0056");_aaga .T3DA =_eaa .Get ("\u0033\u0044\u0041");_aaga .T3DI =_eaa .Get ("\u0033\u0044\u0049");_aaga .T3DB =_eaa .Get ("\u0033\u0044\u0042");return &_aaga ,nil ;};
|
||
|
||
|
||
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
|
||
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
|
||
// method instead, which also provides information regarding the destination
|
||
// of the outline items.
|
||
func (_adea *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _bbbcb []*PdfOutlineTreeNode ;var _dcfec []string ;var _gebbe func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gebbe =func (_adac *PdfOutlineTreeNode ,_beegf *[]*PdfOutlineTreeNode ,_gfcab *[]string ,_degab int ){if _adac ==nil {return ;
|
||
};if _adac ._bgbfg ==nil {_bag .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 ;};_efefc ,_ffdec :=_adac ._bgbfg .(*PdfOutlineItem );if _ffdec {*_beegf =append (*_beegf ,&_efefc .PdfOutlineTreeNode );
|
||
_ccdbf :=_fc .Repeat ("\u0020",_degab *2)+_efefc .Title .Decoded ();*_gfcab =append (*_gfcab ,_ccdbf );};if _adac .First !=nil {_ecfc :=_fc .Repeat ("\u0020",_degab *2)+"\u002b";*_gfcab =append (*_gfcab ,_ecfc );_gebbe (_adac .First ,_beegf ,_gfcab ,_degab +1);
|
||
};if _ffdec &&_efefc .Next !=nil {_gebbe (_efefc .Next ,_beegf ,_gfcab ,_degab );};};_gebbe (_adea ._cccbg ,&_bbbcb ,&_dcfec ,0);return _bbbcb ,_dcfec ,nil ;};
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_fddda *PdfFont )IsCID ()bool {return _fddda .baseFields ().isCIDFont ()};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbbef *PdfAnnotationPolyLine )ToPdfObject ()_egg .PdfObject {_cbbef .PdfAnnotation .ToPdfObject ();_dgbcc :=_cbbef ._cef ;_gdec :=_dgbcc .PdfObject .(*_egg .PdfObjectDictionary );_cbbef .PdfAnnotationMarkup .appendToPdfDictionary (_gdec );_gdec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_egg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_gdec .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_cbbef .Vertices );_gdec .SetIfNotNil ("\u004c\u0045",_cbbef .LE );_gdec .SetIfNotNil ("\u0042\u0053",_cbbef .BS );_gdec .SetIfNotNil ("\u0049\u0043",_cbbef .IC );_gdec .SetIfNotNil ("\u0042\u0045",_cbbef .BE );
|
||
_gdec .SetIfNotNil ("\u0049\u0054",_cbbef .IT );_gdec .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cbbef .Measure );return _dgbcc ;};func (_faafd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};func (_deffc *PdfWriter )optimize ()error {if _deffc ._cfgb ==nil {return nil ;
|
||
};var _fdbd error ;_deffc ._bbead ,_fdbd =_deffc ._cfgb .Optimize (_deffc ._bbead );if _fdbd !=nil {return _fdbd ;};_daacb :=make (map[_egg .PdfObject ]struct{},len (_deffc ._bbead ));for _ ,_fcfbb :=range _deffc ._bbead {_daacb [_fcfbb ]=struct{}{};};
|
||
_deffc ._bacec =_daacb ;return nil ;};func (_effd *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_ee :=NewPdfAction ();_bef :=&PdfActionURI {};_bef .PdfAction =_ee ;_ee .SetContext (_bef );return _bef ;};
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _egg .PdfObject ;Open _egg .PdfObject ;};
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_eabc *PdfColorspaceCalGray )ToPdfObject ()_egg .PdfObject {_cbbg :=&_egg .PdfObjectArray {};_cbbg .Append (_egg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_fcaf :=_egg .MakeDict ();if _eabc .WhitePoint !=nil {_fcaf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_egg .MakeArray (_egg .MakeFloat (_eabc .WhitePoint [0]),_egg .MakeFloat (_eabc .WhitePoint [1]),_egg .MakeFloat (_eabc .WhitePoint [2])));
|
||
}else {_bag .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 _eabc .BlackPoint !=nil {_fcaf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_egg .MakeArray (_egg .MakeFloat (_eabc .BlackPoint [0]),_egg .MakeFloat (_eabc .BlackPoint [1]),_egg .MakeFloat (_eabc .BlackPoint [2])));
|
||
};_fcaf .Set ("\u0047\u0061\u006dm\u0061",_egg .MakeFloat (_eabc .Gamma ));_cbbg .Append (_fcaf );if _eabc ._agdab !=nil {_eabc ._agdab .PdfObject =_cbbg ;return _eabc ._agdab ;};return _cbbg ;};
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_aagge *PdfField )SetContext (ctx PdfModel ){_aagge ._gbdee =ctx };func _cgdf (_bddfb []byte )(_cfgg ,_agcga string ,_badfd error ){_bag .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_bddfb ));
|
||
_fgcgf :=_bgegd .FindIndex (_bddfb );if _fgcgf ==nil {_bag .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 "","",_egg .ErrTypeError ;};_dbfa :=_fgcgf [1];_deaaf :=_fc .Index (string (_bddfb [_dbfa :]),_afbc );if _deaaf < 0{_cfgg =string (_bddfb [_dbfa :]);return _cfgg ,"",nil ;};_dbbde :=_dbfa +_deaaf ;_cfgg =string (_bddfb [_dbfa :_dbbde ]);_ccfe :=_dbbde ;
|
||
_deaaf =_fc .Index (string (_bddfb [_ccfe :]),_gcfbf );if _deaaf < 0{_bag .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",_badfd );
|
||
return "","",_egg .ErrTypeError ;};_bbec :=_ccfe +_deaaf ;_agcga =string (_bddfb [_ccfe :_bbec ]);return _cfgg ,_agcga ,nil ;};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_dbggg *Outline )Insert (index uint ,item *OutlineItem ){_baccb :=uint (len (_dbggg .Entries ));if index > _baccb {index =_baccb ;};_dbggg .Entries =append (_dbggg .Entries [:index ],append ([]*OutlineItem {item },_dbggg .Entries [index :]...)...);
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_agfea *VRI )ToPdfObject ()*_egg .PdfObjectDictionary {_dcfe :=_egg .MakeDict ();_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_dgagb (_agfea .Cert ));_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_dgagb (_agfea .OCSP ));
|
||
_dcfe .SetIfNotNil (_egg .PdfObjectName ("\u0043\u0052\u004c"),_dgagb (_agfea .CRL ));_dcfe .SetIfNotNil ("\u0054\u0055",_agfea .TU );_dcfe .SetIfNotNil ("\u0054\u0053",_agfea .TS );return _dcfe ;};func (_ccadg Image )getBase ()_eg .ImageBase {return _eg .NewImageBase (int (_ccadg .Width ),int (_ccadg .Height ),int (_ccadg .BitsPerComponent ),_ccadg .ColorComponents ,_ccadg .Data ,_ccadg ._fgggb ,_ccadg ._abfae );
|
||
};
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_acccd *PdfPageResources )SetColorspaceByName (keyName _egg .PdfObjectName ,cs PdfColorspace )error {_gadce ,_bege :=_acccd .GetColorspaces ();if _bege !=nil {_bag .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",_bege );
|
||
return _bege ;};if _gadce ==nil {_gadce =NewPdfPageResourcesColorspaces ();_acccd .SetColorSpace (_gadce );};_gadce .Set (keyName ,cs );return nil ;};func (_ecb *PdfAnnotation )String ()string {_cfca :="";_eac ,_fgbf :=_ecb .ToPdfObject ().(*_egg .PdfIndirectObject );
|
||
if _fgbf {_cfca =_f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ecb ._gcf ,_eac .PdfObject .String ());};return _cfca ;};func _bcfdf (_aedb _egg .PdfObject )(string ,error ){_aedb =_egg .TraceToDirectObject (_aedb );switch _bgfd :=_aedb .(type ){case *_egg .PdfObjectString :return _bgfd .Str (),nil ;
|
||
case *_egg .PdfObjectStream :_efebd ,_ddfcf :=_egg .DecodeStream (_bgfd );if _ddfcf !=nil {return "",_ddfcf ;};return string (_efebd ),nil ;};return "",_f .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_aedb );
|
||
};
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_fcdac *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _fcdac ._bcce !=nil {return _fcdac ._bcce ,nil ;};if _fcdac .Annots ==nil {_fcdac ._bcce =[]*PdfAnnotation {};return nil ,nil ;};if _fcdac ._gcfcb ==nil {_fcdac ._bcce =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_afedb ,_ggdc :=_fcdac ._gcfcb .loadAnnotations (_fcdac .Annots );if _ggdc !=nil {return nil ,_ggdc ;};if _afedb ==nil {_fcdac ._bcce =[]*PdfAnnotation {};};_fcdac ._bcce =_afedb ;return _fcdac ._bcce ,nil ;};func (_eedded *PdfReader )buildNameNodes (_fbcge *_egg .PdfIndirectObject ,_cfdef map[_egg .PdfObject ]struct{})error {if _fbcge ==nil {return nil ;
|
||
};if _ ,_gecfb :=_cfdef [_fbcge ];_gecfb {_bag .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",_fbcge .ObjectNumber );
|
||
return nil ;};_cfdef [_fbcge ]=struct{}{};_gagbgd ,_aaagg :=_fbcge .PdfObject .(*_egg .PdfObjectDictionary );if !_aaagg {return _gd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _gcbe ,_geggd :=_egg .GetDict (_gagbgd .Get ("\u0044\u0065\u0073t\u0073"));
|
||
_geggd {_gfbab ,_bfag :=_egg .GetArray (_gcbe .Get ("\u004b\u0069\u0064\u0073"));if !_bfag {return _gd .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_bag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_gfbab );
|
||
for _gbfd ,_ecdd :=range _gfbab .Elements (){_dgabb ,_abbb :=_egg .GetIndirect (_ecdd );if !_abbb {_bag .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",_dgabb );
|
||
return _gd .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_gfbab .Set (_gbfd ,_dgabb );_faeebg :=_eedded .buildNameNodes (_dgabb ,_cfdef );if _faeebg !=nil {return _faeebg ;
|
||
};};};if _aaebf ,_adeaa :=_egg .GetDict (_gagbgd );_adeaa {if !_egg .IsNullObject (_aaebf .Get ("\u004b\u0069\u0064\u0073")){if _ddefe ,_cfae :=_egg .GetArray (_aaebf .Get ("\u004b\u0069\u0064\u0073"));_cfae {for _fbce ,_cbfa :=range _ddefe .Elements (){if _cfdd ,_cabae :=_egg .GetIndirect (_cbfa );
|
||
_cabae {_ddefe .Set (_fbce ,_cfdd );_cgbeg :=_eedded .buildNameNodes (_cfdd ,_cfdef );if _cgbeg !=nil {return _cgbeg ;};};};};};};return nil ;};
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_egg .PdfObjectInteger ;BitsPerComponent *_egg .PdfObjectInteger ;VerticesPerRow *_egg .PdfObjectInteger ;Decode *_egg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_dbbg *PdfPageResources )HasFontByName (keyName _egg .PdfObjectName )bool {_ ,_effbg :=_dbbg .GetFontByName (keyName );return _effbg ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_aacc *PdfFilespec )GetContainingPdfObject ()_egg .PdfObject {return _aacc ._fbdd };
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_fdgf *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_egg .PdfObject )(PdfColor ,error ){if _fdgf .Alternate ==nil {if _fdgf .N ==1{_afd :=NewPdfColorspaceDeviceGray ();return _afd .ColorFromPdfObjects (objects );}else if _fdgf .N ==3{_aagad :=NewPdfColorspaceDeviceRGB ();
|
||
return _aagad .ColorFromPdfObjects (objects );}else if _fdgf .N ==4{_cfbaa :=NewPdfColorspaceDeviceCMYK ();return _cfbaa .ColorFromPdfObjects (objects );}else {return nil ,_gd .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 _fdgf .Alternate .ColorFromPdfObjects (objects );};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _egg .PdfObject ;IC _egg .PdfObject ;RO _egg .PdfObject ;OverlayText _egg .PdfObject ;Repeat _egg .PdfObject ;DA _egg .PdfObject ;Q _egg .PdfObject ;};
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_cbe _dag .ReadSeeker ;_daac *_egg .PdfParser ;_bgaa *PdfReader ;Reader *PdfReader ;_beac []*PdfPage ;_aeec *PdfAcroForm ;_dgdc *DSS ;_aga *Permissions ;_beed _egg .XrefTable ;_gfbc int64 ;_gfdcd int ;_dbbe []_egg .PdfObject ;_bdba map[_egg .PdfObject ]struct{};
|
||
_eegc map[_egg .PdfObject ]int64 ;_eecgg map[_egg .PdfObject ]struct{};_bdbf map[_egg .PdfObject ]struct{};_bbba int64 ;_faab bool ;_cbdd string ;_effa *EncryptOptions ;_gaagg *PdfInfo ;};
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_dcee *PdfAnnotation )GetContext ()PdfModel {if _dcee ==nil {return nil ;};return _dcee ._gcf ;};
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _egg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _egg .PdfObject ;Contents _egg .PdfObject ;
|
||
Rotate *int64 ;Group _egg .PdfObject ;Thumb _egg .PdfObject ;B _egg .PdfObject ;Dur _egg .PdfObject ;Trans _egg .PdfObject ;AA _egg .PdfObject ;Metadata _egg .PdfObject ;PieceInfo _egg .PdfObject ;StructParents _egg .PdfObject ;ID _egg .PdfObject ;PZ _egg .PdfObject ;
|
||
SeparationInfo _egg .PdfObject ;Tabs _egg .PdfObject ;TemplateInstantiated _egg .PdfObject ;PresSteps _egg .PdfObject ;UserUnit _egg .PdfObject ;VP _egg .PdfObject ;Annots _egg .PdfObject ;_bcce []*PdfAnnotation ;_fgfd *_egg .PdfObjectDictionary ;_dfee *_egg .PdfIndirectObject ;
|
||
_gcfcb *PdfReader ;};func _aedd (_bega *_egg .PdfObjectDictionary )(*PdfFieldButton ,error ){_cabgd :=&PdfFieldButton {};_cabgd .PdfField =NewPdfField ();_cabgd .PdfField .SetContext (_cabgd );_cabgd .Opt ,_ =_egg .GetArray (_bega .Get ("\u004f\u0070\u0074"));
|
||
_ecag :=NewPdfAnnotationWidget ();_ecag .A ,_ =_egg .GetDict (_bega .Get ("\u0041"));_ecag .AP ,_ =_egg .GetDict (_bega .Get ("\u0041\u0050"));_ecag .SetContext (_cabgd );_cabgd .PdfField .Annotations =append (_cabgd .PdfField .Annotations ,_ecag );return _cabgd ,nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edbb *PdfActionURI )ToPdfObject ()_egg .PdfObject {_edbb .PdfAction .ToPdfObject ();_cab :=_edbb ._bf ;_dca :=_cab .PdfObject .(*_egg .PdfObjectDictionary );_dca .SetIfNotNil ("\u0053",_egg .MakeName (string (ActionTypeURI )));_dca .SetIfNotNil ("\u0055\u0052\u0049",_edbb .URI );
|
||
_dca .SetIfNotNil ("\u0049\u0073\u004da\u0070",_edbb .IsMap );return _cab ;};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_afbbb *PdfPageResources )SetShadingByName (keyName _egg .PdfObjectName ,shadingObj _egg .PdfObject )error {if _afbbb .Shading ==nil {_afbbb .Shading =_egg .MakeDict ();};_degff ,_begaa :=_afbbb .Shading .(*_egg .PdfObjectDictionary );if !_begaa {return _egg .ErrTypeError ;
|
||
};_degff .Set (keyName ,shadingObj );return nil ;};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _egg .PdfObject ;Flags _egg .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_dabc *PdfColorspaceDeviceGray )ToPdfObject ()_egg .PdfObject {return _egg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_beba *OutlineItem )Add (item *OutlineItem ){_beba .Entries =append (_beba .Entries ,item )};func (_aebaac *PdfWriter )setDocInfo (_fagdf _egg .PdfObject ){if _aebaac .hasObject (_aebaac ._efage ){delete (_aebaac ._bacec ,_aebaac ._efage );delete (_aebaac ._adcd ,_aebaac ._efage );
|
||
for _cgbab ,_bfdad :=range _aebaac ._bbead {if _bfdad ==_aebaac ._efage {copy (_aebaac ._bbead [_cgbab :],_aebaac ._bbead [_cgbab +1:]);_aebaac ._bbead [len (_aebaac ._bbead )-1]=nil ;_aebaac ._bbead =_aebaac ._bbead [:len (_aebaac ._bbead )-1];break ;
|
||
};};};_baaf :=_egg .PdfIndirectObject {};_baaf .PdfObject =_fagdf ;_aebaac ._efage =&_baaf ;_aebaac .addObject (&_baaf );};func _efdgd (_cgaff *_egg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_bggd :=PdfShadingType6 {};_abgad :=_cgaff .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _abgad ==nil {_bag .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 ;};_ecgag ,_bbded :=_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .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",_abgad );
|
||
return nil ,_egg .ErrTypeError ;};_bggd .BitsPerCoordinate =_ecgag ;_abgad =_cgaff .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _abgad ==nil {_bag .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 ;};_ecgag ,_bbded =_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .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",_abgad );
|
||
return nil ,_egg .ErrTypeError ;};_bggd .BitsPerComponent =_ecgag ;_abgad =_cgaff .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _abgad ==nil {_bag .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 ;};_ecgag ,_bbded =_abgad .(*_egg .PdfObjectInteger );if !_bbded {_bag .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",_abgad );
|
||
return nil ,_egg .ErrTypeError ;};_bggd .BitsPerComponent =_ecgag ;_abgad =_cgaff .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _abgad ==nil {_bag .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 ;};_addbg ,_bbded :=_abgad .(*_egg .PdfObjectArray );if !_bbded {_bag .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",_abgad );
|
||
return nil ,_egg .ErrTypeError ;};_bggd .Decode =_addbg ;if _egdg :=_cgaff .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_egdg !=nil {_bggd .Function =[]PdfFunction {};if _dbaba ,_dcgca :=_egdg .(*_egg .PdfObjectArray );_dcgca {for _ ,_beagd :=range _dbaba .Elements (){_fefd ,_cgefb :=_bdefe (_beagd );
|
||
if _cgefb !=nil {_bag .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",_cgefb );return nil ,_cgefb ;};_bggd .Function =append (_bggd .Function ,_fefd );
|
||
};}else {_eecc ,_ccbg :=_bdefe (_egdg );if _ccbg !=nil {_bag .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",_ccbg );return nil ,_ccbg ;};
|
||
_bggd .Function =append (_bggd .Function ,_eecc );};};return &_bggd ,nil ;};func (_dbfg *PdfReader )loadAction (_ggfd _egg .PdfObject )(*PdfAction ,error ){if _deff ,_geg :=_egg .GetIndirect (_ggfd );_geg {_gfdf ,_dfd :=_dbfg .newPdfActionFromIndirectObject (_deff );
|
||
if _dfd !=nil {return nil ,_dfd ;};return _gfdf ,nil ;}else if !_egg .IsNullObject (_ggfd ){return nil ,_gd .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 ;};
|
||
|
||
// PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace.
|
||
// A, B, C components
|
||
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorCalRGB [3]float64 ;func (_afg *PdfReader )newPdfAnnotationCaretFromDict (_fgcb *_egg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_dadc :=PdfAnnotationCaret {};_bddd ,_cfef :=_afg .newPdfAnnotationMarkupFromDict (_fgcb );if _cfef !=nil {return nil ,_cfef ;
|
||
};_dadc .PdfAnnotationMarkup =_bddd ;_dadc .RD =_fgcb .Get ("\u0052\u0044");_dadc .Sy =_fgcb .Get ("\u0053\u0079");return &_dadc ,nil ;};func (_acebd *PdfWriter )writeTrailer (_beegfb int ){_acebd .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _adebe :=0;
|
||
_adebe <=_beegfb ;{for ;_adebe <=_beegfb ;_adebe ++{_ccdbbe ,_defe :=_acebd ._ccceb [_adebe ];if _defe &&(!_acebd ._gabaca ||_acebd ._gabaca &&(_ccdbbe .Type ==1&&_ccdbbe .Offset >=_acebd ._ggdad ||_ccdbbe .Type ==0)){break ;};};var _agcd int ;for _agcd =_adebe +1;
|
||
_agcd <=_beegfb ;_agcd ++{_aaccc ,_egaeb :=_acebd ._ccceb [_agcd ];if _egaeb &&(!_acebd ._gabaca ||_acebd ._gabaca &&(_aaccc .Type ==1&&_aaccc .Offset > _acebd ._ggdad )){continue ;};break ;};_gdacb :=_f .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_adebe ,_agcd -_adebe );
|
||
_acebd .writeString (_gdacb );for _bfefg :=_adebe ;_bfefg < _agcd ;_bfefg ++{_cgacc :=_acebd ._ccceb [_bfefg ];switch _cgacc .Type {case 0:_gdacb =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_acebd .writeString (_gdacb );
|
||
case 1:_gdacb =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_cgacc .Offset ,0);_acebd .writeString (_gdacb );};};_adebe =_agcd +1;};_gdaad :=_egg .MakeDict ();_gdaad .Set ("\u0049\u006e\u0066\u006f",_acebd ._efage );
|
||
_gdaad .Set ("\u0052\u006f\u006f\u0074",_acebd ._egad );_gdaad .Set ("\u0053\u0069\u007a\u0065",_egg .MakeInteger (int64 (_beegfb +1)));if _acebd ._gabaca &&_acebd ._gccgfe > 0{_gdaad .Set ("\u0050\u0072\u0065\u0076",_egg .MakeInteger (_acebd ._gccgfe ));
|
||
};if _acebd ._agdag !=nil {_gdaad .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_acebd ._afcc );};if _acebd ._aaea ==nil &&_acebd ._caddc !=""&&_acebd ._bagaa !=""{_acebd ._aaea =_egg .MakeArray (_egg .MakeHexString (_acebd ._caddc ),_egg .MakeHexString (_acebd ._bagaa ));
|
||
};if _acebd ._aaea !=nil {_gdaad .Set ("\u0049\u0044",_acebd ._aaea );_bag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_acebd ._aaea );};_acebd .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_acebd .writeString (_gdaad .WriteString ());
|
||
_acebd .writeString ("\u000a");};
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _egg .PdfObject ;Name _egg .PdfObject ;};
|
||
|
||
// PdfColorspaceSpecialSeparation is a Separation colorspace.
|
||
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
|
||
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
|
||
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
|
||
// space shall apply the designated colorant directly, according to the tint values supplied.
|
||
//
|
||
// Format: [/Separation name alternateSpace tintTransform]
|
||
type PdfColorspaceSpecialSeparation struct{ColorantName *_egg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_eedg *_egg .PdfIndirectObject ;};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fgbg :=NewPdfAnnotation ();_ggge :=&PdfAnnotationPopup {};_ggge .PdfAnnotation =_fgbg ;_fgbg .SetContext (_ggge );return _ggge ;};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_ecdab *PdfReader )GetIndirectObjectByNumber (number int )(_egg .PdfObject ,error ){_eacaa ,_bbaddg :=_ecdab ._dafgab .LookupByNumber (number );return _eacaa ,_bbaddg ;};
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_ffadf *PdfFont )ToPdfObject ()_egg .PdfObject {if _ffadf ._edde ==nil {_bag .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 _egg .MakeNull ();
|
||
};return _ffadf ._edde .ToPdfObject ();};func (_agfg *PdfReader )newPdfAnnotationFromIndirectObject (_gca *_egg .PdfIndirectObject )(*PdfAnnotation ,error ){_ggda ,_dgac :=_gca .PdfObject .(*_egg .PdfObjectDictionary );if !_dgac {return nil ,_f .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_agfg ._dabaf .GetModelFromPrimitive (_ggda );model !=nil {_eecb ,_eded :=model .(*PdfAnnotation );if !_eded {return nil ,_f .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
|
||
};return _eecb ,nil ;};_aegf :=&PdfAnnotation {};_aegf ._cef =_gca ;_agfg ._dabaf .Register (_ggda ,_aegf );if _ecg :=_ggda .Get ("\u0054\u0079\u0070\u0065");_ecg !=nil {_eeb ,_cdag :=_ecg .(*_egg .PdfObjectName );if !_cdag {_bag .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",_ecg );
|
||
}else {if *_eeb !="\u0041\u006e\u006eo\u0074"{_bag .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",*_eeb );};};};if _bcge :=_ggda .Get ("\u0052\u0065\u0063\u0074");
|
||
_bcge !=nil {_aegf .Rect =_bcge ;};if _agfgg :=_ggda .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_agfgg !=nil {_aegf .Contents =_agfgg ;};if _ecec :=_ggda .Get ("\u0050");_ecec !=nil {_aegf .P =_ecec ;};if _eefc :=_ggda .Get ("\u004e\u004d");
|
||
_eefc !=nil {_aegf .NM =_eefc ;};if _deeg :=_ggda .Get ("\u004d");_deeg !=nil {_aegf .M =_deeg ;};if _efbd :=_ggda .Get ("\u0046");_efbd !=nil {_aegf .F =_efbd ;};if _bbdg :=_ggda .Get ("\u0041\u0050");_bbdg !=nil {_aegf .AP =_bbdg ;};if _gce :=_ggda .Get ("\u0041\u0053");
|
||
_gce !=nil {_aegf .AS =_gce ;};if _dcag :=_ggda .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_dcag !=nil {_aegf .Border =_dcag ;};if _bac :=_ggda .Get ("\u0043");_bac !=nil {_aegf .C =_bac ;};if _faff :=_ggda .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_faff !=nil {_aegf .StructParent =_faff ;};if _adbg :=_ggda .Get ("\u004f\u0043");_adbg !=nil {_aegf .OC =_adbg ;};_bda :=_ggda .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _bda ==nil {_bag .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");
|
||
_aegf ._gcf =nil ;return _aegf ,nil ;};_bafg ,_fcef :=_bda .(*_egg .PdfObjectName );if !_fcef {_bag .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",_bda );
|
||
return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_bda );};switch *_bafg {case "\u0054\u0065\u0078\u0074":_efab ,_cggc :=_agfg .newPdfAnnotationTextFromDict (_ggda );
|
||
if _cggc !=nil {return nil ,_cggc ;};_efab .PdfAnnotation =_aegf ;_aegf ._gcf =_efab ;return _aegf ,nil ;case "\u004c\u0069\u006e\u006b":_bfg ,_gbgb :=_agfg .newPdfAnnotationLinkFromDict (_ggda );if _gbgb !=nil {return nil ,_gbgb ;};_bfg .PdfAnnotation =_aegf ;
|
||
_aegf ._gcf =_bfg ;return _aegf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_gag ,_ceca :=_agfg .newPdfAnnotationFreeTextFromDict (_ggda );if _ceca !=nil {return nil ,_ceca ;};_gag .PdfAnnotation =_aegf ;_aegf ._gcf =_gag ;return _aegf ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_eade ,_fccg :=_agfg .newPdfAnnotationLineFromDict (_ggda );if _fccg !=nil {return nil ,_fccg ;};_eade .PdfAnnotation =_aegf ;_aegf ._gcf =_eade ;_bag .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",_aegf ,_aegf );
|
||
_bag .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",_eade ,_eade );_bag .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",_eade .PdfAnnotationMarkup ,_eade .PdfAnnotationMarkup );
|
||
return _aegf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_gaga ,_faaf :=_agfg .newPdfAnnotationSquareFromDict (_ggda );if _faaf !=nil {return nil ,_faaf ;};_gaga .PdfAnnotation =_aegf ;_aegf ._gcf =_gaga ;return _aegf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_cdc ,_cffb :=_agfg .newPdfAnnotationCircleFromDict (_ggda );
|
||
if _cffb !=nil {return nil ,_cffb ;};_cdc .PdfAnnotation =_aegf ;_aegf ._gcf =_cdc ;return _aegf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_fgab ,_ebf :=_agfg .newPdfAnnotationPolygonFromDict (_ggda );if _ebf !=nil {return nil ,_ebf ;};_fgab .PdfAnnotation =_aegf ;
|
||
_aegf ._gcf =_fgab ;return _aegf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ecc ,_dgea :=_agfg .newPdfAnnotationPolyLineFromDict (_ggda );if _dgea !=nil {return nil ,_dgea ;};_ecc .PdfAnnotation =_aegf ;_aegf ._gcf =_ecc ;return _aegf ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_def ,_ceg :=_agfg .newPdfAnnotationHighlightFromDict (_ggda );if _ceg !=nil {return nil ,_ceg ;};_def .PdfAnnotation =_aegf ;_aegf ._gcf =_def ;return _aegf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_fbdb ,_aabb :=_agfg .newPdfAnnotationUnderlineFromDict (_ggda );
|
||
if _aabb !=nil {return nil ,_aabb ;};_fbdb .PdfAnnotation =_aegf ;_aegf ._gcf =_fbdb ;return _aegf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_gdd ,_dfa :=_agfg .newPdfAnnotationSquigglyFromDict (_ggda );if _dfa !=nil {return nil ,_dfa ;
|
||
};_gdd .PdfAnnotation =_aegf ;_aegf ._gcf =_gdd ;return _aegf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_dcd ,_ccbb :=_agfg .newPdfAnnotationStrikeOut (_ggda );if _ccbb !=nil {return nil ,_ccbb ;};_dcd .PdfAnnotation =_aegf ;_aegf ._gcf =_dcd ;
|
||
return _aegf ,nil ;case "\u0043\u0061\u0072e\u0074":_bdee ,_ega :=_agfg .newPdfAnnotationCaretFromDict (_ggda );if _ega !=nil {return nil ,_ega ;};_bdee .PdfAnnotation =_aegf ;_aegf ._gcf =_bdee ;return _aegf ,nil ;case "\u0053\u0074\u0061m\u0070":_edag ,_dfgf :=_agfg .newPdfAnnotationStampFromDict (_ggda );
|
||
if _dfgf !=nil {return nil ,_dfgf ;};_edag .PdfAnnotation =_aegf ;_aegf ._gcf =_edag ;return _aegf ,nil ;case "\u0049\u006e\u006b":_bbc ,_ddc :=_agfg .newPdfAnnotationInkFromDict (_ggda );if _ddc !=nil {return nil ,_ddc ;};_bbc .PdfAnnotation =_aegf ;_aegf ._gcf =_bbc ;
|
||
return _aegf ,nil ;case "\u0050\u006f\u0070u\u0070":_cfba ,_bfec :=_agfg .newPdfAnnotationPopupFromDict (_ggda );if _bfec !=nil {return nil ,_bfec ;};_cfba .PdfAnnotation =_aegf ;_aegf ._gcf =_cfba ;return _aegf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bafgg ,_bdg :=_agfg .newPdfAnnotationFileAttachmentFromDict (_ggda );
|
||
if _bdg !=nil {return nil ,_bdg ;};_bafgg .PdfAnnotation =_aegf ;_aegf ._gcf =_bafgg ;return _aegf ,nil ;case "\u0053\u006f\u0075n\u0064":_dcg ,_fcad :=_agfg .newPdfAnnotationSoundFromDict (_ggda );if _fcad !=nil {return nil ,_fcad ;};_dcg .PdfAnnotation =_aegf ;
|
||
_aegf ._gcf =_dcg ;return _aegf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_baee ,_ddb :=_agfg .newPdfAnnotationRichMediaFromDict (_ggda );if _ddb !=nil {return nil ,_ddb ;};_baee .PdfAnnotation =_aegf ;_aegf ._gcf =_baee ;return _aegf ,nil ;
|
||
case "\u004d\u006f\u0076i\u0065":_bafa ,_gagc :=_agfg .newPdfAnnotationMovieFromDict (_ggda );if _gagc !=nil {return nil ,_gagc ;};_bafa .PdfAnnotation =_aegf ;_aegf ._gcf =_bafa ;return _aegf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_bdd ,_ecbg :=_agfg .newPdfAnnotationScreenFromDict (_ggda );
|
||
if _ecbg !=nil {return nil ,_ecbg ;};_bdd .PdfAnnotation =_aegf ;_aegf ._gcf =_bdd ;return _aegf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_cefc ,_fcag :=_agfg .newPdfAnnotationWidgetFromDict (_ggda );if _fcag !=nil {return nil ,_fcag ;};_cefc .PdfAnnotation =_aegf ;
|
||
_aegf ._gcf =_cefc ;return _aegf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_fbc ,_gfb :=_agfg .newPdfAnnotationPrinterMarkFromDict (_ggda );if _gfb !=nil {return nil ,_gfb ;};_fbc .PdfAnnotation =_aegf ;_aegf ._gcf =_fbc ;
|
||
return _aegf ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_eca ,_aegfa :=_agfg .newPdfAnnotationTrapNetFromDict (_ggda );if _aegfa !=nil {return nil ,_aegfa ;};_eca .PdfAnnotation =_aegf ;_aegf ._gcf =_eca ;return _aegf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_cbbe ,_agda :=_agfg .newPdfAnnotationWatermarkFromDict (_ggda );
|
||
if _agda !=nil {return nil ,_agda ;};_cbbe .PdfAnnotation =_aegf ;_aegf ._gcf =_cbbe ;return _aegf ,nil ;case "\u0033\u0044":_gacd ,_gggb :=_agfg .newPdfAnnotation3DFromDict (_ggda );if _gggb !=nil {return nil ,_gggb ;};_gacd .PdfAnnotation =_aegf ;_aegf ._gcf =_gacd ;
|
||
return _aegf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_gffg ,_bdb :=_agfg .newPdfAnnotationProjectionFromDict (_ggda );if _bdb !=nil {return nil ,_bdb ;};_gffg .PdfAnnotation =_aegf ;_aegf ._gcf =_gffg ;return _aegf ,nil ;
|
||
case "\u0052\u0065\u0064\u0061\u0063\u0074":_baa ,_edbf :=_agfg .newPdfAnnotationRedactFromDict (_ggda );if _edbf !=nil {return nil ,_edbf ;};_baa .PdfAnnotation =_aegf ;_aegf ._gcf =_baa ;return _aegf ,nil ;};_bag .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",*_bafg );
|
||
return nil ,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 (_bfbdd *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ebadg []_ef .TextEncoder ;var _afae _ef .CMapEncoder ;if _babfg :=_bfbdd .baseFields ()._bfbgf ;_babfg !=nil {_afae =_ef .NewCMapEncoder ("",nil ,_babfg );};_gfec :=_bfbdd .Encoder ();
|
||
if _gfec !=nil {switch _fefb :=_gfec .(type ){case _ef .SimpleEncoder :_fbea :=_fefb .BaseName ();if _ ,_cceeb :=_eefde [_fbea ];_cceeb {_ebadg =append (_ebadg ,_gfec );};};};if len (_ebadg )==0{if _bfbdd .baseFields ()._bfbgf !=nil {_ebadg =append (_ebadg ,_afae );
|
||
};if _gfec !=nil {_ebadg =append (_ebadg ,_gfec );};};var _bdeec _dd .Buffer ;var _gfbdd int ;for _ ,_cccbf :=range data {var _gbfc bool ;for _ ,_cadg :=range _ebadg {if _baebc :=_cadg .Encode (string (_cccbf ));len (_baebc )> 0{_bdeec .Write (_baebc );
|
||
_gbfc =true ;break ;};};if !_gbfc {_bag .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",_cccbf );
|
||
_gfbdd ++;};};if _gfbdd !=0{_bag .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 ),_gfbdd ,_bfbdd ,_ebadg );
|
||
};return _bdeec .Bytes (),_gfbdd ;};var (_cgag _b .Mutex ;_cdcf ="";_fabb _e .Time ;_cefff ="";_fafb ="";_gfeea _e .Time ;_bdbde ="";_eggc ="";_fcfbd ="";);
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_abcc :=&PdfAppender {_cbe :reader ._eefb ,Reader :reader ,_daac :reader ._dafgab ,_bdbf :reader ._gbabf };_aege ,_adbf :=_abcc ._cbe .Seek (0,_dag .SeekEnd );if _adbf !=nil {return nil ,_adbf ;
|
||
};_abcc ._bbba =_aege ;if _ ,_adbf =_abcc ._cbe .Seek (0,_dag .SeekStart );_adbf !=nil {return nil ,_adbf ;};_abcc ._bgaa ,_adbf =NewPdfReader (_abcc ._cbe );if _adbf !=nil {return nil ,_adbf ;};for _ ,_eced :=range _abcc .Reader .GetObjectNums (){if _abcc ._gfdcd < _eced {_abcc ._gfdcd =_eced ;
|
||
};};_abcc ._beed =_abcc ._daac .GetXrefTable ();_abcc ._gfbc =_abcc ._daac .GetXrefOffset ();_abcc ._beac =append (_abcc ._beac ,_abcc ._bgaa .PageList ...);_abcc ._bdba =make (map[_egg .PdfObject ]struct{});_abcc ._eegc =make (map[_egg .PdfObject ]int64 );
|
||
_abcc ._eecgg =make (map[_egg .PdfObject ]struct{});_abcc ._aeec =_abcc ._bgaa .AcroForm ;_abcc ._dgdc =_abcc ._bgaa .DSS ;return _abcc ,nil ;};
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_efcfa *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _efcfa ._fcbdg .(*PdfShadingPattern );};
|
||
|
||
// 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 (_ceda *LTV )EnableByName (name string ,extraCerts []*_dg .Certificate )error {_gade :=_ceda ._dbdga ._bgaa .AcroForm ;for _ ,_fdbad :=range _gade .AllFields (){_fafee ,_ :=_fdbad .GetContext ().(*PdfFieldSignature );if _fafee ==nil {continue ;};if _eafbg :=_fafee .PartialName ();
|
||
_eafbg !=name {continue ;};return _ceda .Enable (_fafee .V ,extraCerts );};return nil ;};
|
||
|
||
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
|
||
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
|
||
// How it works:
|
||
// 1) Return a value the /Widths array (charWidths) if there is one.
|
||
// 2) If the font has the same name as a standard 14 font then return width=250.
|
||
// 3) Otherwise return no match and let the caller substitute a default.
|
||
func (_edbgd pdfFontSimple )GetCharMetrics (code _ef .CharCode )(_bgd .CharMetrics ,bool ){if _ffbfb ,_geae :=_edbgd ._babec [code ];_geae {return _bgd .CharMetrics {Wx :_ffbfb },true ;};if _bgd .IsStdFont (_bgd .StdFontName (_edbgd ._dgfdc )){return _bgd .CharMetrics {Wx :250},true ;
|
||
};return _bgd .CharMetrics {},false ;};func _dbggc (_fgdcd _egg .PdfObject )(*fontFile ,error ){_bag .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",_fgdcd );
|
||
_cfaae :=&fontFile {};_fgdcd =_egg .TraceToDirectObject (_fgdcd );_bcdf ,_gdbd :=_fgdcd .(*_egg .PdfObjectStream );if !_gdbd {_bag .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",_fgdcd );
|
||
return nil ,_egg .ErrTypeError ;};_fgba :=_bcdf .PdfObjectDictionary ;_dgddc ,_ggaf :=_egg .DecodeStream (_bcdf );if _ggaf !=nil {return nil ,_ggaf ;};_gggg ,_gdbd :=_egg .GetNameVal (_fgba .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gdbd {_cfaae ._eecf =_gggg ;
|
||
if _gggg =="\u0054\u0079\u0070\u0065\u0031\u0043"{_bag .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 ;};};_bbadd ,_ :=_egg .GetIntVal (_fgba .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_fgbb ,_ :=_egg .GetIntVal (_fgba .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _bbadd > len (_dgddc ){_bbadd =len (_dgddc );
|
||
};if _bbadd +_fgbb > len (_dgddc ){_fgbb =len (_dgddc )-_bbadd ;};_efdcg :=_dgddc [:_bbadd ];var _befd []byte ;if _fgbb > 0{_befd =_dgddc [_bbadd :_bbadd +_fgbb ];};if _bbadd > 0&&_fgbb > 0{_egdf :=_cfaae .loadFromSegments (_efdcg ,_befd );if _egdf !=nil {return nil ,_egdf ;
|
||
};};return _cfaae ,nil ;};
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_dcgcc *PdfReader )GetOutlines ()(*Outline ,error ){if _dcgcc ==nil {return nil ,_gd .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");
|
||
};_agdd :=_dcgcc .GetOutlineTree ();if _agdd ==nil {return nil ,_gd .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 _bbef func (_agaa *PdfOutlineTreeNode ,_deaff *[]*OutlineItem );_bbef =func (_fbef *PdfOutlineTreeNode ,_ceabf *[]*OutlineItem ){if _fbef ==nil {return ;};if _fbef ._bgbfg ==nil {_bag .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 _dege *OutlineItem ;if _ggafe ,_ddceag :=_fbef ._bgbfg .(*PdfOutlineItem );_ddceag {_ffbcd :=_ggafe .Dest ;if (_ffbcd ==nil ||_egg .IsNullObject (_ffbcd ))&&_ggafe .A !=nil {if _ecgcg ,_feeabf :=_egg .GetDict (_ggafe .A );_feeabf {if _febdg ,_dbcfc :=_egg .GetArray (_ecgcg .Get ("\u0044"));
|
||
_dbcfc {_ffbcd =_febdg ;}else {_gaccg ,_cbbea :=_egg .GetString (_ecgcg .Get ("\u0044"));if !_cbbea {return ;};_bfgd ,_cbbea :=_dcgcc ._eacf .Get ("\u004e\u0061\u006de\u0073").(*_egg .PdfObjectReference );if !_cbbea {return ;};_bddae ,_egaed :=_dcgcc ._dafgab .LookupByReference (*_bfgd );
|
||
if _egaed !=nil {_bag .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",_egaed .Error ());
|
||
return ;};_ddcdg ,_cbbea :=_bddae .(*_egg .PdfIndirectObject );if !_cbbea {return ;};_gcege :=map[_egg .PdfObject ]struct{}{};_egaed =_dcgcc .buildNameNodes (_ddcdg ,_gcege );if _egaed !=nil {_bag .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",_egaed .Error ());
|
||
return ;};for _bceff :=range _gcege {_afgcf ,_adecdb :=_egg .GetDict (_bceff );if !_adecdb {continue ;};_cecbda ,_adecdb :=_egg .GetArray (_afgcf .Get ("\u004e\u0061\u006de\u0073"));if !_adecdb {continue ;};for _geefc ,_cfcga :=range _cecbda .Elements (){switch _cfcga .(type ){case *_egg .PdfObjectString :if _cfcga .String ()==_gaccg .String (){if _bbfdf :=_cecbda .Get (_geefc +1);
|
||
_bbfdf !=nil {if _eddag ,_ggfg :=_egg .GetDict (_bbfdf );_ggfg {_ffbcd =_eddag .Get ("\u0044");break ;};};};};};};};};};var _ddgbg OutlineDest ;if _ffbcd !=nil &&!_egg .IsNullObject (_ffbcd ){if _fafda ,_ebdef :=_afcaa (_ffbcd ,_dcgcc );_ebdef ==nil {_ddgbg =*_fafda ;
|
||
}else {_bag .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",_ffbcd ,_ebdef );
|
||
};};_dege =NewOutlineItem (_ggafe .Title .Decoded (),_ddgbg );*_ceabf =append (*_ceabf ,_dege );if _ggafe .Next !=nil {_bbef (_ggafe .Next ,_ceabf );};};if _fbef .First !=nil {if _dege !=nil {_ceabf =&_dege .Entries ;};_bbef (_fbef .First ,_ceabf );};};
|
||
_ffadfb :=NewOutline ();_bbef (_agdd ,&_ffadfb .Entries );return _ffadfb ,nil ;};func (_decb *pdfFontSimple )updateStandard14Font (){_aebf ,_bcgfd :=_decb .Encoder ().(_ef .SimpleEncoder );if !_bcgfd {_bag .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",_decb .Encoder (),_decb );
|
||
return ;};_gggbf :=_aebf .Charcodes ();_decb ._babec =make (map[_ef .CharCode ]float64 ,len (_gggbf ));for _ ,_dbabb :=range _gggbf {_dfgfgb ,_ :=_aebf .CharcodeToRune (_dbabb );_bfdc ,_ :=_decb ._dddd .Read (_dfgfgb );_decb ._babec [_dbabb ]=_bfdc .Wx ;
|
||
};};
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_eff :=&PdfAction {};_eff ._bf =_egg .MakeIndirectObject (_egg .MakeDict ());return _eff ;};
|
||
|
||
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
|
||
type PdfOutputIntentType int ;
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_egg .PdfObjectDictionary )(*PdfPageResources ,error ){_cbaef :=NewPdfPageResources ();if _bcefc :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_bcefc !=nil {_cbaef .ExtGState =_bcefc ;};if _dgee :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_dgee !=nil &&!_egg .IsNullObject (_dgee ){_cbaef .ColorSpace =_dgee ;};if _bbfbg :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_bbfbg !=nil {_cbaef .Pattern =_bbfbg ;};if _dfbfcg :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_dfbfcg !=nil {_cbaef .Shading =_dfbfcg ;
|
||
};if _afac :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_afac !=nil {_cbaef .XObject =_afac ;};if _dgfab :=_egg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_dgfab !=nil {_cbaef .Font =_dgfab ;};if _aedfc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_aedfc !=nil {_cbaef .ProcSet =_aedfc ;};if _daff :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_daff !=nil {_cbaef .Properties =_daff ;};return _cbaef ,nil ;}; |