mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-26 13:48:55 +08:00
4500 lines
685 KiB
Go
4500 lines
685 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 (_g "bufio";_cbd "bytes";_bb "crypto/rand";_d "crypto/sha1";_ce "crypto/x509";_gg "encoding/binary";_c "encoding/hex";_bbd "errors";_e "fmt";_gb "github.com/unidoc/pkcs7";_dbg "github.com/unidoc/unipdf/v3/common";_eg "github.com/unidoc/unipdf/v3/core";
|
||
_fc "github.com/unidoc/unipdf/v3/core/security";_cf "github.com/unidoc/unipdf/v3/core/security/crypt";_aff "github.com/unidoc/unipdf/v3/internal/cmap";_ff "github.com/unidoc/unipdf/v3/internal/imageutil";_dd "github.com/unidoc/unipdf/v3/internal/license";
|
||
_ccg "github.com/unidoc/unipdf/v3/internal/sampling";_cec "github.com/unidoc/unipdf/v3/internal/textencoding";_cc "github.com/unidoc/unipdf/v3/internal/transform";_ab "github.com/unidoc/unipdf/v3/model/internal/fonts";_cbf "github.com/unidoc/unipdf/v3/model/sigutil";
|
||
_ea "github.com/unidoc/unipdf/v3/ps";_af "github.com/unidoc/unitype";_ead "golang.org/x/xerrors";_ec "image";_f "image/color";_ "image/gif";_ "image/png";_de "io";_aa "io/ioutil";_bc "math";_gf "math/rand";_bg "os";_ge "regexp";_ae "sort";_db "strconv";
|
||
_dc "strings";_eb "sync";_ee "time";_cg "unicode";_cb "unicode/utf8";);
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_cbdda :=NewPdfAnnotation ();_aad :=&PdfAnnotationScreen {};_aad .PdfAnnotation =_cbdda ;_cbdda .SetContext (_aad );return _aad ;};
|
||
|
||
// 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 (_dbbed *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _gbcc []_cec .TextEncoder ;var _beab _cec .CMapEncoder ;if _cbebc :=_dbbed .baseFields ()._fffc ;_cbebc !=nil {_beab =_cec .NewCMapEncoder ("",nil ,_cbebc );};_adbcb :=_dbbed .Encoder ();
|
||
if _adbcb !=nil {switch _baegf :=_adbcb .(type ){case _cec .SimpleEncoder :_adga :=_baegf .BaseName ();if _ ,_aefae :=_acgcf [_adga ];_aefae {_gbcc =append (_gbcc ,_adbcb );};};};if len (_gbcc )==0{if _dbbed .baseFields ()._fffc !=nil {_gbcc =append (_gbcc ,_beab );
|
||
};if _adbcb !=nil {_gbcc =append (_gbcc ,_adbcb );};};var _bcadf _cbd .Buffer ;var _ecgfd int ;for _ ,_cfcd :=range data {var _fega bool ;for _ ,_cafed :=range _gbcc {if _addf :=_cafed .Encode (string (_cfcd ));len (_addf )> 0{_bcadf .Write (_addf );_fega =true ;
|
||
break ;};};if !_fega {_dbg .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",_cfcd );
|
||
_ecgfd ++;};};if _ecgfd !=0{_dbg .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 ),_ecgfd ,_dbbed ,_gbcc );
|
||
};return _bcadf .Bytes (),_ecgfd ;};func (_gbcec *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_debd *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aebb :=vals [0];_aagg :=[]float64 {_aebb };_aabb ,_bdcg :=_debd .TintTransform .Evaluate (_aagg );
|
||
if _bdcg !=nil {_dbg .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",_bdcg );_dbg .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_debd .TintTransform );
|
||
return nil ,_bdcg ;};_dbg .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",_aabb ,_debd .AlternateSpace );
|
||
_abab ,_bdcg :=_debd .AlternateSpace .ColorFromFloats (_aabb );if _bdcg !=nil {_dbg .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",_bdcg );
|
||
return nil ,_bdcg ;};return _abab ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_cdecc *PdfFunctionType2 )ToPdfObject ()_eg .PdfObject {_bdgfc :=_eg .MakeDict ();_bdgfc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (2));_bbbcg :=&_eg .PdfObjectArray {};for _ ,_ccgbb :=range _cdecc .Domain {_bbbcg .Append (_eg .MakeFloat (_ccgbb ));
|
||
};_bdgfc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bbbcg );if _cdecc .Range !=nil {_agca :=&_eg .PdfObjectArray {};for _ ,_eegca :=range _cdecc .Range {_agca .Append (_eg .MakeFloat (_eegca ));};_bdgfc .Set ("\u0052\u0061\u006eg\u0065",_agca );};if _cdecc .C0 !=nil {_agagd :=&_eg .PdfObjectArray {};
|
||
for _ ,_adaea :=range _cdecc .C0 {_agagd .Append (_eg .MakeFloat (_adaea ));};_bdgfc .Set ("\u0043\u0030",_agagd );};if _cdecc .C1 !=nil {_fbbgc :=&_eg .PdfObjectArray {};for _ ,_feabf :=range _cdecc .C1 {_fbbgc .Append (_eg .MakeFloat (_feabf ));};_bdgfc .Set ("\u0043\u0031",_fbbgc );
|
||
};_bdgfc .Set ("\u004e",_eg .MakeFloat (_cdecc .N ));if _cdecc ._daaf !=nil {_cdecc ._daaf .PdfObject =_bdgfc ;return _cdecc ._daaf ;};return _bdgfc ;};
|
||
|
||
// 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 (_ecbdf *PdfPageResources )GetFontByName (keyName _eg .PdfObjectName )(_eg .PdfObject ,bool ){if _ecbdf .Font ==nil {return nil ,false ;};_faedc ,_aacab :=_eg .TraceToDirectObject (_ecbdf .Font ).(*_eg .PdfObjectDictionary );if !_aacab {_dbg .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",_eg .TraceToDirectObject (_ecbdf .Font ));
|
||
return nil ,false ;};if _becga :=_faedc .Get (keyName );_becga !=nil {return _becga ,true ;};return nil ,false ;};func (_dgfb *PdfReader )loadStructure ()error {if _dgfb ._cdggc .GetCrypter ()!=nil &&!_dgfb ._cdggc .IsAuthenticated (){return _e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_dbgff :=_dgfb ._cdggc .GetTrailer ();if _dbgff ==nil {return _e .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_ddefce ,_agbb :=_dbgff .Get ("\u0052\u006f\u006f\u0074").(*_eg .PdfObjectReference );if !_agbb {return _e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_dbgff );
|
||
};_degaf ,_becbg :=_dgfb ._cdggc .LookupByReference (*_ddefce );if _becbg !=nil {_dbg .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",_becbg );
|
||
return _becbg ;};_gfgb ,_agbb :=_degaf .(*_eg .PdfIndirectObject );if !_agbb {_dbg .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",_degaf ,*_dbgff );
|
||
return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dafbab ,_agbb :=(*_gfgb ).PdfObject .(*_eg .PdfObjectDictionary );if !_agbb {_dbg .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",_gfgb .PdfObject );
|
||
return _bbd .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dbg .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_dafbab );_ebcgf ,_agbb :=_dafbab .Get ("\u0050\u0061\u0067e\u0073").(*_eg .PdfObjectReference );
|
||
if !_agbb {return _bbd .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");};_fgbcc ,_becbg :=_dgfb ._cdggc .LookupByReference (*_ebcgf );
|
||
if _becbg !=nil {_dbg .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 _becbg ;};_agedd ,_agbb :=_fgbcc .(*_eg .PdfIndirectObject );if !_agbb {_dbg .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");
|
||
_dbg .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_agedd );return _bbd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ggcee ,_agbb :=_agedd .PdfObject .(*_eg .PdfObjectDictionary );if !_agbb {_dbg .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",_agedd );
|
||
return _bbd .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_gbfeb ,_agbb :=_eg .GetInt (_ggcee .Get ("\u0043\u006f\u0075n\u0074"));if !_agbb {_dbg .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 _bbd .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_agbb =_eg .GetName (_ggcee .Get ("\u0054\u0079\u0070\u0065"));!_agbb {_dbg .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");
|
||
_ggcee .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfeca ,_cbae :=_eg .GetInt (_ggcee .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_cbae {_ecbg :=int64 (*_bfeca );_dgfb .Rotate =&_ecbg ;};_dgfb ._faafd =_ddefce ;
|
||
_dgfb ._efdg =_dafbab ;_dgfb ._faacgc =_ggcee ;_dgfb ._debff =_agedd ;_dgfb ._abddb =int (*_gbfeb );_dgfb ._dfff =[]*_eg .PdfIndirectObject {};_dgbfa :=map[_eg .PdfObject ]struct{}{};_becbg =_dgfb .buildPageList (_agedd ,nil ,_dgbfa );if _becbg !=nil {return _becbg ;
|
||
};_dbg .Log .Trace ("\u002d\u002d\u002d");_dbg .Log .Trace ("\u0054\u004f\u0043");_dbg .Log .Trace ("\u0050\u0061\u0067e\u0073");_dbg .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_dgfb ._dfff ),_dgfb ._dfff );_dgfb ._ebgea ,_becbg =_dgfb .loadOutlines ();
|
||
if _becbg !=nil {_dbg .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",_becbg );
|
||
return _becbg ;};_dgfb .AcroForm ,_becbg =_dgfb .loadForms ();if _becbg !=nil {return _becbg ;};_dgfb .DSS ,_becbg =_dgfb .loadDSS ();if _becbg !=nil {return _becbg ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edcg *PdfAnnotationInk )ToPdfObject ()_eg .PdfObject {_edcg .PdfAnnotation .ToPdfObject ();_gbbc :=_edcg ._gag ;_afe :=_gbbc .PdfObject .(*_eg .PdfObjectDictionary );_edcg .PdfAnnotationMarkup .appendToPdfDictionary (_afe );_afe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0049\u006e\u006b"));
|
||
_afe .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_edcg .InkList );_afe .SetIfNotNil ("\u0042\u0053",_edcg .BS );return _gbbc ;};
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_cfceg FieldFlag )Mask ()uint32 {return uint32 (_cfceg )};
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_ggdec *PdfPattern )SetContext (ctx PdfModel ){_ggdec ._defdf =ctx };func (_ffc *PdfReader )newPdfActionHideFromDict (_bd *_eg .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_bd .Get ("\u0054"),H :_bd .Get ("\u0048")},nil ;
|
||
};func _dddgd (_eaaca _eg .PdfObject ){_dbg .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_eaaca ,_eaaca .String ());if _cgcfg ,_gaaa :=_eaaca .(*_eg .PdfObjectStream );_gaaa {_adebce ,_fdbcf :=_eg .DecodeStream (_cgcfg );
|
||
if _fdbcf !=nil {_dbg .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_fdbcf );return ;};_dbg .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_adebce );}else if _fbcfd ,_cfdbf :=_eaaca .(*_eg .PdfIndirectObject );
|
||
_cfdbf {_dbg .Log .Debug ("\u0025\u0054\u0020%\u0076",_fbcfd .PdfObject ,_fbcfd .PdfObject );_dbg .Log .Debug ("\u0025\u0073",_fbcfd .PdfObject .String ());};};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_cdc :=NewPdfAnnotation ();_eff :=&PdfAnnotationRedact {};_eff .PdfAnnotation =_cdc ;_eff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdc .SetContext (_eff );return _eff ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_bcfg *PdfShadingType5 )ToPdfObject ()_eg .PdfObject {_bcfg .PdfShading .ToPdfObject ();_cccfa ,_fdfec :=_bcfg .getShadingDict ();if _fdfec !=nil {_dbg .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 _bcfg .BitsPerCoordinate !=nil {_cccfa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_bcfg .BitsPerCoordinate );};if _bcfg .BitsPerComponent !=nil {_cccfa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_bcfg .BitsPerComponent );
|
||
};if _bcfg .VerticesPerRow !=nil {_cccfa .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_bcfg .VerticesPerRow );};if _bcfg .Decode !=nil {_cccfa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_bcfg .Decode );};if _bcfg .Function !=nil {if len (_bcfg .Function )==1{_cccfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcfg .Function [0].ToPdfObject ());
|
||
}else {_fgee :=_eg .MakeArray ();for _ ,_agbaf :=range _bcfg .Function {_fgee .Append (_agbaf .ToPdfObject ());};_cccfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgee );};};return _bcfg ._beag ;};
|
||
|
||
// 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 (_edbff *PdfPage )SetContentStreams (cStreams []string ,encoder _eg .StreamEncoder )error {if len (cStreams )==0{_edbff .Contents =nil ;return nil ;};if encoder ==nil {encoder =_eg .NewRawEncoder ();};var _efabe []*_eg .PdfObjectStream ;for _ ,_feadc :=range cStreams {_bfedg :=&_eg .PdfObjectStream {};
|
||
_bcegb :=encoder .MakeStreamDict ();_gfaf ,_gfgca :=encoder .EncodeBytes ([]byte (_feadc ));if _gfgca !=nil {return _gfgca ;};_bcegb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_gfaf ))));_bfedg .PdfObjectDictionary =_bcegb ;
|
||
_bfedg .Stream =_gfaf ;_efabe =append (_efabe ,_bfedg );};if len (_efabe )==1{_edbff .Contents =_efabe [0];}else {_edbcd :=_eg .MakeArray ();for _ ,_agabd :=range _efabe {_edbcd .Append (_agabd );};_edbff .Contents =_edbcd ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bcb *PdfActionGoTo3DView )ToPdfObject ()_eg .PdfObject {_bcb .PdfAction .ToPdfObject ();_ecf :=_bcb ._ege ;_egef :=_ecf .PdfObject .(*_eg .PdfObjectDictionary );_egef .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoTo3DView )));_egef .SetIfNotNil ("\u0054\u0041",_bcb .TA );
|
||
_egef .SetIfNotNil ("\u0056",_bcb .V );return _ecf ;};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_baecb FieldFlag )String ()string {_bfac :="";if _baecb ==FieldFlagClear {_bfac ="\u0043\u006c\u0065a\u0072";return _bfac ;};if _baecb &FieldFlagReadOnly > 0{_bfac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _baecb &FieldFlagRequired > 0{_bfac +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";
|
||
};if _baecb &FieldFlagNoExport > 0{_bfac +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _baecb &FieldFlagNoToggleToOff > 0{_bfac +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _baecb &FieldFlagRadio > 0{_bfac +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _baecb &FieldFlagPushbutton > 0{_bfac +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _baecb &FieldFlagRadiosInUnision > 0{_bfac +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _baecb &FieldFlagMultiline > 0{_bfac +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
|
||
};if _baecb &FieldFlagPassword > 0{_bfac +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _baecb &FieldFlagFileSelect > 0{_bfac +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _baecb &FieldFlagDoNotScroll > 0{_bfac +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
|
||
};if _baecb &FieldFlagComb > 0{_bfac +="\u007c\u0043\u006fm\u0062";};if _baecb &FieldFlagRichText > 0{_bfac +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _baecb &FieldFlagDoNotSpellCheck > 0{_bfac +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
|
||
};if _baecb &FieldFlagCombo > 0{_bfac +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _baecb &FieldFlagEdit > 0{_bfac +="\u007c\u0045\u0064i\u0074";};if _baecb &FieldFlagSort > 0{_bfac +="\u007c\u0053\u006fr\u0074";};if _baecb &FieldFlagMultiSelect > 0{_bfac +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _baecb &FieldFlagCommitOnSelChange > 0{_bfac +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _dc .Trim (_bfac ,"\u007c");};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_ffg :=NewPdfAnnotation ();_cfd :=&PdfAnnotationProjection {};_cfd .PdfAnnotation =_ffg ;_cfd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ffg .SetContext (_cfd );return _cfd ;};
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_gcbb _de .ReadSeeker ;_fbdd *_eg .PdfParser ;_acdg *PdfReader ;Reader *PdfReader ;_bfce []*PdfPage ;_ggcc *PdfAcroForm ;_aegd *DSS ;_cdga _eg .XrefTable ;_cfaf int64 ;_dace int ;_acda []_eg .PdfObject ;_adge map[_eg .PdfObject ]struct{};
|
||
_bddd map[_eg .PdfObject ]int64 ;_agaa map[_eg .PdfObject ]struct{};_baeg map[_eg .PdfObject ]struct{};_ade int64 ;_fabe bool ;};
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_gcddg :=PdfColorCalGray (grayVal );return &_gcddg ;};
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_dfg *PdfField )FullName ()(string ,error ){var _gdeb _cbd .Buffer ;_fdbd :=[]string {};if _dfg .T !=nil {_fdbd =append (_fdbd ,_dfg .T .Decoded ());};_fccg :=map[*PdfField ]bool {};_fccg [_dfg ]=true ;_feda :=_dfg .Parent ;for _feda !=nil {if _ ,_feff :=_fccg [_feda ];
|
||
_feff {return _gdeb .String (),_bbd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _feda .T ==nil {return _gdeb .String (),_bbd .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");
|
||
};_fdbd =append (_fdbd ,_feda .T .Decoded ());_fccg [_feda ]=true ;_feda =_feda .Parent ;};for _bdfg :=len (_fdbd )-1;_bdfg >=0;_bdfg --{_gdeb .WriteString (_fdbd [_bdfg ]);if _bdfg > 0{_gdeb .WriteString ("\u002e");};};return _gdeb .String (),nil ;};
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_bdega :=&PdfOutlineItem {_bfega :_eg .MakeIndirectObject (_eg .MakeDict ())};_bdega ._dbaeb =_bdega ;return _bdega ;};func _dddfc (_agfc _eg .PdfObject )(*PdfFunctionType2 ,error ){_cbbff :=&PdfFunctionType2 {};
|
||
var _ccae *_eg .PdfObjectDictionary ;if _gbee ,_faeeb :=_agfc .(*_eg .PdfIndirectObject );_faeeb {_ggafa ,_egefd :=_gbee .PdfObject .(*_eg .PdfObjectDictionary );if !_egefd {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_cbbff ._daaf =_gbee ;_ccae =_ggafa ;}else if _ebgba ,_bbdfdd :=_agfc .(*_eg .PdfObjectDictionary );_bbdfdd {_ccae =_ebgba ;}else {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbg .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_ccae .String ());
|
||
_dgeda ,_ccddg :=_eg .TraceToDirectObject (_ccae .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );if !_ccddg {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _dgeda .Len ()< 0||_dgeda .Len ()%2!=0{_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_debeb ,_dcdec :=_dgeda .ToFloat64Array ();if _dcdec !=nil {return nil ,_dcdec ;};_cbbff .Domain =_debeb ;_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _ccddg {if _dgeda .Len ()< 0||_dgeda .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_bacdc ,_abebe :=_dgeda .ToFloat64Array ();if _abebe !=nil {return nil ,_abebe ;};_cbbff .Range =_bacdc ;};_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0043\u0030")).(*_eg .PdfObjectArray );if _ccddg {_ecegd ,_fcabd :=_dgeda .ToFloat64Array ();
|
||
if _fcabd !=nil {return nil ,_fcabd ;};_cbbff .C0 =_ecegd ;};_dgeda ,_ccddg =_eg .TraceToDirectObject (_ccae .Get ("\u0043\u0031")).(*_eg .PdfObjectArray );if _ccddg {_fcabf ,_eddb :=_dgeda .ToFloat64Array ();if _eddb !=nil {return nil ,_eddb ;};_cbbff .C1 =_fcabf ;
|
||
};if len (_cbbff .C0 )!=len (_cbbff .C1 ){_dbg .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_eg .ErrRangeError ;};N ,_dcdec :=_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_ccae .Get ("\u004e")));
|
||
if _dcdec !=nil {_dbg .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",_ccae .String ());return nil ,_dcdec ;};_cbbff .N =N ;
|
||
return _cbbff ,nil ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_fegab *Outline )ToPdfObject ()_eg .PdfObject {return _fegab .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// 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 ;_defdf PdfModel ;_cfaag _eg .PdfObject ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_efa :=NewPdfAnnotation ();_fedd :=&PdfAnnotationPolygon {};_fedd .PdfAnnotation =_efa ;_fedd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efa .SetContext (_fedd );return _fedd ;};func _gdbee ()_ee .Time {_egbeg .Lock ();
|
||
defer _egbeg .Unlock ();return _gbbee };
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_ccfe *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func _edca ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _dfdfdc };
|
||
|
||
// 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 (_dbgcb *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _dbgcb .baseFields ()._eecfe !=nil {return _dbgcb .baseFields ()._eecfe ;};if _cebf :=_dbgcb ._gdcab .getFontDescriptor ();_cebf !=nil {return _cebf ;};_dbg .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",_dbgcb );
|
||
return nil ;};
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_aabad *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_fbdgc :=_ccg .NewReader (img .getBase ());_baadd :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._fcec ,img ._aaeac );
|
||
_abef :=_ccg .NewWriter (_baadd );_afcc :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_fdagc :=_aabad .GetNumComponents ();_gbfb :=make ([]uint32 ,_fdagc );_ffda :=make ([]float64 ,_fdagc );for {_ggae :=_fbdgc .ReadSamples (_gbfb );if _ggae ==_de .EOF {break ;
|
||
}else if _ggae !=nil {return img ,_ggae ;};for _fbbe :=0;_fbbe < _fdagc ;_fbbe ++{_cagd :=float64 (_gbfb [_fbbe ])/_afcc ;_ffda [_fbbe ]=_cagd ;};_gdaf ,_ggae :=_aabad .TintTransform .Evaluate (_ffda );if _ggae !=nil {return img ,_ggae ;};for _ ,_abeb :=range _gdaf {_abeb =_bc .Min (_bc .Max (0,_abeb ),1.0);
|
||
if _ggae =_abef .WriteSample (uint32 (_abeb *_afcc ));_ggae !=nil {return img ,_ggae ;};};};return _aabad .AlternateSpace .ImageToRGB (_egbde (&_baadd ));};
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_dcef *PdfPage )error ;};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _eg .PdfObject ;BS _eg .PdfObject ;LE _eg .PdfObject ;IC _eg .PdfObject ;LL _eg .PdfObject ;LLE _eg .PdfObject ;Cap _eg .PdfObject ;IT _eg .PdfObject ;LLO _eg .PdfObject ;CP _eg .PdfObject ;
|
||
Measure _eg .PdfObject ;CO _eg .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_eaca *PdfPageResources )ToPdfObject ()_eg .PdfObject {_gdgc :=_eaca ._fbcbc ;_gdgc .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eaca .ExtGState );if _eaca ._gecbc !=nil {_eaca .ColorSpace =_eaca ._gecbc .ToPdfObject ();};_gdgc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_eaca .ColorSpace );
|
||
_gdgc .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_eaca .Pattern );_gdgc .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eaca .Shading );_gdgc .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_eaca .XObject );_gdgc .SetIfNotNil ("\u0046\u006f\u006e\u0074",_eaca .Font );
|
||
_gdgc .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_eaca .ProcSet );_gdgc .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_eaca .Properties );return _gdgc ;};func _gbdcf (_eabccd *_eg .PdfObjectArray )(float64 ,error ){_aegdc ,_bfage :=_eabccd .ToFloat64Array ();
|
||
if _bfage !=nil {_dbg .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",_eabccd ,_bfage );};switch len (_aegdc ){case 1:return _aegdc [0],nil ;
|
||
case 3:_begbe :=PdfColorspaceDeviceRGB {};_cdbae ,_fbbacf :=_begbe .ColorFromFloats (_aegdc );if _fbbacf !=nil {return 0.0,_fbbacf ;};return _cdbae .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_agggad :=PdfColorspaceDeviceCMYK {};_fddab ,_ededg :=_agggad .ColorFromFloats (_aegdc );
|
||
if _ededg !=nil {return 0.0,_ededg ;};_geegd ,_ededg :=_agggad .ColorToRGB (_fddab .(*PdfColorDeviceCMYK ));if _ededg !=nil {return 0.0,_ededg ;};return _geegd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_bfage =_bbd .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");
|
||
_dbg .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_eabccd ,_bfage );return 0.0,_bfage ;};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_fcfgg FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_fcfgg .Mask ()&^fl .Mask ())};
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_dgecf *PdfColorLab )GetNumComponents ()int {return 3};var (_egbeg _eb .Mutex ;_dfdfdc ="";_gbbee _ee .Time ;_ebgfe ="";_bbgff ="";_cced _ee .Time ;_gdagd ="";_gfcae ="";_dgage ="";);
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_faed *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_faed .Base .GetNumComponents ();_gdgbdg :=int (vals [0])*N ;
|
||
if _gdgbdg < 0||(_gdgbdg +N -1)>=len (_faed ._dbcc ){return nil ,_bbd .New ("\u006f\u0075\u0074\u0073\u0069\u0064\u0065\u0020\u0072\u0061\u006e\u0067\u0065");};_ddgc :=_faed ._dbcc [_gdgbdg :_gdgbdg +N ];var _abdc []float64 ;for _ ,_bcdb :=range _ddgc {_abdc =append (_abdc ,float64 (_bcdb )/255.0);
|
||
};_adgc ,_abcg :=_faed .Base .ColorFromFloats (_abdc );if _abcg !=nil {return nil ,_abcg ;};return _adgc ,nil ;};func _dbbge ()*modelManager {_fdfgg :=modelManager {};_fdfgg ._eegb =map[PdfModel ]_eg .PdfObject {};_fdfgg ._bfgf =map[_eg .PdfObject ]PdfModel {};
|
||
return &_fdfgg ;};
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _ee .Time )(PdfDate ,error ){_aefc :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_ecfbf ,_ :=_db .ParseInt (_aefc [1:3],10,32);_gdggg ,_ :=_db .ParseInt (_aefc [4:6],10,32);return PdfDate {_cggcf :int64 (timeObj .Year ()),_agfdbf :int64 (timeObj .Month ()),_ebfff :int64 (timeObj .Day ()),_bfabc :int64 (timeObj .Hour ()),_edagg :int64 (timeObj .Minute ()),_ggcbe :int64 (timeObj .Second ()),_facfb :_aefc [0],_gaggg :_ecfbf ,_daabe :_gdggg },nil ;
|
||
};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_eeec pdfCIDFontType0 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){_aeda :=_eeec ._gfbab ;if _fdaec ,_fcgg :=_eeec ._fedfd [code ];_fcgg {_aeda =_fdaec ;};return _ab .CharMetrics {Wx :_aeda },true ;};
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_ebed *PdfField )ToPdfObject ()_eg .PdfObject {_degf :=_ebed ._afbe ;_beebe :=_degf .PdfObject .(*_eg .PdfObjectDictionary );_dcdaf :=_eg .MakeArray ();for _ ,_dbe :=range _ebed .Kids {_dcdaf .Append (_dbe .ToPdfObject ());};for _ ,_febf :=range _ebed .Annotations {if _febf ._gag !=_ebed ._afbe {_dcdaf .Append (_febf .GetContext ().ToPdfObject ());
|
||
};};if _ebed .Parent !=nil {_beebe .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ebed .Parent .GetContainingPdfObject ());};if _dcdaf .Len ()> 0{_beebe .Set ("\u004b\u0069\u0064\u0073",_dcdaf );};_beebe .SetIfNotNil ("\u0046\u0054",_ebed .FT );
|
||
_beebe .SetIfNotNil ("\u0054",_ebed .T );_beebe .SetIfNotNil ("\u0054\u0055",_ebed .TU );_beebe .SetIfNotNil ("\u0054\u004d",_ebed .TM );_beebe .SetIfNotNil ("\u0046\u0066",_ebed .Ff );_beebe .SetIfNotNil ("\u0056",_ebed .V );_beebe .SetIfNotNil ("\u0044\u0056",_ebed .DV );
|
||
_beebe .SetIfNotNil ("\u0041\u0041",_ebed .AA );return _degf ;};func _dccbga (_eefce *[]*PdfField ,_ccgb FieldFilterFunc ,_gcec bool )[]*PdfField {if _eefce ==nil {return nil ;};_bgbfg :=*_eefce ;if len (*_eefce )==0{return nil ;};_ccff :=_bgbfg [:0];if _ccgb ==nil {_ccgb =func (*PdfField )bool {return true };
|
||
};var _bffcd []*PdfField ;for _ ,_cfafc :=range _bgbfg {_fegf :=_ccgb (_cfafc );if _fegf {_bffcd =append (_bffcd ,_cfafc );if len (_cfafc .Kids )> 0{_bffcd =append (_bffcd ,_dccbga (&_cfafc .Kids ,_ccgb ,_gcec )...);};};if !_gcec ||!_fegf ||len (_cfafc .Kids )> 0{_ccff =append (_ccff ,_cfafc );
|
||
};};*_eefce =_ccff ;return _bffcd ;};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_bebag *PdfWriter )SetOCProperties (ocProperties _eg .PdfObject )error {_eedfe :=_bebag ._ebaaa ;if ocProperties !=nil {_dbg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_eedfe .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _bebag .addObjects (ocProperties );};return nil ;};
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_daebe *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_daebe .ToPdfOutline ().PdfOutlineTreeNode ;};
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;IC _eg .PdfObject ;RO _eg .PdfObject ;OverlayText _eg .PdfObject ;Repeat _eg .PdfObject ;DA _eg .PdfObject ;Q _eg .PdfObject ;};func (_gdgbd *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";
|
||
};
|
||
|
||
// 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 ;_fcec []byte ;_aaeac []float64 ;};
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_ggge :=NewPdfAnnotation ();_fgcc :=&PdfAnnotationMovie {};_fgcc .PdfAnnotation =_ggge ;_ggge .SetContext (_fgcc );return _fgcc ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_deca pdfFontType3 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){_bccd :=_deca .Encoder ();if _bccd ==nil {_dbg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_deca );
|
||
return _ab .CharMetrics {},false ;};_fbge ,_edag :=_bccd .RuneToCharcode (r );if !_edag {if r !=' '{_dbg .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 ,_deca );
|
||
};return _ab .CharMetrics {},false ;};_cbfa ,_eedbc :=_deca .GetCharMetrics (_fbge );return _cbfa ,_eedbc ;};
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _eg .PdfObject ;};
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_ddadg PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _ddadg ._gdcab .getFontDescriptor (),nil ;};
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};var _aced =_ge .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
|
||
func _geec (_cgdg string )map[string ]string {_abfca :=_aced .Split (_cgdg ,-1);_beed :=map[string ]string {};for _ ,_cgceg :=range _abfca {_ccde :=_bbed .FindStringSubmatch (_cgceg );if _ccde ==nil {continue ;};_daef ,_aafbc :=_ccde [1],_ccde [2];_beed [_daef ]=_aafbc ;
|
||
};return _beed ;};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_edbc *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_abgb ,_ceed :=color .(*PdfColorDeviceGray );if !_ceed {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_abgb ),float64 (*_abgb ),float64 (*_abgb )),nil ;};
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_bfef FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_bfef .Mask ()|fl .Mask ())};func (_ddeg *PdfReader )newPdfAnnotationMovieFromDict (_agfb *_eg .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_gedf :=PdfAnnotationMovie {};_gedf .T =_agfb .Get ("\u0054");
|
||
_gedf .Movie =_agfb .Get ("\u004d\u006f\u0076i\u0065");_gedf .A =_agfb .Get ("\u0041");return &_gedf ,nil ;};func (_edc *PdfReader )newPdfAnnotationStrikeOut (_babc *_eg .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_gcb :=PdfAnnotationStrikeOut {};
|
||
_dgc ,_bgbe :=_edc .newPdfAnnotationMarkupFromDict (_babc );if _bgbe !=nil {return nil ,_bgbe ;};_gcb .PdfAnnotationMarkup =_dgc ;_gcb .QuadPoints =_babc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gcb ,nil ;};func _aaaad (_bgcfd *_eg .PdfIndirectObject )(*PdfOutline ,error ){_dffag ,_bffec :=_bgcfd .PdfObject .(*_eg .PdfObjectDictionary );
|
||
if !_bffec {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_cfdec :=NewPdfOutline ();if _bdegg :=_dffag .Get ("\u0054\u0079\u0070\u0065");
|
||
_bdegg !=nil {_eddcd ,_bdad :=_bdegg .(*_eg .PdfObjectName );if _bdad {if *_eddcd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_dbg .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",*_eddcd );
|
||
};};};if _gcae :=_dffag .Get ("\u0043\u006f\u0075n\u0074");_gcae !=nil {_edgd ,_efdfe :=_eg .GetNumberAsInt64 (_gcae );if _efdfe !=nil {return nil ,_efdfe ;};_cfdec .Count =&_edgd ;};return _cfdec ,nil ;};func (_efe *PdfReader )newPdfActionGotoRFromDict (_baa *_eg .PdfObjectDictionary )(*PdfActionGoToR ,error ){_dfe ,_eecf :=_gbbe (_baa .Get ("\u0046"));
|
||
if _eecf !=nil {return nil ,_eecf ;};return &PdfActionGoToR {D :_baa .Get ("\u0044"),NewWindow :_baa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dfe },nil ;};func (_ggdbdd *PdfWriter )addObjects (_bbgdc _eg .PdfObject )error {_dbg .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");
|
||
if _ecgb ,_cgaa :=_bbgdc .(*_eg .PdfIndirectObject );_cgaa {_dbg .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_dbg .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_bbgdc ,_ecgb );_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_ecgb .PdfObject );
|
||
if _ggdbdd .addObject (_ecgb ){_fedeec :=_ggdbdd .addObjects (_ecgb .PdfObject );if _fedeec !=nil {return _fedeec ;};};return nil ;};if _ddfa ,_gfefa :=_bbgdc .(*_eg .PdfObjectStream );_gfefa {_dbg .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_dbg .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_bbgdc ,_bbgdc );
|
||
if _ggdbdd .addObject (_ddfa ){_gbcad :=_ggdbdd .addObjects (_ddfa .PdfObjectDictionary );if _gbcad !=nil {return _gbcad ;};};return nil ;};if _dbeac ,_eeade :=_bbgdc .(*_eg .PdfObjectDictionary );_eeade {_dbg .Log .Trace ("\u0044\u0069\u0063\u0074");_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_bbgdc );
|
||
for _ ,_cabfcg :=range _dbeac .Keys (){_fdea :=_dbeac .Get (_cabfcg );if _fcgga ,_agcc :=_fdea .(*_eg .PdfObjectReference );_agcc {_fdea =_fcgga .Resolve ();_dbeac .Set (_cabfcg ,_fdea );};if _cabfcg !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ffcfg :=_ggdbdd .addObjects (_fdea );
|
||
_ffcfg !=nil {return _ffcfg ;};}else {if _ ,_aeffe :=_fdea .(*_eg .PdfObjectNull );_aeffe {continue ;};if _fdgacf :=_ggdbdd .hasObject (_fdea );!_fdgacf {_dbg .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",_fdea ,_fdea ,_fdea );
|
||
_ggdbdd ._cfadb [_fdea ]=append (_ggdbdd ._cfadb [_fdea ],_dbeac );};};};return nil ;};if _gebee ,_cacg :=_bbgdc .(*_eg .PdfObjectArray );_cacg {_dbg .Log .Trace ("\u0041\u0072\u0072a\u0079");_dbg .Log .Trace ("\u002d\u0020\u0025\u0073",_bbgdc );if _gebee ==nil {return _bbd .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _agbcgc ,_ebaba :=range _gebee .Elements (){if _dcfd ,_ecgbf :=_ebaba .(*_eg .PdfObjectReference );_ecgbf {_ebaba =_dcfd .Resolve ();_gebee .Set (_agbcgc ,_ebaba );};if _aedcb :=_ggdbdd .addObjects (_ebaba );_aedcb !=nil {return _aedcb ;};};return nil ;
|
||
};if _ ,_cdbd :=_bbgdc .(*_eg .PdfObjectReference );_cdbd {_dbg .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",_bbgdc );
|
||
return _bbd .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_dcca :=&PdfFieldSignature {};_dcca .PdfField =NewPdfField ();_dcca .PdfField .SetContext (_dcca );_dcca .PdfAnnotationWidget =NewPdfAnnotationWidget ();_dcca .PdfAnnotationWidget .SetContext (_dcca );
|
||
_dcca .PdfAnnotationWidget ._gag =_dcca .PdfField ._afbe ;_dcca .T =_eg .MakeString ("");_dcca .F =_eg .MakeInteger (132);_dcca .V =signature ;return _dcca ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bdge *PdfAnnotation )GetContainingPdfObject ()_eg .PdfObject {return _bdge ._gag };
|
||
|
||
// 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 _eg .PdfObject ;_dbcc []byte ;_cbdga *_eg .PdfIndirectObject ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
|
||
|
||
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
|
||
// flags are specific.
|
||
type FieldFlag uint32 ;func _ebbgf (_bfcbc *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_ddgfc ,_dgge :=_eg .GetDict (_bfcbc .AP );if !_dgge {return nil ,nil ,_bbd .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 _ddgfc ==nil {return nil ,nil ,nil ;};_adae ,_dgge :=_eg .GetArray (_bfcbc .Rect );if !_dgge ||_adae .Len ()!=4{return nil ,nil ,_bbd .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_aaaef ,_facf :=NewPdfRectangle (*_adae );
|
||
if _facf !=nil {return nil ,nil ,_facf ;};_dfbe :=_eg .TraceToDirectObject (_ddgfc .Get ("\u004e"));switch _bgdad :=_dfbe .(type ){case *_eg .PdfObjectStream :_cgfa :=_bgdad ;_cabgg ,_ggebb :=NewXObjectFormFromStream (_cgfa );return _cabgg ,_aaaef ,_ggebb ;
|
||
case *_eg .PdfObjectDictionary :_geeb :=_bgdad ;_cbfec ,_ggcd :=_eg .GetName (_bfcbc .AS );if !_ggcd {return nil ,nil ,nil ;};if _geeb .Get (*_cbfec )==nil {_dbg .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 ;};_bdebb ,_ggcd :=_eg .GetStream (_geeb .Get (*_cbfec ));if !_ggcd {_dbg .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",_cbfec );
|
||
return nil ,nil ,_bbd .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_ddefc ,_aceg :=NewXObjectFormFromStream (_bdebb );return _ddefc ,_aaaef ,_aceg ;};_dbg .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_dfbe );
|
||
return nil ,nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
|
||
|
||
// 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 (_egcb *PdfFieldButton )SetType (btype ButtonType ){_eccf :=uint32 (0);if _egcb .Ff !=nil {_eccf =uint32 (*_egcb .Ff );};switch btype {case ButtonTypePush :_eccf |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_eccf |=FieldFlagRadio .Mask ();
|
||
};_egcb .Ff =_eg .MakeInteger (int64 (_eccf ));};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_gggb *PdfColorDeviceCMYK )Y ()float64 {return _gggb [2]};
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_cdgeg *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_bbd .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_aafbd *PdfColorspaceDeviceCMYK )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// 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 _eg .PdfObject ;FontFamily _eg .PdfObject ;FontStretch _eg .PdfObject ;FontWeight _eg .PdfObject ;Flags _eg .PdfObject ;FontBBox _eg .PdfObject ;ItalicAngle _eg .PdfObject ;Ascent _eg .PdfObject ;Descent _eg .PdfObject ;
|
||
Leading _eg .PdfObject ;CapHeight _eg .PdfObject ;XHeight _eg .PdfObject ;StemV _eg .PdfObject ;StemH _eg .PdfObject ;AvgWidth _eg .PdfObject ;MaxWidth _eg .PdfObject ;MissingWidth _eg .PdfObject ;FontFile _eg .PdfObject ;FontFile2 _eg .PdfObject ;FontFile3 _eg .PdfObject ;
|
||
CharSet _eg .PdfObject ;_eaafa int ;_afce float64 ;*fontFile ;_bgcbd *_ab .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _eg .PdfObject ;Lang _eg .PdfObject ;FD _eg .PdfObject ;CIDSet _eg .PdfObject ;_fcfbbf *_eg .PdfIndirectObject ;};
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_dccd :=PdfColorCalRGB {a ,b ,c };return &_dccd ;};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _eg .PdfObject ;};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _eg .PdfObject ;Name _eg .PdfObject ;};
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_gdce *Outline )Add (item *OutlineItem ){_gdce .Entries =append (_gdce .Entries ,item )};
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _eg .PdfObject )(*PdfFont ,error ){return _cdac (fontObj ,true )};
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_ggdf :=NewPdfOutline ();_ggdf ._dbaeb =&_ggdf ;return _ggdf };func (_bfeb *PdfReader )newPdfAnnotation3DFromDict (_bggc *_eg .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_gfbe :=PdfAnnotation3D {};_gfbe .T3DD =_bggc .Get ("\u0033\u0044\u0044");
|
||
_gfbe .T3DV =_bggc .Get ("\u0033\u0044\u0056");_gfbe .T3DA =_bggc .Get ("\u0033\u0044\u0041");_gfbe .T3DI =_bggc .Get ("\u0033\u0044\u0049");_gfbe .T3DB =_bggc .Get ("\u0033\u0044\u0042");return &_gfbe ,nil ;};
|
||
|
||
// String returns a string representation of the field.
|
||
func (_bgegc *PdfField )String ()string {if _bbfa ,_gdgbg :=_bgegc .ToPdfObject ().(*_eg .PdfIndirectObject );_gdgbg {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bgegc ._ceag ,_bbfa .PdfObject .String ());};return "";};func (_egec *fontFile )loadFromSegments (_bgfgg ,_bcbgc []byte )error {_dbg .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_bgfgg ),len (_bcbgc ));
|
||
_agce :=_egec .parseASCIIPart (_bgfgg );if _agce !=nil {return _agce ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_egec );if len (_bcbgc )==0{return nil ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_egec );
|
||
return nil ;};func (_bbaf *PdfAnnotation )String ()string {_feb :="";_daa ,_agg :=_bbaf .ToPdfObject ().(*_eg .PdfIndirectObject );if _agg {_feb =_e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bbaf ._ffbe ,_daa .PdfObject .String ());};return _feb ;
|
||
};func (_cefb *PdfReader )newPdfAnnotationScreenFromDict (_bbb *_eg .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_fgbe :=PdfAnnotationScreen {};_fgbe .T =_bbb .Get ("\u0054");_fgbe .MK =_bbb .Get ("\u004d\u004b");_fgbe .A =_bbb .Get ("\u0041");
|
||
_fgbe .AA =_bbb .Get ("\u0041\u0041");return &_fgbe ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_gdegb *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_cfdd *PdfReader )newPdfAnnotationFromIndirectObject (_degc *_eg .PdfIndirectObject )(*PdfAnnotation ,error ){_agb ,_ffgg :=_degc .PdfObject .(*_eg .PdfObjectDictionary );if !_ffgg {return nil ,_e .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_cfdd ._gced .GetModelFromPrimitive (_agb );model !=nil {_egg ,_aab :=model .(*PdfAnnotation );if !_aab {return nil ,_e .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
|
||
};return _egg ,nil ;};_egdf :=&PdfAnnotation {};_egdf ._gag =_degc ;_cfdd ._gced .Register (_agb ,_egdf );if _ebcde :=_agb .Get ("\u0054\u0079\u0070\u0065");_ebcde !=nil {_dcgb ,_egbg :=_ebcde .(*_eg .PdfObjectName );if !_egbg {_dbg .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",_ebcde );
|
||
}else {if *_dcgb !="\u0041\u006e\u006eo\u0074"{_dbg .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",*_dcgb );};};};
|
||
if _adbe :=_agb .Get ("\u0052\u0065\u0063\u0074");_adbe !=nil {_egdf .Rect =_adbe ;};if _afcf :=_agb .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_afcf !=nil {_egdf .Contents =_afcf ;};if _abbd :=_agb .Get ("\u0050");_abbd !=nil {_egdf .P =_abbd ;
|
||
};if _dafe :=_agb .Get ("\u004e\u004d");_dafe !=nil {_egdf .NM =_dafe ;};if _bdgd :=_agb .Get ("\u004d");_bdgd !=nil {_egdf .M =_bdgd ;};if _cfg :=_agb .Get ("\u0046");_cfg !=nil {_egdf .F =_cfg ;};if _gfgd :=_agb .Get ("\u0041\u0050");_gfgd !=nil {_egdf .AP =_gfgd ;
|
||
};if _gdag :=_agb .Get ("\u0041\u0053");_gdag !=nil {_egdf .AS =_gdag ;};if _gdeg :=_agb .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_gdeg !=nil {_egdf .Border =_gdeg ;};if _afb :=_agb .Get ("\u0043");_afb !=nil {_egdf .C =_afb ;};if _gdd :=_agb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_gdd !=nil {_egdf .StructParent =_gdd ;};if _ecgc :=_agb .Get ("\u004f\u0043");_ecgc !=nil {_egdf .OC =_ecgc ;};_cge :=_agb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _cge ==nil {_dbg .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");
|
||
_egdf ._ffbe =nil ;return _egdf ,nil ;};_ggbd ,_ecdg :=_cge .(*_eg .PdfObjectName );if !_ecdg {_dbg .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",_cge );
|
||
return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_cge );};switch *_ggbd {case "\u0054\u0065\u0078\u0074":_agfe ,_gadg :=_cfdd .newPdfAnnotationTextFromDict (_agb );
|
||
if _gadg !=nil {return nil ,_gadg ;};_agfe .PdfAnnotation =_egdf ;_egdf ._ffbe =_agfe ;return _egdf ,nil ;case "\u004c\u0069\u006e\u006b":_bed ,_dad :=_cfdd .newPdfAnnotationLinkFromDict (_agb );if _dad !=nil {return nil ,_dad ;};_bed .PdfAnnotation =_egdf ;
|
||
_egdf ._ffbe =_bed ;return _egdf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_dadb ,_cdge :=_cfdd .newPdfAnnotationFreeTextFromDict (_agb );if _cdge !=nil {return nil ,_cdge ;};_dadb .PdfAnnotation =_egdf ;_egdf ._ffbe =_dadb ;return _egdf ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_cdfd ,_gggg :=_cfdd .newPdfAnnotationLineFromDict (_agb );if _gggg !=nil {return nil ,_gggg ;};_cdfd .PdfAnnotation =_egdf ;_egdf ._ffbe =_cdfd ;_dbg .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",_egdf ,_egdf );
|
||
_dbg .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",_cdfd ,_cdfd );_dbg .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",_cdfd .PdfAnnotationMarkup ,_cdfd .PdfAnnotationMarkup );
|
||
return _egdf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_abgc ,_cfdb :=_cfdd .newPdfAnnotationSquareFromDict (_agb );if _cfdb !=nil {return nil ,_cfdb ;};_abgc .PdfAnnotation =_egdf ;_egdf ._ffbe =_abgc ;return _egdf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_eacb ,_fgffe :=_cfdd .newPdfAnnotationCircleFromDict (_agb );
|
||
if _fgffe !=nil {return nil ,_fgffe ;};_eacb .PdfAnnotation =_egdf ;_egdf ._ffbe =_eacb ;return _egdf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_bbcb ,_bgg :=_cfdd .newPdfAnnotationPolygonFromDict (_agb );if _bgg !=nil {return nil ,_bgg ;};_bbcb .PdfAnnotation =_egdf ;
|
||
_egdf ._ffbe =_bbcb ;return _egdf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_geee ,_aeff :=_cfdd .newPdfAnnotationPolyLineFromDict (_agb );if _aeff !=nil {return nil ,_aeff ;};_geee .PdfAnnotation =_egdf ;_egdf ._ffbe =_geee ;return _egdf ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_gdb ,_edd :=_cfdd .newPdfAnnotationHighlightFromDict (_agb );if _edd !=nil {return nil ,_edd ;};_gdb .PdfAnnotation =_egdf ;_egdf ._ffbe =_gdb ;return _egdf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_dde ,_dbgg :=_cfdd .newPdfAnnotationUnderlineFromDict (_agb );
|
||
if _dbgg !=nil {return nil ,_dbgg ;};_dde .PdfAnnotation =_egdf ;_egdf ._ffbe =_dde ;return _egdf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_fdfd ,_dge :=_cfdd .newPdfAnnotationSquigglyFromDict (_agb );if _dge !=nil {return nil ,_dge ;
|
||
};_fdfd .PdfAnnotation =_egdf ;_egdf ._ffbe =_fdfd ;return _egdf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fda ,_fdb :=_cfdd .newPdfAnnotationStrikeOut (_agb );if _fdb !=nil {return nil ,_fdb ;};_fda .PdfAnnotation =_egdf ;_egdf ._ffbe =_fda ;
|
||
return _egdf ,nil ;case "\u0043\u0061\u0072e\u0074":_cfgf ,_eaf :=_cfdd .newPdfAnnotationCaretFromDict (_agb );if _eaf !=nil {return nil ,_eaf ;};_cfgf .PdfAnnotation =_egdf ;_egdf ._ffbe =_cfgf ;return _egdf ,nil ;case "\u0053\u0074\u0061m\u0070":_dgaf ,_gbc :=_cfdd .newPdfAnnotationStampFromDict (_agb );
|
||
if _gbc !=nil {return nil ,_gbc ;};_dgaf .PdfAnnotation =_egdf ;_egdf ._ffbe =_dgaf ;return _egdf ,nil ;case "\u0049\u006e\u006b":_bebd ,_eadfg :=_cfdd .newPdfAnnotationInkFromDict (_agb );if _eadfg !=nil {return nil ,_eadfg ;};_bebd .PdfAnnotation =_egdf ;
|
||
_egdf ._ffbe =_bebd ;return _egdf ,nil ;case "\u0050\u006f\u0070u\u0070":_bcd ,_efcc :=_cfdd .newPdfAnnotationPopupFromDict (_agb );if _efcc !=nil {return nil ,_efcc ;};_bcd .PdfAnnotation =_egdf ;_egdf ._ffbe =_bcd ;return _egdf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bae ,_dbge :=_cfdd .newPdfAnnotationFileAttachmentFromDict (_agb );
|
||
if _dbge !=nil {return nil ,_dbge ;};_bae .PdfAnnotation =_egdf ;_egdf ._ffbe =_bae ;return _egdf ,nil ;case "\u0053\u006f\u0075n\u0064":_dfeg ,_ddee :=_cfdd .newPdfAnnotationSoundFromDict (_agb );if _ddee !=nil {return nil ,_ddee ;};_dfeg .PdfAnnotation =_egdf ;
|
||
_egdf ._ffbe =_dfeg ;return _egdf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ggeb ,_cfce :=_cfdd .newPdfAnnotationRichMediaFromDict (_agb );if _cfce !=nil {return nil ,_cfce ;};_ggeb .PdfAnnotation =_egdf ;_egdf ._ffbe =_ggeb ;return _egdf ,nil ;
|
||
case "\u004d\u006f\u0076i\u0065":_aefd ,_cdecb :=_cfdd .newPdfAnnotationMovieFromDict (_agb );if _cdecb !=nil {return nil ,_cdecb ;};_aefd .PdfAnnotation =_egdf ;_egdf ._ffbe =_aefd ;return _egdf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_efef ,_ccf :=_cfdd .newPdfAnnotationScreenFromDict (_agb );
|
||
if _ccf !=nil {return nil ,_ccf ;};_efef .PdfAnnotation =_egdf ;_egdf ._ffbe =_efef ;return _egdf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_aaa ,_adab :=_cfdd .newPdfAnnotationWidgetFromDict (_agb );if _adab !=nil {return nil ,_adab ;};_aaa .PdfAnnotation =_egdf ;
|
||
_egdf ._ffbe =_aaa ;return _egdf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_cgeb ,_egff :=_cfdd .newPdfAnnotationPrinterMarkFromDict (_agb );if _egff !=nil {return nil ,_egff ;};_cgeb .PdfAnnotation =_egdf ;_egdf ._ffbe =_cgeb ;
|
||
return _egdf ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_effd ,_bga :=_cfdd .newPdfAnnotationTrapNetFromDict (_agb );if _bga !=nil {return nil ,_bga ;};_effd .PdfAnnotation =_egdf ;_egdf ._ffbe =_effd ;return _egdf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fae ,_bca :=_cfdd .newPdfAnnotationWatermarkFromDict (_agb );
|
||
if _bca !=nil {return nil ,_bca ;};_fae .PdfAnnotation =_egdf ;_egdf ._ffbe =_fae ;return _egdf ,nil ;case "\u0033\u0044":_gfcb ,_fge :=_cfdd .newPdfAnnotation3DFromDict (_agb );if _fge !=nil {return nil ,_fge ;};_gfcb .PdfAnnotation =_egdf ;_egdf ._ffbe =_gfcb ;
|
||
return _egdf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_ggbf ,_feg :=_cfdd .newPdfAnnotationProjectionFromDict (_agb );if _feg !=nil {return nil ,_feg ;};_ggbf .PdfAnnotation =_egdf ;_egdf ._ffbe =_ggbf ;return _egdf ,nil ;
|
||
case "\u0052\u0065\u0064\u0061\u0063\u0074":_bde ,_dfcd :=_cfdd .newPdfAnnotationRedactFromDict (_agb );if _dfcd !=nil {return nil ,_dfcd ;};_bde .PdfAnnotation =_egdf ;_egdf ._ffbe =_bde ;return _egdf ,nil ;};_dbg .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",*_ggbd );
|
||
return nil ,nil ;};
|
||
|
||
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorDeviceCMYK [4]float64 ;func (_bgea *PdfReader )newPdfAnnotationStampFromDict (_abgf *_eg .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_cegc :=PdfAnnotationStamp {};_eag ,_aea :=_bgea .newPdfAnnotationMarkupFromDict (_abgf );if _aea !=nil {return nil ,_aea ;
|
||
};_cegc .PdfAnnotationMarkup =_eag ;_cegc .Name =_abgf .Get ("\u004e\u0061\u006d\u0065");return &_cegc ,nil ;};
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_egca *Image )SetAlpha (alpha []byte ){_egca ._fcec =alpha };
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_ecbbf *PdfPattern )ToPdfObject ()_eg .PdfObject {_bebcg :=_ecbbf .getDict ();_bebcg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_bebcg .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (_ecbbf .PatternType ));
|
||
return _ecbbf ._cfaag ;};
|
||
|
||
// 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 *_eg .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_cegff *_eg .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_caa *PdfColorspaceDeviceRGB )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_dfcebd *PdfDate )ToPdfObject ()_eg .PdfObject {_cabef :=_e .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_dfcebd ._cggcf ,_dfcebd ._agfdbf ,_dfcebd ._ebfff ,_dfcebd ._bfabc ,_dfcebd ._edagg ,_dfcebd ._ggcbe ,_dfcebd ._facfb ,_dfcebd ._gaggg ,_dfcebd ._daabe );
|
||
return _eg .MakeString (_cabef );};func (_ggbe *pdfFontSimple )addEncoding ()error {var (_fdcdd string ;_dbgd map[_cec .CharCode ]_cec .GlyphName ;_adeafb _cec .SimpleEncoder ;);if _ggbe .Encoder ()!=nil {_dbcf ,_ffggd :=_ggbe .Encoder ().(_cec .SimpleEncoder );
|
||
if _ffggd &&_dbcf !=nil {_fdcdd =_dbcf .BaseName ();};};if _ggbe .Encoding !=nil {_ebcae ,_ddeba ,_ffad :=_ggbe .getFontEncoding ();if _ffad !=nil {_dbg .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",_ggbe ._cfab ,_ggbe ._fgbbb ,_ggbe .Encoding ,_ggbe .Encoding ,_ffad );
|
||
return _ffad ;};if _ebcae !=""{_fdcdd =_ebcae ;};_dbgd =_ddeba ;_adeafb ,_ffad =_cec .NewSimpleTextEncoder (_fdcdd ,_dbgd );if _ffad !=nil {return _ffad ;};};if _adeafb ==nil {_gfbca :=_ggbe ._eecfe ;if _gfbca !=nil {switch _ggbe ._fgbbb {case "\u0054\u0079\u0070e\u0031":if _gfbca .fontFile !=nil &&_gfbca .fontFile ._feffd !=nil {_dbg .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_adeafb =_gfbca .fontFile ._feffd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _gfbca ._bgcbd !=nil {_dbg .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_cgfac ,_dbbgb :=_gfbca ._bgcbd .MakeEncoder ();
|
||
if _dbbgb ==nil {_adeafb =_cgfac ;};};};};};if _adeafb !=nil {if _dbgd !=nil {_dbg .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_dbgd ,_ggbe .baseFields ());
|
||
_adeafb =_cec .ApplyDifferences (_adeafb ,_dbgd );};_ggbe .SetEncoder (_adeafb );};return nil ;};
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;
|
||
|
||
// 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 *_eg .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};func (_ffec *PdfReader )newPdfAnnotationInkFromDict (_dfdd *_eg .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_cee :=PdfAnnotationInk {};
|
||
_bfba ,_gffc :=_ffec .newPdfAnnotationMarkupFromDict (_dfdd );if _gffc !=nil {return nil ,_gffc ;};_cee .PdfAnnotationMarkup =_bfba ;_cee .InkList =_dfdd .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_cee .BS =_dfdd .Get ("\u0042\u0053");return &_cee ,nil ;
|
||
};
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _eg .PdfObject ;PreserveRB _eg .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fe *PdfActionTrans )ToPdfObject ()_eg .PdfObject {_fe .PdfAction .ToPdfObject ();_gfd :=_fe ._ege ;_gae :=_gfd .PdfObject .(*_eg .PdfObjectDictionary );_gae .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeTrans )));_gae .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fe .Trans );
|
||
return _gfd ;};
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _eg .PdfObject )(*PdfFilespec ,error ){_afad :=&PdfFilespec {};var _bcdc *_eg .PdfObjectDictionary ;if _ccga ,_eggg :=_eg .GetIndirect (obj );_eggg {_afad ._fceg =_ccga ;_ffaa ,_aefa :=_eg .GetDict (_ccga .PdfObject );if !_aefa {_dbg .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 ,_eg .ErrTypeError ;};_bcdc =_ffaa ;}else if _dbgae ,_fdega :=_eg .GetDict (obj );_fdega {_afad ._fceg =_dbgae ;_bcdc =_dbgae ;}else {_dbg .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 ,_eg .ErrTypeError ;};if _bcdc ==nil {_dbg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bbd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};if _fgeff :=_bcdc .Get ("\u0054\u0079\u0070\u0065");_fgeff !=nil {_gdcb ,_ddge :=_fgeff .(*_eg .PdfObjectName );if !_ddge {_dbg .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",_fgeff );
|
||
}else {if *_gdcb !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_dbg .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",*_gdcb );
|
||
};};};if _aebec :=_bcdc .Get ("\u0046\u0053");_aebec !=nil {_afad .FS =_aebec ;};if _ggfb :=_bcdc .Get ("\u0046");_ggfb !=nil {_afad .F =_ggfb ;};if _dedd :=_bcdc .Get ("\u0055\u0046");_dedd !=nil {_afad .UF =_dedd ;};if _gbbcb :=_bcdc .Get ("\u0044\u004f\u0053");
|
||
_gbbcb !=nil {_afad .DOS =_gbbcb ;};if _dcbf :=_bcdc .Get ("\u004d\u0061\u0063");_dcbf !=nil {_afad .Mac =_dcbf ;};if _edgfd :=_bcdc .Get ("\u0055\u006e\u0069\u0078");_edgfd !=nil {_afad .Unix =_edgfd ;};if _bafd :=_bcdc .Get ("\u0049\u0044");_bafd !=nil {_afad .ID =_bafd ;
|
||
};if _cabcee :=_bcdc .Get ("\u0056");_cabcee !=nil {_afad .V =_cabcee ;};if _edfef :=_bcdc .Get ("\u0045\u0046");_edfef !=nil {_afad .EF =_edfef ;};if _agfeb :=_bcdc .Get ("\u0052\u0046");_agfeb !=nil {_afad .RF =_agfeb ;};if _ecdc :=_bcdc .Get ("\u0044\u0065\u0073\u0063");
|
||
_ecdc !=nil {_afad .Desc =_ecdc ;};if _dggaa :=_bcdc .Get ("\u0043\u0049");_dggaa !=nil {_afad .CI =_dggaa ;};return _afad ,nil ;};
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};func _cafa (_bcfb _eg .PdfObject )(*PdfColorspaceDeviceN ,error ){_bgeg :=NewPdfColorspaceDeviceN ();if _gdfg ,_cefbf :=_bcfb .(*_eg .PdfIndirectObject );
|
||
_cefbf {_bgeg ._cedg =_gdfg ;};_bcfb =_eg .TraceToDirectObject (_bcfb );_bcgc ,_adda :=_bcfb .(*_eg .PdfObjectArray );if !_adda {return nil ,_e .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if _bcgc .Len ()!=4&&_bcgc .Len ()!=5{return nil ,_e .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_bcfb =_bcgc .Get (0);
|
||
_baf ,_adda :=_bcfb .(*_eg .PdfObjectName );if !_adda {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_baf !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_e .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_bcfb =_bcgc .Get (1);
|
||
_bcfb =_eg .TraceToDirectObject (_bcfb );_dbbfc ,_adda :=_bcfb .(*_eg .PdfObjectArray );if !_adda {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_bgeg .ColorantNames =_dbbfc ;_bcfb =_bcgc .Get (2);_gefc ,_dcdcd :=NewPdfColorspaceFromPdfObject (_bcfb );if _dcdcd !=nil {return nil ,_dcdcd ;};_bgeg .AlternateSpace =_gefc ;_gfag ,_dcdcd :=_dgbga (_bcgc .Get (3));if _dcdcd !=nil {return nil ,_dcdcd ;
|
||
};_bgeg .TintTransform =_gfag ;if _bcgc .Len ()==5{_adbc ,_bdebg :=_fegg (_bcgc .Get (4));if _bdebg !=nil {return nil ,_bdebg ;};_bgeg .Attributes =_adbc ;};return _bgeg ,nil ;};
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_cbfgc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_bedba ,_eegcag :=_eg .GetDict (_cbfgc ._ebaaa .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_eegcag {_bedba =_eg .MakeDict ();_cbfgc ._ebaaa .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_bedba );
|
||
};_ffdeg ,_eegcag :=_eg .GetDict (_bedba .Get (_eg .PdfObjectName (extName )));if !_eegcag {_ffdeg =_eg .MakeDict ();_bedba .Set (_eg .PdfObjectName (extName ),_ffdeg );};if _eebf ,_ :=_eg .GetNameVal (_ffdeg .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_eebf !=baseVersion {_ffdeg .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_eg .MakeName (baseVersion ));};if _beggf ,_ :=_eg .GetIntVal (_ffdeg .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_beggf !=extLevel {_ffdeg .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_eg .MakeInteger (int64 (extLevel )));};};
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_dcec *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_dcec .HiVal )};};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_cbde *PdfInfo )GetCustomInfo (name string )*_eg .PdfObjectString {var _gbeg *_eg .PdfObjectString ;if _cbde ._fbfgb ==nil {return _gbeg ;};if _eabg ,_dfaf :=_cbde ._fbfgb .Get (*_eg .MakeName (name )).(*_eg .PdfObjectString );_dfaf {_gbeg =_eabg ;
|
||
};return _gbeg ;};var _ccad =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":{}};
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aeaf *PdfAnnotationUnderline )ToPdfObject ()_eg .PdfObject {_aeaf .PdfAnnotation .ToPdfObject ();_ccb :=_aeaf ._gag ;_dac :=_ccb .PdfObject .(*_eg .PdfObjectDictionary );_aeaf .PdfAnnotationMarkup .appendToPdfDictionary (_dac );_dac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_dac .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aeaf .QuadPoints );return _ccb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ffga *PdfAnnotationStamp )ToPdfObject ()_eg .PdfObject {_ffga .PdfAnnotation .ToPdfObject ();_afgc :=_ffga ._gag ;_cbea :=_afgc .PdfObject .(*_eg .PdfObjectDictionary );_ffga .PdfAnnotationMarkup .appendToPdfDictionary (_cbea );_cbea .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_cbea .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ffga .Name );return _afgc ;};
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_eg .PdfObjectString ;Q *_eg .PdfObjectInteger ;DS *_eg .PdfObjectString ;RV _eg .PdfObject ;MaxLen *_eg .PdfObjectInteger ;};
|
||
|
||
// 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 ;_daaf *_eg .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_add *PdfActionSetOCGState )ToPdfObject ()_eg .PdfObject {_add .PdfAction .ToPdfObject ();_abg :=_add ._ege ;_egf :=_abg .PdfObject .(*_eg .PdfObjectDictionary );_egf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSetOCGState )));_egf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_add .State );
|
||
_egf .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_add .PreserveRB );return _abg ;};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_abd :=NewPdfAnnotation ();_aeg :=&PdfAnnotationSound {};_aeg .PdfAnnotation =_abd ;_aeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_abd .SetContext (_aeg );return _aeg ;};
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_eeff *BorderStyle )GetPdfName ()string {switch *_eeff {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_ddcg :=NewPdfAnnotation ();_cgcd :=&PdfAnnotationUnderline {};_cgcd .PdfAnnotation =_ddcg ;_cgcd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddcg .SetContext (_cgcd );return _cgcd ;};
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_gddd *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _gddd ._egge !=nil {return _gddd ._egge ,nil ;};if _gddd .Annots ==nil {_gddd ._egge =[]*PdfAnnotation {};return nil ,nil ;};if _gddd ._fdfdec ==nil {_gddd ._egge =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_eafff ,_bgfcf :=_gddd ._fdfdec .loadAnnotations (_gddd .Annots );if _bgfcf !=nil {return nil ,_bgfcf ;};if _eafff ==nil {_gddd ._egge =[]*PdfAnnotation {};};_gddd ._egge =_eafff ;return _gddd ._egge ,nil ;};
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_ebg :=NewPdfAction ();_cab :=&PdfActionImportData {};_cab .PdfAction =_ebg ;_ebg .SetContext (_cab );return _cab ;};
|
||
|
||
// 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 (_fbgf *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbgbg :=vals [0];if _dbgbg < 0.0||_dbgbg > 100.0{_dbg .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",_dbgbg );
|
||
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgca :=vals [1];_bfcd :=float64 (-100);_dcde :=float64 (100);if len (_fbgf .Range )> 1{_bfcd =_fbgf .Range [0];_dcde =_fbgf .Range [1];};if _dgca < _bfcd ||_dgca > _dcde {_dbg .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",_dgca ,_bfcd ,_dcde );
|
||
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eebga :=vals [2];_ggaa :=float64 (-100);_ebgfb :=float64 (100);if len (_fbgf .Range )> 3{_ggaa =_fbgf .Range [2];_ebgfb =_fbgf .Range [3];};if _eebga < _ggaa ||_eebga > _ebgfb {_dbg .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",_eebga ,_ggaa ,_ebgfb );
|
||
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dce :=NewPdfColorLab (_dbgbg ,_dgca ,_eebga );return _dce ,nil ;};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_cgcf :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_cgcf .N =N ;return _cgcf ,nil ;};
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_adaa *PdfPageResources )SetFontByName (keyName _eg .PdfObjectName ,obj _eg .PdfObject )error {if _adaa .Font ==nil {_adaa .Font =_eg .MakeDict ();};_bdcec ,_ageca :=_eg .TraceToDirectObject (_adaa .Font ).(*_eg .PdfObjectDictionary );if !_ageca {_dbg .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",_eg .TraceToDirectObject (_adaa .Font ));
|
||
return _eg .ErrTypeError ;};_bdcec .Set (keyName ,obj );return nil ;};
|
||
|
||
// PdfTilingPattern is a Tiling pattern that consists of repetitions of a pattern cell with defined intervals.
|
||
// It is a type 1 pattern. (PatternType = 1).
|
||
// A tiling pattern is represented by a stream object, where the stream content is
|
||
// a content stream that describes the pattern cell.
|
||
type PdfTilingPattern struct{*PdfPattern ;PaintType *_eg .PdfObjectInteger ;TilingType *_eg .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_eg .PdfObjectFloat ;YStep *_eg .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_eg .PdfObjectArray ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ffgeg *PdfFont )Encoder ()_cec .TextEncoder {_gggge :=_ffgeg .actualFont ();if _gggge ==nil {_dbg .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",_ffgeg ._gdcab );
|
||
return nil ;};return _gggge .Encoder ();};func (_feadd *LTV )validateSig (_ccdb *PdfSignature )error {if _ccdb ==nil ||_ccdb .Contents ==nil ||len (_ccdb .Contents .Bytes ())==0{return _e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_ccdb );
|
||
};return nil ;};func _aadg (_fffef *PdfPage )map[_eg .PdfObjectName ]_eg .PdfObject {_cacf :=make (map[_eg .PdfObjectName ]_eg .PdfObject );if _fffef .Resources ==nil {return _cacf ;};if _fffef .Resources .Font !=nil {if _fad ,_gbcf :=_eg .GetDict (_fffef .Resources .Font );
|
||
_gbcf {for _ ,_bedg :=range _fad .Keys (){_cacf [_bedg ]=_fad .Get (_bedg );};};};if _fffef .Resources .ExtGState !=nil {if _cdbe ,_cfdf :=_eg .GetDict (_fffef .Resources .ExtGState );_cfdf {for _ ,_fedcfd :=range _cdbe .Keys (){_cacf [_fedcfd ]=_cdbe .Get (_fedcfd );
|
||
};};};if _fffef .Resources .XObject !=nil {if _ccbc ,_bbdc :=_eg .GetDict (_fffef .Resources .XObject );_bbdc {for _ ,_ebag :=range _ccbc .Keys (){_cacf [_ebag ]=_ccbc .Get (_ebag );};};};if _fffef .Resources .Pattern !=nil {if _accd ,_facb :=_eg .GetDict (_fffef .Resources .Pattern );
|
||
_facb {for _ ,_affd :=range _accd .Keys (){_cacf [_affd ]=_accd .Get (_affd );};};};if _fffef .Resources .Shading !=nil {if _bbbd ,_gfadb :=_eg .GetDict (_fffef .Resources .Shading );_gfadb {for _ ,_fdgc :=range _bbbd .Keys (){_cacf [_fdgc ]=_bbbd .Get (_fdgc );
|
||
};};};if _fffef .Resources .ProcSet !=nil {if _efbf ,_fdae :=_eg .GetDict (_fffef .Resources .ProcSet );_fdae {for _ ,_begef :=range _efbf .Keys (){_cacf [_begef ]=_efbf .Get (_begef );};};};if _fffef .Resources .Properties !=nil {if _gcaf ,_dddf :=_eg .GetDict (_fffef .Resources .Properties );
|
||
_dddf {for _ ,_aafb :=range _gcaf .Keys (){_cacf [_aafb ]=_gcaf .Get (_aafb );};};};return _cacf ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
|
||
);
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_eedf *PdfFieldText )ToPdfObject ()_eg .PdfObject {_eedf .PdfField .ToPdfObject ();_gdbce :=_eedf ._afbe ;_fddg :=_gdbce .PdfObject .(*_eg .PdfObjectDictionary );_fddg .Set ("\u0046\u0054",_eg .MakeName ("\u0054\u0078"));if _eedf .DA !=nil {_fddg .Set ("\u0044\u0041",_eedf .DA );
|
||
};if _eedf .Q !=nil {_fddg .Set ("\u0051",_eedf .Q );};if _eedf .DS !=nil {_fddg .Set ("\u0044\u0053",_eedf .DS );};if _eedf .RV !=nil {_fddg .Set ("\u0052\u0056",_eedf .RV );};if _eedf .MaxLen !=nil {_fddg .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_eedf .MaxLen );
|
||
};return _gdbce ;};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_fbgee *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_dbebd :=PdfInfo {};_dcafg ,_bfecaa :=_fbgee .GetTrailer ();if _bfecaa !=nil {return nil ,_bfecaa ;};var _ebda *_eg .PdfObjectDictionary ;_bfbcg :=_dcafg .Get ("\u0049\u006e\u0066\u006f");switch _bddaab :=_bfbcg .(type ){case *_eg .PdfObjectReference :_faeaa :=_bddaab ;
|
||
_bfbcg ,_bfecaa =_fbgee .GetIndirectObjectByNumber (int (_faeaa .ObjectNumber ));_bfbcg =_eg .TraceToDirectObject (_bfbcg );if _bfecaa !=nil {return nil ,_bfecaa ;};_ebda ,_ =_bfbcg .(*_eg .PdfObjectDictionary );case *_eg .PdfObjectDictionary :_ebda =_bddaab ;
|
||
};if _ebda ==nil {return nil ,_bbd .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};for _ ,_deeda :=range _ebda .Keys (){switch _deeda {case "\u0054\u0069\u0074l\u0065":_dbebd .Title ,_ =_eg .GetString (_ebda .Get ("\u0054\u0069\u0074l\u0065"));
|
||
case "\u0041\u0075\u0074\u0068\u006f\u0072":_dbebd .Author ,_ =_eg .GetString (_ebda .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));case "\u0053u\u0062\u006a\u0065\u0063\u0074":_dbebd .Subject ,_ =_eg .GetString (_ebda .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));
|
||
case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_dbebd .Keywords ,_ =_eg .GetString (_ebda .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));case "\u0043r\u0065\u0061\u0074\u006f\u0072":_dbebd .Creator ,_ =_eg .GetString (_ebda .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));
|
||
case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_dbebd .Producer ,_ =_eg .GetString (_ebda .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));case "\u0054r\u0061\u0070\u0070\u0065\u0064":_dbebd .Trapped ,_ =_eg .GetName (_ebda .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));
|
||
case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _adcda ,_bedbf :=_eg .GetString (_ebda .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));_bedbf &&_adcda .String ()!=""{_dbcaa ,_edgfg :=NewPdfDate (_adcda .String ());
|
||
if _edgfg !=nil {return nil ,_edgfg ;};_dbebd .CreationDate =&_dbcaa ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _abea ,_bcgab :=_eg .GetString (_ebda .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_bcgab &&_abea .String ()!=""{_cfgeb ,_bdfab :=NewPdfDate (_abea .String ());
|
||
if _bdfab !=nil {return nil ,_bdfab ;};_dbebd .ModifiedDate =&_cfgeb ;};default:_befcf ,_ :=_eg .GetString (_ebda .Get (_deeda ));if _dbebd ._fbfgb ==nil {_dbebd ._fbfgb =_eg .MakeDict ();};_dbebd ._fbfgb .Set (_deeda ,_befcf );};};return &_dbebd ,nil ;
|
||
};func (_efca *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _efca ._eecfe };func (_fbfff *pdfFontSimple )baseFields ()*fontCommon {return &_fbfff .fontCommon };
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_dcccd *XObjectImage )ToPdfObject ()_eg .PdfObject {_fgdd :=_dcccd ._dcdb ;_dagec :=_fgdd .PdfObjectDictionary ;if _dcccd .Filter !=nil {_dagec =_dcccd .Filter .MakeStreamDict ();_fgdd .PdfObjectDictionary =_dagec ;};_dagec .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_dagec .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0049\u006d\u0061g\u0065"));_dagec .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (*(_dcccd .Width )));_dagec .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (*(_dcccd .Height )));
|
||
if _dcccd .BitsPerComponent !=nil {_dagec .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (*(_dcccd .BitsPerComponent )));};if _dcccd .ColorSpace !=nil {_dagec .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_dcccd .ColorSpace .ToPdfObject ());
|
||
};_dagec .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_dcccd .Intent );_dagec .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_dcccd .ImageMask );_dagec .SetIfNotNil ("\u004d\u0061\u0073\u006b",_dcccd .Mask );_fgbcg :=_dagec .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
|
||
if _dcccd .Decode ==nil &&_fgbcg {_dagec .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _dcccd .Decode !=nil {_dagec .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dcccd .Decode );};_dagec .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_dcccd .Interpolate );
|
||
_dagec .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_dcccd .Alternatives );_dagec .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_dcccd .SMask );_dagec .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_dcccd .SMaskInData );
|
||
_dagec .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dcccd .Matte );_dagec .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dcccd .Name );_dagec .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dcccd .StructParent );_dagec .SetIfNotNil ("\u0049\u0044",_dcccd .ID );
|
||
_dagec .SetIfNotNil ("\u004f\u0050\u0049",_dcccd .OPI );_dagec .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dcccd .Metadata );_dagec .SetIfNotNil ("\u004f\u0043",_dcccd .OC );_dagec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_dcccd .Stream ))));
|
||
_fgdd .Stream =_dcccd .Stream ;return _fgdd ;};
|
||
|
||
// 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 (_fbcg *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _fbcg .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_dafgd *PdfTilingPattern )ToPdfObject ()_eg .PdfObject {_dafgd .PdfPattern .ToPdfObject ();_fffcg :=_dafgd .getDict ();if _dafgd .PaintType !=nil {_fffcg .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_dafgd .PaintType );};if _dafgd .TilingType !=nil {_fffcg .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_dafgd .TilingType );
|
||
};if _dafgd .BBox !=nil {_fffcg .Set ("\u0042\u0042\u006f\u0078",_dafgd .BBox .ToPdfObject ());};if _dafgd .XStep !=nil {_fffcg .Set ("\u0058\u0053\u0074e\u0070",_dafgd .XStep );};if _dafgd .YStep !=nil {_fffcg .Set ("\u0059\u0053\u0074e\u0070",_dafgd .YStep );
|
||
};if _dafgd .Resources !=nil {_fffcg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_dafgd .Resources .ToPdfObject ());};if _dafgd .Matrix !=nil {_fffcg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dafgd .Matrix );};return _dafgd ._cfaag ;};
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_egbeg .Lock ();defer _egbeg .Unlock ();_gfcae =subject };
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eg .PdfObject ;LE _eg .PdfObject ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;IT _eg .PdfObject ;Measure _eg .PdfObject ;};func (_ddad *PdfReader )newPdfAnnotationRedactFromDict (_bfbag *_eg .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_fdeef :=PdfAnnotationRedact {};
|
||
_cgcg ,_effda :=_ddad .newPdfAnnotationMarkupFromDict (_bfbag );if _effda !=nil {return nil ,_effda ;};_fdeef .PdfAnnotationMarkup =_cgcg ;_fdeef .QuadPoints =_bfbag .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fdeef .IC =_bfbag .Get ("\u0049\u0043");
|
||
_fdeef .RO =_bfbag .Get ("\u0052\u004f");_fdeef .OverlayText =_bfbag .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_fdeef .Repeat =_bfbag .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_fdeef .DA =_bfbag .Get ("\u0044\u0041");_fdeef .Q =_bfbag .Get ("\u0051");
|
||
return &_fdeef ,nil ;};
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _eg .PdfObject ;};type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_feec *PdfColorDeviceRGB )G ()float64 {return _feec [1]};
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_eafd *PdfColorCalGray )GetNumComponents ()int {return 1};func (_bdafg *fontFile )parseASCIIPart (_ffbfg []byte )error {if len (_ffbfg )< 2||string (_ffbfg [:2])!="\u0025\u0021"{return _bbd .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");
|
||
};_egggc ,_faacg ,_fcega :=_eced (_ffbfg );if _fcega !=nil {return _fcega ;};_aeag :=_geec (_egggc );_bdafg ._dadg =_aeag ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _bdafg ._dadg ==""{_dbg .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 _faacg !=""{_edffc ,_cacdb :=_ddaab (_faacg );if _cacdb !=nil {return _cacdb ;};_defeg ,_cacdb :=_cec .NewCustomSimpleTextEncoder (_edffc ,nil );if _cacdb !=nil {_dbg .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",_cacdb );
|
||
return nil ;};_bdafg ._feffd =_defeg ;};return nil ;};
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_eba :=NewPdfAnnotation ();_fgd :=&PdfAnnotation3D {};_fgd .PdfAnnotation =_eba ;_eba .SetContext (_fgd );return _fgd ;};func _gbbed (_ccgda []byte )bool {if len (_ccgda )< 4{return true ;};for _cceec :=range _ccgda [:4]{_dccdg :=rune (_cceec );
|
||
if !_cg .Is (_cg .ASCII_Hex_Digit ,_dccdg )&&!_cg .IsSpace (_dccdg ){return true ;};};return false ;};func (_bgad *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bgad .fontCommon };
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _eg .PdfObject ;Popup *PdfAnnotationPopup ;CA _eg .PdfObject ;RC _eg .PdfObject ;CreationDate _eg .PdfObject ;IRT _eg .PdfObject ;Subj _eg .PdfObject ;RT _eg .PdfObject ;IT _eg .PdfObject ;ExData _eg .PdfObject ;};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_gffda DefaultImageHandler )Read (reader _de .Reader )(*Image ,error ){_efce ,_ ,_efgag :=_ec .Decode (reader );if _efgag !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_efgag );
|
||
return nil ,_efgag ;};return _gffda .NewImageFromGoImage (_efce );};
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_ebbc *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func (_fec fontCommon )fontFlags ()int {if _fec ._eecfe ==nil {return 0;};return _fec ._eecfe ._eaafa ;};func _edgbb ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _bbgff };
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;func (_cefeg *PdfField )inherit (_cdcfa func (*PdfField )bool )(bool ,error ){_gbceg :=map[*PdfField ]bool {};_cbbfe :=false ;_bgbg :=_cefeg ;for _bgbg !=nil {if _ ,_eece :=_gbceg [_bgbg ];_eece {return false ,_bbd .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");
|
||
};_cdfa :=_cdcfa (_bgbg );if _cdfa {_cbbfe =true ;break ;};_gbceg [_bgbg ]=true ;_bgbg =_bgbg .Parent ;};return _cbbfe ,nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_fcfec *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_ecea *PdfFont )ToPdfObject ()_eg .PdfObject {if _ecea ._gdcab ==nil {_dbg .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 _eg .MakeNull ();
|
||
};return _ecea ._gdcab .ToPdfObject ();};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gfef *PdfAnnotationWatermark )ToPdfObject ()_eg .PdfObject {_gfef .PdfAnnotation .ToPdfObject ();_cfe :=_gfef ._gag ;_acbe :=_cfe .PdfObject .(*_eg .PdfObjectDictionary );_acbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_acbe .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_gfef .FixedPrint );return _cfe ;};
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_cbge *PdfColorLab )L ()float64 {return _cbge [0]};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_eeffb pdfFontType3 )Encoder ()_cec .TextEncoder {return _eeffb ._daeg };
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _eg .PdfObject ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_cfdea *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_dbg .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_bccdc :=[]float64 {0.0};if _cfdea .C0 !=nil {_bccdc =_cfdea .C0 ;};_cgbeg :=[]float64 {1.0};if _cfdea .C1 !=nil {_cgbeg =_cfdea .C1 ;};var _eadff []float64 ;for _dcfb :=0;_dcfb < len (_bccdc );_dcfb ++{_dcgc :=_bccdc [_dcfb ]+_bc .Pow (x [0],_cfdea .N )*(_cgbeg [_dcfb ]-_bccdc [_dcfb ]);
|
||
_eadff =append (_eadff ,_dcgc );};return _eadff ,nil ;};func _dgbga (_ceac _eg .PdfObject )(PdfFunction ,error ){_ceac =_eg .ResolveReference (_ceac );if _cfabg ,_bbdbg :=_ceac .(*_eg .PdfObjectStream );_bbdbg {_cbbdf :=_cfabg .PdfObjectDictionary ;_ecbd ,_gada :=_cbbdf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger );
|
||
if !_gada {_dbg .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 ,_bbd .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 *_ecbd ==0{return _adecc (_cfabg );}else if *_ecbd ==4{return _cddff (_cfabg );}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _fcaa ,_fbfee :=_ceac .(*_eg .PdfIndirectObject );
|
||
_fbfee {_cbacd ,_gaega :=_fcaa .PdfObject .(*_eg .PdfObjectDictionary );if !_gaega {_dbg .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 ,_bbd .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");};_ggbfab ,_gaega :=_cbacd .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger );
|
||
if !_gaega {_dbg .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 ,_bbd .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 *_ggbfab ==2{return _dddfc (_fcaa );}else if *_ggbfab ==3{return _gdea (_fcaa );}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _dcab ,_fdecg :=_ceac .(*_eg .PdfObjectDictionary );
|
||
_fdecg {_facd ,_eegec :=_dcab .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eg .PdfObjectInteger );if !_eegec {_dbg .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 ,_bbd .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 *_facd ==2{return _dddfc (_dcab );}else if *_facd ==3{return _gdea (_dcab );
|
||
}else {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_dbg .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ceac );
|
||
return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};func (_gaggf *PdfReader )loadDSS ()(*DSS ,error ){if _gaggf ._cdggc .GetCrypter ()!=nil &&!_gaggf ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_bafg :=_gaggf ._efdg .Get ("\u0044\u0053\u0053");if _bafg ==nil {return nil ,nil ;};_acfdd ,_ :=_eg .GetIndirect (_bafg );_bafg =_eg .TraceToDirectObject (_bafg );switch _cfefg :=_bafg .(type ){case *_eg .PdfObjectNull :return nil ,nil ;case *_eg .PdfObjectDictionary :return _ebbee (_acfdd ,_cfefg );
|
||
};return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_bafg );};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_debf *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_eg .PdfObjectStream )(*XObjectForm ,error ){_cbbc :=&XObjectForm {};_cbbc ._cdcaf =stream ;_agfgbc :=*(stream .PdfObjectDictionary );_bbggb ,_edgaa :=_eg .NewEncoderFromStream (stream );if _edgaa !=nil {return nil ,_edgaa ;
|
||
};_cbbc .Filter =_bbggb ;if _cgdcg :=_agfgbc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cgdcg !=nil {_begba ,_bbdeb :=_cgdcg .(*_eg .PdfObjectName );if !_bbdeb {return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_begba !="\u0046\u006f\u0072\u006d"{_dbg .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _gffg :=_agfgbc .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_gffg !=nil {_cbbc .FormType =_gffg ;};if _begbd :=_agfgbc .Get ("\u0042\u0042\u006f\u0078");_begbd !=nil {_cbbc .BBox =_begbd ;};if _efcg :=_agfgbc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_efcg !=nil {_cbbc .Matrix =_efcg ;};if _faecc :=_agfgbc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_faecc !=nil {_faecc =_eg .TraceToDirectObject (_faecc );_gcddga ,_accdf :=_faecc .(*_eg .PdfObjectDictionary );if !_accdf {_dbg .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 ,_eg .ErrTypeError ;};_fbgdcd ,_caecc :=NewPdfPageResourcesFromDict (_gcddga );if _caecc !=nil {_dbg .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 ,_caecc ;};_cbbc .Resources =_fbgdcd ;_dbg .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_cbbc .Resources );};_cbbc .Group =_agfgbc .Get ("\u0047\u0072\u006fu\u0070");
|
||
_cbbc .Ref =_agfgbc .Get ("\u0052\u0065\u0066");_cbbc .MetaData =_agfgbc .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_cbbc .PieceInfo =_agfgbc .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_cbbc .LastModified =_agfgbc .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_cbbc .StructParent =_agfgbc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_cbbc .StructParents =_agfgbc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_cbbc .OPI =_agfgbc .Get ("\u004f\u0050\u0049");
|
||
_cbbc .OC =_agfgbc .Get ("\u004f\u0043");_cbbc .Name =_agfgbc .Get ("\u004e\u0061\u006d\u0065");_cbbc .Stream =stream .Stream ;return _cbbc ,nil ;};
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_gccdc *_eg .PdfIndirectObject ;};
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_acfc *PdfBorderStyle )GetBorderWidth ()float64 {if _acfc .W ==nil {return 1;};return *_acfc .W ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_febb *PdfColorspaceSpecialPattern )ToPdfObject ()_eg .PdfObject {if _febb .UnderlyingCS ==nil {return _eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_fdbb :=_eg .MakeArray (_eg .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_fdbb .Append (_febb .UnderlyingCS .ToPdfObject ());
|
||
if _febb ._ecbb !=nil {_febb ._ecbb .PdfObject =_fdbb ;return _febb ._ecbb ;};return _fdbb ;};func (_bgcb *PdfReader )newPdfActionResetFormFromDict (_eca *_eg .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_eca .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_eca .Get ("\u0046\u006c\u0061g\u0073")},nil ;
|
||
};
|
||
|
||
// Val returns the value of the color.
|
||
func (_cfbf *PdfColorCalGray )Val ()float64 {return float64 (*_cfbf )};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_cecbg *PdfInfo )AddCustomInfo (name string ,value string )error {if _cecbg ._fbfgb ==nil {_cecbg ._fbfgb =_eg .MakeDict ();};if _ ,_dcad :=_ccad [name ];_dcad {return _e .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
|
||
};_cecbg ._fbfgb .SetIfNotNil (*_eg .MakeName (name ),_eg .MakeString (value ));return nil ;};
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_afd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _afd ._cecf !=nil {return _afd ._cecf ,nil ;};if _afd .A ==nil {return nil ,nil ;};if _afd ._fab ==nil {return nil ,nil ;};_ggb ,_bfb :=_afd ._fab .loadAction (_afd .A );if _bfb !=nil {return nil ,_bfb ;
|
||
};_afd ._cecf =_ggb ;return _afd ._cecf ,nil ;};
|
||
|
||
// NewPdfReader returns a new PdfReader for an input io.ReadSeeker interface. Can be used to read PDF from
|
||
// memory or file. Immediately loads and traverses the PDF structure including pages and page contents (if
|
||
// not encrypted). Loads entire document structure into memory.
|
||
// Alternatively a lazy-loading reader can be created with NewPdfReaderLazy which loads only references,
|
||
// and references are loaded from disk into memory on an as-needed basis.
|
||
func NewPdfReader (rs _de .ReadSeeker )(*PdfReader ,error ){const _geega ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";_eeebc :=&PdfReader {_addac :rs ,_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_bebe :false };
|
||
_dbec ,_beabg :=_fccgd ("\u0072");if _beabg !=nil {return nil ,_beabg ;};_beabg =_dd .Track (_dbec ,_geega );if _beabg !=nil {return nil ,_beabg ;};_eeebc ._ebcgb =_dbec ;_fdca ,_beabg :=_eg .NewParser (rs );if _beabg !=nil {return nil ,_beabg ;};_eeebc ._cdggc =_fdca ;
|
||
_fabbe ,_beabg :=_eeebc .IsEncrypted ();if _beabg !=nil {return nil ,_beabg ;};if !_fabbe {_beabg =_eeebc .loadStructure ();if _beabg !=nil {return nil ,_beabg ;};};return _eeebc ,nil ;};
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_aedca :=&PdfFilespec {};_aedca ._fceg =_eg .MakeIndirectObject (_eg .MakeDict ());return _aedca ;};
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_efeeef *PdfPage )AddExtGState (name _eg .PdfObjectName ,egs *_eg .PdfObjectDictionary )error {if _efeeef .Resources ==nil {_efeeef .Resources =NewPdfPageResources ();};if _efeeef .Resources .ExtGState ==nil {_efeeef .Resources .ExtGState =_eg .MakeDict ();
|
||
};_fecd ,_fgde :=_eg .TraceToDirectObject (_efeeef .Resources .ExtGState ).(*_eg .PdfObjectDictionary );if !_fgde {_dbg .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",_eg .TraceToDirectObject (_efeeef .Resources .ExtGState ));
|
||
return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fecd .Set (name ,egs );return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cdcgdc *PdfShadingType1 )ToPdfObject ()_eg .PdfObject {_cdcgdc .PdfShading .ToPdfObject ();_adfa ,_feef :=_cdcgdc .getShadingDict ();if _feef !=nil {_dbg .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 _cdcgdc .Domain !=nil {_adfa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cdcgdc .Domain );};if _cdcgdc .Matrix !=nil {_adfa .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cdcgdc .Matrix );};if _cdcgdc .Function !=nil {if len (_cdcgdc .Function )==1{_adfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdcgdc .Function [0].ToPdfObject ());
|
||
}else {_gbab :=_eg .MakeArray ();for _ ,_gcaaea :=range _cdcgdc .Function {_gbab .Append (_gcaaea .ToPdfObject ());};_adfa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbab );};};return _cdcgdc ._beag ;};func (_fcfcc *PdfReader )buildPageList (_ccaf *_eg .PdfIndirectObject ,_feegc *_eg .PdfIndirectObject ,_ggebe map[_eg .PdfObject ]struct{})error {if _ccaf ==nil {return nil ;
|
||
};if _ ,_bacc :=_ggebe [_ccaf ];_bacc {_dbg .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",_ccaf .ObjectNumber );
|
||
return nil ;};_ggebe [_ccaf ]=struct{}{};_ebccef ,_febea :=_ccaf .PdfObject .(*_eg .PdfObjectDictionary );if !_febea {return _bbd .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_bbfee ,_febea :=(*_ebccef ).Get ("\u0054\u0079\u0070\u0065").(*_eg .PdfObjectName );
|
||
if !_febea {if _ebccef .Get ("\u004b\u0069\u0064\u0073")==nil {return _bbd .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");};_dbg .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.");
|
||
_bbfee =_eg .MakeName ("\u0050\u0061\u0067e\u0073");_ebccef .Set ("\u0054\u0079\u0070\u0065",_bbfee );};_dbg .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",*_bbfee ,_ccaf );
|
||
if *_bbfee =="\u0050\u0061\u0067\u0065"{_cffgf ,_babe :=_fcfcc .newPdfPageFromDict (_ebccef );if _babe !=nil {return _babe ;};_cffgf .setContainer (_ccaf );if _feegc !=nil {_ebccef .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_feegc );};_fcfcc ._dfff =append (_fcfcc ._dfff ,_ccaf );
|
||
_fcfcc .PageList =append (_fcfcc .PageList ,_cffgf );return nil ;};if *_bbfee !="\u0050\u0061\u0067e\u0073"{_dbg .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",_bbfee );
|
||
return _bbd .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 _feegc !=nil {_ebccef .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_feegc );};if !_fcfcc ._bebe {_daefd :=_fcfcc .traverseObjectData (_ccaf );if _daefd !=nil {return _daefd ;};};_fdfcd ,_acgb :=_fcfcc ._cdggc .Resolve (_ebccef .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _acgb !=nil {_dbg .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 _acgb ;};var _bdgfb *_eg .PdfObjectArray ;
|
||
_bdgfb ,_febea =_fdfcd .(*_eg .PdfObjectArray );if !_febea {_geeab ,_agaec :=_fdfcd .(*_eg .PdfIndirectObject );if !_agaec {return _bbd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};
|
||
_bdgfb ,_febea =_geeab .PdfObject .(*_eg .PdfObjectArray );if !_febea {return _bbd .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");};};_dbg .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_bdgfb );
|
||
for _dgagf ,_gefea :=range _bdgfb .Elements (){_gaefg ,_geae :=_eg .GetIndirect (_gefea );if !_geae {_dbg .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",_gaefg );
|
||
return _bbd .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_bdgfb .Set (_dgagf ,_gaefg );_acgb =_fcfcc .buildPageList (_gaefg ,_ccaf ,_ggebe );if _acgb !=nil {return _acgb ;
|
||
};};return nil ;};
|
||
|
||
// PdfFunctionType0 uses a sequence of sample values (contained in a stream) to provide an approximation
|
||
// for functions whose domains and ranges are bounded. The samples are organized as an m-dimensional
|
||
// table in which each entry has n components
|
||
type PdfFunctionType0 struct{Domain []float64 ;Range []float64 ;NumInputs int ;NumOutputs int ;Size []int ;BitsPerSample int ;Order int ;Encode []float64 ;Decode []float64 ;_ebad []byte ;_dgfa []uint32 ;_bafa *_eg .PdfObjectStream ;};func (_bfgd *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";
|
||
};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_dcgba *PdfColorspaceICCBased )ToPdfObject ()_eg .PdfObject {_fabc :=&_eg .PdfObjectArray {};_fabc .Append (_eg .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _ddfc *_eg .PdfObjectStream ;if _dcgba ._efdb !=nil {_ddfc =_dcgba ._efdb ;
|
||
}else {_ddfc =&_eg .PdfObjectStream {};};_ggeaf :=_eg .MakeDict ();_ggeaf .Set ("\u004e",_eg .MakeInteger (int64 (_dcgba .N )));if _dcgba .Alternate !=nil {_ggeaf .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_dcgba .Alternate .ToPdfObject ());};
|
||
if _dcgba .Metadata !=nil {_ggeaf .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dcgba .Metadata );};if _dcgba .Range !=nil {var _deed []_eg .PdfObject ;for _ ,_cfaa :=range _dcgba .Range {_deed =append (_deed ,_eg .MakeFloat (_cfaa ));};_ggeaf .Set ("\u0052\u0061\u006eg\u0065",_eg .MakeArray (_deed ...));
|
||
};_ggeaf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_dcgba .Data ))));_ddfc .Stream =_dcgba .Data ;_ddfc .PdfObjectDictionary =_ggeaf ;_fabc .Append (_ddfc );if _dcgba ._acga !=nil {_dcgba ._acga .PdfObject =_fabc ;return _dcgba ._acga ;
|
||
};return _fabc ;};
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_cadc *PdfField )SetFlag (flag FieldFlag ){_cadc .Ff =_eg .MakeInteger (int64 (flag ))};
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _eg .PdfObject ;Q _eg .PdfObject ;RC _eg .PdfObject ;DS _eg .PdfObject ;CL _eg .PdfObject ;IT _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;BS _eg .PdfObject ;LE _eg .PdfObject ;
|
||
};
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _eg .PdfObject ;Flags _eg .PdfObject ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_caae pdfFontType3 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _eege ,_effce :=_caae ._cgcec [code ];_effce {return _ab .CharMetrics {Wx :_eege },true ;};if _ab .IsStdFont (_ab .StdFontName (_caae ._cfab )){return _ab .CharMetrics {Wx :250},true ;
|
||
};return _ab .CharMetrics {},false ;};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_ab .StdFontName ;
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_ffbba *_eg .PdfIndirectObject ;};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_egbeg .Lock ();defer _egbeg .Unlock ();_dgage =title };func (_ddgga *PdfSignature )extractChainFromPKCS7 ()([]*_ce .Certificate ,error ){_debcc ,_fdcdc :=_gb .Parse (_ddgga .Contents .Bytes ());if _fdcdc !=nil {return nil ,_fdcdc ;
|
||
};return _debcc .Certificates ,nil ;};
|
||
|
||
// CheckAccessRights checks access rights and permissions for a specified password. If either user/owner
|
||
// password is specified, full rights are granted, otherwise the access rights are specified by the
|
||
// Permissions flag.
|
||
//
|
||
// The bool flag indicates that the user can access and view the file.
|
||
// The AccessPermissions shows what access the user has for editing etc.
|
||
// An error is returned if there was a problem performing the authentication.
|
||
func (_aaecf *PdfReader )CheckAccessRights (password []byte )(bool ,_fc .Permissions ,error ){return _aaecf ._cdggc .CheckAccessRights (password );};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_egaac *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_egaac ._egge =annotations };func _caefc ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _dgage };
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;};
|
||
|
||
// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
|
||
// used in text styling functions.
|
||
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
|
||
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
|
||
func NewPdfFontFromTTF (r _de .ReadSeeker )(*PdfFont ,error ){const _dgaed =_cec .CharCode (32);const _eddeed =_cec .CharCode (255);_febbd ,_beddf :=_aa .ReadAll (r );if _beddf !=nil {_dbg .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",_beddf );
|
||
return nil ,_beddf ;};_gcaae ,_beddf :=_ab .TtfParse (_cbd .NewReader (_febbd ));if _beddf !=nil {_dbg .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",_beddf );
|
||
return nil ,_beddf ;};_bbdfe :=&pdfFontSimple {_baga :make (map[_cec .CharCode ]float64 ),fontCommon :fontCommon {_fgbbb :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_bbdfe ._gccbc =_cec .NewWinAnsiEncoder ();_bbdfe ._cfab =_gcaae .PostScriptName ;
|
||
_bbdfe .FirstChar =_eg .MakeInteger (int64 (_dgaed ));_bbdfe .LastChar =_eg .MakeInteger (int64 (_eddeed ));_acgde :=1000.0/float64 (_gcaae .UnitsPerEm );if len (_gcaae .Widths )<=0{return nil ,_bbd .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");
|
||
};_debe :=_acgde *float64 (_gcaae .Widths [0]);_dcefg :=make ([]float64 ,0,_eddeed -_dgaed +1);for _bdbge :=_dgaed ;_bdbge <=_eddeed ;_bdbge ++{_fade ,_fecgg :=_bbdfe .Encoder ().CharcodeToRune (_bdbge );if !_fecgg {_dbg .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_bdbge );
|
||
_dcefg =append (_dcefg ,_debe );continue ;};_cfdfc ,_eebgb :=_gcaae .Chars [_fade ];if !_eebgb {_dbg .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dcefg =append (_dcefg ,_debe );continue ;
|
||
};_cbec :=_acgde *float64 (_gcaae .Widths [_cfdfc ]);_dcefg =append (_dcefg ,_cbec );};_bbdfe .Widths =_eg .MakeIndirectObject (_eg .MakeArrayFromFloats (_dcefg ));if len (_dcefg )< int (_eddeed -_dgaed +1){_dbg .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 (_dcefg ),255-32+1);
|
||
return nil ,_eg .ErrRangeError ;};for _ddgcd :=_dgaed ;_ddgcd <=_eddeed ;_ddgcd ++{_bbdfe ._baga [_ddgcd ]=_dcefg [_ddgcd -_dgaed ];};_bbdfe .Encoding =_eg .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_cegcf :=&PdfFontDescriptor {};
|
||
_cegcf .FontName =_eg .MakeName (_gcaae .PostScriptName );_cegcf .Ascent =_eg .MakeFloat (_acgde *float64 (_gcaae .TypoAscender ));_cegcf .Descent =_eg .MakeFloat (_acgde *float64 (_gcaae .TypoDescender ));_cegcf .CapHeight =_eg .MakeFloat (_acgde *float64 (_gcaae .CapHeight ));
|
||
_cegcf .FontBBox =_eg .MakeArrayFromFloats ([]float64 {_acgde *float64 (_gcaae .Xmin ),_acgde *float64 (_gcaae .Ymin ),_acgde *float64 (_gcaae .Xmax ),_acgde *float64 (_gcaae .Ymax )});_cegcf .ItalicAngle =_eg .MakeFloat (_gcaae .ItalicAngle );_cegcf .MissingWidth =_eg .MakeFloat (_acgde *float64 (_gcaae .Widths [0]));
|
||
_ceaec ,_beddf :=_eg .MakeStream (_febbd ,_eg .NewFlateEncoder ());if _beddf !=nil {_dbg .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",_beddf );
|
||
return nil ,_beddf ;};_ceaec .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (len (_febbd ))));_cegcf .FontFile2 =_ceaec ;if _gcaae .Bold {_cegcf .StemV =_eg .MakeInteger (120);}else {_cegcf .StemV =_eg .MakeInteger (70);
|
||
};_eedb :=_bacd ;if _gcaae .IsFixedPitch {_eedb |=_defe ;};if _gcaae .ItalicAngle !=0{_eedb |=_fedcc ;};_cegcf .Flags =_eg .MakeInteger (int64 (_eedb ));_bbdfe ._eecfe =_cegcf ;_fdef :=&PdfFont {_gdcab :_bbdfe };return _fdef ,nil ;};
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_afcg :=&PdfBorderStyle {};return _afcg };func (_ddde *PdfReader )newPdfAnnotationPrinterMarkFromDict (_gcd *_eg .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_gfbd :=PdfAnnotationPrinterMark {};_gfbd .MN =_gcd .Get ("\u004d\u004e");
|
||
return &_gfbd ,nil ;};
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _eg .PdfObject ;Dest _eg .PdfObject ;H _eg .PdfObject ;PA _eg .PdfObject ;QuadPoints _eg .PdfObject ;BS _eg .PdfObject ;_cecf *PdfAction ;_fab *PdfReader ;};
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _eg .PdfObject ;MK _eg .PdfObject ;A _eg .PdfObject ;AA _eg .PdfObject ;BS _eg .PdfObject ;Parent _eg .PdfObject ;_cdda *PdfField ;_gde bool ;};
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_dbac PdfDate )ToGoTime ()_ee .Time {_eafba :=int (_dbac ._gaggg *60*60+_dbac ._daabe *60);switch _dbac ._facfb {case '-':_eafba =-_eafba ;case 'Z':_eafba =0;};_bbgcfa :=_e .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_dbac ._facfb ,_dbac ._gaggg ,_dbac ._daabe );
|
||
_gcadc :=_ee .FixedZone (_bbgcfa ,_eafba );return _ee .Date (int (_dbac ._cggcf ),_ee .Month (_dbac ._agfdbf ),int (_dbac ._ebfff ),int (_dbac ._bfabc ),int (_dbac ._edagg ),int (_dbac ._ggcbe ),0,_gcadc );};
|
||
|
||
// 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 (_cbgg *Image )SetSamples (samples []uint32 ){if _cbgg .BitsPerComponent < 8{samples =_cbgg .samplesAddPadding (samples );};_efga :=_ccg .ResampleUint32 (samples ,int (_cbgg .BitsPerComponent ),8);_edfb :=make ([]byte ,len (_efga ));for _bdabg ,_cegfa :=range _efga {_edfb [_bdabg ]=byte (_cegfa );
|
||
};_cbgg .Data =_edfb ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_ddgbb *DSS )ToPdfObject ()_eg .PdfObject {_fdbg :=_ddgbb ._gded .PdfObject .(*_eg .PdfObjectDictionary );_fdbg .Clear ();_cabce :=_eg .MakeDict ();for _ffbdc ,_gbed :=range _ddgbb .VRI {_cabce .Set (*_eg .MakeName (_ffbdc ),_gbed .ToPdfObject ());
|
||
};_fdbg .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_bffd (_ddgbb .Certs ));_fdbg .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_bffd (_ddgbb .OCSPs ));_fdbg .SetIfNotNil ("\u0043\u0052\u004c\u0073",_bffd (_ddgbb .CRLs ));_fdbg .Set ("\u0056\u0052\u0049",_cabce );
|
||
return _ddgbb ._gded ;};func _fegb (_geefg *_eg .PdfObjectDictionary ,_agfd *fontCommon )(*pdfCIDFontType2 ,error ){if _agfd ._fgbbb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dbg .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",_agfd );
|
||
return nil ,_eg .ErrRangeError ;};_eacce :=_egdg (_agfd );_fgabe ,_dcdf :=_eg .GetDict (_geefg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dcdf {_dbg .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",_agfd );
|
||
return nil ,ErrRequiredAttributeMissing ;};_eacce .CIDSystemInfo =_fgabe ;_eacce .DW =_geefg .Get ("\u0044\u0057");_eacce .W =_geefg .Get ("\u0057");_eacce .DW2 =_geefg .Get ("\u0044\u0057\u0032");_eacce .W2 =_geefg .Get ("\u0057\u0032");_eacce .CIDToGIDMap =_geefg .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_eacce ._cbgd =1000.0;if _dgefbc ,_fbcga :=_eg .GetNumberAsFloat (_eacce .DW );_fbcga ==nil {_eacce ._cbgd =_dgefbc ;};_cded ,_abafa :=_dbae (_eacce .W );if _abafa !=nil {return nil ,_abafa ;};if _cded ==nil {_cded =map[_cec .CharCode ]float64 {};};_eacce ._egdc =_cded ;
|
||
return _eacce ,nil ;};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};func (_baafe *Image )resampleLowBits (_cbba []uint32 ){_fgfg :=_ff .BytesPerLine (int (_baafe .Width ),int (_baafe .BitsPerComponent ),_baafe .ColorComponents );_ggecc :=make ([]byte ,_baafe .ColorComponents *_fgfg *int (_baafe .Height ));
|
||
_efbee :=int (_baafe .BitsPerComponent )*_baafe .ColorComponents *int (_baafe .Width );_fgbea :=uint8 (8);var (_ffbcc ,_bdae int ;_fdbad uint32 ;);for _cfgbd :=0;_cfgbd < int (_baafe .Height );_cfgbd ++{_bdae =_cfgbd *_fgfg ;for _efdbe :=0;_efdbe < _efbee ;
|
||
_efdbe ++{_fdbad =_cbba [_ffbcc ];_fgbea -=uint8 (_baafe .BitsPerComponent );_ggecc [_bdae ]|=byte (_fdbad )<<_fgbea ;if _fgbea ==0{_fgbea =8;_bdae ++;};_ffbcc ++;};};_baafe .Data =_ggecc ;};
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_egbeg .Lock ();defer _egbeg .Unlock ();_bbgff =keywords };
|
||
|
||
// 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 (_gbbd *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _bbd .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");
|
||
};_cbeaa :=field .V ;if _cbeaa ==nil {return _bbd .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");};_ceb :=pageNum -1;
|
||
if _ceb < 0||_ceb > len (_gbbd ._bfce )-1{return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_adea :=_gbbd .Reader .PageList [_ceb ];field .P =_adea .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_eg .MakeString (_e .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
|
||
};_adea .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _gbbd ._ggcc ==_gbbd ._acdg .AcroForm {_gbbd ._ggcc =_gbbd .Reader .AcroForm ;};_ccggg :=_gbbd ._ggcc ;if _ccggg ==nil {_ccggg =NewPdfAcroForm ();};_ccggg .SigFlags =_eg .MakeInteger (3);
|
||
_bgef :=append (_ccggg .AllFields (),field .PdfField );_ccggg .Fields =&_bgef ;_gbbd .ReplaceAcroForm (_ccggg );_gbbd .UpdatePage (_adea );_gbbd ._bfce [_ceb ]=_adea ;return nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_fdfa *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_aged :=_bc .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_aged *_fdfa .C ()),uint32 (_aged *_fdfa .M ()),uint32 (_aged *_fdfa .Y ()),uint32 (_aged *_fdfa .K ())};};
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_cggcf int64 ;_agfdbf int64 ;_ebfff int64 ;_bfabc int64 ;_edagg int64 ;_ggcbe int64 ;_facfb byte ;_gaggg int64 ;_daabe int64 ;};func (_cbbab *LTV )getCerts (_dbdaf []*_ce .Certificate )([][]byte ,error ){_dfegg :=make ([][]byte ,0,len (_dbdaf ));
|
||
for _ ,_deae :=range _dbdaf {_dfegg =append (_dfegg ,_deae .Raw );};return _dfegg ,nil ;};
|
||
|
||
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
|
||
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorDeviceRGB [3]float64 ;
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_cgcge *PdfFontDescriptor )ToPdfObject ()_eg .PdfObject {_fffg :=_eg .MakeDict ();if _cgcge ._fcfbbf ==nil {_cgcge ._fcfbbf =&_eg .PdfIndirectObject {};};_cgcge ._fcfbbf .PdfObject =_fffg ;_fffg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _cgcge .FontName !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cgcge .FontName );};if _cgcge .FontFamily !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_cgcge .FontFamily );};if _cgcge .FontStretch !=nil {_fffg .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_cgcge .FontStretch );
|
||
};if _cgcge .FontWeight !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_cgcge .FontWeight );};if _cgcge .Flags !=nil {_fffg .Set ("\u0046\u006c\u0061g\u0073",_cgcge .Flags );};if _cgcge .FontBBox !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cgcge .FontBBox );
|
||
};if _cgcge .ItalicAngle !=nil {_fffg .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_cgcge .ItalicAngle );};if _cgcge .Ascent !=nil {_fffg .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_cgcge .Ascent );};if _cgcge .Descent !=nil {_fffg .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_cgcge .Descent );
|
||
};if _cgcge .Leading !=nil {_fffg .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_cgcge .Leading );};if _cgcge .CapHeight !=nil {_fffg .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_cgcge .CapHeight );};if _cgcge .XHeight !=nil {_fffg .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_cgcge .XHeight );
|
||
};if _cgcge .StemV !=nil {_fffg .Set ("\u0053\u0074\u0065m\u0056",_cgcge .StemV );};if _cgcge .StemH !=nil {_fffg .Set ("\u0053\u0074\u0065m\u0048",_cgcge .StemH );};if _cgcge .AvgWidth !=nil {_fffg .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_cgcge .AvgWidth );
|
||
};if _cgcge .MaxWidth !=nil {_fffg .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_cgcge .MaxWidth );};if _cgcge .MissingWidth !=nil {_fffg .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_cgcge .MissingWidth );};if _cgcge .FontFile !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_cgcge .FontFile );
|
||
};if _cgcge .FontFile2 !=nil {_fffg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_cgcge .FontFile2 );};if _cgcge .FontFile3 !=nil {_fffg .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_cgcge .FontFile3 );};if _cgcge .CharSet !=nil {_fffg .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_cgcge .CharSet );
|
||
};if _cgcge .Style !=nil {_fffg .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cgcge .FontName );};if _cgcge .Lang !=nil {_fffg .Set ("\u004c\u0061\u006e\u0067",_cgcge .Lang );};if _cgcge .FD !=nil {_fffg .Set ("\u0046\u0044",_cgcge .FD );};
|
||
if _cgcge .CIDSet !=nil {_fffg .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_cgcge .CIDSet );};return _cgcge ._fcfbbf ;};func _faae (_gagcc *_eg .PdfObjectDictionary ,_gefb *fontCommon )(*pdfFontType0 ,error ){_eeba ,_agdg :=_eg .GetArray (_gagcc .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
|
||
if !_agdg {_dbg .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",_gefb );
|
||
return nil ,_eg .ErrRangeError ;};if _eeba .Len ()!=1{_dbg .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",_eeba .Len ());return nil ,_eg .ErrRangeError ;
|
||
};_deddc ,_dccbg :=_cdac (_eeba .Get (0),false );if _dccbg !=nil {_dbg .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",_dccbg ,_gefb );
|
||
return nil ,_dccbg ;};_bcbgd :=_gcbdb (_gefb );_bcbgd .DescendantFont =_deddc ;_bcadfg ,_agdg :=_eg .GetNameVal (_gagcc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _agdg {if _bcadfg =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_bcadfg =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_bcbgd ._eceba =_cec .NewIdentityTextEncoder (_bcadfg );
|
||
}else if _aff .IsPredefinedCMap (_bcadfg ){_bcbgd ._adad ,_dccbg =_aff .LoadPredefinedCMap (_bcadfg );if _dccbg !=nil {_dbg .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",_bcadfg ,_dccbg );
|
||
};}else {_dbg .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_bcadfg );};};if _edbee :=_deddc .baseFields ()._fffc ;_edbee !=nil {if _agae :=_edbee .Name ();_agae =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_agae =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_bcbgd ._eceba =_cec .NewCMapEncoder (_bcadfg ,_bcbgd ._adad ,_edbee );
|
||
};};return _bcbgd ,nil ;};
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_cebfd *PdfPage )AddFont (name _eg .PdfObjectName ,font _eg .PdfObject )error {if _cebfd .Resources ==nil {_cebfd .Resources =NewPdfPageResources ();};if _cebfd .Resources .Font ==nil {_cebfd .Resources .Font =_eg .MakeDict ();};_beaf ,_afbbe :=_eg .TraceToDirectObject (_cebfd .Resources .Font ).(*_eg .PdfObjectDictionary );
|
||
if !_afbbe {_dbg .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",_eg .TraceToDirectObject (_cebfd .Resources .Font ));
|
||
return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_beaf .Set (name ,font );return nil ;};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_gfdf *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_fcbd *PdfPage )GetContentStreams ()([]string ,error ){_ddgfb :=_fcbd .GetContentStreamObjs ();var _adeac []string ;for _ ,_eccea :=range _ddgfb {_fgbbg ,_ddegc :=_cafedf (_eccea );if _ddegc !=nil {return nil ,_ddegc ;};_adeac =append (_adeac ,_fgbbg );
|
||
};return _adeac ,nil ;};
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_efeab *PdfPage )GetAllContentStreams ()(string ,error ){_bdfa ,_eeffg :=_efeab .GetContentStreams ();if _eeffg !=nil {return "",_eeffg ;};return _dc .Join (_bdfa ,"\u0020"),nil ;};
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_efbfc *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_bbd .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");
|
||
};_acad ,_cfbd :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _cfbd !=nil {return img ,_cfbd ;};_bagf ,_cfbd :=_ff .NRGBAConverter .Convert (_acad );if _cfbd !=nil {return img ,_cfbd ;
|
||
};_dbcd :=_egbde (_bagf .Base ());_dbg .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_dbg .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_dbg .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_dbcd .Data );
|
||
_dbg .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_dbcd );return _dbcd ,nil ;};func _gbeab (_dedgb _eg .PdfObject )(*fontFile ,error ){_dbg .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",_dedgb );
|
||
_gcbda :=&fontFile {};_dedgb =_eg .TraceToDirectObject (_dedgb );_edaa ,_egee :=_dedgb .(*_eg .PdfObjectStream );if !_egee {_dbg .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",_dedgb );
|
||
return nil ,_eg .ErrTypeError ;};_dgfca :=_edaa .PdfObjectDictionary ;_ebaf ,_cfbg :=_eg .DecodeStream (_edaa );if _cfbg !=nil {return nil ,_cfbg ;};_cgbfc ,_egee :=_eg .GetNameVal (_dgfca .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_egee {_gcbda ._gecf =_cgbfc ;
|
||
if _cgbfc =="\u0054\u0079\u0070\u0065\u0031\u0043"{_dbg .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 ;};};_dcfgg ,_ :=_eg .GetIntVal (_dgfca .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_edaca ,_ :=_eg .GetIntVal (_dgfca .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _dcfgg > len (_ebaf ){_dcfgg =len (_ebaf );
|
||
};if _dcfgg +_edaca > len (_ebaf ){_edaca =len (_ebaf )-_dcfgg ;};_adebc :=_ebaf [:_dcfgg ];var _addcd []byte ;if _edaca > 0{_addcd =_ebaf [_dcfgg :_dcfgg +_edaca ];};if _dcfgg > 0&&_edaca > 0{_dfddb :=_gcbda .loadFromSegments (_adebc ,_addcd );if _dfddb !=nil {return nil ,_dfddb ;
|
||
};};return _gcbda ,nil ;};func (_edbce *DSS )addOCSPs (_abfc [][]byte )([]*_eg .PdfObjectStream ,error ){return _edbce .add (&_edbce .OCSPs ,_edbce ._geeeb ,_abfc );};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_dcace :=&PdfColorspaceCalRGB {};_dcace .BlackPoint =[]float64 {0.0,0.0,0.0};_dcace .Gamma =[]float64 {1.0,1.0,1.0};_dcace .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _dcace ;};func (_ebgc *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ceg *PdfActionHide )ToPdfObject ()_eg .PdfObject {_ceg .PdfAction .ToPdfObject ();_geg :=_ceg ._ege ;_dbf :=_geg .PdfObject .(*_eg .PdfObjectDictionary );_dbf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeHide )));_dbf .SetIfNotNil ("\u0054",_ceg .T );
|
||
_dbf .SetIfNotNil ("\u0048",_ceg .H );return _geg ;};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_ffbe PdfModel ;Rect _eg .PdfObject ;Contents _eg .PdfObject ;P _eg .PdfObject ;NM _eg .PdfObject ;M _eg .PdfObject ;F _eg .PdfObject ;AP _eg .PdfObject ;AS _eg .PdfObject ;Border _eg .PdfObject ;C _eg .PdfObject ;StructParent _eg .PdfObject ;
|
||
OC _eg .PdfObject ;_gag *_eg .PdfIndirectObject ;};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_cbdee *PdfField )GetContext ()PdfModel {return _cbdee ._ceag };func (_bcfdb *PdfReader )newPdfSignatureFromIndirect (_aegfb *_eg .PdfIndirectObject )(*PdfSignature ,error ){_ccbf ,_ffcea :=_aegfb .PdfObject .(*_eg .PdfObjectDictionary );if !_ffcea {_dbg .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 _bcegbc ,_caafe :=_bcfdb ._gced .GetModelFromPrimitive (_aegfb ).(*PdfSignature );_caafe {return _bcegbc ,nil ;};_efda :=&PdfSignature {};_efda ._ffae =_aegfb ;_efda .Type ,_ =_eg .GetName (_ccbf .Get ("\u0054\u0079\u0070\u0065"));
|
||
_efda .Filter ,_ffcea =_eg .GetName (_ccbf .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_ffcea {_dbg .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 ;};_efda .SubFilter ,_ =_eg .GetName (_ccbf .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_efda .Contents ,_ffcea =_eg .GetString (_ccbf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_ffcea {_dbg .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 ;};_efda .Cert =_ccbf .Get ("\u0043\u0065\u0072\u0074");_efda .ByteRange ,_ =_eg .GetArray (_ccbf .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));_efda .Reference ,_ =_eg .GetArray (_ccbf .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));
|
||
_efda .Changes ,_ =_eg .GetArray (_ccbf .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_efda .Name ,_ =_eg .GetString (_ccbf .Get ("\u004e\u0061\u006d\u0065"));_efda .M ,_ =_eg .GetString (_ccbf .Get ("\u004d"));_efda .Location ,_ =_eg .GetString (_ccbf .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_efda .Reason ,_ =_eg .GetString (_ccbf .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_efda .ContactInfo ,_ =_eg .GetString (_ccbf .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_efda .R ,_ =_eg .GetInt (_ccbf .Get ("\u0052"));
|
||
_efda .V ,_ =_eg .GetInt (_ccbf .Get ("\u0056"));_efda .PropBuild ,_ =_eg .GetDict (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_efda .PropAuthTime ,_ =_eg .GetInt (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_efda .PropAuthType ,_ =_eg .GetName (_ccbf .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));return _efda ,nil ;};
|
||
|
||
// VRI represents a Validation-Related Information dictionary.
|
||
// The VRI dictionary contains validation data in the form of
|
||
// certificates, OCSP and CRL information, for a single signature.
|
||
// See ETSI TS 102 778-4 V1.1.1 for more information.
|
||
type VRI struct{Cert []*_eg .PdfObjectStream ;OCSP []*_eg .PdfObjectStream ;CRL []*_eg .PdfObjectStream ;TU *_eg .PdfObjectString ;TS *_eg .PdfObjectString ;};var _ pdfFont =(*pdfFontType3 )(nil );
|
||
|
||
// EnableByName LTV enables the signature dictionary of the PDF AcroForm
|
||
// field identified the specified name. The signing certificate chain is
|
||
// extracted from the signature dictionary. Optionally, additional certificates
|
||
// can be specified through the `extraCerts` parameter. The LTV client attempts
|
||
// to build the certificate chain up to a trusted root by downloading any
|
||
// missing certificates.
|
||
func (_eebe *LTV )EnableByName (name string ,extraCerts []*_ce .Certificate )error {_ggeca :=_eebe ._caadf ._acdg .AcroForm ;for _ ,_ddfg :=range _ggeca .AllFields (){_ddbgd ,_ :=_ddfg .GetContext ().(*PdfFieldSignature );if _ddbgd ==nil {continue ;};if _eggde :=_ddbgd .PartialName ();
|
||
_eggde !=name {continue ;};return _eebe .Enable (_ddbgd .V ,extraCerts );};return nil ;};type pdfFont interface{_ab .Font ;
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_eg .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gdc *PdfAnnotationRedact )ToPdfObject ()_eg .PdfObject {_gdc .PdfAnnotation .ToPdfObject ();_gcdg :=_gdc ._gag ;_cfcc :=_gcdg .PdfObject .(*_eg .PdfObjectDictionary );_gdc .PdfAnnotationMarkup .appendToPdfDictionary (_cfcc );_cfcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_cfcc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gdc .QuadPoints );_cfcc .SetIfNotNil ("\u0049\u0043",_gdc .IC );_cfcc .SetIfNotNil ("\u0052\u004f",_gdc .RO );_cfcc .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gdc .OverlayText );
|
||
_cfcc .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gdc .Repeat );_cfcc .SetIfNotNil ("\u0044\u0041",_gdc .DA );_cfcc .SetIfNotNil ("\u0051",_gdc .Q );return _gcdg ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_acaf *PdfShadingPattern )ToPdfObject ()_eg .PdfObject {_acaf .PdfPattern .ToPdfObject ();_adde :=_acaf .getDict ();if _acaf .Shading !=nil {_adde .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_acaf .Shading .ToPdfObject ());};if _acaf .Matrix !=nil {_adde .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_acaf .Matrix );
|
||
};if _acaf .ExtGState !=nil {_adde .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_acaf .ExtGState );};return _acaf ._cfaag ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_dffe *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_cggaa *PdfPage )HasExtGState (name _eg .PdfObjectName )bool {if _cggaa .Resources ==nil {return false ;};if _cggaa .Resources .ExtGState ==nil {return false ;};_gacb ,_dedged :=_eg .TraceToDirectObject (_cggaa .Resources .ExtGState ).(*_eg .PdfObjectDictionary );
|
||
if !_dedged {_dbg .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",_eg .TraceToDirectObject (_cggaa .Resources .ExtGState ));
|
||
return false ;};_gcfgb :=_gacb .Get (name );_ccaa :=_gcfgb !=nil ;return _ccaa ;};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_cceb *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgcf *PdfAnnotationStrikeOut )ToPdfObject ()_eg .PdfObject {_bgcf .PdfAnnotation .ToPdfObject ();_dfb :=_bgcf ._gag ;_dbbd :=_dfb .PdfObject .(*_eg .PdfObjectDictionary );_bgcf .PdfAnnotationMarkup .appendToPdfDictionary (_dbbd );_dbbd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_dbbd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bgcf .QuadPoints );return _dfb ;};
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_eg .PdfObjectArray ;};func (_gebe *pdfFontSimple )getFontEncoding ()(_efcd string ,_afba map[_cec .CharCode ]_cec .GlyphName ,_gcbe error ){_efcd ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
|
||
if _aafe ,_dcbfa :=_aaffe [_gebe ._cfab ];_dcbfa {_efcd =_aafe ;}else if _gebe .fontFlags ()&_efecb !=0{for _gfcea ,_fafbf :=range _aaffe {if _dc .Contains (_gebe ._cfab ,_gfcea ){_efcd =_fafbf ;break ;};};};if _gebe .Encoding ==nil {return _efcd ,nil ,nil ;
|
||
};switch _bfefd :=_gebe .Encoding .(type ){case *_eg .PdfObjectName :return string (*_bfefd ),nil ,nil ;case *_eg .PdfObjectDictionary :_egceg ,_feecd :=_eg .GetName (_bfefd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
if _feecd {_efcd =_egceg .String ();};if _cbbfb :=_bfefd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_cbbfb !=nil {_cegb ,_ebedd :=_eg .GetArray (_cbbfb );if !_ebedd {_dbg .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",_bfefd ,_bfefd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_eg .ErrTypeError ;};_afba ,_gcbe =_cec .FromFontDifferences (_cegb );};return _efcd ,_afba ,_gcbe ;default:_dbg .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",_gebe .Encoding ,_gebe .Encoding );
|
||
return "",nil ,_eg .ErrTypeError ;};};
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_bddgb *PdfFont )BytesToCharcodes (data []byte )[]_cec .CharCode {_dbg .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 _cadgc ,_dfcef :=_bddgb ._gdcab .(*pdfFontType0 );_dfcef &&_cadgc ._adad !=nil {if _aeee ,_faega :=_cadgc .bytesToCharcodes (data );_faega {return _aeee ;};};_edea :=make ([]_cec .CharCode ,0,len (data )+len (data )%2);if _bddgb .baseFields ().isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
|
||
};if len (data )%2!=0{_dbg .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 _fbaa :=0;_fbaa < len (data );_fbaa +=2{_fbeg :=uint16 (data [_fbaa ])<<8|uint16 (data [_fbaa +1]);_edea =append (_edea ,_cec .CharCode (_fbeg ));};}else {for _ ,_fcba :=range data {_edea =append (_edea ,_cec .CharCode (_fcba ));
|
||
};};return _edea ;};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_bgdaf *PdfSignature )SetLocation (location string ){_bgdaf .Location =_eg .MakeString (location )};func _fbgdc (_eeaa _eg .PdfObject )(*PdfColorspaceICCBased ,error ){_cege :=&PdfColorspaceICCBased {};if _fgbde ,_gbfg :=_eeaa .(*_eg .PdfIndirectObject );
|
||
_gbfg {_cege ._acga =_fgbde ;};_eeaa =_eg .TraceToDirectObject (_eeaa );_bebfc ,_cfef :=_eeaa .(*_eg .PdfObjectArray );if !_cfef {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bebfc .Len ()!=2{return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_eeaa =_eg .TraceToDirectObject (_bebfc .Get (0));_cbbf ,_cfef :=_eeaa .(*_eg .PdfObjectName );if !_cfef {return nil ,_e .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if *_cbbf !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_e .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_eeaa =_bebfc .Get (1);
|
||
_eaef ,_cfef :=_eg .GetStream (_eeaa );if !_cfef {_dbg .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",_eeaa );
|
||
return nil ,_e .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_fdff :=_eaef .PdfObjectDictionary ;_adeaf ,_cfef :=_fdff .Get ("\u004e").(*_eg .PdfObjectInteger );
|
||
if !_cfef {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_adeaf !=1&&*_adeaf !=3&&*_adeaf !=4{return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
|
||
};_cege .N =int (*_adeaf );if _bdda :=_fdff .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_bdda !=nil {_gbgf ,_ddab :=NewPdfColorspaceFromPdfObject (_bdda );if _ddab !=nil {return nil ,_ddab ;};_cege .Alternate =_gbgf ;};if _eegc :=_fdff .Get ("\u0052\u0061\u006eg\u0065");
|
||
_eegc !=nil {_eegc =_eg .TraceToDirectObject (_eegc );_cdcec ,_bggbb :=_eegc .(*_eg .PdfObjectArray );if !_bggbb {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
|
||
};if _cdcec .Len ()!=2*_cege .N {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
|
||
};_bffb ,_gagd :=_cdcec .GetAsFloat64Slice ();if _gagd !=nil {return nil ,_gagd ;};_cege .Range =_bffb ;}else {_cege .Range =make ([]float64 ,2*_cege .N );for _cgeca :=0;_cgeca < _cege .N ;_cgeca ++{_cege .Range [2*_cgeca ]=0.0;_cege .Range [2*_cgeca +1]=1.0;
|
||
};};if _ggec :=_fdff .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ggec !=nil {_ffcf ,_ddbg :=_ggec .(*_eg .PdfObjectStream );if !_ddbg {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
|
||
};_cege .Metadata =_ffcf ;};_fccd ,_bagg :=_eg .DecodeStream (_eaef );if _bagg !=nil {return nil ,_bagg ;};_cege .Data =_fccd ;_cege ._efdb =_eaef ;return _cege ,nil ;};
|
||
|
||
// 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 *_eg .PdfIndirectObject ;SV *_eg .PdfIndirectObject ;};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_ed :=NewPdfAction ();_aag :=&PdfActionRendition {};_aag .PdfAction =_ed ;_ed .SetContext (_aag );return _aag ;};func _adbbg (_gdfcf _eg .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_dbg .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",_gdfcf .String (),_gdfcf );
|
||
_acgc :=NewPdfColorspaceSpecialPattern ();if _gbef ,_dbca :=_gdfcf .(*_eg .PdfIndirectObject );_dbca {_acgc ._ecbb =_gbef ;};_gdfcf =_eg .TraceToDirectObject (_gdfcf );if _cfdg ,_fgcb :=_gdfcf .(*_eg .PdfObjectName );_fgcb {if *_cfdg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _acgc ,nil ;};_baggg ,_cfbb :=_gdfcf .(*_eg .PdfObjectArray );if !_cfbb {_dbg .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",_gdfcf );
|
||
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _baggg .Len ()!=1&&_baggg .Len ()!=2{_dbg .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",_baggg );
|
||
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_gdfcf =_baggg .Get (0);if _adabb ,_gcefg :=_gdfcf .(*_eg .PdfObjectName );_gcefg {if *_adabb !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbg .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",_adabb );
|
||
return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _baggg .Len ()> 1{_gdfcf =_baggg .Get (1);_gdfcf =_eg .TraceToDirectObject (_gdfcf );_fegdg ,_cgfc :=NewPdfColorspaceFromPdfObject (_gdfcf );if _cgfc !=nil {return nil ,_cgfc ;
|
||
};_acgc .UnderlyingCS =_fegdg ;};_dbg .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",_acgc .UnderlyingCS );
|
||
return _acgc ,nil ;};
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_df :=NewPdfAction ();_deg :=&PdfActionLaunch {};_deg .PdfAction =_df ;_df .SetContext (_deg );return _deg ;};
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_fca :=NewPdfAnnotation ();_bdg :=&PdfAnnotationLine {};_bdg .PdfAnnotation =_fca ;_bdg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fca .SetContext (_bdg );return _bdg ;};func (_acf *PdfReader )newPdfActionFromIndirectObject (_fcfbb *_eg .PdfIndirectObject )(*PdfAction ,error ){_fed ,_fdc :=_fcfbb .PdfObject .(*_eg .PdfObjectDictionary );
|
||
if !_fdc {return nil ,_e .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_acf ._gced .GetModelFromPrimitive (_fed );model !=nil {_bba ,_gff :=model .(*PdfAction );if !_gff {return nil ,_e .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
|
||
};return _bba ,nil ;};_fcg :=&PdfAction {};_fcg ._ege =_fcfbb ;_acf ._gced .Register (_fed ,_fcg );if _dab :=_fed .Get ("\u0054\u0079\u0070\u0065");_dab !=nil {_agf ,_ede :=_dab .(*_eg .PdfObjectName );if !_ede {_dbg .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",_dab );
|
||
}else {if *_agf !="\u0041\u0063\u0074\u0069\u006f\u006e"{_dbg .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",*_agf );
|
||
};_fcg .Type =_agf ;};};if _aace :=_fed .Get ("\u004e\u0065\u0078\u0074");_aace !=nil {_fcg .Next =_aace ;};if _ffed :=_fed .Get ("\u0053");_ffed !=nil {_fcg .S =_ffed ;};_ffd ,_ceae :=_fcg .S .(*_eg .PdfObjectName );if !_ceae {_dbg .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",_fcg .S );
|
||
return nil ,_e .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_fcg .S );};_bbad :=PdfActionType (_ffd .String ());
|
||
switch _bbad {case ActionTypeGoTo :_faf ,_eac :=_acf .newPdfActionGotoFromDict (_fed );if _eac !=nil {return nil ,_eac ;};_faf .PdfAction =_fcg ;_fcg ._cea =_faf ;return _fcg ,nil ;case ActionTypeGoToR :_eeb ,_ecfd :=_acf .newPdfActionGotoRFromDict (_fed );
|
||
if _ecfd !=nil {return nil ,_ecfd ;};_eeb .PdfAction =_fcg ;_fcg ._cea =_eeb ;return _fcg ,nil ;case ActionTypeGoToE :_cbe ,_fga :=_acf .newPdfActionGotoEFromDict (_fed );if _fga !=nil {return nil ,_fga ;};_cbe .PdfAction =_fcg ;_fcg ._cea =_cbe ;return _fcg ,nil ;
|
||
case ActionTypeLaunch :_ddc ,_dfc :=_acf .newPdfActionLaunchFromDict (_fed );if _dfc !=nil {return nil ,_dfc ;};_ddc .PdfAction =_fcg ;_fcg ._cea =_ddc ;return _fcg ,nil ;case ActionTypeThread :_caf ,_eade :=_acf .newPdfActionThreadFromDict (_fed );if _eade !=nil {return nil ,_eade ;
|
||
};_caf .PdfAction =_fcg ;_fcg ._cea =_caf ;return _fcg ,nil ;case ActionTypeURI :_eacf ,_bad :=_acf .newPdfActionURIFromDict (_fed );if _bad !=nil {return nil ,_bad ;};_eacf .PdfAction =_fcg ;_fcg ._cea =_eacf ;return _fcg ,nil ;case ActionTypeSound :_cbg ,_cfc :=_acf .newPdfActionSoundFromDict (_fed );
|
||
if _cfc !=nil {return nil ,_cfc ;};_cbg .PdfAction =_fcg ;_fcg ._cea =_cbg ;return _fcg ,nil ;case ActionTypeMovie :_gecb ,_gfa :=_acf .newPdfActionMovieFromDict (_fed );if _gfa !=nil {return nil ,_gfa ;};_gecb .PdfAction =_fcg ;_fcg ._cea =_gecb ;return _fcg ,nil ;
|
||
case ActionTypeHide :_dfd ,_afa :=_acf .newPdfActionHideFromDict (_fed );if _afa !=nil {return nil ,_afa ;};_dfd .PdfAction =_fcg ;_fcg ._cea =_dfd ;return _fcg ,nil ;case ActionTypeNamed :_cd ,_ecb :=_acf .newPdfActionNamedFromDict (_fed );if _ecb !=nil {return nil ,_ecb ;
|
||
};_cd .PdfAction =_fcg ;_fcg ._cea =_cd ;return _fcg ,nil ;case ActionTypeSubmitForm :_bbadc ,_bbc :=_acf .newPdfActionSubmitFormFromDict (_fed );if _bbc !=nil {return nil ,_bbc ;};_bbadc .PdfAction =_fcg ;_fcg ._cea =_bbadc ;return _fcg ,nil ;case ActionTypeResetForm :_bge ,_gaa :=_acf .newPdfActionResetFormFromDict (_fed );
|
||
if _gaa !=nil {return nil ,_gaa ;};_bge .PdfAction =_fcg ;_fcg ._cea =_bge ;return _fcg ,nil ;case ActionTypeImportData :_fgf ,_gebb :=_acf .newPdfActionImportDataFromDict (_fed );if _gebb !=nil {return nil ,_gebb ;};_fgf .PdfAction =_fcg ;_fcg ._cea =_fgf ;
|
||
return _fcg ,nil ;case ActionTypeSetOCGState :_bgc ,_egb :=_acf .newPdfActionSetOCGStateFromDict (_fed );if _egb !=nil {return nil ,_egb ;};_bgc .PdfAction =_fcg ;_fcg ._cea =_bgc ;return _fcg ,nil ;case ActionTypeRendition :_fff ,_fgc :=_acf .newPdfActionRenditionFromDict (_fed );
|
||
if _fgc !=nil {return nil ,_fgc ;};_fff .PdfAction =_fcg ;_fcg ._cea =_fff ;return _fcg ,nil ;case ActionTypeTrans :_gga ,_eae :=_acf .newPdfActionTransFromDict (_fed );if _eae !=nil {return nil ,_eae ;};_gga .PdfAction =_fcg ;_fcg ._cea =_gga ;return _fcg ,nil ;
|
||
case ActionTypeGoTo3DView :_bac ,_dcc :=_acf .newPdfActionGoTo3DViewFromDict (_fed );if _dcc !=nil {return nil ,_dcc ;};_bac .PdfAction =_fcg ;_fcg ._cea =_bac ;return _fcg ,nil ;case ActionTypeJavaScript :_efd ,_cba :=_acf .newPdfActionJavaScriptFromDict (_fed );
|
||
if _cba !=nil {return nil ,_cba ;};_efd .PdfAction =_fcg ;_fcg ._cea =_efd ;return _fcg ,nil ;};_dbg .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",_bbad );
|
||
return nil ,nil ;};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_egce *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_bbd .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");
|
||
};_edad ,_cfcf :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _cfcf !=nil {return img ,_cfcf ;};_dedge ,_cfcf :=_ff .GrayConverter .Convert (_edad );if _cfcf !=nil {return img ,_cfcf ;
|
||
};return _egbde (_dedge .Base ()),nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ceda *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_fgef :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fgef *_ceda .A ()),uint32 (_fgef *_ceda .B ()),uint32 (_fgef *_ceda .C ())};};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_gdcab pdfFont };func (_geda *Image )samplesTrimPadding (_dcdg []uint32 )[]uint32 {_fdfb :=_geda .ColorComponents *int (_geda .Width )*int (_geda .Height );if len (_dcdg )==_fdfb {return _dcdg ;};_cecfg :=make ([]uint32 ,_fdfb );_ffbbgg :=int (_geda .Width )*_geda .ColorComponents ;
|
||
var _efdcd ,_bgaag ,_cddab ,_beeba int ;_bdcc :=_ff .BytesPerLine (int (_geda .Width ),int (_geda .BitsPerComponent ),_geda .ColorComponents );for _efdcd =0;_efdcd < int (_geda .Height );_efdcd ++{_bgaag =_efdcd *int (_geda .Width );_cddab =_efdcd *_bdcc ;
|
||
for _beeba =0;_beeba < _ffbbgg ;_beeba ++{_cecfg [_bgaag +_beeba ]=_dcdg [_cddab +_beeba ];};};return _cecfg ;};func _fcagb (_abcfg *_eg .PdfObjectDictionary )(*PdfShadingType6 ,error ){_adefb :=PdfShadingType6 {};_ggefa :=_abcfg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _ggefa ==nil {_dbg .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 ;};_dbgbb ,_acgbd :=_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .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",_ggefa );
|
||
return nil ,_eg .ErrTypeError ;};_adefb .BitsPerCoordinate =_dbgbb ;_ggefa =_abcfg .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ggefa ==nil {_dbg .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 ;};_dbgbb ,_acgbd =_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .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",_ggefa );
|
||
return nil ,_eg .ErrTypeError ;};_adefb .BitsPerComponent =_dbgbb ;_ggefa =_abcfg .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _ggefa ==nil {_dbg .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 ;};_dbgbb ,_acgbd =_ggefa .(*_eg .PdfObjectInteger );if !_acgbd {_dbg .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",_ggefa );
|
||
return nil ,_eg .ErrTypeError ;};_adefb .BitsPerComponent =_dbgbb ;_ggefa =_abcfg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ggefa ==nil {_dbg .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 ;};_aceec ,_acgbd :=_ggefa .(*_eg .PdfObjectArray );if !_acgbd {_dbg .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",_ggefa );
|
||
return nil ,_eg .ErrTypeError ;};_adefb .Decode =_aceec ;if _gbga :=_abcfg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gbga !=nil {_adefb .Function =[]PdfFunction {};if _begg ,_cceecd :=_gbga .(*_eg .PdfObjectArray );_cceecd {for _ ,_gbagb :=range _begg .Elements (){_gbcee ,_eeagf :=_dgbga (_gbagb );
|
||
if _eeagf !=nil {_dbg .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",_eeagf );return nil ,_eeagf ;};_adefb .Function =append (_adefb .Function ,_gbcee );
|
||
};}else {_fcfbf ,_dfefc :=_dgbga (_gbga );if _dfefc !=nil {_dbg .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",_dfefc );return nil ,_dfefc ;
|
||
};_adefb .Function =append (_adefb .Function ,_fcfbf );};};return &_adefb ,nil ;};type modelManager struct{_eegb map[PdfModel ]_eg .PdfObject ;_bfgf map[_eg .PdfObject ]PdfModel ;};
|
||
|
||
// 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 };};
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_edade *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};func (_gaeg *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _gaeg ._eecfe };
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_cfabf *pdfFontType3 )ToPdfObject ()_eg .PdfObject {if _cfabf ._bbfae ==nil {_cfabf ._bbfae =&_eg .PdfIndirectObject {};};_gefcc :=_cfabf .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_cfabf ._bbfae .PdfObject =_gefcc ;if _cfabf .FirstChar !=nil {_gefcc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_cfabf .FirstChar );
|
||
};if _cfabf .LastChar !=nil {_gefcc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_cfabf .LastChar );};if _cfabf .Widths !=nil {_gefcc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_cfabf .Widths );};if _cfabf .Encoding !=nil {_gefcc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cfabf .Encoding );
|
||
}else if _cfabf ._daeg !=nil {_cgee :=_cfabf ._daeg .ToPdfObject ();if _cgee !=nil {_gefcc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cgee );};};if _cfabf .FontBBox !=nil {_gefcc .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cfabf .FontBBox );
|
||
};if _cfabf .FontMatrix !=nil {_gefcc .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_cfabf .FontMatrix );};if _cfabf .CharProcs !=nil {_gefcc .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_cfabf .CharProcs );};if _cfabf .Resources !=nil {_gefcc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cfabf .Resources );
|
||
};return _cfabf ._bbfae ;};
|
||
|
||
// 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 ;
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_fbba *PdfColorCalRGB )A ()float64 {return _fbba [0]};func _dcafge (_abfe _eg .PdfObject )(*PdfShading ,error ){_ggfeg :=&PdfShading {};var _edada *_eg .PdfObjectDictionary ;if _gaefaf ,_ababbd :=_eg .GetIndirect (_abfe );_ababbd {_ggfeg ._beag =_gaefaf ;
|
||
_daad ,_dffaf :=_gaefaf .PdfObject .(*_eg .PdfObjectDictionary );if !_dffaf {_dbg .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 ,_eg .ErrTypeError ;
|
||
};_edada =_daad ;}else if _fcacd ,_gbcfcc :=_eg .GetStream (_abfe );_gbcfcc {_ggfeg ._beag =_fcacd ;_edada =_fcacd .PdfObjectDictionary ;}else if _adeeg ,_bfacc :=_eg .GetDict (_abfe );_bfacc {_ggfeg ._beag =_adeeg ;_edada =_adeeg ;}else {_dbg .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",_abfe );
|
||
return nil ,_eg .ErrTypeError ;};if _edada ==nil {_dbg .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_bbd .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_abfe =_edada .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _abfe ==nil {_dbg .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 ;};_abfe =_eg .TraceToDirectObject (_abfe );_edgdd ,_deba :=_abfe .(*_eg .PdfObjectInteger );if !_deba {_dbg .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",_abfe );
|
||
return nil ,_eg .ErrTypeError ;};if *_edgdd < 1||*_edgdd > 7{_dbg .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",*_edgdd );
|
||
return nil ,_eg .ErrTypeError ;};_ggfeg .ShadingType =_edgdd ;_abfe =_edada .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _abfe ==nil {_dbg .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 ;};_dagaf ,_ggad :=NewPdfColorspaceFromPdfObject (_abfe );if _ggad !=nil {_dbg .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",_ggad );
|
||
return nil ,_ggad ;};_ggfeg .ColorSpace =_dagaf ;_abfe =_edada .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_abbb ,_aebfdf :=_abfe .(*_eg .PdfObjectArray );if !_aebfdf {_dbg .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)",_abfe );
|
||
return nil ,_eg .ErrTypeError ;};_ggfeg .Background =_abbb ;};_abfe =_edada .Get ("\u0042\u0042\u006f\u0078");if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_adeef ,_dbcg :=_abfe .(*_eg .PdfObjectArray );if !_dbcg {_dbg .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)",_abfe );
|
||
return nil ,_eg .ErrTypeError ;};_eaeac ,_dddd :=NewPdfRectangle (*_adeef );if _dddd !=nil {_dbg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dddd );return nil ,_dddd ;};_ggfeg .BBox =_eaeac ;};_abfe =_edada .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _abfe !=nil {_abfe =_eg .TraceToDirectObject (_abfe );_bcdbg ,_fecdf :=_abfe .(*_eg .PdfObjectBool );if !_fecdf {_dbg .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",_abfe );
|
||
return nil ,_eg .ErrTypeError ;};_ggfeg .AntiAlias =_bcdbg ;};switch *_edgdd {case 1:_ccgf ,_edba :=_abegg (_edada );if _edba !=nil {return nil ,_edba ;};_ccgf .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_ccgf ;return _ggfeg ,nil ;case 2:_daaa ,_deceg :=_bfbaf (_edada );
|
||
if _deceg !=nil {return nil ,_deceg ;};_daaa .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_daaa ;return _ggfeg ,nil ;case 3:_fecac ,_ebfabe :=_aabab (_edada );if _ebfabe !=nil {return nil ,_ebfabe ;};_fecac .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_fecac ;return _ggfeg ,nil ;
|
||
case 4:_bdaac ,_fggfe :=_bbfd (_edada );if _fggfe !=nil {return nil ,_fggfe ;};_bdaac .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_bdaac ;return _ggfeg ,nil ;case 5:_bcbeg ,_affcg :=_gaggb (_edada );if _affcg !=nil {return nil ,_affcg ;};_bcbeg .PdfShading =_ggfeg ;
|
||
_ggfeg ._ccdbe =_bcbeg ;return _ggfeg ,nil ;case 6:_cdcbd ,_ecbf :=_fcagb (_edada );if _ecbf !=nil {return nil ,_ecbf ;};_cdcbd .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_cdcbd ;return _ggfeg ,nil ;case 7:_aedec ,_cdcgc :=_gaggd (_edada );if _cdcgc !=nil {return nil ,_cdcgc ;
|
||
};_aedec .PdfShading =_ggfeg ;_ggfeg ._ccdbe =_aedec ;return _ggfeg ,nil ;};return nil ,_bbd .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_fffd *PdfPageResources )GetXObjectFormByName (keyName _eg .PdfObjectName )(*XObjectForm ,error ){_feba ,_daebc :=_fffd .GetXObjectByName (keyName );if _feba ==nil {return nil ,nil ;};if _daebc !=XObjectTypeForm {return nil ,_bbd .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_cfdeab ,_beedb :=NewXObjectFormFromStream (_feba );if _beedb !=nil {return nil ,_beedb ;};return _cfdeab ,nil ;};
|
||
|
||
// ToImage converts an object to an Image which can be transformed or saved out.
|
||
// The image data is decoded and the Image returned.
|
||
func (_cacdc *XObjectImage )ToImage ()(*Image ,error ){_agabg :=&Image {};if _cacdc .Height ==nil {return nil ,_bbd .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_agabg .Height =*_cacdc .Height ;if _cacdc .Width ==nil {return nil ,_bbd .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_agabg .Width =*_cacdc .Width ;if _cacdc .BitsPerComponent ==nil {switch _cacdc .Filter .(type ){case *_eg .CCITTFaxEncoder ,*_eg .JBIG2Encoder :_agabg .BitsPerComponent =1;
|
||
case *_eg .LZWEncoder ,*_eg .RunLengthEncoder :_agabg .BitsPerComponent =8;default:return nil ,_bbd .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 {_agabg .BitsPerComponent =*_cacdc .BitsPerComponent ;};_agabg .ColorComponents =_cacdc .ColorSpace .GetNumComponents ();_cacdc ._dcdb .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_agabg .ColorComponents )));
|
||
_eggef ,_ebdad :=_eg .DecodeStream (_cacdc ._dcdb );if _ebdad !=nil {return nil ,_ebdad ;};_agabg .Data =_eggef ;if _cacdc .Decode !=nil {_ecgea ,_bbbdf :=_cacdc .Decode .(*_eg .PdfObjectArray );if !_bbbdf {_dbg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_bbd .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_agggf ,_dbfbb :=_ecgea .ToFloat64Array ();if _dbfbb !=nil {return nil ,_dbfbb ;};_agabg ._aaeac =_agggf ;};return _agabg ,nil ;};
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_fbb :=NewPdfAnnotation ();_ffba :=&PdfAnnotationSquiggly {};_ffba .PdfAnnotation =_fbb ;_ffba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fbb .SetContext (_ffba );return _ffba ;};
|
||
|
||
// Items returns all children outline items.
|
||
func (_eaagg *OutlineItem )Items ()[]*OutlineItem {return _eaagg .Entries };
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );
|
||
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _eg .PdfObject ;Sy _eg .PdfObject ;};
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_ebeba *PdfPattern )GetContext ()PdfModel {return _ebeba ._defdf };func (_fgbdbb *PdfWriter )writeString (_dgbed string ){if _fgbdbb ._cfgdd !=nil {return ;};_bddceb ,_bdcd :=_fgbdbb ._fggeg .WriteString (_dgbed );_fgbdbb ._agecc +=int64 (_bddceb );
|
||
_fgbdbb ._cfgdd =_bdcd ;};
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_beg :=NewPdfAction ();_eef :=&PdfActionTrans {};_eef .PdfAction =_beg ;_beg .SetContext (_eef );return _eef ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_bgbga *PdfOutlineTreeNode )GetContainingPdfObject ()_eg .PdfObject {return _bgbga .GetContext ().GetContainingPdfObject ();};
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_egefc *PdfPageResources )GenerateXObjectName ()_eg .PdfObjectName {_ebbb :=1;for {_efgad :=_eg .MakeName (_e .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_ebbb ));if !_egefc .HasXObjectByName (*_efgad ){return *_efgad ;};_ebbb ++;};};
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_bdfe *PdfPage )GetPageDict ()*_eg .PdfObjectDictionary {_aabgg :=_bdfe ._ecbba ;_aabgg .Clear ();_aabgg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067\u0065"));_aabgg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bdfe .Parent );
|
||
if _bdfe .LastModified !=nil {_aabgg .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_bdfe .LastModified .ToPdfObject ());};if _bdfe .Resources !=nil {_aabgg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdfe .Resources .ToPdfObject ());
|
||
};if _bdfe .CropBox !=nil {_aabgg .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_bdfe .CropBox .ToPdfObject ());};if _bdfe .MediaBox !=nil {_aabgg .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_bdfe .MediaBox .ToPdfObject ());};if _bdfe .BleedBox !=nil {_aabgg .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_bdfe .BleedBox .ToPdfObject ());
|
||
};if _bdfe .TrimBox !=nil {_aabgg .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_bdfe .TrimBox .ToPdfObject ());};if _bdfe .ArtBox !=nil {_aabgg .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_bdfe .ArtBox .ToPdfObject ());};_aabgg .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_bdfe .BoxColorInfo );
|
||
_aabgg .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bdfe .Contents );if _bdfe .Rotate !=nil {_aabgg .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eg .MakeInteger (*_bdfe .Rotate ));};_aabgg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_bdfe .Group );
|
||
_aabgg .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_bdfe .Thumb );_aabgg .SetIfNotNil ("\u0042",_bdfe .B );_aabgg .SetIfNotNil ("\u0044\u0075\u0072",_bdfe .Dur );_aabgg .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_bdfe .Trans );_aabgg .SetIfNotNil ("\u0041\u0041",_bdfe .AA );
|
||
_aabgg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bdfe .Metadata );_aabgg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_bdfe .PieceInfo );_aabgg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_bdfe .StructParents );
|
||
_aabgg .SetIfNotNil ("\u0049\u0044",_bdfe .ID );_aabgg .SetIfNotNil ("\u0050\u005a",_bdfe .PZ );_aabgg .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_bdfe .SeparationInfo );_aabgg .SetIfNotNil ("\u0054\u0061\u0062\u0073",_bdfe .Tabs );
|
||
_aabgg .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_bdfe .TemplateInstantiated );_aabgg .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_bdfe .PresSteps );_aabgg .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_bdfe .UserUnit );
|
||
_aabgg .SetIfNotNil ("\u0056\u0050",_bdfe .VP );if _bdfe ._egge !=nil {_fgabc :=_eg .MakeArray ();for _ ,_dacg :=range _bdfe ._egge {if _bgcd :=_dacg .GetContext ();_bgcd !=nil {_fgabc .Append (_bgcd .ToPdfObject ());}else {_fgabc .Append (_dacg .ToPdfObject ());
|
||
};};if _fgabc .Len ()> 0{_aabgg .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fgabc );};}else if _bdfe .Annots !=nil {_aabgg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_bdfe .Annots );};return _aabgg ;};
|
||
|
||
// 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 ){_gfbfd ,_cdaf :=_bg .Open (filePath );if _cdaf !=nil {_dbg .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_cdaf );
|
||
return nil ,_cdaf ;};defer _gfbfd .Close ();return NewCompositePdfFontFromTTF (_gfbfd );};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_fdffa :=&XObjectForm {};_cefg :=&_eg .PdfObjectStream {};_cefg .PdfObjectDictionary =_eg .MakeDict ();_fdffa ._cdcaf =_cefg ;return _fdffa ;};
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;VerticesPerRow *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_ebbf *PdfFieldButton )ToPdfObject ()_eg .PdfObject {_ebbf .PdfField .ToPdfObject ();_dbcdc :=_ebbf ._afbe ;_fggb :=_dbcdc .PdfObject .(*_eg .PdfObjectDictionary );_fggb .Set ("\u0046\u0054",_eg .MakeName ("\u0042\u0074\u006e"));if _ebbf .Opt !=nil {_fggb .Set ("\u004f\u0070\u0074",_ebbf .Opt );
|
||
};return _dbcdc ;};
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_agd :=NewPdfAnnotation ();_cdb :=&PdfAnnotationLink {};_cdb .PdfAnnotation =_agd ;_agd .SetContext (_cdb );return _cdb ;};
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_cffd *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cffd .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cffd ._ggcc =acroForm ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eadb *PdfAction )ToPdfObject ()_eg .PdfObject {_gec :=_eadb ._ege ;_ga :=_gec .PdfObject .(*_eg .PdfObjectDictionary );_ga .Clear ();_ga .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ga .SetIfNotNil ("\u0053",_eadb .S );
|
||
_ga .SetIfNotNil ("\u004e\u0065\u0078\u0074",_eadb .Next );return _gec ;};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_daf :=NewPdfAction ();_eadf :=&PdfActionGoToR {};_eadf .PdfAction =_daf ;_daf .SetContext (_eadf );return _eadf ;};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_gcef *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_abfd ,_bgab :=color .(*PdfColorCalGray );if !_bgab {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_abfd .Val ();X :=_gcef .WhitePoint [0]*_bc .Pow (ANorm ,_gcef .Gamma );Y :=_gcef .WhitePoint [1]*_bc .Pow (ANorm ,_gcef .Gamma );
|
||
Z :=_gcef .WhitePoint [2]*_bc .Pow (ANorm ,_gcef .Gamma );_fdgg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fddf :=-0.969256*X +1.875992*Y +0.041556*Z ;_afbf :=0.055648*X +-0.204043*Y +1.057311*Z ;_fdgg =_bc .Min (_bc .Max (_fdgg ,0),1.0);_fddf =_bc .Min (_bc .Max (_fddf ,0),1.0);
|
||
_afbf =_bc .Min (_bc .Max (_afbf ,0),1.0);return NewPdfColorDeviceRGB (_fdgg ,_fddf ,_afbf ),nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_fdec *PdfColorDeviceGray )ToInteger (bits int )uint32 {_caee :=_bc .Pow (2,float64 (bits ))-1;return uint32 (_caee *_fdec .Val ());};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
|
||
func (_cad *PdfReader )newPdfAnnotationFileAttachmentFromDict (_eccg *_eg .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_bbga :=PdfAnnotationFileAttachment {};_aebf ,_bdf :=_cad .newPdfAnnotationMarkupFromDict (_eccg );if _bdf !=nil {return nil ,_bdf ;
|
||
};_bbga .PdfAnnotationMarkup =_aebf ;_bbga .FS =_eccg .Get ("\u0046\u0053");_bbga .Name =_eccg .Get ("\u004e\u0061\u006d\u0065");return &_bbga ,nil ;};
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_agda *PdfAcroForm )AllFields ()[]*PdfField {if _agda ==nil {return nil ;};var _bdcgc []*PdfField ;if _agda .Fields !=nil {for _ ,_dcbb :=range *_agda .Fields {_bdcgc =append (_bdcgc ,_fafgc (_dcbb )...);};};return _bdcgc ;};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_eg .PdfObject ,error );};
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_efcf *PdfColorspaceDeviceN )GetNumComponents ()int {return _efcf .ColorantNames .Len ()};
|
||
|
||
// 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 (_fdbf *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ceeg :=vals [0];if _ceeg < 0.0||_ceeg > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_bbbe :=vals [1];if _bbbe < 0.0||_bbbe > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcga :=vals [2];if _bcga < 0.0||_bcga > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_ecce :=NewPdfColorDeviceRGB (_ceeg ,_bbbe ,_bcga );return _ecce ,nil ;};
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_ccca *PdfPageResources )SetColorspaceByName (keyName _eg .PdfObjectName ,cs PdfColorspace )error {_ecfeb ,_baegb :=_ccca .GetColorspaces ();if _baegb !=nil {_dbg .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",_baegb );
|
||
return _baegb ;};if _ecfeb ==nil {_ecfeb =NewPdfPageResourcesColorspaces ();_ccca .SetColorSpace (_ecfeb );};_ecfeb .Set (keyName ,cs );return nil ;};func (_abb *PdfReader )newPdfActionLaunchFromDict (_gcc *_eg .PdfObjectDictionary )(*PdfActionLaunch ,error ){_ggg ,_fb :=_gbbe (_gcc .Get ("\u0046"));
|
||
if _fb !=nil {return nil ,_fb ;};return &PdfActionLaunch {Win :_gcc .Get ("\u0057\u0069\u006e"),Mac :_gcc .Get ("\u004d\u0061\u0063"),Unix :_gcc .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_gcc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_ggg },nil ;
|
||
};
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_beb :=NewPdfAction ();_cbc :=&PdfActionSound {};_cbc .PdfAction =_beb ;_beb .SetContext (_cbc );return _cbc ;};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_bece *PdfReader )GetPageLabels ()(_eg .PdfObject ,error ){_egebg :=_eg .ResolveReference (_bece ._efdg .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _egebg ==nil {return nil ,nil ;};if !_bece ._bebe {_gbcfc :=_bece .traverseObjectData (_egebg );
|
||
if _gbcfc !=nil {return nil ,_gbcfc ;};};return _egebg ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_gfgf *PdfColorspaceLab )GetNumComponents ()int {return 3};
|
||
|
||
// 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 (_bgbgag *PdfPage )Size ()(float64 ,float64 ,error ){_acgdb ,_egdabe :=_bgbgag .GetMediaBox ();if _egdabe !=nil {return 0,0,_egdabe ;};_ffea ,_acfad :=_acgdb .Width (),_acgdb .Height ();if _bbafbb :=_bgbgag .Rotate ;_bbafbb !=nil &&*_bbafbb %360!=0&&*_bbafbb %90==0{if _bfda :=(360+*_bbafbb %360)%360;
|
||
_bfda ==90||_bfda ==270{_ffea ,_acfad =_acfad ,_ffea ;};};return _ffea ,_acfad ,nil ;};
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_eafdd *PdfPage )HasXObjectByName (name _eg .PdfObjectName )bool {_bffce ,_ebgdb :=_eafdd .Resources .XObject .(*_eg .PdfObjectDictionary );if !_ebgdb {return false ;};if _bacga :=_bffce .Get (name );_bacga !=nil {return true ;};return false ;};func (_degbdb fontCommon )isCIDFont ()bool {if _degbdb ._fgbbb ==""{_dbg .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",_degbdb );
|
||
};_cfefe :=false ;switch _degbdb ._fgbbb {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":_cfefe =true ;};_dbg .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",_cfefe ,_degbdb );
|
||
return _cfefe ;};func (_fgff *PdfReader )newPdfActionJavaScriptFromDict (_bged *_eg .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bged .Get ("\u004a\u0053")},nil ;};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _eg .PdfObject ;AN _eg .PdfObject ;OP _eg .PdfObject ;JS _eg .PdfObject ;};func _gecc (_gdff _ab .StdFont )pdfFontSimple {_effba :=_gdff .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_fgbbb :"\u0054\u0079\u0070e\u0031",_cfab :_gdff .Name ()},_edgae :_gdff .GetMetricsTable (),_ggce :&PdfFontDescriptor {FontName :_eg .MakeName (string (_effba .Name )),FontFamily :_eg .MakeName (_effba .Family ),FontWeight :_eg .MakeFloat (float64 (_effba .Weight )),Flags :_eg .MakeInteger (int64 (_effba .Flags )),FontBBox :_eg .MakeArrayFromFloats (_effba .BBox [:]),ItalicAngle :_eg .MakeFloat (_effba .ItalicAngle ),Ascent :_eg .MakeFloat (_effba .Ascent ),Descent :_eg .MakeFloat (_effba .Descent ),CapHeight :_eg .MakeFloat (_effba .CapHeight ),XHeight :_eg .MakeFloat (_effba .XHeight ),StemV :_eg .MakeFloat (_effba .StemV ),StemH :_eg .MakeFloat (_effba .StemH )},_fcgd :_gdff .Encoder ()};
|
||
};
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_cdcb *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dcgd :=pageNum -1;for _gccd :=range _cdcb ._bfce {if _gccd ==_dcgd {_baeb :=page .Duplicate ();_faadf (_baeb );_cdcb ._bfce [_gccd ]=_baeb ;};};};
|
||
|
||
// 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 (_cgbga *PdfFont )CharcodesToStrings (charcodes []_cec .CharCode )([]string ,int ,int ){_dgbb :=_cgbga .baseFields ();_bdbac :=make ([]string ,0,len (charcodes ));_aaeda :=0;_cgfb :=_cgbga .Encoder ();if _cgfb !=nil {switch _bfbe :=_cgfb .(type ){case _cec .SimpleEncoder :_cegg :=_bfbe .BaseName ();
|
||
if _ ,_defc :=_acgcf [_cegg ];_defc {for _ ,_cfafg :=range charcodes {if _dafb ,_ccac :=_cgfb .CharcodeToRune (_cfafg );_ccac {_bdbac =append (_bdbac ,string (_dafb ));}else {_dbg .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",_cfafg ,charcodes ,_dgbb .isCIDFont (),_cgbga ,_cgfb );
|
||
_aaeda ++;_bdbac =append (_bdbac ,_aff .MissingCodeString );};};return _bdbac ,len (_bdbac ),_aaeda ;};};};for _ ,_deafg :=range charcodes {if _dgbb ._fffc !=nil {if _bbeac ,_aebg :=_dgbb ._fffc .CharcodeToUnicode (_aff .CharCode (_deafg ));_aebg {_bdbac =append (_bdbac ,_bbeac );
|
||
continue ;};};if _cgfb !=nil {if _afbg ,_cecg :=_cgfb .CharcodeToRune (_deafg );_cecg {_bdbac =append (_bdbac ,string (_afbg ));continue ;};};_dbg .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",_deafg ,charcodes ,_dgbb .isCIDFont (),_cgbga ,_cgfb );
|
||
_aaeda ++;_bdbac =append (_bdbac ,_aff .MissingCodeString );};if _aaeda !=0{_dbg .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 ),_aaeda ,_cgbga );
|
||
};return _bdbac ,len (_bdbac ),_aaeda ;};
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_gcdb *PdfFieldSignature )ToPdfObject ()_eg .PdfObject {if _gcdb .PdfAnnotationWidget !=nil {_gcdb .PdfAnnotationWidget .ToPdfObject ();};_gcdb .PdfField .ToPdfObject ();_fedef :=_gcdb ._afbe ;_dacf :=_fedef .PdfObject .(*_eg .PdfObjectDictionary );
|
||
_dacf .SetIfNotNil ("\u0046\u0054",_eg .MakeName ("\u0053\u0069\u0067"));_dacf .SetIfNotNil ("\u004c\u006f\u0063\u006b",_gcdb .Lock );_dacf .SetIfNotNil ("\u0053\u0056",_gcdb .SV );if _gcdb .V !=nil {_dacf .SetIfNotNil ("\u0056",_gcdb .V .ToPdfObject ());
|
||
};return _fedef ;};
|
||
|
||
// 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 (_bagc *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgdf ,_gbd :=_eg .GetNumbersAsFloat (objects );
|
||
if _gbd !=nil {return nil ,_gbd ;};return _bagc .ColorFromFloats (_bgdf );};func (_bdd *PdfReader )newPdfActionTransFromDict (_baab *_eg .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_baab .Get ("\u0054\u0072\u0061n\u0073")},nil ;
|
||
};func (_dgeg *PdfReader )newPdfAnnotationMarkupFromDict (_eeg *_eg .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_eda :=&PdfAnnotationMarkup {};if _fgcg :=_eeg .Get ("\u0054");_fgcg !=nil {_eda .T =_fgcg ;};if _ecca :=_eeg .Get ("\u0050\u006f\u0070u\u0070");
|
||
_ecca !=nil {_egdb ,_dbbe :=_ecca .(*_eg .PdfIndirectObject );if !_dbbe {if _ ,_afag :=_ecca .(*_eg .PdfObjectNull );!_afag {return nil ,_bbd .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 {_fgb ,_gcf :=_dgeg .newPdfAnnotationFromIndirectObject (_egdb );if _gcf !=nil {return nil ,_gcf ;};if _fgb !=nil {_fedc ,_ddg :=_fgb ._ffbe .(*PdfAnnotationPopup );if !_ddg {return nil ,_bbd .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");
|
||
};_eda .Popup =_fedc ;};};};if _febc :=_eeg .Get ("\u0043\u0041");_febc !=nil {_eda .CA =_febc ;};if _cgad :=_eeg .Get ("\u0052\u0043");_cgad !=nil {_eda .RC =_cgad ;};if _agbe :=_eeg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_agbe !=nil {_eda .CreationDate =_agbe ;};if _bgf :=_eeg .Get ("\u0049\u0052\u0054");_bgf !=nil {_eda .IRT =_bgf ;};if _eggd :=_eeg .Get ("\u0053\u0075\u0062\u006a");_eggd !=nil {_eda .Subj =_eggd ;};if _fac :=_eeg .Get ("\u0052\u0054");_fac !=nil {_eda .RT =_fac ;
|
||
};if _cgf :=_eeg .Get ("\u0049\u0054");_cgf !=nil {_eda .IT =_cgf ;};if _cbaa :=_eeg .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cbaa !=nil {_eda .ExData =_cbaa ;};return _eda ,nil ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_ebdce *pdfCIDFontType2 )ToPdfObject ()_eg .PdfObject {if _ebdce ._ddfb ==nil {_ebdce ._ddfb =&_eg .PdfIndirectObject {};};_ccfcg :=_ebdce .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
|
||
_ebdce ._ddfb .PdfObject =_ccfcg ;if _ebdce .CIDSystemInfo !=nil {_ccfcg .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_ebdce .CIDSystemInfo );};if _ebdce .DW !=nil {_ccfcg .Set ("\u0044\u0057",_ebdce .DW );};if _ebdce .DW2 !=nil {_ccfcg .Set ("\u0044\u0057\u0032",_ebdce .DW2 );
|
||
};if _ebdce .W !=nil {_ccfcg .Set ("\u0057",_ebdce .W );};if _ebdce .W2 !=nil {_ccfcg .Set ("\u0057\u0032",_ebdce .W2 );};if _ebdce .CIDToGIDMap !=nil {_ccfcg .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_ebdce .CIDToGIDMap );};
|
||
return _ebdce ._ddfb ;};
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_da :=&PdfAction {};_da ._ege =_eg .MakeIndirectObject (_eg .MakeDict ());return _da ;};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _eg .PdfObject ;V _eg .PdfObject ;};
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_faagd *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _faagd ._egge ==nil {_faagd .GetAnnotations ();};_faagd ._egge =append (_faagd ._egge ,annot );};func _cafd (_ggbdgd []byte )([]byte ,error ){_ggccb :=_d .New ();if _ ,_ffaab :=_de .Copy (_ggccb ,_cbd .NewReader (_ggbdgd ));
|
||
_ffaab !=nil {return nil ,_ffaab ;};return _ggccb .Sum (nil ),nil ;};
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_agag *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _agag .Alternate ==nil {_dbg .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 _agag .N ==1{_dbg .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");
|
||
_dggb :=NewPdfColorspaceDeviceGray ();return _dggb .ImageToRGB (img );}else if _agag .N ==3{_dbg .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 _agag .N ==4{_dbg .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");
|
||
_eefa :=NewPdfColorspaceDeviceCMYK ();return _eefa .ImageToRGB (img );}else {return img ,_bbd .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");
|
||
};};_dbg .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",_agag );
|
||
_dbad ,_bfae :=_agag .Alternate .ImageToRGB (img );_dbg .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_dbg .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_dbad );
|
||
return _dbad ,_bfae ;};func (_eecea *PdfFont )baseFields ()*fontCommon {if _eecea ._gdcab ==nil {_dbg .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 _eecea ._gdcab .baseFields ();};func _abafe ()string {_abeg :="\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 _ecafc _cbd .Buffer ;
|
||
for _dbcefc :=0;_dbcefc < 6;_dbcefc ++{_ecafc .WriteRune (rune (_abeg [_gf .Intn (len (_abeg ))]));};return _ecafc .String ();};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_gfbcae OutlineDest )ToPdfObject ()_eg .PdfObject {if (_gfbcae .PageObj ==nil &&_gfbcae .Page < 0)||_gfbcae .Mode ==""{return _eg .MakeNull ();};_dgadd :=_eg .MakeArray ();if _gfbcae .PageObj !=nil {_dgadd .Append (_gfbcae .PageObj );}else {_dgadd .Append (_eg .MakeInteger (_gfbcae .Page ));
|
||
};_dgadd .Append (_eg .MakeName (_gfbcae .Mode ));switch _gfbcae .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_dgadd .Append (_eg .MakeFloat (_gfbcae .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_dgadd .Append (_eg .MakeFloat (_gfbcae .X ));
|
||
case "\u0058\u0059\u005a":_dgadd .Append (_eg .MakeFloat (_gfbcae .X ));_dgadd .Append (_eg .MakeFloat (_gfbcae .Y ));_dgadd .Append (_eg .MakeFloat (_gfbcae .Zoom ));default:_dgadd .Set (1,_eg .MakeName ("\u0046\u0069\u0074"));};return _dgadd ;};func (_bgabfa *PdfReader )newPdfFieldSignatureFromDict (_bbdfd *_eg .PdfObjectDictionary )(*PdfFieldSignature ,error ){_eecc :=&PdfFieldSignature {};
|
||
_fcbf ,_aeeb :=_eg .GetIndirect (_bbdfd .Get ("\u0056"));if _aeeb {var _agab error ;_eecc .V ,_agab =_bgabfa .newPdfSignatureFromIndirect (_fcbf );if _agab !=nil {return nil ,_agab ;};};_eecc .Lock ,_ =_eg .GetIndirect (_bbdfd .Get ("\u004c\u006f\u0063\u006b"));
|
||
_eecc .SV ,_ =_eg .GetIndirect (_bbdfd .Get ("\u0053\u0056"));return _eecc ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_edab *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};func (_ddae *PdfReader )newPdfAnnotationWidgetFromDict (_efee *_eg .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_eegg :=PdfAnnotationWidget {};_eegg .H =_efee .Get ("\u0048");
|
||
_eegg .MK =_efee .Get ("\u004d\u004b");_eegg .A =_efee .Get ("\u0041");_eegg .AA =_efee .Get ("\u0041\u0041");_eegg .BS =_efee .Get ("\u0042\u0053");_eegg .Parent =_efee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_eegg ,nil ;};
|
||
|
||
// NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont.
|
||
// If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile
|
||
// is guaranteed to succeed.
|
||
func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_gcdbd ,_ffbbg :=NewStandard14Font (basefont );if _ffbbg !=nil {panic (_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
|
||
};return _gcdbd ;};func _dbae (_aecc _eg .PdfObject )(map[_cec .CharCode ]float64 ,error ){if _aecc ==nil {return nil ,nil ;};_edged ,_ecegf :=_eg .GetArray (_aecc );if !_ecegf {return nil ,nil ;};_bfbf :=map[_cec .CharCode ]float64 {};_ggfcb :=_edged .Len ();
|
||
for _adbef :=0;_adbef < _ggfcb -1;_adbef ++{_fbdcf :=_eg .TraceToDirectObject (_edged .Get (_adbef ));_ccgab ,_defd :=_eg .GetIntVal (_fbdcf );if !_defd {return nil ,_e .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_adbef ,_fbdcf );
|
||
};_adbef ++;if _adbef > _ggfcb -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_edged );};_aabc :=_eg .TraceToDirectObject (_edged .Get (_adbef ));
|
||
switch _aabc .(type ){case *_eg .PdfObjectArray :_ecebg ,_ :=_eg .GetArray (_aabc );if _fddbac ,_affce :=_ecebg .ToFloat64Array ();_affce ==nil {for _afbfc :=0;_afbfc < len (_fddbac );_afbfc ++{_bfbf [_cec .CharCode (_ccgab +_afbfc )]=_fddbac [_afbfc ];
|
||
};}else {return nil ,_e .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_adbef ,_aabc );};case *_eg .PdfObjectInteger :_dcdff ,_ebce :=_eg .GetIntVal (_aabc );
|
||
if !_ebce {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_adbef ,_aabc );};_adbef ++;if _adbef > _ggfcb -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_edged );
|
||
};_acdcb :=_edged .Get (_adbef );_eaged ,_fbec :=_eg .GetNumberAsFloat (_acdcb );if _fbec !=nil {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_adbef ,_acdcb );
|
||
};for _cfcce :=_ccgab ;_cfcce <=_dcdff ;_cfcce ++{_bfbf [_cec .CharCode (_cfcce )]=_eaged ;};default:return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_adbef ,_aabc );
|
||
};};return _bfbf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgbd *PdfAnnotationFileAttachment )ToPdfObject ()_eg .PdfObject {_fgbd .PdfAnnotation .ToPdfObject ();_gaefa :=_fgbd ._gag ;_ebab :=_gaefa .PdfObject .(*_eg .PdfObjectDictionary );_fgbd .PdfAnnotationMarkup .appendToPdfDictionary (_ebab );_ebab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_ebab .SetIfNotNil ("\u0046\u0053",_fgbd .FS );_ebab .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgbd .Name );return _gaefa ;};
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;NewWindow _eg .PdfObject ;};
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _fc .Permissions ;Algorithm EncryptionAlgorithm ;};
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_ffdd *PdfAppender )UpdateObject (obj _eg .PdfObject ){_ffdd .replaceObject (obj ,obj );if _ ,_fedf :=_ffdd ._adge [obj ];!_fedf {_ffdd ._acda =append (_ffdd ._acda ,obj );_ffdd ._adge [obj ]=struct{}{};};};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_fdce *fontFile )String ()string {_ecefb :="\u005b\u004e\u006f\u006e\u0065\u005d";if _fdce ._feffd !=nil {_ecefb =_fdce ._feffd .String ();};return _e .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_fdce ._dadg ,_ecefb );
|
||
};func _becf (_gfdd _eg .PdfObject )(*PdfColorspaceCalGray ,error ){_caaf :=NewPdfColorspaceCalGray ();if _bbea ,_fede :=_gfdd .(*_eg .PdfIndirectObject );_fede {_caaf ._gccdc =_bbea ;};_gfdd =_eg .TraceToDirectObject (_gfdd );_gdac ,_bacba :=_gfdd .(*_eg .PdfObjectArray );
|
||
if !_bacba {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gdac .Len ()!=2{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");
|
||
};_gfdd =_eg .TraceToDirectObject (_gdac .Get (0));_afcfb ,_bacba :=_gfdd .(*_eg .PdfObjectName );if !_bacba {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if *_afcfb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_e .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_gfdd =_eg .TraceToDirectObject (_gdac .Get (1));
|
||
_gaee ,_bacba :=_gfdd .(*_eg .PdfObjectDictionary );if !_bacba {return nil ,_e .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};_gfdd =_gaee .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gfdd =_eg .TraceToDirectObject (_gfdd );_ecfdc ,_bacba :=_gfdd .(*_eg .PdfObjectArray );if !_bacba {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
|
||
};if _ecfdc .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_addc ,_adbb :=_ecfdc .GetAsFloat64Slice ();
|
||
if _adbb !=nil {return nil ,_adbb ;};_caaf .WhitePoint =_addc ;_gfdd =_gaee .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gfdd !=nil {_gfdd =_eg .TraceToDirectObject (_gfdd );_fdbe ,_bebf :=_gfdd .(*_eg .PdfObjectArray );if !_bebf {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");
|
||
};if _fdbe .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_bdc ,_dbfb :=_fdbe .GetAsFloat64Slice ();
|
||
if _dbfb !=nil {return nil ,_dbfb ;};_caaf .BlackPoint =_bdc ;};_gfdd =_gaee .Get ("\u0047\u0061\u006dm\u0061");if _gfdd !=nil {_gfdd =_eg .TraceToDirectObject (_gfdd );_aagc ,_gfaa :=_eg .GetNumberAsFloat (_gfdd );if _gfaa !=nil {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
|
||
};_caaf .Gamma =_aagc ;};return _caaf ,nil ;};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_ca *PdfAction )GetContext ()PdfModel {if _ca ==nil {return nil ;};return _ca ._cea ;};
|
||
|
||
// 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 ()_eg .PdfObject ;GetContainingPdfObject ()_eg .PdfObject ;};func _adged (_dbcec *_eg .PdfObjectDictionary ,_adcbf *fontCommon )(*pdfCIDFontType0 ,error ){if _adcbf ._fgbbb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_dbg .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",_adcbf );
|
||
return nil ,_eg .ErrRangeError ;};_bbcbc :=_aebfd (_adcbf );_cgcb ,_bbbeb :=_eg .GetDict (_dbcec .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bbbeb {_dbg .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",_adcbf );
|
||
return nil ,ErrRequiredAttributeMissing ;};_bbcbc .CIDSystemInfo =_cgcb ;_bbcbc .DW =_dbcec .Get ("\u0044\u0057");_bbcbc .W =_dbcec .Get ("\u0057");_bbcbc .DW2 =_dbcec .Get ("\u0044\u0057\u0032");_bbcbc .W2 =_dbcec .Get ("\u0057\u0032");_bbcbc ._gfbab =1000.0;
|
||
if _egeb ,_cedc :=_eg .GetNumberAsFloat (_bbcbc .DW );_cedc ==nil {_bbcbc ._gfbab =_egeb ;};_fggg ,_gcdcf :=_dbae (_bbcbc .W );if _gcdcf !=nil {return nil ,_gcdcf ;};if _fggg ==nil {_fggg =map[_cec .CharCode ]float64 {};};_bbcbc ._fedfd =_fggg ;return _bbcbc ,nil ;
|
||
};
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_efafa *Image )AlphaMap (mapFunc AlphaMapFunc ){for _ddcdg ,_cggc :=range _efafa ._fcec {_efafa ._fcec [_ddcdg ]=mapFunc (_cggc );};};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_dgbc *PdfPageResources )SetShadingByName (keyName _eg .PdfObjectName ,shadingObj _eg .PdfObject )error {if _dgbc .Shading ==nil {_dgbc .Shading =_eg .MakeDict ();};_egfac ,_beaba :=_dgbc .Shading .(*_eg .PdfObjectDictionary );if !_beaba {return _eg .ErrTypeError ;
|
||
};_egfac .Set (keyName ,shadingObj );return nil ;};
|
||
|
||
// NewXObjectImageFromImage creates a new XObject Image from an image object
|
||
// with default options. If encoder is nil, uses raw encoding (none).
|
||
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _eg .StreamEncoder )(*XObjectImage ,error ){_aaacg :=NewXObjectImage ();return UpdateXObjectImageFromImage (_aaacg ,img ,cs ,encoder );};
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_eagec *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _eg .GetNumberAsFloat (_eagec .CapHeight );};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_ddaeb *_eg .PdfObjectDictionary ;_gdef *_eg .PdfIndirectObject ;};
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
|
||
|
||
// 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 (_fcbfc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fbcf :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_gbbff ,_fddbb :=_fcbfc .GetNumPages ();if _fddbb !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fddbb );
|
||
return nil ,_fddbb ;};for _dfafcd :=1;_dfafcd <=_gbbff ;_dfafcd ++{_cegga ,_defed :=_fcbfc .GetPage (_dfafcd );if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );return nil ,_defed ;};if opts .PageProcessCallback !=nil {_defed =opts .PageProcessCallback (_dfafcd ,_cegga );
|
||
if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );return nil ,_defed ;};}else if opts .PageCallback !=nil {opts .PageCallback (_dfafcd ,_cegga );};_defed =_fbcf .AddPage (_cegga );if _defed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_defed );
|
||
return nil ,_defed ;};};_fbcf ._dacab =_fcbfc .PdfVersion ().Major ;_fbcf ._ecae =_fcbfc .PdfVersion ().Minor ;if !opts .SkipInfo {_fdcdf ,_egfed :=_fcbfc .GetPdfInfo ();if _egfed !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egfed );
|
||
}else {_fbcf ._ggca .PdfObject =_fdcdf .ToPdfObject ();};};if !opts .SkipAcroForm {_fdecd :=_fbcf .SetForms (_fcbfc .AcroForm );if _fdecd !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdecd );return nil ,_fdecd ;};};if !opts .SkipOutlines {_fbcf .AddOutlineTree (_fcbfc .GetOutlineTree ());
|
||
};if !opts .SkipOCProperties {_cecfgc ,_bbcf :=_fcbfc .GetOCProperties ();if _bbcf !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbcf );}else {_bbcf =_fbcf .SetOCProperties (_cecfgc );if _bbcf !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbcf );
|
||
};};};if !opts .SkipPageLabels {_eafdg ,_aaag :=_fcbfc .GetPageLabels ();if _aaag !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aaag );}else {_aaag =_fbcf .SetPageLabels (_eafdg );if _aaag !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aaag );
|
||
};};};if !opts .SkipNamedDests {_ggafd ,_cece :=_fcbfc .GetNamedDestinations ();if _cece !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cece );}else {_cece =_fbcf .SetNamedDestinations (_ggafd );if _cece !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cece );
|
||
};};};if !opts .SkipRotation &&_fcbfc .Rotate !=nil {if _dcee :=_fbcf .SetRotation (*_fcbfc .Rotate );_dcee !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcee );};};return &_fbcf ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
|
||
func _dcaf (_addb *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_addb }};
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_fcabfd *Image )ColorAt (x ,y int )(_f .Color ,error ){_fegbg :=_ff .BytesPerLine (int (_fcabfd .Width ),int (_fcabfd .BitsPerComponent ),_fcabfd .ColorComponents );switch _fcabfd .ColorComponents {case 1:return _ff .ColorAtGrayscale (x ,y ,int (_fcabfd .BitsPerComponent ),_fegbg ,_fcabfd .Data ,_fcabfd ._aaeac );
|
||
case 3:return _ff .ColorAtNRGBA (x ,y ,int (_fcabfd .Width ),_fegbg ,int (_fcabfd .BitsPerComponent ),_fcabfd .Data ,_fcabfd ._fcec ,_fcabfd ._aaeac );case 4:return _ff .ColorAtCMYK (x ,y ,int (_fcabfd .Width ),_fcabfd .Data ,_fcabfd ._aaeac );};_dbg .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",_fcabfd .ColorComponents ,_fcabfd .BitsPerComponent );
|
||
return nil ,_bbd .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};func (_eddeeb *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _cdff :=_eddeeb ._eecfe ;
|
||
_cdff !=nil {return _cdff ;};return _eddeeb ._ggce ;};
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_ddgg *PdfFieldChoice )ToPdfObject ()_eg .PdfObject {_ddgg .PdfField .ToPdfObject ();_ffff :=_ddgg ._afbe ;_cbaf :=_ffff .PdfObject .(*_eg .PdfObjectDictionary );_cbaf .Set ("\u0046\u0054",_eg .MakeName ("\u0043\u0068"));if _ddgg .Opt !=nil {_cbaf .Set ("\u004f\u0070\u0074",_ddgg .Opt );
|
||
};if _ddgg .TI !=nil {_cbaf .Set ("\u0054\u0049",_ddgg .TI );};if _ddgg .I !=nil {_cbaf .Set ("\u0049",_ddgg .I );};return _ffff ;};
|
||
|
||
// 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 (_adgcd *PdfFieldButton )GetType ()ButtonType {_ceagc :=ButtonTypeCheckbox ;if _adgcd .Ff !=nil {if (uint32 (*_adgcd .Ff )&FieldFlagPushbutton .Mask ())> 0{_ceagc =ButtonTypePush ;}else if (uint32 (*_adgcd .Ff )&FieldFlagRadio .Mask ())> 0{_ceagc =ButtonTypeRadio ;
|
||
};};return _ceagc ;};var _dfee =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":{}};
|
||
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_baage *PdfSignature )Initialize ()error {if _baage .Handler ==nil {return _bbd .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 _baage .Handler .InitSignature (_baage );};func (_ddfccc *LTV )buildCertChain (_fcdb ,_febd []*_ce .Certificate )([]*_ce .Certificate ,map[string ]*_ce .Certificate ,error ){_ccfd :=map[string ]*_ce .Certificate {};for _ ,_beac :=range _fcdb {_ccfd [_beac .Subject .CommonName ]=_beac ;
|
||
};_edbbe :=_fcdb ;for _ ,_efddb :=range _febd {_gbgba :=_efddb .Subject .CommonName ;if _ ,_dcgbff :=_ccfd [_gbgba ];_dcgbff {continue ;};_ccfd [_gbgba ]=_efddb ;_edbbe =append (_edbbe ,_efddb );};if len (_edbbe )==0{return nil ,nil ,ErrSignNoCertificates ;
|
||
};var _bdbe error ;for _dadbc :=_edbbe [0];_dadbc !=nil &&!_ddfccc .CertClient .IsCA (_dadbc );{_fdcgd ,_gbec :=_ccfd [_dadbc .Issuer .CommonName ];if !_gbec {if _fdcgd ,_bdbe =_ddfccc .CertClient .GetIssuer (_dadbc );_bdbe !=nil {_dbg .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",_bdbe );
|
||
break ;};_ccfd [_dadbc .Issuer .CommonName ]=_fdcgd ;_edbbe =append (_edbbe ,_fdcgd );};_dadbc =_fdcgd ;};return _edbbe ,_ccfd ,nil ;};
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_bbbg *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fdgbb :=_ccg .NewReader (img .getBase ());_dbfa :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cabcd :=_ccg .NewWriter (_dbfa );
|
||
_bdfc :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_fbbg :=make ([]uint32 ,3);var (_egag error ;_cgacd ,_bbgad ,_fbcd ,_ggfa ,_cecb ,_ffef float64 ;);for {_egag =_fdgbb .ReadSamples (_fbbg );if _egag ==_de .EOF {break ;}else if _egag !=nil {return img ,_egag ;
|
||
};_cgacd =float64 (_fbbg [0])/_bdfc ;_bbgad =float64 (_fbbg [1])/_bdfc ;_fbcd =float64 (_fbbg [2])/_bdfc ;_ggfa =_bbbg .Matrix [0]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [3]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [6]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]);
|
||
_cecb =_bbbg .Matrix [1]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [4]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [7]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]);_ffef =_bbbg .Matrix [2]*_bc .Pow (_cgacd ,_bbbg .Gamma [0])+_bbbg .Matrix [5]*_bc .Pow (_bbgad ,_bbbg .Gamma [1])+_bbbg .Matrix [8]*_bc .Pow (_fbcd ,_bbbg .Gamma [2]);
|
||
_cgacd =3.240479*_ggfa +-1.537150*_cecb +-0.498535*_ffef ;_bbgad =-0.969256*_ggfa +1.875992*_cecb +0.041556*_ffef ;_fbcd =0.055648*_ggfa +-0.204043*_cecb +1.057311*_ffef ;_cgacd =_bc .Min (_bc .Max (_cgacd ,0),1.0);_bbgad =_bc .Min (_bc .Max (_bbgad ,0),1.0);
|
||
_fbcd =_bc .Min (_bc .Max (_fbcd ,0),1.0);_fbbg [0]=uint32 (_cgacd *_bdfc );_fbbg [1]=uint32 (_bbgad *_bdfc );_fbbg [2]=uint32 (_fbcd *_bdfc );if _egag =_cabcd .WriteSamples (_fbbg );_egag !=nil {return img ,_egag ;};};return _egbde (&_dbfa ),nil ;};func _abbg ()string {return _dbg .Version };
|
||
func (_fgeg *PdfReader )newPdfAnnotationPolygonFromDict (_bgaa *_eg .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_fddd :=PdfAnnotationPolygon {};_cgda ,_gfga :=_fgeg .newPdfAnnotationMarkupFromDict (_bgaa );if _gfga !=nil {return nil ,_gfga ;};
|
||
_fddd .PdfAnnotationMarkup =_cgda ;_fddd .Vertices =_bgaa .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_fddd .LE =_bgaa .Get ("\u004c\u0045");_fddd .BS =_bgaa .Get ("\u0042\u0053");_fddd .IC =_bgaa .Get ("\u0049\u0043");_fddd .BE =_bgaa .Get ("\u0042\u0045");
|
||
_fddd .IT =_bgaa .Get ("\u0049\u0054");_fddd .Measure =_bgaa .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_fddd ,nil ;};
|
||
|
||
// 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 (_bbeae *PdfWriter )SetRotation (rotate int64 )error {_efffa ,_gfbeg :=_eg .GetDict (_bbeae ._afbga );if !_gfbeg {return ErrTypeCheck ;};_efffa .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eg .MakeInteger (rotate ));return nil ;};func (_acgdef *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _acgdef ._cdggc .GetCrypter ()!=nil &&!_acgdef ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_deefd :=_acgdef ._efdg ;_defg :=_deefd .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _defg ==nil {return nil ,nil ;};_dcffc ,_ :=_eg .GetIndirect (_defg );_defg =_eg .TraceToDirectObject (_defg );if _eg .IsNullObject (_defg ){_dbg .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 ;};_bgca ,_ebdcc :=_eg .GetDict (_defg );if !_ebdcc {_dbg .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_defg );_dbg .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_defg );};_dbg .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_dbg .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 !_acgdef ._bebe {_dcbd :=_acgdef .traverseObjectData (_bgca );
|
||
if _dcbd !=nil {_dbg .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",_dcbd );
|
||
return nil ,_dcbd ;};};_fbadd ,_defa :=_acgdef .newPdfAcroFormFromDict (_dcffc ,_bgca );if _defa !=nil {return nil ,_defa ;};return _fbadd ,nil ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_aecfe *PdfColorspaceCalRGB )ToPdfObject ()_eg .PdfObject {_fbac :=&_eg .PdfObjectArray {};_fbac .Append (_eg .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_bcaf :=_eg .MakeDict ();if _aecfe .WhitePoint !=nil {_bfeg :=_eg .MakeArray (_eg .MakeFloat (_aecfe .WhitePoint [0]),_eg .MakeFloat (_aecfe .WhitePoint [1]),_eg .MakeFloat (_aecfe .WhitePoint [2]));
|
||
_bcaf .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_bfeg );}else {_dbg .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 _aecfe .BlackPoint !=nil {_fdfc :=_eg .MakeArray (_eg .MakeFloat (_aecfe .BlackPoint [0]),_eg .MakeFloat (_aecfe .BlackPoint [1]),_eg .MakeFloat (_aecfe .BlackPoint [2]));_bcaf .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fdfc );
|
||
};if _aecfe .Gamma !=nil {_eage :=_eg .MakeArray (_eg .MakeFloat (_aecfe .Gamma [0]),_eg .MakeFloat (_aecfe .Gamma [1]),_eg .MakeFloat (_aecfe .Gamma [2]));_bcaf .Set ("\u0047\u0061\u006dm\u0061",_eage );};if _aecfe .Matrix !=nil {_gbdb :=_eg .MakeArray (_eg .MakeFloat (_aecfe .Matrix [0]),_eg .MakeFloat (_aecfe .Matrix [1]),_eg .MakeFloat (_aecfe .Matrix [2]),_eg .MakeFloat (_aecfe .Matrix [3]),_eg .MakeFloat (_aecfe .Matrix [4]),_eg .MakeFloat (_aecfe .Matrix [5]),_eg .MakeFloat (_aecfe .Matrix [6]),_eg .MakeFloat (_aecfe .Matrix [7]),_eg .MakeFloat (_aecfe .Matrix [8]));
|
||
_bcaf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbdb );};_fbac .Append (_bcaf );if _aecfe ._gdef !=nil {_aecfe ._gdef .PdfObject =_fbac ;return _aecfe ._gdef ;};return _fbac ;};func (_bfd *PdfReader )newPdfAnnotationLineFromDict (_bda *_eg .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_cbaac :=PdfAnnotationLine {};
|
||
_dgae ,_cgec :=_bfd .newPdfAnnotationMarkupFromDict (_bda );if _cgec !=nil {return nil ,_cgec ;};_cbaac .PdfAnnotationMarkup =_dgae ;_cbaac .L =_bda .Get ("\u004c");_cbaac .BS =_bda .Get ("\u0042\u0053");_cbaac .LE =_bda .Get ("\u004c\u0045");_cbaac .IC =_bda .Get ("\u0049\u0043");
|
||
_cbaac .LL =_bda .Get ("\u004c\u004c");_cbaac .LLE =_bda .Get ("\u004c\u004c\u0045");_cbaac .Cap =_bda .Get ("\u0043\u0061\u0070");_cbaac .IT =_bda .Get ("\u0049\u0054");_cbaac .LLO =_bda .Get ("\u004c\u004c\u004f");_cbaac .CP =_bda .Get ("\u0043\u0050");
|
||
_cbaac .Measure =_bda .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_cbaac .CO =_bda .Get ("\u0043\u004f");return &_cbaac ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_faag *PdfAnnotationSquiggly )ToPdfObject ()_eg .PdfObject {_faag .PdfAnnotation .ToPdfObject ();_deb :=_faag ._gag ;_cafc :=_deb .PdfObject .(*_eg .PdfObjectDictionary );_faag .PdfAnnotationMarkup .appendToPdfDictionary (_cafc );_cafc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_cafc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_faag .QuadPoints );return _deb ;};func (_fbe *PdfReader )newPdfActionImportDataFromDict (_cafg *_eg .PdfObjectDictionary )(*PdfActionImportData ,error ){_ebfg ,_gfad :=_gbbe (_cafg .Get ("\u0046"));
|
||
if _gfad !=nil {return nil ,_gfad ;};return &PdfActionImportData {F :_ebfg },nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bcf *PdfAnnotationMovie )ToPdfObject ()_eg .PdfObject {_bcf .PdfAnnotation .ToPdfObject ();_ffge :=_bcf ._gag ;_fdgb :=_ffge .PdfObject .(*_eg .PdfObjectDictionary );_fdgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_fdgb .SetIfNotNil ("\u0054",_bcf .T );_fdgb .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bcf .Movie );_fdgb .SetIfNotNil ("\u0041",_bcf .A );return _ffge ;};
|
||
|
||
// 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 (_bacf *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abcf :=vals [0];if _abcf < 0.0||_abcf > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_ffca :=vals [1];if _ffca < 0.0||_ffca > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aefb :=vals [2];if _aefb < 0.0||_aefb > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_bee :=vals [3];if _bee < 0.0||_bee > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_baad :=NewPdfColorDeviceCMYK (_abcf ,_ffca ,_aefb ,_bee );return _baad ,nil ;};func (_dcf *PdfReader )newPdfActionSoundFromDict (_ecc *_eg .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_ecc .Get ("\u0053\u006f\u0075n\u0064"),Volume :_ecc .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_ecc .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_ecc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_ecc .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_ebe :=NewPdfAction ();_gee :=&PdfActionJavaScript {};_gee .PdfAction =_ebe ;_ebe .SetContext (_gee );return _gee ;};
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_gedb *PdfFieldButton )IsRadio ()bool {return _gedb .GetType ()==ButtonTypeRadio };
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_afbe :_eg .MakeIndirectObject (_eg .MakeDict ())}};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_cbaag *modelManager )GetPrimitiveFromModel (model PdfModel )_eg .PdfObject {_ffabe ,_bfebd :=_cbaag ._eegb [model ];if !_bfebd {return nil ;};return _ffabe ;};
|
||
|
||
// 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 (_fecad *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _bada []*PdfOutlineTreeNode ;var _aceea []string ;var _gbdd func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gbdd =func (_cacbb *PdfOutlineTreeNode ,_ffdef *[]*PdfOutlineTreeNode ,_bbagf *[]string ,_adcdc int ){if _cacbb ==nil {return ;
|
||
};if _cacbb ._dbaeb ==nil {_dbg .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 ;};_gagaa ,_egeae :=_cacbb ._dbaeb .(*PdfOutlineItem );if _egeae {*_ffdef =append (*_ffdef ,&_gagaa .PdfOutlineTreeNode );
|
||
_agcge :=_dc .Repeat ("\u0020",_adcdc *2)+_gagaa .Title .Decoded ();*_bbagf =append (*_bbagf ,_agcge );};if _cacbb .First !=nil {_gdedf :=_dc .Repeat ("\u0020",_adcdc *2)+"\u002b";*_bbagf =append (*_bbagf ,_gdedf );_gbdd (_cacbb .First ,_ffdef ,_bbagf ,_adcdc +1);
|
||
};if _egeae &&_gagaa .Next !=nil {_gbdd (_gagaa .Next ,_ffdef ,_bbagf ,_adcdc );};};_gbdd (_fecad ._ebgea ,&_bada ,&_aceea ,0);return _bada ,_aceea ,nil ;};func (_dcbfaa *Image )samplesAddPadding (_eafee []uint32 )[]uint32 {_bebae :=_ff .BytesPerLine (int (_dcbfaa .Width ),int (_dcbfaa .BitsPerComponent ),_dcbfaa .ColorComponents )*(8/int (_dcbfaa .BitsPerComponent ));
|
||
_gaae :=_bebae *int (_dcbfaa .Height );if len (_eafee )==_gaae {return _eafee ;};_eebgd :=make ([]uint32 ,_gaae );_fgcgd :=int (_dcbfaa .Width )*_dcbfaa .ColorComponents ;for _bfbb :=0;_bfbb < int (_dcbfaa .Height );_bfbb ++{_acgf :=_bfbb *int (_dcbfaa .Width );
|
||
_dgaa :=_bfbb *_bebae ;for _fdgca :=0;_fdgca < _fgcgd ;_fdgca ++{_eebgd [_dgaa +_fdgca ]=_eafee [_acgf +_fdgca ];};};return _eebgd ;};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_eeeg *_eg .PdfIndirectObject ;_afbga *_eg .PdfIndirectObject ;_eacbf map[_eg .PdfObject ]struct{};_aecabb []_eg .PdfObject ;_bccbf map[_eg .PdfObject ]struct{};_afcgff []*_eg .PdfIndirectObject ;_ebeg *PdfOutlineTreeNode ;_ebaaa *_eg .PdfObjectDictionary ;
|
||
_gcabd []_eg .PdfObject ;_ggca *_eg .PdfIndirectObject ;_fggeg *_g .Writer ;_agecc int64 ;_cfgdd error ;_ccag *_eg .PdfCrypt ;_fbdcc *_eg .PdfObjectDictionary ;_fbbfd *_eg .PdfIndirectObject ;_ecadc *_eg .PdfObjectArray ;_dacab int ;_ecae int ;_fdgeg *bool ;
|
||
_cfadb map[_eg .PdfObject ][]*_eg .PdfObjectDictionary ;_adcgf *PdfAcroForm ;_efdcf Optimizer ;_fadgbb map[int ]crossReference ;_dfgff int64 ;ObjNumOffset int ;_aaedc bool ;_adcdd _eg .XrefTable ;_fcebcb int64 ;_cdedc int64 ;_cacc map[_eg .PdfObject ]int64 ;
|
||
_aeceg map[_eg .PdfObject ]struct{};_fggebg string ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _eg .PdfObject ;FS _eg .PdfObject ;F _eg .PdfObject ;UF _eg .PdfObject ;DOS _eg .PdfObject ;Mac _eg .PdfObject ;Unix _eg .PdfObject ;ID _eg .PdfObject ;V _eg .PdfObject ;EF _eg .PdfObject ;RF _eg .PdfObject ;Desc _eg .PdfObject ;
|
||
CI _eg .PdfObject ;_fceg _eg .PdfObject ;};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _eg .PdfObject ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_abadg *OutlineItem )ToPdfObject ()_eg .PdfObject {_gcdf ,_ :=_abadg .ToPdfOutlineItem ();return _gcdf .ToPdfObject ();};
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_ea .PSProgram ;_fdgac *_ea .PSExecutor ;_efgdd []byte ;_egdfb *_eg .PdfObjectStream ;};type pdfFontType3 struct{fontCommon ;_bbfae *_eg .PdfIndirectObject ;
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _eg .PdfObject ;Encoding _eg .PdfObject ;FontBBox _eg .PdfObject ;FontMatrix _eg .PdfObject ;FirstChar _eg .PdfObject ;LastChar _eg .PdfObject ;Widths _eg .PdfObject ;Resources _eg .PdfObject ;_cgcec map[_cec .CharCode ]float64 ;_daeg _cec .TextEncoder ;
|
||
};
|
||
|
||
// GetNamedDestinations returns the Names entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_daba *PdfReader )GetNamedDestinations ()(_eg .PdfObject ,error ){_gecbg :=_eg .ResolveReference (_daba ._efdg .Get ("\u004e\u0061\u006de\u0073"));if _gecbg ==nil {return nil ,nil ;};if !_daba ._bebe {_feagb :=_daba .traverseObjectData (_gecbg );
|
||
if _feagb !=nil {return nil ,_feagb ;};};return _gecbg ,nil ;};
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_accf *PdfWriter )WriteToFile (outputFilePath string )error {_ebfe ,_acbcg :=_bg .Create (outputFilePath );if _acbcg !=nil {return _acbcg ;};defer _ebfe .Close ();return _accf .Write (_ebfe );};func _aceda (_dagdf *_eg .PdfObjectDictionary )(*PdfShadingPattern ,error ){_fege :=&PdfShadingPattern {};
|
||
_gggda :=_dagdf .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _gggda ==nil {_dbg .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bgade ,_aaege :=_dcafge (_gggda );
|
||
if _aaege !=nil {_dbg .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_aaege );return nil ,_aaege ;};_fege .Shading =_bgade ;if _bbgd :=_dagdf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_bbgd !=nil {_cegfe ,_dfdbd :=_bbgd .(*_eg .PdfObjectArray );if !_dfdbd {_dbg .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",_bbgd );return nil ,_eg .ErrTypeError ;
|
||
};_fege .Matrix =_cegfe ;};if _gedg :=_dagdf .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_gedg !=nil {_fege .ExtGState =_gedg ;};return _fege ,nil ;};
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_baded *PdfColorDeviceRGB )R ()float64 {return _baded [0]};
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _eg .PdfObject ;Name _eg .PdfObject ;State _eg .PdfObject ;StateModel _eg .PdfObject ;};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_aggb :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_aggb ;};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_gdfbc *PdfInfo )CustomKeys ()[]string {if _gdfbc ._fbfgb ==nil {return nil ;};_fdfab :=make ([]string ,len (_gdfbc ._fbfgb .Keys ()));for _ ,_ddbb :=range _gdfbc ._fbfgb .Keys (){_fdfab =append (_fdfab ,_ddbb .String ());};return _fdfab ;};
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_cgcdf :=appender .Reader .DSS ;if _cgcdf ==nil {_cgcdf =NewDSS ();};if _ggggg :=_cgcdf .generateHashMaps ();_ggggg !=nil {return nil ,_ggggg ;};return <V {CertClient :_cbf .NewCertClient (),OCSPClient :_cbf .NewOCSPClient (),CRLClient :_cbf .NewCRLClient (),SkipExisting :true ,_caadf :appender ,_fgada :_cgcdf },nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dbfc *PdfActionImportData )ToPdfObject ()_eg .PdfObject {_dbfc .PdfAction .ToPdfObject ();_dca :=_dbfc ._ege ;_ebf :=_dca .PdfObject .(*_eg .PdfObjectDictionary );_ebf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeImportData )));if _dbfc .F !=nil {_ebf .Set ("\u0046",_dbfc .F .ToPdfObject ());
|
||
};return _dca ;};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_addgc *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_addgc .Base .GetNumComponents ();if N < 1{return Image {},_e .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
|
||
};_cfbbe :=_ff .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._fcec ,img ._aaeac );_bggf :=_ccg .NewReader (img .getBase ());_caaa :=_ccg .NewWriter (_cfbbe );var (_efbfcg uint32 ;_cgbf int ;_gfed error ;);for {_efbfcg ,_gfed =_bggf .ReadSample ();
|
||
if _gfed ==_de .EOF {break ;}else if _gfed !=nil {return img ,_gfed ;};_cgbf =int (_efbfcg );_dbg .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",_cgbf ,N ,len (_addgc ._dbcc ));
|
||
if (_cgbf +1)*N > len (_addgc ._dbcc ){_cgbf =len (_addgc ._dbcc )/N -1;_dbg .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_cgbf );if _cgbf < 0{_dbg .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 _dcfa :=_cgbf *N ;_dcfa < (_cgbf +1)*N ;_dcfa ++{if _gfed =_caaa .WriteSample (uint32 (_addgc ._dbcc [_dcfa ]));_gfed !=nil {return img ,_gfed ;};};};return _addgc .Base .ImageToRGB (_egbde (&_cfbbe ));};
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_edbda []byte )(_bedfe int ,_acedb error );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aae *PdfActionSound )ToPdfObject ()_eg .PdfObject {_aae .PdfAction .ToPdfObject ();_gbb :=_aae ._ege ;_fcfb :=_gbb .PdfObject .(*_eg .PdfObjectDictionary );_fcfb .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSound )));_fcfb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aae .Sound );
|
||
_fcfb .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_aae .Volume );_fcfb .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_aae .Synchronous );_fcfb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_aae .Repeat );
|
||
_fcfb .SetIfNotNil ("\u004d\u0069\u0078",_aae .Mix );return _gbb ;};
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_eeddeb :=PdfWriter {};_eeddeb ._bccbf =map[_eg .PdfObject ]struct{}{};_eeddeb ._aecabb =[]_eg .PdfObject {};_eeddeb ._cfadb =map[_eg .PdfObject ][]*_eg .PdfObjectDictionary {};_eeddeb ._aeceg =map[_eg .PdfObject ]struct{}{};
|
||
_eeddeb ._dacab =1;_eeddeb ._ecae =3;_aeddc :=_eg .MakeDict ();_aegcf :=[]struct{_ddeeea _eg .PdfObjectName ;_gdefd string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_cfabd ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ddgae ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_edca ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_ebaad ()},{"\u0054\u0069\u0074l\u0065",_caefc ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_edgbb ()}};
|
||
for _ ,_abdb :=range _aegcf {if _abdb ._gdefd !=""{_aeddc .Set (_abdb ._ddeeea ,_eg .MakeString (_abdb ._gdefd ));};};if _gbeag :=_gdbee ();!_gbeag .IsZero (){if _gacfb ,_bcafd :=NewPdfDateFromTime (_gbeag );_bcafd ==nil {_aeddc .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_gacfb .ToPdfObject ());
|
||
};};if _eagbf :=_gagda ();!_eagbf .IsZero (){if _fecacc ,_fbedc :=NewPdfDateFromTime (_eagbf );_fbedc ==nil {_aeddc .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_fecacc .ToPdfObject ());};};_bgceb :=_eg .PdfIndirectObject {};_bgceb .PdfObject =_aeddc ;
|
||
_eeddeb ._ggca =&_bgceb ;_eeddeb .addObject (&_bgceb );_gbae :=_eg .PdfIndirectObject {};_fccf :=_eg .MakeDict ();_fccf .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_gbae .PdfObject =_fccf ;_eeddeb ._eeeg =&_gbae ;
|
||
_eeddeb .addObject (_eeddeb ._eeeg );_cbcc ,_aeccb :=_fccgd ("\u0077");if _aeccb !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_aeccb );};_eeddeb ._fggebg =_cbcc ;_cfgbc :=_eg .PdfIndirectObject {};_cadb :=_eg .MakeDict ();_cadb .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0050\u0061\u0067e\u0073"));
|
||
_cedca :=_eg .PdfObjectArray {};_cadb .Set ("\u004b\u0069\u0064\u0073",&_cedca );_cadb .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (0));_cfgbc .PdfObject =_cadb ;_eeddeb ._afbga =&_cfgbc ;_eeddeb ._eacbf =map[_eg .PdfObject ]struct{}{};_eeddeb .addObject (_eeddeb ._afbga );
|
||
_fccf .Set ("\u0050\u0061\u0067e\u0073",&_cfgbc );_eeddeb ._ebaaa =_fccf ;_dbg .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_gbae );return _eeddeb ;};
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};
|
||
|
||
// 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 (_ddccf *Image )ConvertToBinary ()error {if _ddccf .ColorComponents ==1&&_ddccf .BitsPerComponent ==1{return nil ;};_adaba ,_bfcfc :=_ddccf .ToGoImage ();if _bfcfc !=nil {return _bfcfc ;};_agaf ,_bfcfc :=_ff .MonochromeConverter .Convert (_adaba );
|
||
if _bfcfc !=nil {return _bfcfc ;};_ddccf .Data =_agaf .Base ().Data ;_ddccf ._fcec ,_bfcfc =_ff .ScaleAlphaToMonochrome (_ddccf ._fcec ,int (_ddccf .Width ),int (_ddccf .Height ));if _bfcfc !=nil {return _bfcfc ;};_ddccf .BitsPerComponent =1;_ddccf .ColorComponents =1;
|
||
_ddccf ._aaeac =nil ;return nil ;};
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_ffdc *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dcdc :=_ccg .NewReader (img .getBase ());_agec :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_ffdc .AlternateSpace .GetNumComponents (),nil ,img ._fcec ,nil );
|
||
_fabcc :=_ccg .NewWriter (_agec );_gdgd :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_dbg .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");
|
||
_dbg .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_ffdc .TintTransform );_cacee :=_ffdc .AlternateSpace .DecodeArray ();var (_fbbb uint32 ;_cadf error ;);for {_fbbb ,_cadf =_dcdc .ReadSample ();
|
||
if _cadf ==_de .EOF {break ;};if _cadf !=nil {return img ,_cadf ;};_bddc :=float64 (_fbbb )/_gdgd ;_dbaad ,_acdb :=_ffdc .TintTransform .Evaluate ([]float64 {_bddc });if _acdb !=nil {return img ,_acdb ;};for _bgdff ,_dddb :=range _dbaad {_gdca :=_ff .LinearInterpolate (_dddb ,_cacee [_bgdff *2],_cacee [_bgdff *2+1],0,1);
|
||
if _acdb =_fabcc .WriteSample (uint32 (_gdca *_gdgd ));_acdb !=nil {return img ,_acdb ;};};};return _ffdc .AlternateSpace .ImageToRGB (_egbde (&_agec ));};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_cdgc :=&PdfOutline {_ffbba :_eg .MakeIndirectObject (_eg .MakeDict ())};_cdgc ._dbaeb =_cdgc ;return _cdgc ;};
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_fbged *PdfPage )GetPageAsIndirectObject ()*_eg .PdfIndirectObject {return _fbged ._caaef };
|
||
|
||
// Items returns all children outline items.
|
||
func (_fdgggb *Outline )Items ()[]*OutlineItem {return _fdgggb .Entries };
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_fagca *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _fagca ._cdggc .GetCrypter ()!=nil &&!_fagca ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};if len (_fagca ._dfff )< pageNumber {return nil ,_bbd .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");
|
||
};_aecce :=pageNumber -1;if _aecce < 0{return nil ,_e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_dgecfd :=_fagca .PageList [_aecce ];
|
||
return _dgecfd ,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 ){_cgbgg ,_abed :=_aefad (basefont );if _abed !=nil {return nil ,_abed ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_cgbgg ._gccbc =_cec .NewWinAnsiEncoder ();};return &PdfFont {_gdcab :&_cgbgg },nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gefaa *PdfAnnotationScreen )ToPdfObject ()_eg .PdfObject {_gefaa .PdfAnnotation .ToPdfObject ();_dcbg :=_gefaa ._gag ;_ddcc :=_dcbg .PdfObject .(*_eg .PdfObjectDictionary );_ddcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_ddcc .SetIfNotNil ("\u0054",_gefaa .T );_ddcc .SetIfNotNil ("\u004d\u004b",_gefaa .MK );_ddcc .SetIfNotNil ("\u0041",_gefaa .A );_ddcc .SetIfNotNil ("\u0041\u0041",_gefaa .AA );return _dcbg ;};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_dgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dgac .Alternate ==nil {_dbg .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 _dgac .N ==1{_dbg .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");
|
||
_bgabc :=NewPdfColorspaceDeviceGray ();return _bgabc .ColorToRGB (color );}else if _dgac .N ==3{_dbg .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 _dgac .N ==4{_dbg .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");
|
||
_fabeb :=NewPdfColorspaceDeviceCMYK ();return _fabeb .ColorToRGB (color );}else {return nil ,_bbd .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");
|
||
};};_dbg .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",_dgac );
|
||
return _dgac .Alternate .ColorToRGB (color );};
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_adgee *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_ebebb *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_debgd :=RC4_128bit ;if options !=nil {_debgd =options .Algorithm ;};_dabaa :=_fc .PermOwner ;if options !=nil {_dabaa =options .Permissions ;};var _ceafd _cf .Filter ;
|
||
switch _debgd {case RC4_128bit :_ceafd =_cf .NewFilterV2 (16);case AES_128bit :_ceafd =_cf .NewFilterAESV2 ();case AES_256bit :_ceafd =_cf .NewFilterAESV3 ();default:return _e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_gfgea ,_aeabd ,_caff :=_eg .PdfCryptNewEncrypt (_ceafd ,userPass ,ownerPass ,_dabaa );if _caff !=nil {return _caff ;};_ebebb ._ccag =_gfgea ;if _aeabd .Major !=0{_ebebb .SetVersion (_aeabd .Major ,_aeabd .Minor );};_ebebb ._fbdcc =_aeabd .Encrypt ;_ebebb ._ecadc =_eg .MakeArray (_eg .MakeHexString (_aeabd .ID0 ),_eg .MakeHexString (_aeabd .ID1 ));
|
||
_abfge :=_eg .MakeIndirectObject (_aeabd .Encrypt );_ebebb ._fbbfd =_abfge ;_ebebb .addObject (_abfge );return nil ;};func (_gccf *LTV )getOCSPs (_fdcf []*_ce .Certificate ,_fgdf map[string ]*_ce .Certificate )([][]byte ,error ){_bffcf :=make ([][]byte ,0,len (_fdcf ));
|
||
for _ ,_fbfdb :=range _fdcf {for _ ,_dgffa :=range _fbfdb .OCSPServer {if _gccf .CertClient .IsCA (_fbfdb ){continue ;};_aafa ,_ddcbc :=_fgdf [_fbfdb .Issuer .CommonName ];if !_ddcbc {_dbg .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 ;};_ ,_ccffb ,_egdae :=_gccf .OCSPClient .MakeRequest (_dgffa ,_fbfdb ,_aafa );if _egdae !=nil {_dbg .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",_egdae );
|
||
continue ;};_bffcf =append (_bffcf ,_ccffb );};};return _bffcf ,nil ;};func _gaggd (_gdaed *_eg .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fcfgd :=PdfShadingType7 {};_cfgfe :=_gdaed .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _cfgfe ==nil {_dbg .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 ;};_ecebae ,_cbaeg :=_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .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",_cfgfe );
|
||
return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerCoordinate =_ecebae ;_cfgfe =_gdaed .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cfgfe ==nil {_dbg .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 ;};_ecebae ,_cbaeg =_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .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",_cfgfe );
|
||
return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerComponent =_ecebae ;_cfgfe =_gdaed .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cfgfe ==nil {_dbg .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 ;};_ecebae ,_cbaeg =_cfgfe .(*_eg .PdfObjectInteger );if !_cbaeg {_dbg .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",_cfgfe );
|
||
return nil ,_eg .ErrTypeError ;};_fcfgd .BitsPerComponent =_ecebae ;_cfgfe =_gdaed .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cfgfe ==nil {_dbg .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 ;};_efgda ,_cbaeg :=_cfgfe .(*_eg .PdfObjectArray );if !_cbaeg {_dbg .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",_cfgfe );
|
||
return nil ,_eg .ErrTypeError ;};_fcfgd .Decode =_efgda ;if _bcbgg :=_gdaed .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bcbgg !=nil {_fcfgd .Function =[]PdfFunction {};if _eccfc ,_dgbfc :=_bcbgg .(*_eg .PdfObjectArray );_dgbfc {for _ ,_bagd :=range _eccfc .Elements (){_dgfgd ,_cffa :=_dgbga (_bagd );
|
||
if _cffa !=nil {_dbg .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",_cffa );return nil ,_cffa ;};_fcfgd .Function =append (_fcfgd .Function ,_dgfgd );
|
||
};}else {_cfeab ,_dbgaa :=_dgbga (_bcbgg );if _dbgaa !=nil {_dbg .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",_dbgaa );return nil ,_dbgaa ;
|
||
};_fcfgd .Function =append (_fcfgd .Function ,_cfeab );};};return &_fcfgd ,nil ;};func (_dbde *PdfReader )newPdfAnnotationTextFromDict (_fbf *_eg .PdfObjectDictionary )(*PdfAnnotationText ,error ){_bddg :=PdfAnnotationText {};_bcbe ,_acfg :=_dbde .newPdfAnnotationMarkupFromDict (_fbf );
|
||
if _acfg !=nil {return nil ,_acfg ;};_bddg .PdfAnnotationMarkup =_bcbe ;_bddg .Open =_fbf .Get ("\u004f\u0070\u0065\u006e");_bddg .Name =_fbf .Get ("\u004e\u0061\u006d\u0065");_bddg .State =_fbf .Get ("\u0053\u0074\u0061t\u0065");_bddg .StateModel =_fbf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
|
||
return &_bddg ,nil ;};
|
||
|
||
// 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 (_gaac *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eeggf ,_deag :=_eg .GetNumbersAsFloat (objects );
|
||
if _deag !=nil {return nil ,_deag ;};return _gaac .ColorFromFloats (_eeggf );};func (_cbbeg *PdfWriter )copyObjects (){_fdbfa :=make (map[_eg .PdfObject ]_eg .PdfObject );_bdgac :=make ([]_eg .PdfObject ,0,len (_cbbeg ._aecabb ));_ebeag :=make (map[_eg .PdfObject ]struct{},len (_cbbeg ._aecabb ));
|
||
_badd :=make (map[_eg .PdfObject ]struct{});for _ ,_adaae :=range _cbbeg ._aecabb {_gfggf :=_cbbeg .copyObject (_adaae ,_fdbfa ,_badd ,false );if _ ,_facc :=_badd [_adaae ];_facc {continue ;};_bdgac =append (_bdgac ,_gfggf );_ebeag [_gfggf ]=struct{}{};
|
||
};_cbbeg ._aecabb =_bdgac ;_cbbeg ._bccbf =_ebeag ;_cbbeg ._ggca =_cbbeg .copyObject (_cbbeg ._ggca ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );_cbbeg ._eeeg =_cbbeg .copyObject (_cbbeg ._eeeg ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );if _cbbeg ._fbbfd !=nil {_cbbeg ._fbbfd =_cbbeg .copyObject (_cbbeg ._fbbfd ,_fdbfa ,nil ,false ).(*_eg .PdfIndirectObject );
|
||
};if _cbbeg ._aaedc {_eeca :=make (map[_eg .PdfObject ]int64 );for _bbdfef ,_cfbgf :=range _cbbeg ._cacc {if _acdeg ,_begca :=_fdbfa [_bbdfef ];_begca {_eeca [_acdeg ]=_cfbgf ;}else {_dbg .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");
|
||
};};_cbbeg ._cacc =_eeca ;};};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_ecd :=NewPdfAction ();_fcf :=&PdfActionNamed {};_fcf .PdfAction =_ecd ;_ecd .SetContext (_fcf );return _fcf ;};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;func (_fedee *DSS )addCRLs (_eaag [][]byte )([]*_eg .PdfObjectStream ,error ){return _fedee .add (&_fedee .CRLs ,_fedee ._fgbdb ,_eaag );};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_agffa *PdfShadingType7 )ToPdfObject ()_eg .PdfObject {_agffa .PdfShading .ToPdfObject ();_gdge ,_dcea :=_agffa .getShadingDict ();if _dcea !=nil {_dbg .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 _agffa .BitsPerCoordinate !=nil {_gdge .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_agffa .BitsPerCoordinate );};if _agffa .BitsPerComponent !=nil {_gdge .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_agffa .BitsPerComponent );
|
||
};if _agffa .BitsPerFlag !=nil {_gdge .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_agffa .BitsPerFlag );};if _agffa .Decode !=nil {_gdge .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_agffa .Decode );};if _agffa .Function !=nil {if len (_agffa .Function )==1{_gdge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_agffa .Function [0].ToPdfObject ());
|
||
}else {_bfdcd :=_eg .MakeArray ();for _ ,_ddada :=range _agffa .Function {_bfdcd .Append (_ddada .ToPdfObject ());};_gdge .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bfdcd );};};return _agffa ._beag ;};func (_gagc *PdfFilespec )getDict ()*_eg .PdfObjectDictionary {if _eddee ,_aafcg :=_gagc ._fceg .(*_eg .PdfIndirectObject );
|
||
_aafcg {_cgfcb ,_gbcd :=_eddee .PdfObject .(*_eg .PdfObjectDictionary );if !_gbcd {return nil ;};return _cgfcb ;}else if _bdde ,_bgac :=_gagc ._fceg .(*_eg .PdfObjectDictionary );_bgac {return _bdde ;}else {_dbg .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",_gagc ._fceg );
|
||
return nil ;};};
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_gbeea DefaultImageHandler )NewGrayImageFromGoImage (goimg _ec .Image )(*Image ,error ){_edgag :=goimg .Bounds ();_gcfcd :=&Image {Width :int64 (_edgag .Dx ()),Height :int64 (_edgag .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _fdab :=goimg .(type ){case *_ec .Gray :if len (_fdab .Pix )!=_edgag .Dx ()*_edgag .Dy (){_cecga ,_dfaaf :=_ff .GrayConverter .Convert (goimg );
|
||
if _dfaaf !=nil {return nil ,_dfaaf ;};_gcfcd .Data =_cecga .Pix ();}else {_gcfcd .Data =_fdab .Pix ;};case *_ec .Gray16 :_gcfcd .BitsPerComponent =16;if len (_fdab .Pix )!=_edgag .Dx ()*_edgag .Dy ()*2{_gbbedg ,_ggfed :=_ff .Gray16Converter .Convert (goimg );
|
||
if _ggfed !=nil {return nil ,_ggfed ;};_gcfcd .Data =_gbbedg .Pix ();}else {_gcfcd .Data =_fdab .Pix ;};case _ff .Image :_acea :=_fdab .Base ();if _acea .ColorComponents ==1{_gcfcd .BitsPerComponent =int64 (_acea .BitsPerComponent );_gcfcd .Data =_acea .Data ;
|
||
return _gcfcd ,nil ;};_bddad ,_adcd :=_ff .GrayConverter .Convert (goimg );if _adcd !=nil {return nil ,_adcd ;};_gcfcd .Data =_bddad .Pix ();default:_aede ,_feggd :=_ff .GrayConverter .Convert (goimg );if _feggd !=nil {return nil ,_feggd ;};_gcfcd .Data =_aede .Pix ();
|
||
};return _gcfcd ,nil ;};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_bgbca *PdfReader )GetTrailer ()(*_eg .PdfObjectDictionary ,error ){_dfgea :=_bgbca ._cdggc .GetTrailer ();if _dfgea ==nil {return nil ,_bbd .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dfgea ,nil ;
|
||
};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_bceda pdfFontType0 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _bceda .DescendantFont ==nil {_dbg .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",_bceda );
|
||
return _ab .CharMetrics {},false ;};return _bceda .DescendantFont .GetCharMetrics (code );};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_dgb :=NewPdfAction ();_ggd :=&PdfActionURI {};_ggd .PdfAction =_dgb ;_dgb .SetContext (_ggd );return _ggd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cac *PdfActionJavaScript )ToPdfObject ()_eg .PdfObject {_cac .PdfAction .ToPdfObject ();_cbdc :=_cac ._ege ;_dga :=_cbdc .PdfObject .(*_eg .PdfObjectDictionary );_dga .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeJavaScript )));_dga .SetIfNotNil ("\u004a\u0053",_cac .JS );
|
||
return _cbdc ;};func (_gfb *PdfReader )newPdfActionSetOCGStateFromDict (_gca *_eg .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_gca .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_gca .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};
|
||
|
||
// DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and
|
||
// an error on failure. If the colorspace was not found, will return an empty string.
|
||
func DetermineColorspaceNameFromPdfObject (obj _eg .PdfObject )(_eg .PdfObjectName ,error ){var _abge *_eg .PdfObjectName ;var _gdgb *_eg .PdfObjectArray ;if _gbced ,_acag :=obj .(*_eg .PdfIndirectObject );_acag {if _cbcbe ,_egfd :=_gbced .PdfObject .(*_eg .PdfObjectArray );
|
||
_egfd {_gdgb =_cbcbe ;}else if _eaaa ,_fcd :=_gbced .PdfObject .(*_eg .PdfObjectName );_fcd {_abge =_eaaa ;};}else if _ecdf ,_fdad :=obj .(*_eg .PdfObjectArray );_fdad {_gdgb =_ecdf ;}else if _agc ,_ggbfa :=obj .(*_eg .PdfObjectName );_ggbfa {_abge =_agc ;
|
||
};if _abge !=nil {switch *_abge {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 *_abge ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_abge ,nil ;
|
||
};};if _gdgb !=nil &&_gdgb .Len ()> 0{if _gdcd ,_gdgfb :=_gdgb .Get (0).(*_eg .PdfObjectName );_gdgfb {switch *_gdcd {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 _gdgb .Len ()==1{return *_gdcd ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_gdcd ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_gdcd ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_gdcd ,nil ;};};};return "",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 (_bcgae *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _cecdg []*PdfField ;if _bcgae .AcroForm !=nil {_cecdg =_bcgae .AcroForm .AllFields ();};_cdde :=make (map[*PdfField ]struct{},len (_cecdg ));for _ ,_gfeb :=range _cecdg {_cdde [_gfeb ]=struct{}{};
|
||
};for _ ,_gadefg :=range _bcgae .PageList {_gdfeg ,_aadc :=_gadefg .GetAnnotations ();if _aadc !=nil {return false ,_aadc ;};for _ ,_bcbea :=range _gdfeg {_egbdb ,_eaebd :=_bcbea .GetContext ().(*PdfAnnotationWidget );if !_eaebd {continue ;};_ccgbd :=_egbdb .Field ();
|
||
if _ccgbd ==nil {return true ,nil ;};if _ ,_gaaca :=_cdde [_ccgbd ];!_gaaca {return true ,nil ;};};};return false ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_ddefe *DSS )GetContainingPdfObject ()_eg .PdfObject {return _ddefe ._gded };
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_gggd FieldFlag )Has (fl FieldFlag )bool {return (_gggd .Mask ()&fl .Mask ())> 0};
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_fdedbb *Image )ToGoImage ()(_ec .Image ,error ){_dbg .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_adeg ,_efefb :=_ff .NewImage (int (_fdedbb .Width ),int (_fdedbb .Height ),int (_fdedbb .BitsPerComponent ),_fdedbb .ColorComponents ,_fdedbb .Data ,_fdedbb ._fcec ,_fdedbb ._aaeac );
|
||
if _efefb !=nil {return nil ,_efefb ;};return _adeg ,nil ;};func _adecc (_ecba *_eg .PdfObjectStream )(*PdfFunctionType0 ,error ){_gccg :=&PdfFunctionType0 {};_gccg ._bafa =_ecba ;_gadcb :=_ecba .PdfObjectDictionary ;_ffcfee ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );
|
||
if !_eaeec {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _ffcfee .Len ()< 0||_ffcfee .Len ()%2!=0{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_gccg .NumInputs =_ffcfee .Len ()/2;_afgbb ,_agceg :=_ffcfee .ToFloat64Array ();if _agceg !=nil {return nil ,_agceg ;};_gccg .Domain =_afgbb ;_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );
|
||
if !_eaeec {_dbg .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_bbd .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 _ffcfee .Len ()< 0||_ffcfee .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gccg .NumOutputs =_ffcfee .Len ()/2;_eecbbe ,_agceg :=_ffcfee .ToFloat64Array ();if _agceg !=nil {return nil ,_agceg ;
|
||
};_gccg .Range =_eecbbe ;_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0053\u0069\u007a\u0065")).(*_eg .PdfObjectArray );if !_eaeec {_dbg .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_bbd .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");};_abgge ,_agceg :=_ffcfee .ToIntegerArray ();
|
||
if _agceg !=nil {return nil ,_agceg ;};if len (_abgge )!=_gccg .NumInputs {_dbg .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 ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .Size =_abgge ;_dbabg ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_eg .PdfObjectInteger );
|
||
if !_eaeec {_dbg .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 ,_bbd .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 *_dbabg !=1&&*_dbabg !=2&&*_dbabg !=4&&*_dbabg !=8&&*_dbabg !=12&&*_dbabg !=16&&*_dbabg !=24&&*_dbabg !=32{_dbg .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",*_dbabg );
|
||
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .BitsPerSample =int (*_dbabg );_gccg .Order =1;_dgad ,_eaeec :=_eg .TraceToDirectObject (_gadcb .Get ("\u004f\u0072\u0064e\u0072")).(*_eg .PdfObjectInteger );
|
||
if _eaeec {if *_dgad !=1&&*_dgad !=3{_dbg .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_dgad );return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gccg .Order =int (*_dgad );
|
||
};_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );if _eaeec {_fgcdb ,_gcce :=_ffcfee .ToFloat64Array ();if _gcce !=nil {return nil ,_gcce ;};_gccg .Encode =_fgcdb ;};_ffcfee ,_eaeec =_eg .TraceToDirectObject (_gadcb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );
|
||
if _eaeec {_cdgb ,_egea :=_ffcfee .ToFloat64Array ();if _egea !=nil {return nil ,_egea ;};_gccg .Decode =_cdgb ;};_becfc ,_agceg :=_eg .DecodeStream (_ecba );if _agceg !=nil {return nil ,_agceg ;};_gccg ._ebad =_becfc ;return _gccg ,nil ;};
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_fccb *PdfColorspaceDeviceNAttributes )ToPdfObject ()_eg .PdfObject {_ebge :=_eg .MakeDict ();if _fccb .Subtype !=nil {_ebge .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fccb .Subtype );};_ebge .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_fccb .Colorants );
|
||
_ebge .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_fccb .Process );_ebge .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_fccb .MixingHints );if _fccb ._bcca !=nil {_fccb ._bcca .PdfObject =_ebge ;return _fccb ._bcca ;
|
||
};return _ebge ;};func (_gegd *DSS )generateHashMaps ()error {_bgdba ,_eaafb :=_gegd .generateHashMap (_gegd .Certs );if _eaafb !=nil {return _eaafb ;};_aecg ,_eaafb :=_gegd .generateHashMap (_gegd .OCSPs );if _eaafb !=nil {return _eaafb ;};_baac ,_eaafb :=_gegd .generateHashMap (_gegd .CRLs );
|
||
if _eaafb !=nil {return _eaafb ;};_gegd ._gaad =_bgdba ;_gegd ._geeeb =_aecg ;_gegd ._fgbdb =_baac ;return nil ;};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_bdgc :=map[rune ]int {};for _ ,_fdege :=range text {_bdgc [_fdege ]++;};return _bdgc ;};
|
||
|
||
// 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 (_gbfce *PdfFont )CharcodesToUnicode (charcodes []_cec .CharCode )[]rune {_dfcf ,_ ,_ :=_gbfce .CharcodesToUnicodeWithStats (charcodes );return _dfcf ;};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_deadg *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_fafeb :=NewPdfOutlineItem ();_fafeb .Title =_eg .MakeEncodedString (_deadg .Title ,true );_fafeb .Dest =_deadg .Dest .ToPdfObject ();var _bgede []*PdfOutlineItem ;var _fgfcd int64 ;
|
||
var _cfcbf *PdfOutlineItem ;for _ ,_gdfab :=range _deadg .Entries {_fgcfc ,_gdgdf :=_gdfab .ToPdfOutlineItem ();_fgcfc .Parent =&_fafeb .PdfOutlineTreeNode ;if _cfcbf !=nil {_cfcbf .Next =&_fgcfc .PdfOutlineTreeNode ;_fgcfc .Prev =&_cfcbf .PdfOutlineTreeNode ;
|
||
};_bgede =append (_bgede ,_fgcfc );_fgfcd +=_gdgdf ;_cfcbf =_fgcfc ;};_ebff :=len (_bgede );_fgfcd +=int64 (_ebff );if _ebff > 0{_fafeb .First =&_bgede [0].PdfOutlineTreeNode ;_fafeb .Last =&_bgede [_ebff -1].PdfOutlineTreeNode ;_fafeb .Count =&_fgfcd ;
|
||
};return _fafeb ,_fgfcd ;};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_aaca :=NewPdfAnnotation ();_cgg :=&PdfAnnotationPolyLine {};_cgg .PdfAnnotation =_aaca ;_cgg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aaca .SetContext (_cgg );return _cgg ;};func (_ffgfe *PdfPattern )getDict ()*_eg .PdfObjectDictionary {if _bggdb ,_dbcfd :=_ffgfe ._cfaag .(*_eg .PdfIndirectObject );
|
||
_dbcfd {_dacdf ,_gfbcaf :=_bggdb .PdfObject .(*_eg .PdfObjectDictionary );if !_gfbcaf {return nil ;};return _dacdf ;}else if _gabeb ,_dfgaf :=_ffgfe ._cfaag .(*_eg .PdfObjectStream );_dfgaf {return _gabeb .PdfObjectDictionary ;}else {_dbg .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",_ffgfe ._cfaag );
|
||
return nil ;};};func _ebaad ()string {_egbeg .Lock ();defer _egbeg .Unlock ();return _gfcae };
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_edda *PdfFilespec )GetContainingPdfObject ()_eg .PdfObject {return _edda ._fceg };
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_ddggf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ddggf .Filter .UpdateParams (img .GetParamsDict ());_ccadg ,_bbadcb :=_ddggf .Filter .EncodeBytes (img .Data );if _bbadcb !=nil {return _bbadcb ;};_ddggf .Stream =_ccadg ;_cbbde :=img .Width ;
|
||
_ddggf .Width =&_cbbde ;_caaae :=img .Height ;_ddggf .Height =&_caaae ;_cegea :=img .BitsPerComponent ;_ddggf .BitsPerComponent =&_cegea ;if cs ==nil {if img .ColorComponents ==1{_ddggf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ddggf .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_ddggf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _bbd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ddggf .ColorSpace =cs ;};return nil ;
|
||
};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_dcac *PdfBorderStyle )SetBorderWidth (width float64 ){_dcac .W =&width };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ded *PdfAnnotation3D )ToPdfObject ()_eg .PdfObject {_ded .PdfAnnotation .ToPdfObject ();_efde :=_ded ._gag ;_edf :=_efde .PdfObject .(*_eg .PdfObjectDictionary );_edf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0033\u0044"));
|
||
_edf .SetIfNotNil ("\u0033\u0044\u0044",_ded .T3DD );_edf .SetIfNotNil ("\u0033\u0044\u0056",_ded .T3DV );_edf .SetIfNotNil ("\u0033\u0044\u0041",_ded .T3DA );_edf .SetIfNotNil ("\u0033\u0044\u0049",_ded .T3DI );_edf .SetIfNotNil ("\u0033\u0044\u0042",_ded .T3DB );
|
||
return _efde ;};func (_dbgef *PdfReader )newPdfAnnotationUnderlineFromDict (_fdaf *_eg .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_gccb :=PdfAnnotationUnderline {};_eafa ,_bdag :=_dbgef .newPdfAnnotationMarkupFromDict (_fdaf );if _bdag !=nil {return nil ,_bdag ;
|
||
};_gccb .PdfAnnotationMarkup =_eafa ;_gccb .QuadPoints =_fdaf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gccb ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_edaga *PdfShadingType3 )ToPdfObject ()_eg .PdfObject {_edaga .PdfShading .ToPdfObject ();_gegg ,_fcagcd :=_edaga .getShadingDict ();if _fcagcd !=nil {_dbg .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 _edaga .Coords !=nil {_gegg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_edaga .Coords );};if _edaga .Domain !=nil {_gegg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edaga .Domain );};if _edaga .Function !=nil {if len (_edaga .Function )==1{_gegg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edaga .Function [0].ToPdfObject ());
|
||
}else {_cdbc :=_eg .MakeArray ();for _ ,_ggfag :=range _edaga .Function {_cdbc .Append (_ggfag .ToPdfObject ());};_gegg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdbc );};};if _edaga .Extend !=nil {_gegg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_edaga .Extend );
|
||
};return _edaga ._beag ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aef *PdfActionGoToE )ToPdfObject ()_eg .PdfObject {_aef .PdfAction .ToPdfObject ();_gad :=_aef ._ege ;_fg :=_gad .PdfObject .(*_eg .PdfObjectDictionary );_fg .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoToE )));if _aef .F !=nil {_fg .Set ("\u0046",_aef .F .ToPdfObject ());
|
||
};_fg .SetIfNotNil ("\u0044",_aef .D );_fg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_aef .NewWindow );_fg .SetIfNotNil ("\u0054",_aef .T );return _gad ;};func _eced (_dadd []byte )(_bcac ,_dedbf string ,_bedgg error ){_dbg .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_dadd ));
|
||
_ebaef :=_bgffe .FindIndex (_dadd );if _ebaef ==nil {_dbg .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 "","",_eg .ErrTypeError ;};_eaae :=_ebaef [1];_ddegb :=_dc .Index (string (_dadd [_eaae :]),_bdga );if _ddegb < 0{_bcac =string (_dadd [_eaae :]);return _bcac ,"",nil ;};_deeg :=_eaae +_ddegb ;_bcac =string (_dadd [_eaae :_deeg ]);_effcg :=_deeg ;
|
||
_ddegb =_dc .Index (string (_dadd [_effcg :]),_ccdf );if _ddegb < 0{_dbg .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",_bedgg );
|
||
return "","",_eg .ErrTypeError ;};_fabeg :=_effcg +_ddegb ;_dedbf =string (_dadd [_effcg :_fabeg ]);return _bcac ,_dedbf ,nil ;};
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_adc :=NewPdfAction ();_ba :=&PdfActionSetOCGState {};_ba .PdfAction =_adc ;_adc .SetContext (_ba );return _ba ;};
|
||
|
||
// 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 (_dffg *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _dffg .flattenFieldsWithOpts (false ,appgen ,opts );};func (_adba *PdfReader )newPdfAnnotationProjectionFromDict (_bcg *_eg .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_ebb :=&PdfAnnotationProjection {};
|
||
_gcac ,_fdg :=_adba .newPdfAnnotationMarkupFromDict (_bcg );if _fdg !=nil {return nil ,_fdg ;};_ebb .PdfAnnotationMarkup =_gcac ;return _ebb ,nil ;};func (_gedbd *PdfReader )newPdfPageFromDict (_ccccg *_eg .PdfObjectDictionary )(*PdfPage ,error ){_efecbe :=NewPdfPage ();
|
||
_efecbe ._ecbba =_ccccg ;_bfead :=*_ccccg ;_gcg ,_afcge :=_bfead .Get ("\u0054\u0079\u0070\u0065").(*_eg .PdfObjectName );if !_afcge {return nil ,_bbd .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 *_gcg !="\u0050\u0061\u0067\u0065"{return nil ,_bbd .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 _bcfee :=_bfead .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_bcfee !=nil {_efecbe .Parent =_bcfee ;};if _egggf :=_bfead .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_egggf !=nil {_cfbfe ,_ggff :=_eg .GetString (_egggf );if !_ggff {return nil ,_bbd .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");
|
||
};_egced ,_addfe :=NewPdfDate (_cfbfe .Str ());if _addfe !=nil {return nil ,_addfe ;};_efecbe .LastModified =&_egced ;};if _ccfec :=_bfead .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_ccfec !=nil &&!_eg .IsNullObject (_ccfec ){_dcbcf ,_ebdbe :=_eg .GetDict (_ccfec );
|
||
if !_ebdbe {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_ccfec );};var _bbedc error ;_efecbe .Resources ,_bbedc =NewPdfPageResourcesFromDict (_dcbcf );
|
||
if _bbedc !=nil {return nil ,_bbedc ;};}else {_dfbbb ,_dddge :=_efecbe .getParentResources ();if _dddge !=nil {return nil ,_dddge ;};if _dfbbb ==nil {_dfbbb =NewPdfPageResources ();};_efecbe .Resources =_dfbbb ;};if _cgcea :=_bfead .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_cgcea !=nil {_gedbf ,_fccde :=_eg .GetArray (_cgcea );if !_fccde {return nil ,_bbd .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 _bbcgd error ;
|
||
_efecbe .MediaBox ,_bbcgd =NewPdfRectangle (*_gedbf );if _bbcgd !=nil {return nil ,_bbcgd ;};};if _febg :=_bfead .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_febg !=nil {_daceg ,_gabdd :=_eg .GetArray (_febg );if !_gabdd {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _dgfdf error ;_efecbe .CropBox ,_dgfdf =NewPdfRectangle (*_daceg );if _dgfdf !=nil {return nil ,_dgfdf ;};};if _gbgfb :=_bfead .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_gbgfb !=nil {_gbgeba ,_egcaa :=_eg .GetArray (_gbgfb );if !_egcaa {return nil ,_bbd .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 _fbee error ;_efecbe .BleedBox ,_fbee =NewPdfRectangle (*_gbgeba );if _fbee !=nil {return nil ,_fbee ;};};if _eabge :=_bfead .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_eabge !=nil {_gdafe ,_afdf :=_eg .GetArray (_eabge );if !_afdf {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _bdegb error ;_efecbe .TrimBox ,_bdegb =NewPdfRectangle (*_gdafe );if _bdegb !=nil {return nil ,_bdegb ;};};if _gdeeb :=_bfead .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_gdeeb !=nil {_fgacb ,_feccf :=_eg .GetArray (_gdeeb );if !_feccf {return nil ,_bbd .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _agbcg error ;_efecbe .ArtBox ,_agbcg =NewPdfRectangle (*_fgacb );if _agbcg !=nil {return nil ,_agbcg ;};};if _fddbd :=_bfead .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_fddbd !=nil {_efecbe .BoxColorInfo =_fddbd ;
|
||
};if _dbee :=_bfead .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_dbee !=nil {_efecbe .Contents =_dbee ;};if _cfeed :=_bfead .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_cfeed !=nil {_bgdbc ,_agdbb :=_eg .GetInt (_cfeed );if !_agdbb {return nil ,_bbd .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");
|
||
};_dcfe :=int64 (*_bgdbc );_efecbe .Rotate =&_dcfe ;};if _dgafe :=_bfead .Get ("\u0047\u0072\u006fu\u0070");_dgafe !=nil {_efecbe .Group =_dgafe ;};if _eeed :=_bfead .Get ("\u0054\u0068\u0075m\u0062");_eeed !=nil {_efecbe .Thumb =_eeed ;};if _ccbge :=_bfead .Get ("\u0042");
|
||
_ccbge !=nil {_efecbe .B =_ccbge ;};if _ccfgg :=_bfead .Get ("\u0044\u0075\u0072");_ccfgg !=nil {_efecbe .Dur =_ccfgg ;};if _fafa :=_bfead .Get ("\u0054\u0072\u0061n\u0073");_fafa !=nil {_efecbe .Trans =_fafa ;};if _gdcfe :=_bfead .Get ("\u0041\u0041");
|
||
_gdcfe !=nil {_efecbe .AA =_gdcfe ;};if _gcde :=_bfead .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gcde !=nil {_efecbe .Metadata =_gcde ;};if _fgcgf :=_bfead .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_fgcgf !=nil {_efecbe .PieceInfo =_fgcgf ;
|
||
};if _gabe :=_bfead .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_gabe !=nil {_efecbe .StructParents =_gabe ;};if _bedgb :=_bfead .Get ("\u0049\u0044");_bedgb !=nil {_efecbe .ID =_bedgb ;};if _fdfac :=_bfead .Get ("\u0050\u005a");
|
||
_fdfac !=nil {_efecbe .PZ =_fdfac ;};if _egede :=_bfead .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");_egede !=nil {_efecbe .SeparationInfo =_egede ;};if _babg :=_bfead .Get ("\u0054\u0061\u0062\u0073");_babg !=nil {_efecbe .Tabs =_babg ;
|
||
};if _dabe :=_bfead .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");_dabe !=nil {_efecbe .TemplateInstantiated =_dabe ;};if _adadd :=_bfead .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_adadd !=nil {_efecbe .PresSteps =_adadd ;
|
||
};if _adaee :=_bfead .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_adaee !=nil {_efecbe .UserUnit =_adaee ;};if _baadb :=_bfead .Get ("\u0056\u0050");_baadb !=nil {_efecbe .VP =_baadb ;};if _addd :=_bfead .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");
|
||
_addd !=nil {_efecbe .Annots =_addd ;};_efecbe ._fdfdec =_gedbd ;return _efecbe ,nil ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";
|
||
);
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gaef *PdfAnnotationLink )ToPdfObject ()_eg .PdfObject {_gaef .PdfAnnotation .ToPdfObject ();_fedcf :=_gaef ._gag ;_dae :=_fedcf .PdfObject .(*_eg .PdfObjectDictionary );_dae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _gaef ._cecf !=nil &&_gaef ._cecf ._cea !=nil {_dae .Set ("\u0041",_gaef ._cecf ._cea .ToPdfObject ());}else if _gaef .A !=nil {_dae .Set ("\u0041",_gaef .A );};_dae .SetIfNotNil ("\u0044\u0065\u0073\u0074",_gaef .Dest );_dae .SetIfNotNil ("\u0048",_gaef .H );
|
||
_dae .SetIfNotNil ("\u0050\u0041",_gaef .PA );_dae .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gaef .QuadPoints );_dae .SetIfNotNil ("\u0042\u0053",_gaef .BS );return _fedcf ;};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_eddge *PdfPageResources )HasColorspaceByName (keyName _eg .PdfObjectName )bool {_bbfb ,_efbg :=_eddge .GetColorspaces ();if _efbg !=nil {_dbg .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",_efbg );
|
||
return false ;};if _bbfb ==nil {return false ;};_ ,_cfac :=_bbfb .Colorspaces [string (keyName )];return _cfac ;};func _dgace (_gdae *_eg .PdfObjectDictionary )bool {for _ ,_fddca :=range _gdae .Keys (){if _ ,_fgfc :=_dfee [_fddca .String ()];_fgfc {return true ;
|
||
};};return false ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cce *PdfAnnotationPrinterMark )ToPdfObject ()_eg .PdfObject {_cce .PdfAnnotation .ToPdfObject ();_acb :=_cce ._gag ;_ggaf :=_acb .PdfObject .(*_eg .PdfObjectDictionary );_ggaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_ggaf .SetIfNotNil ("\u004d\u004e",_cce .MN );return _acb ;};func _fccgd (_egbdd string )(string ,error ){var _cdefg _cbd .Buffer ;_cdefg .WriteString (_egbdd );_fdgfg :=make ([]byte ,8+16);_bcgbf :=_ee .Now ().UTC ().UnixNano ();_gg .BigEndian .PutUint64 (_fdgfg ,uint64 (_bcgbf ));
|
||
_ ,_abfce :=_bb .Read (_fdgfg [8:]);if _abfce !=nil {return "",_abfce ;};_cdefg .WriteString (_c .EncodeToString (_fdgfg ));return _cdefg .String (),nil ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_baca *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbab ,_ffcec :=_eg .GetNumbersAsFloat (objects );
|
||
if _ffcec !=nil {return nil ,_ffcec ;};return _baca .ColorFromFloats (_dbab );};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_dfga *PdfFunctionType3 )ToPdfObject ()_eg .PdfObject {_dbabe :=_eg .MakeDict ();_dbabe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (3));_fagga :=&_eg .PdfObjectArray {};for _ ,_faba :=range _dfga .Domain {_fagga .Append (_eg .MakeFloat (_faba ));
|
||
};_dbabe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fagga );if _dfga .Range !=nil {_efdd :=&_eg .PdfObjectArray {};for _ ,_bafdca :=range _dfga .Range {_efdd .Append (_eg .MakeFloat (_bafdca ));};_dbabe .Set ("\u0052\u0061\u006eg\u0065",_efdd );};if _dfga .Functions !=nil {_bdddf :=&_eg .PdfObjectArray {};
|
||
for _ ,_fbbea :=range _dfga .Functions {_bdddf .Append (_fbbea .ToPdfObject ());};_dbabe .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bdddf );};if _dfga .Bounds !=nil {_bcbgf :=&_eg .PdfObjectArray {};for _ ,_eegad :=range _dfga .Bounds {_bcbgf .Append (_eg .MakeFloat (_eegad ));
|
||
};_dbabe .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_bcbgf );};if _dfga .Encode !=nil {_feag :=&_eg .PdfObjectArray {};for _ ,_eddef :=range _dfga .Encode {_feag .Append (_eg .MakeFloat (_eddef ));};_dbabe .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_feag );
|
||
};if _dfga ._gfddd !=nil {_dfga ._gfddd .PdfObject =_dbabe ;return _dfga ._gfddd ;};return _dbabe ;};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_faefae *PdfPageResources )HasFontByName (keyName _eg .PdfObjectName )bool {_ ,_bffbc :=_faefae .GetFontByName (keyName );return _bffbc ;};func (_dgfae *LTV )getCRLs (_bcgcc []*_ce .Certificate )([][]byte ,error ){_dead :=make ([][]byte ,0,len (_bcgcc ));
|
||
for _ ,_babfg :=range _bcgcc {for _ ,_geafc :=range _babfg .CRLDistributionPoints {if _dgfae .CertClient .IsCA (_babfg ){continue ;};_faedf ,_ffde :=_dgfae .CRLClient .MakeRequest (_geafc ,_babfg );if _ffde !=nil {_dbg .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",_ffde );
|
||
continue ;};_dead =append (_dead ,_faedf );};};return _dead ,nil ;};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_abgggc *PdfTilingPattern )GetContentStream ()([]byte ,error ){_feega ,_ ,_gaeee :=_abgggc .GetContentStreamWithEncoder ();return _feega ,_gaeee ;};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_acage *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _acage ._defdf .(*PdfTilingPattern );};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_caca *PdfShadingType6 )ToPdfObject ()_eg .PdfObject {_caca .PdfShading .ToPdfObject ();_gdbb ,_bgeb :=_caca .getShadingDict ();if _bgeb !=nil {_dbg .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 _caca .BitsPerCoordinate !=nil {_gdbb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_caca .BitsPerCoordinate );};if _caca .BitsPerComponent !=nil {_gdbb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_caca .BitsPerComponent );
|
||
};if _caca .BitsPerFlag !=nil {_gdbb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_caca .BitsPerFlag );};if _caca .Decode !=nil {_gdbb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_caca .Decode );};if _caca .Function !=nil {if len (_caca .Function )==1{_gdbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caca .Function [0].ToPdfObject ());
|
||
}else {_cbfg :=_eg .MakeArray ();for _ ,_aabac :=range _caca .Function {_cbfg .Append (_aabac .ToPdfObject ());};_gdbb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbfg );};};return _caca ._beag ;};
|
||
|
||
// 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 (_aedbc pdfFontSimple )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _faac ,_ddfcc :=_aedbc ._baga [code ];_ddfcc {return _ab .CharMetrics {Wx :_faac },true ;};if _ab .IsStdFont (_ab .StdFontName (_aedbc ._cfab )){return _ab .CharMetrics {Wx :250},true ;
|
||
};return _ab .CharMetrics {},false ;};
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_gdfgg *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gdfgg .AlternateSpace ==nil {return nil ,_bbd .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 _gdfgg .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_edeaf :_eg .MakeIndirectObject (_eg .MakeDict ())};};func (_gbbb *LTV )enable (_bgbc ,_faaa []*_ce .Certificate ,_gdde string )error {_dgddg ,_bbgae ,_fbaed :=_gbbb .buildCertChain (_bgbc ,_faaa );
|
||
if _fbaed !=nil {return _fbaed ;};_fefac ,_fbaed :=_gbbb .getCerts (_dgddg );if _fbaed !=nil {return _fbaed ;};_eafg ,_fbaed :=_gbbb .getOCSPs (_dgddg ,_bbgae );if _fbaed !=nil {return _fbaed ;};_baagf ,_fbaed :=_gbbb .getCRLs (_dgddg );if _fbaed !=nil {return _fbaed ;
|
||
};_ccbg :=_gbbb ._fgada ;_dceg ,_fbaed :=_ccbg .addCerts (_fefac );if _fbaed !=nil {return _fbaed ;};_fcdeg ,_fbaed :=_ccbg .addOCSPs (_eafg );if _fbaed !=nil {return _fbaed ;};_bdage ,_fbaed :=_ccbg .addCRLs (_baagf );if _fbaed !=nil {return _fbaed ;};
|
||
if _gdde !=""{_ccbg .VRI [_gdde ]=&VRI {Cert :_dceg ,OCSP :_fcdeg ,CRL :_bdage };};_gbbb ._caadf .SetDSS (_ccbg );return nil ;};func (_adeb PdfFont )actualFont ()pdfFont {if _adeb ._gdcab ==nil {_dbg .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",_adeb );
|
||
};return _adeb ._gdcab ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_geaf *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_geaf .GetNumComponents (){return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaf ,_dgdb :=_geaf .TintTransform .Evaluate (vals );
|
||
if _dgdb !=nil {return nil ,_dgdb ;};_cfda ,_dgdb :=_geaf .AlternateSpace .ColorFromFloats (_gaf );if _dgdb !=nil {return nil ,_dgdb ;};return _cfda ,nil ;};
|
||
|
||
// 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 (_adfe *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_bbd .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");
|
||
};_caedd :=&PdfColorPattern {};_dfad ,_bdab :=objects [len (objects )-1].(*_eg .PdfObjectName );if !_bdab {_dbg .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 ;};_caedd .PatternName =*_dfad ;if len (objects )> 1{_bgbfe :=objects [0:len (objects )-1];if _adfe .UnderlyingCS ==nil {_dbg .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 ,_bbd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_fdfe ,_fbdcb :=_adfe .UnderlyingCS .ColorFromPdfObjects (_bgbfe );if _fbdcb !=nil {_dbg .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",_fbdcb );
|
||
return nil ,_fbdcb ;};_caedd .Color =_fdfe ;};return _caedd ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_ceecg *PdfColorspaceDeviceGray )ToPdfObject ()_eg .PdfObject {return _eg .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};type pdfCIDFontType2 struct{fontCommon ;_ddfb *_eg .PdfIndirectObject ;_befc _cec .TextEncoder ;
|
||
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_eg .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _eg .PdfObject ;W _eg .PdfObject ;DW2 _eg .PdfObject ;W2 _eg .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _eg .PdfObject ;_egdc map[_cec .CharCode ]float64 ;_cbgd float64 ;_dgefb map[rune ]int ;};func _faadf (_aacdc *PdfPage ){_aefbc :=_dd .GetLicenseKey ();if _aefbc !=nil &&_aefbc .IsLicensed (){return ;};_gagea :=_eg .PdfObjectName ("\u0055\u0046\u0031");
|
||
if !_aacdc .Resources .HasFontByName (_gagea ){_aacdc .Resources .SetFontByName (_gagea ,DefaultFont ().ToPdfObject ());};var _cfffa []string ;_cfffa =append (_cfffa ,"\u0071");_cfffa =append (_cfffa ,"\u0042\u0054");_cfffa =append (_cfffa ,_e .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_gagea .String ()));
|
||
_cfffa =append (_cfffa ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_cfffa =append (_cfffa ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_cffag :="\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";
|
||
_cfffa =append (_cfffa ,_e .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_cffag ));_cfffa =append (_cfffa ,"\u0045\u0054");_cfffa =append (_cfffa ,"\u0051");_fgdfa :=_dc .Join (_cfffa ,"\u000a");_aacdc .AddContentStreamByString (_fgdfa );_aacdc .ToPdfObject ();
|
||
};func (_aga *PdfReader )newPdfAnnotationCircleFromDict (_adf *_eg .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_bccb :=PdfAnnotationCircle {};_bbdb ,_eaa :=_aga .newPdfAnnotationMarkupFromDict (_adf );if _eaa !=nil {return nil ,_eaa ;};_bccb .PdfAnnotationMarkup =_bbdb ;
|
||
_bccb .BS =_adf .Get ("\u0042\u0053");_bccb .IC =_adf .Get ("\u0049\u0043");_bccb .BE =_adf .Get ("\u0042\u0045");_bccb .RD =_adf .Get ("\u0052\u0044");return &_bccb ,nil ;};
|
||
|
||
// PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color
|
||
// spaces, except they can contain an arbitrary number of color components.
|
||
//
|
||
// Format: [/DeviceN names alternateSpace tintTransform]
|
||
// or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
type PdfColorspaceDeviceN struct{ColorantNames *_eg .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_cedg *_eg .PdfIndirectObject ;};
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_bbcc *PdfWriter )SetForms (form *PdfAcroForm )error {_bbcc ._adcgf =form ;return nil };
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_geb *PdfAction )SetContext (ctx PdfModel ){_geb ._cea =ctx };
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_fegbgc *PdfPageResources )GetColorspaceByName (keyName _eg .PdfObjectName )(PdfColorspace ,bool ){_cbbabg ,_gdffe :=_fegbgc .GetColorspaces ();if _gdffe !=nil {_dbg .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",_gdffe );
|
||
return nil ,false ;};if _cbbabg ==nil {return nil ,false ;};_dfgafb ,_edabc :=_cbbabg .Colorspaces [string (keyName )];if !_edabc {return nil ,false ;};return _dfgafb ,true ;};
|
||
|
||
// 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 (_bdbb *Image )Resample (targetBitsPerComponent int64 ){if _bdbb .BitsPerComponent ==targetBitsPerComponent {return ;};_gagbf :=_bdbb .GetSamples ();if targetBitsPerComponent < _bdbb .BitsPerComponent {_fgegc :=_bdbb .BitsPerComponent -targetBitsPerComponent ;
|
||
for _cecaf :=range _gagbf {_gagbf [_cecaf ]>>=uint (_fgegc );};}else if targetBitsPerComponent > _bdbb .BitsPerComponent {_bfafa :=targetBitsPerComponent -_bdbb .BitsPerComponent ;for _bdbag :=range _gagbf {_gagbf [_bdbag ]<<=uint (_bfafa );};};_bdbb .BitsPerComponent =targetBitsPerComponent ;
|
||
if _bdbb .BitsPerComponent < 8{_bdbb .resampleLowBits (_gagbf );return ;};_fcefc :=_ff .BytesPerLine (int (_bdbb .Width ),int (_bdbb .BitsPerComponent ),_bdbb .ColorComponents );_aacd :=make ([]byte ,_fcefc *int (_bdbb .Height ));var (_efag ,_baee ,_cdfde ,_agge int ;
|
||
_cgfd uint32 ;);for _cdfde =0;_cdfde < int (_bdbb .Height );_cdfde ++{_efag =_cdfde *_fcefc ;_baee =(_cdfde +1)*_fcefc -1;_feebd :=_ccg .ResampleUint32 (_gagbf [_efag :_baee ],int (targetBitsPerComponent ),8);for _agge ,_cgfd =range _feebd {_aacd [_agge +_efag ]=byte (_cgfd );
|
||
};};_bdbb .Data =_aacd ;};
|
||
|
||
// 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 ;
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_gfbf *PdfField )IsTerminal ()bool {return len (_gfbf .Kids )==0};
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_cacb *PdfAppender )UpdatePage (page *PdfPage ){_cacb .updateObjectsDeep (page .ToPdfObject (),nil )};func (_agfa *PdfReader )newPdfAnnotationPolyLineFromDict (_dcgf *_eg .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_ecdd :=PdfAnnotationPolyLine {};
|
||
_dada ,_dece :=_agfa .newPdfAnnotationMarkupFromDict (_dcgf );if _dece !=nil {return nil ,_dece ;};_ecdd .PdfAnnotationMarkup =_dada ;_ecdd .Vertices =_dcgf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_ecdd .LE =_dcgf .Get ("\u004c\u0045");
|
||
_ecdd .BS =_dcgf .Get ("\u0042\u0053");_ecdd .IC =_dcgf .Get ("\u0049\u0043");_ecdd .BE =_dcgf .Get ("\u0042\u0045");_ecdd .IT =_dcgf .Get ("\u0049\u0054");_ecdd .Measure =_dcgf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_ecdd ,nil ;};
|
||
|
||
// ReaderToWriterOpts options used to generate a PdfWriter.
|
||
type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;PageProcessCallback PageProcessCallback ;
|
||
|
||
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
|
||
PageCallback PageCallback ;};
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};func (_bcgcg *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _bcgcg ._eecfe };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ac *PdfActionMovie )ToPdfObject ()_eg .PdfObject {_ac .PdfAction .ToPdfObject ();_gabf :=_ac ._ege ;_gfc :=_gabf .PdfObject .(*_eg .PdfObjectDictionary );_gfc .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeMovie )));_gfc .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_ac .Annotation );
|
||
_gfc .SetIfNotNil ("\u0054",_ac .T );_gfc .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_ac .Operation );return _gabf ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbdca *PdfAnnotationHighlight )ToPdfObject ()_eg .PdfObject {_cbdca .PdfAnnotation .ToPdfObject ();_aada :=_cbdca ._gag ;_abe :=_aada .PdfObject .(*_eg .PdfObjectDictionary );_cbdca .PdfAnnotationMarkup .appendToPdfDictionary (_abe );_abe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_abe .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cbdca .QuadPoints );return _aada ;};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_ceedff *PdfSignature )GetCerts ()([]*_ce .Certificate ,error ){var _dgadde []func ()([]*_ce .Certificate ,error );switch _ddcba ,_ :=_eg .GetNameVal (_ceedff .SubFilter );_ddcba {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":_dgadde =append (_dgadde ,_ceedff .extractChainFromPKCS7 ,_ceedff .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_dgadde =append (_dgadde ,_ceedff .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_dgadde =append (_dgadde ,_ceedff .extractChainFromPKCS7 );
|
||
default:return nil ,_e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_ddcba );};for _ ,_bggedd :=range _dgadde {_bcacf ,_fefad :=_bggedd ();if _fefad !=nil {return nil ,_fefad ;
|
||
};if len (_bcacf )> 0{return _bcacf ,nil ;};};return nil ,ErrSignNoCertificates ;};type fontCommon struct{_cfab string ;_fgbbb string ;_dfgf string ;_fgegd _eg .PdfObject ;_fffc *_aff .CMap ;_eecfe *PdfFontDescriptor ;_aaaf int64 ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_ggdd *PdfShadingType4 )ToPdfObject ()_eg .PdfObject {_ggdd .PdfShading .ToPdfObject ();_cdage ,_dagea :=_ggdd .getShadingDict ();if _dagea !=nil {_dbg .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 _ggdd .BitsPerCoordinate !=nil {_cdage .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ggdd .BitsPerCoordinate );};if _ggdd .BitsPerComponent !=nil {_cdage .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ggdd .BitsPerComponent );
|
||
};if _ggdd .BitsPerFlag !=nil {_cdage .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_ggdd .BitsPerFlag );};if _ggdd .Decode !=nil {_cdage .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ggdd .Decode );};if _ggdd .Function !=nil {if len (_ggdd .Function )==1{_cdage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdd .Function [0].ToPdfObject ());
|
||
}else {_ggdbd :=_eg .MakeArray ();for _ ,_adfb :=range _ggdd .Function {_ggdbd .Append (_adfb .ToPdfObject ());};_cdage .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ggdbd );};};return _ggdd ._beag ;};func _ddgae ()string {_egbeg .Lock ();defer _egbeg .Unlock ();
|
||
if len (_ebgfe )> 0{return _ebgfe ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_becb *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _eg .GetNumberAsFloat (_becb .Ascent );};func (_dgedb *PdfPage )getParentResources ()(*PdfPageResources ,error ){_cgcefb :=_dgedb .Parent ;for _cgcefb !=nil {_dfgfa ,_decf :=_eg .GetDict (_cgcefb );
|
||
if !_decf {_dbg .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 ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if _edbf :=_dfgfa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_edbf !=nil {_ceaf ,_acfcd :=_eg .GetDict (_edbf );if !_acfcd {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");
|
||
};_aecgb ,_fgfbb :=NewPdfPageResourcesFromDict (_ceaf );if _fgfbb !=nil {return nil ,_fgfbb ;};return _aecgb ,nil ;};_cgcefb =_dfgfa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
|
||
|
||
// UpdateXObjectImageFromImage creates a new XObject Image from an
|
||
// Image object `img` and default masks from xobjIn.
|
||
// The default masks are overridden if img.hasAlpha
|
||
// If `encoder` is nil, uses raw encoding (none).
|
||
func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _eg .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_eg .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_egeg ,_aedeg :=encoder .EncodeBytes (img .Data );
|
||
if _aedeg !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_aedeg );return nil ,_aedeg ;};_faaea :=NewXObjectImage ();_gbegge :=img .Width ;_bacda :=img .Height ;
|
||
_faaea .Width =&_gbegge ;_faaea .Height =&_bacda ;_dfbcde :=img .BitsPerComponent ;_faaea .BitsPerComponent =&_dfbcde ;_faaea .Filter =encoder ;_faaea .Stream =_egeg ;if cs ==nil {if img .ColorComponents ==1{_faaea .ColorSpace =NewPdfColorspaceDeviceGray ();
|
||
}else if img .ColorComponents ==3{_faaea .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_faaea .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_bbd .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
|
||
};}else {_faaea .ColorSpace =cs ;};if len (img ._fcec )!=0{_gcegg :=NewXObjectImage ();_gcegg .Filter =encoder ;_dbfbc ,_efabgb :=encoder .EncodeBytes (img ._fcec );if _efabgb !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_efabgb );
|
||
return nil ,_efabgb ;};_gcegg .Stream =_dbfbc ;_gcegg .BitsPerComponent =_faaea .BitsPerComponent ;_gcegg .Width =&img .Width ;_gcegg .Height =&img .Height ;_gcegg .ColorSpace =NewPdfColorspaceDeviceGray ();_faaea .SMask =_gcegg .ToPdfObject ();}else {_faaea .SMask =xobjIn .SMask ;
|
||
_faaea .ImageMask =xobjIn .ImageMask ;if _faaea .ColorSpace .GetNumComponents ()==1{_fccc (_faaea );};};return _faaea ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_fbd *PdfAnnotation )ToPdfObject ()_eg .PdfObject {_gaag :=_fbd ._gag ;_cgb :=_gaag .PdfObject .(*_eg .PdfObjectDictionary );_cgb .Clear ();_cgb .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0041\u006e\u006eo\u0074"));_cgb .SetIfNotNil ("\u0052\u0065\u0063\u0074",_fbd .Rect );
|
||
_cgb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_fbd .Contents );_cgb .SetIfNotNil ("\u0050",_fbd .P );_cgb .SetIfNotNil ("\u004e\u004d",_fbd .NM );_cgb .SetIfNotNil ("\u004d",_fbd .M );_cgb .SetIfNotNil ("\u0046",_fbd .F );_cgb .SetIfNotNil ("\u0041\u0050",_fbd .AP );
|
||
_cgb .SetIfNotNil ("\u0041\u0053",_fbd .AS );_cgb .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_fbd .Border );_cgb .SetIfNotNil ("\u0043",_fbd .C );_cgb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fbd .StructParent );
|
||
_cgb .SetIfNotNil ("\u004f\u0043",_fbd .OC );return _gaag ;};func _bbfd (_cbafe *_eg .PdfObjectDictionary )(*PdfShadingType4 ,error ){_ffcbf :=PdfShadingType4 {};_cbdfc :=_cbafe .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _cbdfc ==nil {_dbg .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 ;};_egaae ,_ddec :=_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .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",_cbdfc );
|
||
return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerCoordinate =_egaae ;_cbdfc =_cbafe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cbdfc ==nil {_dbg .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 ;};_egaae ,_ddec =_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .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",_cbdfc );
|
||
return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerComponent =_egaae ;_cbdfc =_cbafe .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cbdfc ==nil {_dbg .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 ;};_egaae ,_ddec =_cbdfc .(*_eg .PdfObjectInteger );if !_ddec {_dbg .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",_cbdfc );
|
||
return nil ,_eg .ErrTypeError ;};_ffcbf .BitsPerComponent =_egaae ;_cbdfc =_cbafe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cbdfc ==nil {_dbg .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 ;};_dbfd ,_ddec :=_cbdfc .(*_eg .PdfObjectArray );if !_ddec {_dbg .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",_cbdfc );
|
||
return nil ,_eg .ErrTypeError ;};_ffcbf .Decode =_dbfd ;_cbdfc =_cbafe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cbdfc ==nil {_dbg .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 ;};_ffcbf .Function =[]PdfFunction {};if _bgddf ,_bddf :=_cbdfc .(*_eg .PdfObjectArray );_bddf {for _ ,_ecge :=range _bgddf .Elements (){_fgggd ,_bcdef :=_dgbga (_ecge );if _bcdef !=nil {_dbg .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",_bcdef );
|
||
return nil ,_bcdef ;};_ffcbf .Function =append (_ffcbf .Function ,_fgggd );};}else {_dgffb ,_dfbf :=_dgbga (_cbdfc );if _dfbf !=nil {_dbg .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",_dfbf );
|
||
return nil ,_dfbf ;};_ffcbf .Function =append (_ffcbf .Function ,_dgffb );};return &_ffcbf ,nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_eedd pdfFontSimple )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){if _eedd ._edgae !=nil {_fcgdb ,_adcgc :=_eedd ._edgae .Read (r );if _adcgc {return _fcgdb ,true ;};};_abca :=_eedd .Encoder ();if _abca ==nil {_dbg .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_eedd );
|
||
return _ab .CharMetrics {},false ;};_eabcc ,_faee :=_abca .RuneToCharcode (r );if !_faee {if r !=' '{_dbg .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 ,_eedd );
|
||
};return _ab .CharMetrics {},false ;};_baba ,_gccc :=_eedd .GetCharMetrics (_eabcc );return _baba ,_gccc ;};func (_dgff *PdfAppender )updateObjectsDeep (_dged _eg .PdfObject ,_ece map[_eg .PdfObject ]struct{}){if _ece ==nil {_ece =map[_eg .PdfObject ]struct{}{};
|
||
};if _ ,_dbba :=_ece [_dged ];_dbba ||_dged ==nil {return ;};_ece [_dged ]=struct{}{};_dbff :=_eg .ResolveReferencesDeep (_dged ,_dgff ._baeg );if _dbff !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbff );};switch _aafc :=_dged .(type ){case *_eg .PdfIndirectObject :switch {case _aafc .GetParser ()==_dgff ._acdg ._cdggc :return ;
|
||
case _aafc .GetParser ()==_dgff .Reader ._cdggc :_fbfc ,_ :=_dgff ._acdg .GetIndirectObjectByNumber (int (_aafc .ObjectNumber ));_dgcg ,_ggfe :=_fbfc .(*_eg .PdfIndirectObject );if _ggfe &&_dgcg !=nil {if _dgcg .PdfObject !=_aafc .PdfObject &&_dgcg .PdfObject .WriteString ()!=_aafc .PdfObject .WriteString (){_dgff .addNewObject (_dged );
|
||
_dgff ._bddd [_dged ]=_aafc .ObjectNumber ;};};default:_dgff .addNewObject (_dged );};_dgff .updateObjectsDeep (_aafc .PdfObject ,_ece );case *_eg .PdfObjectArray :for _ ,_gaec :=range _aafc .Elements (){_dgff .updateObjectsDeep (_gaec ,_ece );};case *_eg .PdfObjectDictionary :for _ ,_bead :=range _aafc .Keys (){_dgff .updateObjectsDeep (_aafc .Get (_bead ),_ece );
|
||
};case *_eg .PdfObjectStreams :if _aafc .GetParser ()!=_dgff ._acdg ._cdggc {for _ ,_cecd :=range _aafc .Elements (){_dgff .updateObjectsDeep (_cecd ,_ece );};};case *_eg .PdfObjectStream :switch {case _aafc .GetParser ()==_dgff ._acdg ._cdggc :return ;
|
||
case _aafc .GetParser ()==_dgff .Reader ._cdggc :if _bdgg ,_bfec :=_dgff ._acdg ._cdggc .LookupByReference (_aafc .PdfObjectReference );_bfec ==nil {var _eaeb bool ;if _bcbg ,_cfde :=_eg .GetStream (_bdgg );_cfde &&_cbd .Equal (_bcbg .Stream ,_aafc .Stream ){_eaeb =true ;
|
||
};if _eecg ,_dff :=_eg .GetDict (_bdgg );_eaeb &&_dff {_eaeb =_eecg .WriteString ()==_aafc .PdfObjectDictionary .WriteString ();};if _eaeb {return ;};};if _aafc .ObjectNumber !=0{_dgff ._bddd [_dged ]=_aafc .ObjectNumber ;};default:if _ ,_dfcdg :=_dgff ._adge [_dged ];
|
||
!_dfcdg {_dgff .addNewObject (_dged );};};_dgff .updateObjectsDeep (_aafc .PdfObjectDictionary ,_ece );};};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_ebef :=NewPdfAnnotation ();_ecg :=&PdfAnnotationSquare {};_ecg .PdfAnnotation =_ebef ;_ecg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebef .SetContext (_ecg );return _ecg ;};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_efgd *PdfFont )BaseFont ()string {return _efgd .baseFields ()._cfab };var _aaffe =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"};
|
||
type pdfCIDFontType0 struct{fontCommon ;_aeaff *_eg .PdfIndirectObject ;_aafde _cec .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_eg .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _eg .PdfObject ;W _eg .PdfObject ;DW2 _eg .PdfObject ;W2 _eg .PdfObject ;_fedfd map[_cec .CharCode ]float64 ;_gfbab float64 ;};func (_dacga *PdfReader )resolveReference (_ecbge *_eg .PdfObjectReference )(_eg .PdfObject ,bool ,error ){_effe ,_ffgab :=_dacga ._cdggc .ObjCache [int (_ecbge .ObjectNumber )];
|
||
if !_ffgab {_dbg .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ecbge );_gaacab ,_gdfaf :=_dacga ._cdggc .LookupByReference (*_ecbge );if _gdfaf !=nil {return nil ,false ,_gdfaf ;};
|
||
_dacga ._cdggc .ObjCache [int (_ecbge .ObjectNumber )]=_gaacab ;return _gaacab ,false ,nil ;};return _effe ,true ,nil ;};
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_ddbe *PdfTilingPattern )IsColored ()bool {if _ddbe .PaintType !=nil &&*_ddbe .PaintType ==1{return true ;};return false ;};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_bcgb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_dbbf ,_gdfa :=color .(*PdfColorDeviceCMYK );if !_gdfa {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbbec :=_dbbf .C ();_cbfc :=_dbbf .M ();_dcfg :=_dbbf .Y ();_acgdd :=_dbbf .K ();_dbbec =_dbbec *(1-_acgdd )+_acgdd ;_cbfc =_cbfc *(1-_acgdd )+_acgdd ;
|
||
_dcfg =_dcfg *(1-_acgdd )+_acgdd ;_daeb :=1-_dbbec ;_cddc :=1-_cbfc ;_cfbe :=1-_dcfg ;return NewPdfColorDeviceRGB (_daeb ,_cddc ,_cfbe ),nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ebcfb pdfCIDFontType0 )Encoder ()_cec .TextEncoder {return _ebcfb ._aafde };func (_cgae *XObjectImage )getParamsDict ()*_eg .PdfObjectDictionary {_afefa :=_eg .MakeDict ();_afefa .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (*_cgae .Width ));
|
||
_afefa .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (*_cgae .Height ));_afefa .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_cgae .ColorSpace .GetNumComponents ())));_afefa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (*_cgae .BitsPerComponent ));
|
||
return _afefa ;};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";);
|
||
|
||
// 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 ;_abbc *_eg .PdfIndirectObject ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gfce *PdfColorLab )ToInteger (bits int )[3]uint32 {_bffc :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_bffc *_gfce .L ()),uint32 (_bffc *_gfce .A ()),uint32 (_bffc *_gfce .B ())};};func _aebfd (_ccfc *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_ccfc }};
|
||
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ffbb :=NewPdfAnnotation ();_abc :=&PdfAnnotationTrapNet {};_abc .PdfAnnotation =_ffbb ;_ffbb .SetContext (_abc );return _abc ;};
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_fa :=NewPdfAction ();_gab :=&PdfActionSubmitForm {};_gab .PdfAction =_fa ;_fa .SetContext (_gab );return _gab ;};
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_cdgfd :=&XObjectImage {};_afcca :=&_eg .PdfObjectStream {};_afcca .PdfObjectDictionary =_eg .MakeDict ();_cdgfd ._dcdb =_afcca ;return _cdgfd ;};
|
||
|
||
// 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 *_eg .PdfObjectStream )(*XObjectImage ,error ){_dfegd :=&XObjectImage {};_dfegd ._dcdb =stream ;_ddebe :=*(stream .PdfObjectDictionary );_bfgdc ,_aabgfe :=_eg .NewEncoderFromStream (stream );if _aabgfe !=nil {return nil ,_aabgfe ;
|
||
};_dfegd .Filter =_bfgdc ;if _eagae :=_eg .TraceToDirectObject (_ddebe .Get ("\u0057\u0069\u0064t\u0068"));_eagae !=nil {_cgba ,_bafdfc :=_eagae .(*_eg .PdfObjectInteger );if !_bafdfc {return nil ,_bbd .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");
|
||
};_gfceb :=int64 (*_cgba );_dfegd .Width =&_gfceb ;}else {return nil ,_bbd .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _acbcd :=_eg .TraceToDirectObject (_ddebe .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_acbcd !=nil {_aacae ,_dcfae :=_acbcd .(*_eg .PdfObjectInteger );if !_dcfae {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_efgdf :=int64 (*_aacae );
|
||
_dfegd .Height =&_efgdf ;}else {return nil ,_bbd .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ecceb :=_eg .TraceToDirectObject (_ddebe .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_ecceb !=nil {_eafcd ,_bgae :=NewPdfColorspaceFromPdfObject (_ecceb );if _bgae !=nil {return nil ,_bgae ;};_dfegd .ColorSpace =_eafcd ;}else {_dbg .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063t\u0020\u0049\u006d\u0061\u0067e\u0020\u0063\u006f\u006c\u006f\u0072s\u0070\u0061\u0063\u0065\u0020n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064 \u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u0031\u0020\u0063\u006fl\u006f\u0072\u0020\u0063\u006f\u006d\u0070\u006fn\u0065\u006e\u0074");
|
||
_dfegd .ColorSpace =NewPdfColorspaceDeviceGray ();};if _agage :=_eg .TraceToDirectObject (_ddebe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_agage !=nil {_ecffg ,_eebd :=_agage .(*_eg .PdfObjectInteger );
|
||
if !_eebd {return nil ,_bbd .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_edbfca :=int64 (*_ecffg );_dfegd .BitsPerComponent =&_edbfca ;};_dfegd .Intent =_ddebe .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_dfegd .ImageMask =_ddebe .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_dfegd .Mask =_ddebe .Get ("\u004d\u0061\u0073\u006b");_dfegd .Decode =_ddebe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_dfegd .Interpolate =_ddebe .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_dfegd .Alternatives =_ddebe .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_dfegd .SMask =_ddebe .Get ("\u0053\u004d\u0061s\u006b");_dfegd .SMaskInData =_ddebe .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_dfegd .Matte =_ddebe .Get ("\u004d\u0061\u0074t\u0065");_dfegd .Name =_ddebe .Get ("\u004e\u0061\u006d\u0065");_dfegd .StructParent =_ddebe .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dfegd .ID =_ddebe .Get ("\u0049\u0044");
|
||
_dfegd .OPI =_ddebe .Get ("\u004f\u0050\u0049");_dfegd .Metadata =_ddebe .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dfegd .OC =_ddebe .Get ("\u004f\u0043");_dfegd .Stream =stream .Stream ;return _dfegd ,nil ;};func (_cgecb *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _cgecb ._cdggc .GetCrypter ()!=nil &&!_cgecb ._cdggc .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_bbef :=_cgecb ._efdg ;_agbec :=_bbef .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _agbec ==nil {return nil ,nil ;};_dbg .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_dfceb :=_eg .ResolveReference (_agbec );
|
||
_dbg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_dfceb );if _cbad :=_eg .IsNullObject (_dfceb );_cbad {_dbg .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 ;};_fagd ,_bccfee :=_dfceb .(*_eg .PdfIndirectObject );if !_bccfee {if _ ,_abce :=_eg .GetDict (_dfceb );!_abce {_dbg .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 ;};_dbg .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");
|
||
_fagd =_eg .MakeIndirectObject (_dfceb );};_geffa ,_bccfee :=_fagd .PdfObject .(*_eg .PdfObjectDictionary );if !_bccfee {return nil ,_bbd .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");
|
||
};_dbg .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_geffa );_faef ,_ ,_bcdcc :=_cgecb .buildOutlineTree (_fagd ,nil ,nil ,nil );if _bcdcc !=nil {return nil ,_bcdcc ;};_dbg .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",_faef );
|
||
return _faef ,nil ;};func (_egdgb *PdfAcroForm )filteredFields (_gdgbf FieldFilterFunc ,_bbcbb bool )[]*PdfField {if _egdgb ==nil {return nil ;};return _dccbga (_egdgb .Fields ,_gdgbf ,_bbcbb );};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_ecfe *pdfFontSimple )ToPdfObject ()_eg .PdfObject {if _ecfe ._acfb ==nil {_ecfe ._acfb =&_eg .PdfIndirectObject {};};_edefg :=_ecfe .baseFields ().asPdfObjectDictionary ("");_ecfe ._acfb .PdfObject =_edefg ;if _ecfe .FirstChar !=nil {_edefg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_ecfe .FirstChar );
|
||
};if _ecfe .LastChar !=nil {_edefg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_ecfe .LastChar );};if _ecfe .Widths !=nil {_edefg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_ecfe .Widths );};if _ecfe .Encoding !=nil {_edefg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ecfe .Encoding );
|
||
}else if _ecfe ._gccbc !=nil {_ffeg :=_ecfe ._gccbc .ToPdfObject ();if _ffeg !=nil {_edefg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ffeg );};};return _ecfe ._acfb ;};
|
||
|
||
// 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 _de .ReadSeeker )(*PdfFont ,error ){_gagaf ,_ebcag :=_aa .ReadAll (r );if _ebcag !=nil {_dbg .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",_ebcag );
|
||
return nil ,_ebcag ;};_dgfcd ,_ebcag :=_ab .TtfParse (_cbd .NewReader (_gagaf ));if _ebcag !=nil {_dbg .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",_ebcag );
|
||
return nil ,_ebcag ;};_adcc :=&pdfCIDFontType2 {fontCommon :fontCommon {_fgbbb :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_eg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};_deab :=make ([]rune ,0,len (_dgfcd .Chars ));
|
||
for _cecad :=range _dgfcd .Chars {_deab =append (_deab ,_cecad );};_ae .Slice (_deab ,func (_fgdc ,_gcdcbg int )bool {return _deab [_fgdc ]< _deab [_gcdcbg ]});_facba :=1000.0/float64 (_dgfcd .UnitsPerEm );if len (_dgfcd .Widths )<=0{return nil ,_bbd .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");
|
||
};_badgg :=_facba *float64 (_dgfcd .Widths [0]);_beaad :=make (map[rune ]int );for _ ,_cfede :=range _deab {_dfbcg :=_dgfcd .Chars [_cfede ];_aagcf :=_facba *float64 (_dgfcd .Widths [_dfbcg ]);_beaad [_cfede ]=int (_aagcf );};_adcc ._dgefb =_beaad ;_adcc .DW =_eg .MakeInteger (int64 (_badgg ));
|
||
_cfedc :=_abff (_deab ,_beaad ,_dgfcd .Chars );_adcc .W =_eg .MakeIndirectObject (_cfedc );_geag :=_eg .MakeDict ();_geag .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_eg .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_geag .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_eg .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_geag .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_eg .MakeInteger (0));_adcc .CIDSystemInfo =_geag ;_dgbea :=&PdfFontDescriptor {FontName :_eg .MakeName (_dgfcd .PostScriptName ),Ascent :_eg .MakeFloat (_facba *float64 (_dgfcd .TypoAscender )),Descent :_eg .MakeFloat (_facba *float64 (_dgfcd .TypoDescender )),CapHeight :_eg .MakeFloat (_facba *float64 (_dgfcd .CapHeight )),FontBBox :_eg .MakeArrayFromFloats ([]float64 {_facba *float64 (_dgfcd .Xmin ),_facba *float64 (_dgfcd .Ymin ),_facba *float64 (_dgfcd .Xmax ),_facba *float64 (_dgfcd .Ymax )}),ItalicAngle :_eg .MakeFloat (_dgfcd .ItalicAngle ),MissingWidth :_eg .MakeFloat (_facba *float64 (_dgfcd .Widths [0]))};
|
||
_eefe ,_ebcag :=_eg .MakeStream (_gagaf ,_eg .NewFlateEncoder ());if _ebcag !=nil {_dbg .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",_ebcag );
|
||
return nil ,_ebcag ;};_eefe .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (len (_gagaf ))));_dgbea .FontFile2 =_eefe ;if _dgfcd .Bold {_dgbea .StemV =_eg .MakeInteger (120);}else {_dgbea .StemV =_eg .MakeInteger (70);
|
||
};_gbgfa :=_efecb ;if _dgfcd .IsFixedPitch {_gbgfa |=_defe ;};if _dgfcd .ItalicAngle !=0{_gbgfa |=_fedcc ;};_dgbea .Flags =_eg .MakeInteger (int64 (_gbgfa ));_adcc ._cfab =_dgfcd .PostScriptName ;_adcc ._eecfe =_dgbea ;_bfdc :=pdfFontType0 {fontCommon :fontCommon {_fgbbb :"\u0054\u0079\u0070e\u0030",_cfab :_dgfcd .PostScriptName },DescendantFont :&PdfFont {_gdcab :_adcc },Encoding :_eg .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_eceba :_dgfcd .NewEncoder ()};
|
||
if len (_dgfcd .Chars )> 0{_ffgda :=make (map[_aff .CharCode ]rune ,len (_dgfcd .Chars ));for _aggga ,_ddeae :=range _dgfcd .Chars {_gdad :=_aff .CharCode (_ddeae );if _acge ,_cffg :=_ffgda [_gdad ];!_cffg ||(_cffg &&_acge > _aggga ){_ffgda [_gdad ]=_aggga ;
|
||
};};_bfdc ._fffc =_aff .NewToUnicodeCMap (_ffgda );};_fecg :=PdfFont {_gdcab :&_bfdc };return &_fecg ,nil ;};func (_bag *PdfReader )newPdfActionGotoFromDict (_bacb *_eg .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_bacb .Get ("\u0044")},nil ;
|
||
};func _acde (_eged _eg .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_ecgf :=NewPdfColorspaceSpecialIndexed ();if _fbad ,_adbd :=_eged .(*_eg .PdfIndirectObject );_adbd {_ecgf ._cbdga =_fbad ;};_eged =_eg .TraceToDirectObject (_eged );_fgcd ,_fdge :=_eged .(*_eg .PdfObjectArray );
|
||
if !_fdge {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fgcd .Len ()!=4{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
|
||
};_eged =_fgcd .Get (0);_gged ,_fdge :=_eged .(*_eg .PdfObjectName );if !_fdge {return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_gged !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_eged =_fgcd .Get (1);_gaba ,_ddcf :=DetermineColorspaceNameFromPdfObject (_eged );if _ddcf !=nil {return nil ,_ddcf ;};if _gaba =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_gaba =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_dbg .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",_gaba );
|
||
return nil ,_fgega ;};_dgcd ,_ddcf :=NewPdfColorspaceFromPdfObject (_eged );if _ddcf !=nil {return nil ,_ddcf ;};_ecgf .Base =_dgcd ;_eged =_fgcd .Get (2);_aaed ,_ddcf :=_eg .GetNumberAsInt64 (_eged );if _ddcf !=nil {return nil ,_ddcf ;};if _aaed > 255{return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_ecgf .HiVal =int (_aaed );_eged =_fgcd .Get (3);_ecgf .Lookup =_eged ;_eged =_eg .TraceToDirectObject (_eged );var _cbfea []byte ;if _bgabf ,_fcae :=_eged .(*_eg .PdfObjectString );_fcae {_cbfea =_bgabf .Bytes ();_dbg .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",_cbfea );
|
||
}else if _dggbb ,_dbcef :=_eged .(*_eg .PdfObjectStream );_dbcef {_dbg .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_eged .String ());_dbg .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_dggbb .Stream ),_dggbb .Stream );
|
||
_ebcb ,_gfadf :=_eg .DecodeStream (_dggbb );if _gfadf !=nil {return nil ,_gfadf ;};_dbg .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ebcb ),_ebcb );_cbfea =_ebcb ;}else {_dbg .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_eged );
|
||
return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_cbfea )< _ecgf .Base .GetNumComponents ()*(_ecgf .HiVal +1){_dbg .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");
|
||
_dbg .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 (_cbfea ),_ecgf .Base .GetNumComponents (),_ecgf .HiVal );
|
||
}else {_cbfea =_cbfea [:_ecgf .Base .GetNumComponents ()*(_ecgf .HiVal +1)];};_ecgf ._dbcc =_cbfea ;return _ecgf ,nil ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_faeb *PdfColorLab )B ()float64 {return _faeb [2]};
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_fdf :=NewPdfAction ();_ebc :=&PdfActionHide {};_ebc .PdfAction =_fdf ;_fdf .SetContext (_ebc );return _ebc ;};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eg .PdfObject ;LE _eg .PdfObject ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;IT _eg .PdfObject ;Measure _eg .PdfObject ;};
|
||
|
||
// 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 (_afec *pdfFontSimple )SetEncoder (encoder _cec .TextEncoder ){_afec ._gccbc =encoder };
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_caedf *PdfField )PartialName ()string {_dbfcb :="";if _caedf .T !=nil {_dbfcb =_caedf .T .Decoded ();}else {_dbg .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 _dbfcb ;};
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_geef *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_daff :=pageNum -1;var _fcga *PdfPage ;for _cdgaa ,_fgcgc :=range _geef ._bfce {if _cdgaa ==_daff {_fcga =_fgcgc ;};};if _fcga ==nil {return _e .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
|
||
};if _fcga ._caaef !=nil &&_fcga ._caaef .GetParser ()==_geef ._acdg ._cdggc {_fcga =_fcga .Duplicate ();_geef ._bfce [_daff ]=_fcga ;};page =page .Duplicate ();_faadf (page );_fag :=_aadg (_fcga );_fbfg :=_aadg (page );_adcb :=make (map[_eg .PdfObjectName ]_eg .PdfObjectName );
|
||
for _bce :=range _fbfg {if _ ,_dgfd :=_fag [_bce ];_dgfd {for _cfdbd :=1;true ;_cfdbd ++{_febe :=_eg .PdfObjectName (string (_bce )+_db .Itoa (_cfdbd ));if _ ,_fedbg :=_fag [_febe ];!_fedbg {_adcb [_bce ]=_febe ;break ;};};};};_gba ,_eaff :=page .GetContentStreams ();
|
||
if _eaff !=nil {return _eaff ;};_dag ,_eaff :=_fcga .GetContentStreams ();if _eaff !=nil {return _eaff ;};for _dede ,_eaebb :=range _gba {for _ebfc ,_bebg :=range _adcb {_eaebb =_dc .Replace (_eaebb ,"\u002f"+string (_ebfc ),"\u002f"+string (_bebg ),-1);
|
||
};_gba [_dede ]=_eaebb ;};_dag =append (_dag ,_gba ...);if _cdbg :=_fcga .SetContentStreams (_dag ,_eg .NewFlateEncoder ());_cdbg !=nil {return _cdbg ;};_fcga ._egge =append (_fcga ._egge ,page ._egge ...);if _fcga .Resources ==nil {_fcga .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_fcga .Resources .Font =_geef .mergeResources (_fcga .Resources .Font ,page .Resources .Font ,_adcb );_fcga .Resources .XObject =_geef .mergeResources (_fcga .Resources .XObject ,page .Resources .XObject ,_adcb );_fcga .Resources .Properties =_geef .mergeResources (_fcga .Resources .Properties ,page .Resources .Properties ,_adcb );
|
||
if _fcga .Resources .ProcSet ==nil {_fcga .Resources .ProcSet =page .Resources .ProcSet ;};_fcga .Resources .Shading =_geef .mergeResources (_fcga .Resources .Shading ,page .Resources .Shading ,_adcb );_fcga .Resources .ExtGState =_geef .mergeResources (_fcga .Resources .ExtGState ,page .Resources .ExtGState ,_adcb );
|
||
};_ega ,_eaff :=_fcga .GetMediaBox ();if _eaff !=nil {return _eaff ;};_bgda ,_eaff :=page .GetMediaBox ();if _eaff !=nil {return _eaff ;};var _aaea bool ;if _ega .Llx > _bgda .Llx {_ega .Llx =_bgda .Llx ;_aaea =true ;};if _ega .Lly > _bgda .Lly {_ega .Lly =_bgda .Lly ;
|
||
_aaea =true ;};if _ega .Urx < _bgda .Urx {_ega .Urx =_bgda .Urx ;_aaea =true ;};if _ega .Ury < _bgda .Ury {_ega .Ury =_bgda .Ury ;_aaea =true ;};if _aaea {_fcga .MediaBox =_ega ;};return nil ;};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_ecgg *PdfReader )GetIndirectObjectByNumber (number int )(_eg .PdfObject ,error ){_bgaf ,_gdbf :=_ecgg ._cdggc .LookupByNumber (number );return _bgaf ,_gdbf ;};
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_dafba *PdfPage )AddContentStreamByString (contentStr string )error {_fcdd ,_cgced :=_eg .MakeStream ([]byte (contentStr ),_eg .NewFlateEncoder ());if _cgced !=nil {return _cgced ;};if _dafba .Contents ==nil {_dafba .Contents =_fcdd ;}else {_bfgcd :=_eg .TraceToDirectObject (_dafba .Contents );
|
||
_cfad ,_ffege :=_bfgcd .(*_eg .PdfObjectArray );if !_ffege {_cfad =_eg .MakeArray (_bfgcd );};_cfad .Append (_fcdd );_dafba .Contents =_cfad ;};return nil ;};
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _eg .PdfObject ;Volume _eg .PdfObject ;Synchronous _eg .PdfObject ;Repeat _eg .PdfObject ;Mix _eg .PdfObject ;};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_eg .PdfObjectInteger ;BitsPerComponent *_eg .PdfObjectInteger ;BitsPerFlag *_eg .PdfObjectInteger ;Decode *_eg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_ddd :=NewPdfAnnotation ();_dcd :=&PdfAnnotationInk {};_dcd .PdfAnnotation =_ddd ;_dcd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ddd .SetContext (_dcd );return _dcd ;};func (_ffcee *DSS )add (_cbac *[]*_eg .PdfObjectStream ,_ebfab map[string ]*_eg .PdfObjectStream ,_abgg [][]byte )([]*_eg .PdfObjectStream ,error ){_fdcg :=make ([]*_eg .PdfObjectStream ,0,len (_abgg ));
|
||
for _ ,_fefb :=range _abgg {_bccfc ,_degg :=_cafd (_fefb );if _degg !=nil {return nil ,_degg ;};_dage ,_gccbg :=_ebfab [string (_bccfc )];if !_gccbg {_dage ,_degg =_eg .MakeStream (_fefb ,_eg .NewRawEncoder ());if _degg !=nil {return nil ,_degg ;};_ebfab [string (_bccfc )]=_dage ;
|
||
*_cbac =append (*_cbac ,_dage );};_fdcg =append (_fdcg ,_dage );};return _fdcg ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ecda *PdfColorCalGray )ToInteger (bits int )uint32 {_cffee :=_bc .Pow (2,float64 (bits ))-1;return uint32 (_cffee *_ecda .Val ());};
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_eaaf *PdfAppender )WriteToFile (outputPath string )error {_cae ,_eceg :=_bg .Create (outputPath );if _eceg !=nil {return _eceg ;};defer _cae .Close ();return _eaaf .Write (_cae );};
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_gagfe *PdfWriter )SetOptimizer (optimizer Optimizer ){_gagfe ._efdcf =optimizer };func _edbga (_caeaf *PdfField ,_bbfad _eg .PdfObject )error {switch _caeaf .GetContext ().(type ){case *PdfFieldText :switch _gaff :=_bbfad .(type ){case *_eg .PdfObjectName :_fdga :=_gaff ;
|
||
_dbg .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",_fdga .String ());
|
||
_caeaf .V =_eg .MakeEncodedString (_gaff .String (),true );case *_eg .PdfObjectString :_caeaf .V =_eg .MakeEncodedString (_gaff .String (),true );default:_dbg .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",_gaff ,_gaff );
|
||
};case *PdfFieldButton :switch _bbfad .(type ){case *_eg .PdfObjectName :if len (_bbfad .String ())> 0{_caeaf .V =_bbfad ;_bbafc (_caeaf ,_bbfad );};case *_eg .PdfObjectString :if len (_bbfad .String ())> 0{_caeaf .V =_eg .MakeName (_bbfad .String ());
|
||
_bbafc (_caeaf ,_caeaf .V );};default:_dbg .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",_caeaf .PartialName (),_bbfad );_caeaf .V =_bbfad ;
|
||
};case *PdfFieldChoice :switch _bbfad .(type ){case *_eg .PdfObjectName :if len (_bbfad .String ())> 0{_caeaf .V =_eg .MakeString (_bbfad .String ());_bbafc (_caeaf ,_bbfad );};case *_eg .PdfObjectString :if len (_bbfad .String ())> 0{_caeaf .V =_bbfad ;
|
||
_bbafc (_caeaf ,_eg .MakeName (_bbfad .String ()));};default:_dbg .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",_caeaf .PartialName (),_bbfad );
|
||
_caeaf .V =_bbfad ;};case *PdfFieldSignature :_dbg .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",_caeaf .PartialName (),_bbfad );
|
||
};return nil ;};
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_eafe *PdfColorDeviceCMYK )K ()float64 {return _eafe [3]};func (_dcbdc *PdfWriter )writeObject (_abgbc int ,_gadad _eg .PdfObject ){_dbg .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_abgbc );if _egad ,_ggfec :=_gadad .(*_eg .PdfIndirectObject );
|
||
_ggfec {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_egad .GenerationNumber };_gbgbg :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );if _ddccc ,_befde :=_egad .PdfObject .(*pdfSignDictionary );
|
||
_befde {_ddccc ._gfefg =_dcbdc ._agecc +int64 (len (_gbgbg ));};if _egad .PdfObject ==nil {_dbg .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");
|
||
_egad .PdfObject =_eg .MakeNull ();};_gbgbg +=_egad .PdfObject .WriteString ();_gbgbg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_dcbdc .writeString (_gbgbg );return ;};if _egecf ,_cdccb :=_gadad .(*_eg .PdfObjectStream );_cdccb {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_egecf .GenerationNumber };
|
||
_bebdd :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );_bebdd +=_egecf .PdfObjectDictionary .WriteString ();_bebdd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dcbdc .writeString (_bebdd );_dcbdc .writeBytes (_egecf .Stream );
|
||
_dcbdc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _gaabb ,_abacd :=_gadad .(*_eg .PdfObjectStreams );_abacd {_dcbdc ._fadgbb [_abgbc ]=crossReference {Type :1,Offset :_dcbdc ._agecc ,Generation :_gaabb .GenerationNumber };
|
||
_ggcdf :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_abgbc );var _fgbf []string ;var _cbfaf string ;var _fdead int64 ;for _ddgcde ,_eeafb :=range _gaabb .Elements (){_dedae ,_afgcf :=_eeafb .(*_eg .PdfIndirectObject );if !_afgcf {_dbg .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",_abgbc ,_eeafb );
|
||
continue ;};_defb :=_dedae .PdfObject .WriteString ()+"\u0020";_cbfaf =_cbfaf +_defb ;_fgbf =append (_fgbf ,_e .Sprintf ("\u0025\u0064\u0020%\u0064",_dedae .ObjectNumber ,_fdead ));_dcbdc ._fadgbb [int (_dedae .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_abgbc ,Index :_ddgcde };
|
||
_fdead =_fdead +int64 (len ([]byte (_defb )));};_gdcae :=_dc .Join (_fgbf ,"\u0020")+"\u0020";_dacbd :=_eg .NewFlateEncoder ();_cacgg :=_dacbd .MakeStreamDict ();_cacgg .Set (_eg .PdfObjectName ("\u0054\u0079\u0070\u0065"),_eg .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_accaeb :=int64 (_gaabb .Len ());_cacgg .Set (_eg .PdfObjectName ("\u004e"),_eg .MakeInteger (_accaeb ));_fgaga :=int64 (len (_gdcae ));_cacgg .Set (_eg .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_eg .MakeInteger (_fgaga ));_aaggg ,_ :=_dacbd .EncodeBytes ([]byte (_gdcae +_cbfaf ));
|
||
_abfdag :=int64 (len (_aaggg ));_cacgg .Set (_eg .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_eg .MakeInteger (_abfdag ));_ggcdf +=_cacgg .WriteString ();_ggcdf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dcbdc .writeString (_ggcdf );
|
||
_dcbdc .writeBytes (_aaggg );_dcbdc .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_dcbdc .writeString (_gadad .WriteString ());};func (_afegd *pdfFontType3 )baseFields ()*fontCommon {return &_afegd .fontCommon };
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gfgc *PdfBorderStyle )ToPdfObject ()_eg .PdfObject {_cfee :=_eg .MakeDict ();if _gfgc ._cbeg !=nil {if _edfd ,_acac :=_gfgc ._cbeg .(*_eg .PdfIndirectObject );_acac {_edfd .PdfObject =_cfee ;};};_cfee .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _gfgc .W !=nil {_cfee .Set ("\u0057",_eg .MakeFloat (*_gfgc .W ));};if _gfgc .S !=nil {_cfee .Set ("\u0053",_eg .MakeName (_gfgc .S .GetPdfName ()));};if _gfgc .D !=nil {_cfee .Set ("\u0044",_eg .MakeArrayFromIntegers (*_gfgc .D ));};if _gfgc ._cbeg !=nil {return _gfgc ._cbeg ;
|
||
};return _cfee ;};
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_bcbedb *PdfPageResources )SetPatternByName (keyName _eg .PdfObjectName ,pattern _eg .PdfObject )error {if _bcbedb .Pattern ==nil {_bcbedb .Pattern =_eg .MakeDict ();};_afcb ,_gbff :=_bcbedb .Pattern .(*_eg .PdfObjectDictionary );if !_gbff {return _eg .ErrTypeError ;
|
||
};_afcb .Set (keyName ,pattern );return nil ;};
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_bcgaf *PdfSignature )SetDate (date _ee .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";};_bcgaf .M =_eg .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_becd :=PdfColorLab {l ,a ,b };return &_becd };
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _eg .PdfObject ;IsMap _eg .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgdbb *PdfSignature )ToPdfObject ()_eg .PdfObject {_egaeg :=_bgdbb ._ffae ;var _gfcd *_eg .PdfObjectDictionary ;if _ffddd ,_bcef :=_egaeg .PdfObject .(*pdfSignDictionary );_bcef {_gfcd =_ffddd .PdfObjectDictionary ;}else {_gfcd =_egaeg .PdfObject .(*_eg .PdfObjectDictionary );
|
||
};_gfcd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_bgdbb .Type );_gfcd .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_bgdbb .Filter );_gfcd .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_bgdbb .SubFilter );_gfcd .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bgdbb .ByteRange );
|
||
_gfcd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_bgdbb .Contents );_gfcd .SetIfNotNil ("\u0043\u0065\u0072\u0074",_bgdbb .Cert );_gfcd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgdbb .Name );_gfcd .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_bgdbb .Reason );
|
||
_gfcd .SetIfNotNil ("\u004d",_bgdbb .M );_gfcd .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_bgdbb .Reference );_gfcd .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_bgdbb .Changes );_gfcd .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_bgdbb .ContactInfo );
|
||
return _egaeg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cgbe *PdfAnnotationText )ToPdfObject ()_eg .PdfObject {_cgbe .PdfAnnotation .ToPdfObject ();_cbcd :=_cgbe ._gag ;_dgfe :=_cbcd .PdfObject .(*_eg .PdfObjectDictionary );if _cgbe .PdfAnnotationMarkup !=nil {_cgbe .PdfAnnotationMarkup .appendToPdfDictionary (_dgfe );
|
||
};_dgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0054\u0065\u0078\u0074"));_dgfe .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cgbe .Open );_dgfe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cgbe .Name );_dgfe .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cgbe .State );
|
||
_dgfe .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_cgbe .StateModel );return _cbcd ;};
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_ffgee *modelManager )GetModelFromPrimitive (primitive _eg .PdfObject )PdfModel {model ,_deac :=_ffgee ._bfgf [primitive ];if !_deac {return nil ;};return model ;};
|
||
|
||
// 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 _de .ReadSeeker )(*PdfReader ,error ){const _gecec ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";_ccfb :=&PdfReader {_addac :rs ,_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_bebe :true };
|
||
_bcdf ,_edbfc :=_fccgd ("\u0072");if _edbfc !=nil {return nil ,_edbfc ;};_edbfc =_dd .Track (_bcdf ,_gecec );if _edbfc !=nil {return nil ,_edbfc ;};_ccfb ._ebcgb =_bcdf ;_efeff ,_edbfc :=_eg .NewParser (rs );if _edbfc !=nil {return nil ,_edbfc ;};_ccfb ._cdggc =_efeff ;
|
||
_aefab ,_edbfc :=_ccfb .IsEncrypted ();if _edbfc !=nil {return nil ,_edbfc ;};if !_aefab {_edbfc =_ccfb .loadStructure ();if _edbfc !=nil {return nil ,_edbfc ;};};return _ccfb ,nil ;};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _eg .PdfObjectName ;};
|
||
|
||
// 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 ;
|
||
|
||
// 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 *_eg .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_eg .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_eg .PdfObjectBool ;_ccdbe PdfModel ;_beag _eg .PdfObject ;};
|
||
|
||
// 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 (_cgbcf *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_adddc :=_cgbcf .GetContentStreamObjs ();wrapContents =wrapContents &&len (_adddc )> 0;_fedg :=_eg .NewFlateEncoder ();_fbfcc :=_eg .MakeArray ();if wrapContents {_dabdg ,_egdac :=_eg .MakeStream ([]byte ("\u0071\u000a"),_fedg );
|
||
if _egdac !=nil {return _egdac ;};_fbfcc .Append (_dabdg );};_fbfcc .Append (_adddc ...);if wrapContents {_eagb ,_aefbd :=_eg .MakeStream ([]byte ("\u000a\u0051\u000a"),_fedg );if _aefbd !=nil {return _aefbd ;};_fbfcc .Append (_eagb );};_cgcfd ,_dfcdc :=_eg .MakeStream (cs ,_fedg );
|
||
if _dfcdc !=nil {return _dfcdc ;};_fbfcc .Append (_cgcfd );_cgbcf .Contents =_fbfcc ;return nil ;};
|
||
|
||
// 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 ){_badb :=PdfDate {};_fcebc :=_gdeaa .FindAllStringSubmatch (dateStr ,1);if len (_fcebc )< 1{return _badb ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0064\u0061\u0074\u0065\u0020s\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0073\u0029",dateStr );
|
||
};if len (_fcebc [0])!=10{return _badb ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0067\u0065\u0078p\u0020\u0067\u0072\u006f\u0075\u0070 \u006d\u0061\u0074\u0063\u0068\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u0020!\u003d\u0020\u0031\u0030");
|
||
};_badb ._cggcf ,_ =_db .ParseInt (_fcebc [0][1],10,32);_badb ._agfdbf ,_ =_db .ParseInt (_fcebc [0][2],10,32);_badb ._ebfff ,_ =_db .ParseInt (_fcebc [0][3],10,32);_badb ._bfabc ,_ =_db .ParseInt (_fcebc [0][4],10,32);_badb ._edagg ,_ =_db .ParseInt (_fcebc [0][5],10,32);
|
||
_badb ._ggcbe ,_ =_db .ParseInt (_fcebc [0][6],10,32);if len (_fcebc [0][7])> 0{_badb ._facfb =_fcebc [0][7][0];}else {_badb ._facfb ='+';};if len (_fcebc [0][8])> 0{_badb ._gaggg ,_ =_db .ParseInt (_fcebc [0][8],10,32);}else {_badb ._gaggg =0;};if len (_fcebc [0][9])> 0{_badb ._daabe ,_ =_db .ParseInt (_fcebc [0][9],10,32);
|
||
}else {_badb ._daabe =0;};return _badb ,nil ;};func _gbbe (_cca _eg .PdfObject )(*PdfFilespec ,error ){if _cca ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_cca );};var (CourierName =_ab .CourierName ;CourierBoldName =_ab .CourierBoldName ;CourierObliqueName =_ab .CourierObliqueName ;
|
||
CourierBoldObliqueName =_ab .CourierBoldObliqueName ;HelveticaName =_ab .HelveticaName ;HelveticaBoldName =_ab .HelveticaBoldName ;HelveticaObliqueName =_ab .HelveticaObliqueName ;HelveticaBoldObliqueName =_ab .HelveticaBoldObliqueName ;SymbolName =_ab .SymbolName ;
|
||
ZapfDingbatsName =_ab .ZapfDingbatsName ;TimesRomanName =_ab .TimesRomanName ;TimesBoldName =_ab .TimesBoldName ;TimesItalicName =_ab .TimesItalicName ;TimesBoldItalicName =_ab .TimesBoldItalicName ;);
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_eee *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccgdg ,_gfeff :=color .(*PdfColorDeviceRGB );if !_gfeff {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _ccgdg ,nil ;};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_bef :=&PdfColorspaceDeviceN {};return _bef };
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_gbgfag *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_gfbfe ,_dcbfc :=_gbgfag .GetMediaBox ();if _dcbfc !=nil {return _dcbfc ;};_gbgbe :=_gfbfe .Urx -_gfbfe .Llx ;_abdf :=_gfbfe .Ury -_gfbfe .Lly ;_aebeb :=float64 (*ximg .Width );
|
||
_fgacc :=(_gbgbe -_aebeb )/2;if opt .FitToWidth {_aebeb =_gbgbe ;_fgacc =0;};_fabd :=_abdf ;_gcbg :=float64 (0);if opt .PreserveAspectRatio {_fabd =_aebeb *float64 (*ximg .Height )/float64 (*ximg .Width );_gcbg =(_abdf -_fabd )/2;};if _gbgfag .Resources ==nil {_gbgfag .Resources =NewPdfPageResources ();
|
||
};_fgba :=0;_fbaeg :=_eg .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_fgba ));for _gbgfag .Resources .HasXObjectByName (_fbaeg ){_fgba ++;_fbaeg =_eg .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_fgba ));};_dcbfc =_gbgfag .AddImageResource (_fbaeg ,ximg );
|
||
if _dcbfc !=nil {return _dcbfc ;};_fgba =0;_afbag :=_eg .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_fgba ));for _gbgfag .HasExtGState (_afbag ){_fgba ++;_afbag =_eg .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_fgba ));};_dggcd :=_eg .MakeDict ();
|
||
_dggcd .Set ("\u0042\u004d",_eg .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_dggcd .Set ("\u0043\u0041",_eg .MakeFloat (opt .Alpha ));_dggcd .Set ("\u0063\u0061",_eg .MakeFloat (opt .Alpha ));_dcbfc =_gbgfag .AddExtGState (_afbag ,_dggcd );if _dcbfc !=nil {return _dcbfc ;
|
||
};_affcc :=_e .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_afbag ,_aebeb ,_fabd ,_fgacc ,_gcbg ,_fbaeg );
|
||
_gbgfag .AddContentStreamByString (_affcc );return nil ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_ddcb *pdfCIDFontType0 )ToPdfObject ()_eg .PdfObject {return _eg .MakeNull ()};func (_beea *pdfCIDFontType2 )baseFields ()*fontCommon {return &_beea .fontCommon };
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_fcefe *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _fcefe ._fdgac ==nil {_fcefe ._fdgac =_ea .NewPSExecutor (_fcefe .Program );};var _febbe []_ea .PSObject ;for _ ,_ebbfg :=range xVec {_febbe =append (_febbe ,_ea .MakeReal (_ebbfg ));
|
||
};_bdfbb ,_egfdf :=_fcefe ._fdgac .Execute (_febbe );if _egfdf !=nil {return nil ,_egfdf ;};_ggded ,_egfdf :=_ea .PSObjectArrayToFloat64Array (_bdfbb );if _egfdf !=nil {return nil ,_egfdf ;};return _ggded ,nil ;};
|
||
|
||
// 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 ){_efed ,_agfdb :=_bg .Open (filePath );if _agfdb !=nil {_dbg .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",_agfdb );
|
||
return nil ,_agfdb ;};defer _efed .Close ();return NewPdfFontFromTTF (_efed );};var _ _eg .PdfObject =&pdfSignDictionary {};
|
||
|
||
// 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 (_edbeec *XObjectForm )SetContentStream (content []byte ,encoder _eg .StreamEncoder )error {_gbbfb :=content ;if encoder ==nil {if _edbeec .Filter !=nil {encoder =_edbeec .Filter ;}else {encoder =_eg .NewRawEncoder ();};};_gfabc ,_dcaa :=encoder .EncodeBytes (_gbbfb );
|
||
if _dcaa !=nil {return _dcaa ;};_gbbfb =_gfabc ;_edbeec .Stream =_gbbfb ;_edbeec .Filter =encoder ;return nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_afgce *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_bbeaa *PdfPageResourcesColorspaces )ToPdfObject ()_eg .PdfObject {_fcbc :=_eg .MakeDict ();for _ ,_gfcc :=range _bbeaa .Names {_fcbc .Set (_eg .PdfObjectName (_gfcc ),_bbeaa .Colorspaces [_gfcc ].ToPdfObject ());};if _bbeaa ._abbc !=nil {_bbeaa ._abbc .PdfObject =_fcbc ;
|
||
return _bbeaa ._abbc ;};return _fcbc ;};
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_eeee *PdfPage )GetContentStreamObjs ()[]_eg .PdfObject {if _eeee .Contents ==nil {return nil ;};_bbgc :=_eg .TraceToDirectObject (_eeee .Contents );if _accae ,_ddfe :=_bbgc .(*_eg .PdfObjectArray );_ddfe {return _accae .Elements ();};return []_eg .PdfObject {_bbgc };
|
||
};
|
||
|
||
// 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{_gded *_eg .PdfIndirectObject ;Certs []*_eg .PdfObjectStream ;OCSPs []*_eg .PdfObjectStream ;CRLs []*_eg .PdfObjectStream ;VRI map[string ]*VRI ;_gaad map[string ]*_eg .PdfObjectStream ;_geeeb map[string ]*_eg .PdfObjectStream ;_fgbdb map[string ]*_eg .PdfObjectStream ;
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_dbaac *PdfShadingType2 )ToPdfObject ()_eg .PdfObject {_dbaac .PdfShading .ToPdfObject ();_cbdea ,_fcfcf :=_dbaac .getShadingDict ();if _fcfcf !=nil {_dbg .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 _cbdea ==nil {_dbg .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _dbaac .Coords !=nil {_cbdea .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dbaac .Coords );
|
||
};if _dbaac .Domain !=nil {_cbdea .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dbaac .Domain );};if _dbaac .Function !=nil {if len (_dbaac .Function )==1{_cbdea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbaac .Function [0].ToPdfObject ());
|
||
}else {_ddade :=_eg .MakeArray ();for _ ,_eeecg :=range _dbaac .Function {_ddade .Append (_eeecg .ToPdfObject ());};_cbdea .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ddade );};};if _dbaac .Extend !=nil {_cbdea .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dbaac .Extend );
|
||
};return _dbaac ._beag ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_aedc *PdfColorDeviceCMYK )M ()float64 {return _aedc [1]};func (_dgdf *PdfReader )newPdfActionURIFromDict (_bccf *_eg .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bccf .Get ("\u0055\u0052\u0049"),IsMap :_bccf .Get ("\u0049\u0073\u004da\u0070")},nil ;
|
||
};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_cabcg *PdfReader )PageFromIndirectObject (ind *_eg .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_cabcg .PageList )!=len (_cabcg ._dfff ){return nil ,0,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _ecec ,_dcegf :=range _cabcg ._dfff {if _dcegf ==ind {return _cabcg .PageList [_ecec ],_ecec +1,nil ;};};return nil ,0,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_cfeff *PdfShading )GetContainingPdfObject ()_eg .PdfObject {return _cfeff ._beag };
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_dbdeb DefaultImageHandler )NewImageFromGoImage (goimg _ec .Image )(*Image ,error ){_cdfc ,_fbfdf :=_ff .FromGoImage (goimg );if _fbfdf !=nil {return nil ,_fbfdf ;};_ecadg :=_egbde (_cdfc .Base ());return &_ecadg ,nil ;};func (_acc *PdfReader )newPdfActionMovieFromDict (_gdf *_eg .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_gdf .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_gdf .Get ("\u0054"),Operation :_gdf .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_gfaac *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gfaac .Base ==nil {return nil ,_bbd .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 _gfaac .Base .ColorToRGB (color );};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_acfd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afcgf ,_bbadce :=_eg .GetNumbersAsFloat (objects );
|
||
if _bbadce !=nil {return nil ,_bbadce ;};return _acfd .ColorFromFloats (_afcgf );};
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_eg .PdfObjectDictionary )(*PdfPageResources ,error ){_beefb :=NewPdfPageResources ();if _gfefe :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_gfefe !=nil {_beefb .ExtGState =_gfefe ;};if _eaadf :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_eaadf !=nil &&!_eg .IsNullObject (_eaadf ){_beefb .ColorSpace =_eaadf ;};if _gfda :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_gfda !=nil {_beefb .Pattern =_gfda ;};if _egcbb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_egcbb !=nil {_beefb .Shading =_egcbb ;
|
||
};if _ebcac :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_ebcac !=nil {_beefb .XObject =_ebcac ;};if _dccae :=_eg .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_dccae !=nil {_beefb .Font =_dccae ;};if _adee :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_adee !=nil {_beefb .ProcSet =_adee ;};if _cacdg :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cacdg !=nil {_beefb .Properties =_cacdg ;};return _beefb ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_ggggd *PdfFunctionType0 )ToPdfObject ()_eg .PdfObject {if _ggggd ._bafa ==nil {_ggggd ._bafa =&_eg .PdfObjectStream {};};_bcgd :=_eg .MakeDict ();_bcgd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (0));
|
||
_dcbe :=&_eg .PdfObjectArray {};for _ ,_dagd :=range _ggggd .Domain {_dcbe .Append (_eg .MakeFloat (_dagd ));};_bcgd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dcbe );_aaeb :=&_eg .PdfObjectArray {};for _ ,_aceb :=range _ggggd .Range {_aaeb .Append (_eg .MakeFloat (_aceb ));
|
||
};_bcgd .Set ("\u0052\u0061\u006eg\u0065",_aaeb );_fgfab :=&_eg .PdfObjectArray {};for _ ,_feggf :=range _ggggd .Size {_fgfab .Append (_eg .MakeInteger (int64 (_feggf )));};_bcgd .Set ("\u0053\u0069\u007a\u0065",_fgfab );_bcgd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_eg .MakeInteger (int64 (_ggggd .BitsPerSample )));
|
||
if _ggggd .Order !=1{_bcgd .Set ("\u004f\u0072\u0064e\u0072",_eg .MakeInteger (int64 (_ggggd .Order )));};_bcgd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_ggggd ._ebad ))));_ggggd ._bafa .Stream =_ggggd ._ebad ;_ggggd ._bafa .PdfObjectDictionary =_bcgd ;
|
||
return _ggggd ._bafa ;};
|
||
|
||
// 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 _eg .PdfObjectArray )(*PdfRectangle ,error ){_bcge :=PdfRectangle {};if arr .Len ()!=4{return nil ,_bbd .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 _fbefc error ;_bcge .Llx ,_fbefc =_eg .GetNumberAsFloat (arr .Get (0));if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Lly ,_fbefc =_eg .GetNumberAsFloat (arr .Get (1));if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Urx ,_fbefc =_eg .GetNumberAsFloat (arr .Get (2));
|
||
if _fbefc !=nil {return nil ,_fbefc ;};_bcge .Ury ,_fbefc =_eg .GetNumberAsFloat (arr .Get (3));if _fbefc !=nil {return nil ,_fbefc ;};return &_bcge ,nil ;};func _dgfc (_efecc *_eg .PdfObjectDictionary )*VRI {_edadb ,_ :=_eg .GetString (_efecc .Get ("\u0054\u0055"));
|
||
_cfea ,_ :=_eg .GetString (_efecc .Get ("\u0054\u0053"));return &VRI {Cert :_feed (_efecc .Get ("\u0043\u0065\u0072\u0074")),OCSP :_feed (_efecc .Get ("\u004f\u0043\u0053\u0050")),CRL :_feed (_efecc .Get ("\u0043\u0052\u004c")),TU :_edadb ,TS :_cfea };
|
||
};
|
||
|
||
// 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 (_cefc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _cefc .flattenFieldsWithOpts (allannots ,appgen ,nil );};
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_cdec *PdfAnnotationLink )SetAction (action *PdfAction ){_cdec ._cecf =action ;if action ==nil {_cdec .A =nil ;};};
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _eg .PdfObject ;MK _eg .PdfObject ;A _eg .PdfObject ;AA _eg .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cfdde *PdfAnnotationTrapNet )ToPdfObject ()_eg .PdfObject {_cfdde .PdfAnnotation .ToPdfObject ();_fabb :=_cfdde ._gag ;_dgcc :=_fabb .PdfObject .(*_eg .PdfObjectDictionary );_dgcc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _fabb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bbe *PdfActionRendition )ToPdfObject ()_eg .PdfObject {_bbe .PdfAction .ToPdfObject ();_ged :=_bbe ._ege ;_cef :=_ged .PdfObject .(*_eg .PdfObjectDictionary );_cef .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeRendition )));_cef .SetIfNotNil ("\u0052",_bbe .R );
|
||
_cef .SetIfNotNil ("\u0041\u004e",_bbe .AN );_cef .SetIfNotNil ("\u004f\u0050",_bbe .OP );_cef .SetIfNotNil ("\u004a\u0053",_bbe .JS );return _ged ;};func _abff (_ddfbd []rune ,_aabe map[rune ]int ,_debbe map[rune ]_ab .GID )*_eg .PdfObjectArray {_gcbcc :=&_eg .PdfObjectArray {};
|
||
for _egdab :=0;_egdab < len (_ddfbd );{_fgad :=_aabe [_ddfbd [_egdab ]];_bfdd :=_egdab ;for _cefd :=_egdab +1;_cefd < len (_ddfbd );_cefd ++{_acgab :=_aabe [_ddfbd [_cefd ]];if _fgad ==_acgab {_bfdd =_cefd ;}else {break ;};};_fecc :=_debbe [_ddfbd [_egdab ]];
|
||
_ebgge :=_debbe [_ddfbd [_bfdd ]];_gcbcc .Append (_eg .MakeInteger (int64 (_fecc )));_gcbcc .Append (_eg .MakeInteger (int64 (_ebgge )));_gcbcc .Append (_eg .MakeInteger (int64 (_fgad )));_egdab =_bfdd +1;};return _gcbcc ;};func _efeb (_cacd *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_cacd }};
|
||
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_cdbgg *PdfSignature )GetContainingPdfObject ()_eg .PdfObject {return _cdbgg ._ffae };
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_afeeg *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_afeeg ._gecbc =colorspace ;};
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_bagae *PdfAcroForm )ToPdfObject ()_eg .PdfObject {_cfgc :=_bagae ._edeaf ;_fffed :=_cfgc .PdfObject .(*_eg .PdfObjectDictionary );if _bagae .Fields !=nil {_ccea :=_eg .PdfObjectArray {};for _ ,_cafcb :=range *_bagae .Fields {_gadd :=_cafcb .GetContext ();
|
||
if _gadd !=nil {_ccea .Append (_gadd .ToPdfObject ());}else {_ccea .Append (_cafcb .ToPdfObject ());};};_fffed .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ccea );};if _bagae .NeedAppearances !=nil {_fffed .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_bagae .NeedAppearances );
|
||
};if _bagae .SigFlags !=nil {_fffed .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_bagae .SigFlags );};if _bagae .CO !=nil {_fffed .Set ("\u0043\u004f",_bagae .CO );};if _bagae .DR !=nil {_fffed .Set ("\u0044\u0052",_bagae .DR .ToPdfObject ());
|
||
};if _bagae .DA !=nil {_fffed .Set ("\u0044\u0041",_bagae .DA );};if _bagae .Q !=nil {_fffed .Set ("\u0051",_bagae .Q );};if _bagae .XFA !=nil {_fffed .Set ("\u0058\u0046\u0041",_bagae .XFA );};return _cfgc ;};
|
||
|
||
// 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 ;
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_cea PdfModel ;Type _eg .PdfObject ;S _eg .PdfObject ;Next _eg .PdfObject ;_ege *_eg .PdfIndirectObject ;};
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_deda *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _deda .UnderlyingCS .GetNumComponents ();};
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_bgb :=NewPdfAnnotation ();_afg :=&PdfAnnotationText {};_afg .PdfAnnotation =_bgb ;_afg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgb .SetContext (_afg );return _afg ;};
|
||
|
||
// 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 (_fegec *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _fegec ._gecbc !=nil {return _fegec ._gecbc ,nil ;};if _fegec .ColorSpace ==nil {return nil ,nil ;};_geaba ,_acaeg :=_cfafcb (_fegec .ColorSpace );if _acaeg !=nil {return nil ,_acaeg ;
|
||
};_fegec ._gecbc =_geaba ;return _fegec ._gecbc ,nil ;};func (_cfcaf *PdfReader )newPdfAnnotationSquareFromDict (_fbc *_eg .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_cbgb :=PdfAnnotationSquare {};_dbdg ,_bbcg :=_cfcaf .newPdfAnnotationMarkupFromDict (_fbc );
|
||
if _bbcg !=nil {return nil ,_bbcg ;};_cbgb .PdfAnnotationMarkup =_dbdg ;_cbgb .BS =_fbc .Get ("\u0042\u0053");_cbgb .IC =_fbc .Get ("\u0049\u0043");_cbgb .BE =_fbc .Get ("\u0042\u0045");_cbgb .RD =_fbc .Get ("\u0052\u0044");return &_cbgb ,nil ;};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_efb :=NewPdfAction ();_ccgg :=&PdfActionGoTo3DView {};_ccgg .PdfAction =_efb ;_efb .SetContext (_ccgg );return _ccgg ;};
|
||
|
||
// 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 ;};func _degbd (_aacc _eg .PdfObject )(*PdfColorspaceLab ,error ){_gdbc :=NewPdfColorspaceLab ();if _ddgf ,_adefd :=_aacc .(*_eg .PdfIndirectObject );_adefd {_gdbc ._fcef =_ddgf ;};_aacc =_eg .TraceToDirectObject (_aacc );
|
||
_cbeb ,_ggacg :=_aacc .(*_eg .PdfObjectArray );if !_ggacg {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cbeb .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_aacc =_eg .TraceToDirectObject (_cbeb .Get (0));_ecad ,_ggacg :=_aacc .(*_eg .PdfObjectName );if !_ggacg {return nil ,_e .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if *_ecad !="\u004c\u0061\u0062"{return nil ,_e .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_aacc =_eg .TraceToDirectObject (_cbeb .Get (1));_agff ,_ggacg :=_aacc .(*_eg .PdfObjectDictionary );
|
||
if !_ggacg {return nil ,_e .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};
|
||
_aacc =_agff .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_aacc =_eg .TraceToDirectObject (_aacc );_dbfg ,_ggacg :=_aacc .(*_eg .PdfObjectArray );if !_ggacg {return nil ,_e .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
|
||
};if _dbfg .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_eed ,_bgdbf :=_dbfg .GetAsFloat64Slice ();
|
||
if _bgdbf !=nil {return nil ,_bgdbf ;};_gdbc .WhitePoint =_eed ;_aacc =_agff .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _aacc !=nil {_aacc =_eg .TraceToDirectObject (_aacc );_bfab ,_cbbd :=_aacc .(*_eg .PdfObjectArray );if !_cbbd {return nil ,_e .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");
|
||
};if _bfab .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_ggbc ,_afde :=_bfab .GetAsFloat64Slice ();
|
||
if _afde !=nil {return nil ,_afde ;};_gdbc .BlackPoint =_ggbc ;};_aacc =_agff .Get ("\u0052\u0061\u006eg\u0065");if _aacc !=nil {_aacc =_eg .TraceToDirectObject (_aacc );_bbce ,_dgecb :=_aacc .(*_eg .PdfObjectArray );if !_dgecb {_dbg .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
return nil ,_e .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bbce .Len ()!=4{_dbg .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_dafa ,_fdggg :=_bbce .GetAsFloat64Slice ();if _fdggg !=nil {return nil ,_fdggg ;};_gdbc .Range =_dafa ;};return _gdbc ,nil ;};func (_faa *PdfReader )newPdfActionGotoEFromDict (_dda *_eg .PdfObjectDictionary )(*PdfActionGoToE ,error ){_cde ,_gc :=_gbbe (_dda .Get ("\u0046"));
|
||
if _gc !=nil {return nil ,_gc ;};return &PdfActionGoToE {D :_dda .Get ("\u0044"),NewWindow :_dda .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_dda .Get ("\u0054"),F :_cde },nil ;};
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_afee *Image )ToJBIG2Image ()(*_eg .JBIG2Image ,error ){_bgbge ,_agba :=_afee .ToGoImage ();if _agba !=nil {return nil ,_agba ;};return _eg .GoImageToJBIG2 (_bgbge ,_eg .JB2ImageAutoThreshold );};func (_afffd *PdfPage )setContainer (_fbbc *_eg .PdfIndirectObject ){_fbbc .PdfObject =_afffd ._ecbba ;
|
||
_afffd ._caaef =_fbbc ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_gbf *PdfAction )GetContainingPdfObject ()_eg .PdfObject {return _gbf ._ege };func (_cafge *PdfReader )loadAction (_aefe _eg .PdfObject )(*PdfAction ,error ){if _baag ,_beba :=_eg .GetIndirect (_aefe );_beba {_fdaa ,_ebdb :=_cafge .newPdfActionFromIndirectObject (_baag );
|
||
if _ebdb !=nil {return nil ,_ebdb ;};return _fdaa ,nil ;}else if !_eg .IsNullObject (_aefe ){return nil ,_bbd .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 ;};
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};var (_bgffe =_ge .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_bbed =_ge .MustCompile ("\u005e\u005cs\u002a\u002f\u0028\u005c\u0053\u002b\u003f\u0029\u005c\u0073\u002b\u0028\u002e\u002b\u003f\u0029\u005c\u0073\u002b\u0064\u0065\u0066\\s\u002a\u0024");
|
||
_dcadg =_ge .MustCompile ("\u005e\u005c\u0073*\u0064\u0075\u0070\u005c\u0073\u002b\u0028\u005c\u0064\u002b\u0029\u005c\u0073\u002a\u002f\u0028\u005c\u0077\u002b\u003f\u0029\u0028\u003f\u003a\u005c\u002e\u005c\u0064\u002b)\u003f\u005c\u0073\u002b\u0070\u0075\u0074\u0024");
|
||
_bdga ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ccdf ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_fagc ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_fcef *_eg .PdfIndirectObject ;};
|
||
|
||
// Val returns the color value.
|
||
func (_gceb *PdfColorDeviceGray )Val ()float64 {return float64 (*_gceb )};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_gbged *PdfReader )PdfVersion ()_eg .Version {return _gbged ._cdggc .PdfVersion ()};func (_dbc *PdfAppender )replaceObject (_eggc ,_egde _eg .PdfObject ){switch _ffgb :=_eggc .(type ){case *_eg .PdfIndirectObject :_dbc ._bddd [_egde ]=_ffgb .ObjectNumber ;
|
||
case *_eg .PdfObjectStream :_dbc ._bddd [_egde ]=_ffgb .ObjectNumber ;};};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_cdfcc *PdfPage )AppendContentStream (contentStr string )error {_bfbfg ,_dgaad :=_cdfcc .GetContentStreams ();if _dgaad !=nil {return _dgaad ;};if len (_bfbfg )==0{_bfbfg =[]string {contentStr };return _cdfcc .SetContentStreams (_bfbfg ,_eg .NewFlateEncoder ());
|
||
};var _caedc _cbd .Buffer ;_caedc .WriteString (_bfbfg [len (_bfbfg )-1]);_caedc .WriteString ("\u000a");_caedc .WriteString (contentStr );_bfbfg [len (_bfbfg )-1]=_caedc .String ();return _cdfcc .SetContentStreams (_bfbfg ,_eg .NewFlateEncoder ());};func (_dec *PdfReader )newPdfAnnotationLinkFromDict (_cagb *_eg .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_fgg :=PdfAnnotationLink {};
|
||
_fgg .A =_cagb .Get ("\u0041");_fgg .Dest =_cagb .Get ("\u0044\u0065\u0073\u0074");_fgg .H =_cagb .Get ("\u0048");_fgg .PA =_cagb .Get ("\u0050\u0041");_fgg .QuadPoints =_cagb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_fgg .BS =_cagb .Get ("\u0042\u0053");
|
||
return &_fgg ,nil ;};func (_cff *PdfReader )newPdfAnnotationHighlightFromDict (_aed *_eg .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_deee :=PdfAnnotationHighlight {};_ddeb ,_gbbf :=_cff .newPdfAnnotationMarkupFromDict (_aed );if _gbbf !=nil {return nil ,_gbbf ;
|
||
};_deee .PdfAnnotationMarkup =_ddeb ;_deee .QuadPoints =_aed .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_deee ,nil ;};
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_cgadd *PdfPageResources )GetXObjectImageByName (keyName _eg .PdfObjectName )(*XObjectImage ,error ){_efagg ,_fgabb :=_cgadd .GetXObjectByName (keyName );if _efagg ==nil {return nil ,nil ;};if _fgabb !=XObjectTypeImage {return nil ,_bbd .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_eeggg ,_eegcg :=NewXObjectImageFromStream (_efagg );if _eegcg !=nil {return nil ,_eegcg ;};return _eeggg ,nil ;};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_eccae *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_eccae .updateObjectsDeep (dss .ToPdfObject (),nil );};_eccae ._aegd =dss ;};
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_bcba *PdfAnnotation )GetContext ()PdfModel {if _bcba ==nil {return nil ;};return _bcba ._ffbe ;};
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eg .PdfObject ;IC _eg .PdfObject ;BE _eg .PdfObject ;RD _eg .PdfObject ;};
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _eg .PdfObject ;BS _eg .PdfObject ;};
|
||
|
||
// 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 (_cfaad byte )byte ;
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_eg .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _eg .PdfObject ;A _eg .PdfObject ;SE _eg .PdfObject ;C _eg .PdfObject ;F _eg .PdfObject ;
|
||
_bfega *_eg .PdfIndirectObject ;};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _eg .PdfObject ;Mac _eg .PdfObject ;Unix _eg .PdfObject ;NewWindow _eg .PdfObject ;};
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_acfedg *PdfPageResources )GetXObjectByName (keyName _eg .PdfObjectName )(*_eg .PdfObjectStream ,XObjectType ){if _acfedg .XObject ==nil {return nil ,XObjectTypeUndefined ;};_daca ,_cfcbfb :=_eg .TraceToDirectObject (_acfedg .XObject ).(*_eg .PdfObjectDictionary );
|
||
if !_cfcbfb {_dbg .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",_eg .TraceToDirectObject (_acfedg .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _ebcdee :=_daca .Get (keyName );_ebcdee !=nil {_ceccc ,_dafedd :=_eg .GetStream (_ebcdee );if !_dafedd {_dbg .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",_ebcdee );
|
||
return nil ,XObjectTypeUndefined ;};_gdgdbd :=_ceccc .PdfObjectDictionary ;_gbbg ,_dafedd :=_eg .TraceToDirectObject (_gdgdbd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_eg .PdfObjectName );if !_dafedd {_dbg .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",_gdgdbd .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_gbbg =="\u0049\u006d\u0061g\u0065"{return _ceccc ,XObjectTypeImage ;}else if *_gbbg =="\u0046\u006f\u0072\u006d"{return _ceccc ,XObjectTypeForm ;}else if *_gbbg =="\u0050\u0053"{return _ceccc ,XObjectTypePS ;}else {_dbg .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",*_gbbg );
|
||
return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_effdb *PdfFont )String ()string {_egbd :="";if _effdb ._gdcab .Encoder ()!=nil {_egbd =_effdb ._gdcab .Encoder ().String ();};return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_effdb ._gdcab ,_effdb .baseFields ().coreString (),_egbd );
|
||
};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_gfgcb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if _gfgcb .Alternate ==nil {if _gfgcb .N ==1{_aeab :=NewPdfColorspaceDeviceGray ();return _aeab .ColorFromPdfObjects (objects );}else if _gfgcb .N ==3{_bdeg :=NewPdfColorspaceDeviceRGB ();
|
||
return _bdeg .ColorFromPdfObjects (objects );}else if _gfgcb .N ==4{_bdgffb :=NewPdfColorspaceDeviceCMYK ();return _bdgffb .ColorFromPdfObjects (objects );}else {return nil ,_bbd .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 _gfgcb .Alternate .ColorFromPdfObjects (objects );};
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_dgegg *PdfTilingPattern )SetContentStream (content []byte ,encoder _eg .StreamEncoder )error {_aeef ,_gaab :=_dgegg ._cfaag .(*_eg .PdfObjectStream );if !_gaab {_dbg .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",_dgegg ._cfaag );
|
||
return _eg .ErrTypeError ;};if encoder ==nil {encoder =_eg .NewRawEncoder ();};_baedf :=_aeef .PdfObjectDictionary ;_bccg :=encoder .MakeStreamDict ();_baedf .Merge (_bccg );_fgfabe ,_ceaad :=encoder .EncodeBytes (content );if _ceaad !=nil {return _ceaad ;
|
||
};_baedf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_fgfabe ))));_aeef .Stream =_fgfabe ;return nil ;};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
|
||
|
||
// 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 ;
|
||
|
||
// 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 (_cefe *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdce :=vals [0];if _cdce < 0.0||_cdce > 1.0{_dbg .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 _cdce < 0.0{_cdce =0.0;}else if _cdce > 1.0{_cdce =1.0;};return NewPdfColorDeviceGray (_cdce ),nil ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_bebc *PdfOutline )ToPdfObject ()_eg .PdfObject {_dbgfe :=_bebc ._ffbba ;_cgbcc :=_dbgfe .PdfObject .(*_eg .PdfObjectDictionary );_cgbcc .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _bebc .First !=nil {_cgbcc .Set ("\u0046\u0069\u0072s\u0074",_bebc .First .ToPdfObject ());
|
||
};if _bebc .Last !=nil {_cgbcc .Set ("\u004c\u0061\u0073\u0074",_bebc .Last .GetContext ().GetContainingPdfObject ());};if _bebc .Parent !=nil {_cgbcc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bebc .Parent .GetContext ().GetContainingPdfObject ());
|
||
};if _bebc .Count !=nil {_cgbcc .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (*_bebc .Count ));};return _dbgfe ;};
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_bacad *PdfPageResources )SetXObjectFormByName (keyName _eg .PdfObjectName ,xform *XObjectForm )error {_adag :=xform .ToPdfObject ().(*_eg .PdfObjectStream );_deabdd :=_bacad .SetXObjectByName (keyName ,_adag );return _deabdd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ddb *PdfActionGoTo )ToPdfObject ()_eg .PdfObject {_ddb .PdfAction .ToPdfObject ();_dba :=_ddb ._ege ;_cga :=_dba .PdfObject .(*_eg .PdfObjectDictionary );_cga .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoTo )));_cga .SetIfNotNil ("\u0044",_ddb .D );
|
||
return _dba ;};func (_bdb *PdfAppender )addNewObject (_bfecd _eg .PdfObject ){if _ ,_gegc :=_bdb ._adge [_bfecd ];!_gegc {_bdb ._acda =append (_bdb ._acda ,_bfecd );_bdb ._adge [_bfecd ]=struct{}{};};};
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cdg :=NewPdfAnnotation ();_dabd :=&PdfAnnotationStrikeOut {};_dabd .PdfAnnotation =_cdg ;_dabd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdg .SetContext (_dabd );return _dabd ;};func (_fdfcb *pdfFontType0 )subsetRegistered ()error {_gfcfd ,_ebca :=_fdfcb .DescendantFont ._gdcab .(*pdfCIDFontType2 );
|
||
if !_ebca {_dbg .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",_fdfcb .DescendantFont );return nil ;};if _gfcfd ==nil {return nil ;
|
||
};if _gfcfd ._eecfe ==nil {_dbg .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 _fdfcb ._eceba ==nil {_dbg .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 ;};_debdea ,_ebca :=_eg .GetStream (_gfcfd ._eecfe .FontFile2 );if !_ebca {_dbg .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 _bbd .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_bbdfdg ,_dbcac :=_eg .DecodeStream (_debdea );if _dbcac !=nil {_dbg .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_dbcac );
|
||
return _dbcac ;};_dcbfg ,_dbcac :=_af .Parse (_cbd .NewReader (_bbdfdg ));if _dbcac !=nil {_dbg .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 (_debdea .Stream ));
|
||
return _dbcac ;};var _geeg []rune ;var _acfag *_af .Font ;switch _ffebf :=_fdfcb ._eceba .(type ){case *_cec .TrueTypeFontEncoder :_geeg =_ffebf .RegisteredRunes ();_acfag ,_dbcac =_dcbfg .SubsetKeepRunes (_geeg );if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );
|
||
return _dbcac ;};_ffebf .SubsetRegistered ();case *_cec .IdentityEncoder :_geeg =_ffebf .RegisteredRunes ();_fcdae :=make ([]_af .GlyphIndex ,len (_geeg ));for _bggbd ,_fgefe :=range _geeg {_fcdae [_bggbd ]=_af .GlyphIndex (_fgefe );};_acfag ,_dbcac =_dcbfg .SubsetKeepIndices (_fcdae );
|
||
if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );return _dbcac ;};case _cec .SimpleEncoder :_fcagc :=_ffebf .Charcodes ();for _ ,_bdagg :=range _fcagc {_gbgeb ,_edbea :=_ffebf .CharcodeToRune (_bdagg );if !_edbea {_dbg .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",_bdagg );
|
||
continue ;};_geeg =append (_geeg ,_gbgeb );};default:return _e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_fdfcb ._eceba );
|
||
};var _abag _cbd .Buffer ;_dbcac =_acfag .Write (&_abag );if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );return _dbcac ;};if _fdfcb ._fffc !=nil {_bgbd :=make (map[_aff .CharCode ]rune ,len (_geeg ));for _ ,_dbbdc :=range _geeg {_eaefe ,_gacf :=_fdfcb ._eceba .RuneToCharcode (_dbbdc );
|
||
if !_gacf {continue ;};_bgbd [_aff .CharCode (_eaefe )]=_dbbdc ;};_fdfcb ._fffc =_aff .NewToUnicodeCMap (_bgbd );};_debdea ,_dbcac =_eg .MakeStream (_abag .Bytes (),_eg .NewFlateEncoder ());if _dbcac !=nil {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbcac );
|
||
return _dbcac ;};_debdea .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eg .MakeInteger (int64 (_abag .Len ())));if _eabd ,_gcagd :=_eg .GetStream (_gfcfd ._eecfe .FontFile2 );_gcagd {*_eabd =*_debdea ;}else {_gfcfd ._eecfe .FontFile2 =_debdea ;};_bcdge :=_abafe ();
|
||
if len (_fdfcb ._cfab )> 0{_fdfcb ._cfab =_egbe (_fdfcb ._cfab ,_bcdge );};if len (_gfcfd ._cfab )> 0{_gfcfd ._cfab =_egbe (_gfcfd ._cfab ,_bcdge );};if len (_fdfcb ._dfgf )> 0{_fdfcb ._dfgf =_egbe (_fdfcb ._dfgf ,_bcdge );};if _gfcfd ._eecfe !=nil {_bgaae ,_egcg :=_eg .GetName (_gfcfd ._eecfe .FontName );
|
||
if _egcg &&len (_bgaae .String ())> 0{_bedc :=_egbe (_bgaae .String (),_bcdge );_gfcfd ._eecfe .FontName =_eg .MakeName (_bedc );};};return nil ;};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_acef *PdfReader )IsEncrypted ()(bool ,error ){return _acef ._cdggc .IsEncrypted ()};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aaf *PdfActionURI )ToPdfObject ()_eg .PdfObject {_aaf .PdfAction .ToPdfObject ();_gfe :=_aaf ._ege ;_cbdd :=_gfe .PdfObject .(*_eg .PdfObjectDictionary );_cbdd .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeURI )));_cbdd .SetIfNotNil ("\u0055\u0052\u0049",_aaf .URI );
|
||
_cbdd .SetIfNotNil ("\u0049\u0073\u004da\u0070",_aaf .IsMap );return _gfe ;};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_eg .PdfIndirectObject )*PdfOutlineItem {_ffdfd :=PdfOutlineItem {};_ffdfd ._dbaeb =&_ffdfd ;_ffdfd .Title =_eg .MakeString (title );_eefba :=_eg .MakeArray ();_eefba .Append (page );_eefba .Append (_eg .MakeName ("\u0046\u0069\u0074"));
|
||
_ffdfd .Dest =_eefba ;return &_ffdfd ;};func _bffd (_bfgcb []*_eg .PdfObjectStream )*_eg .PdfObjectArray {if len (_bfgcb )==0{return nil ;};_cbbef :=make ([]_eg .PdfObject ,0,len (_bfgcb ));for _ ,_abcgf :=range _bfgcb {_cbbef =append (_cbbef ,_abcgf );
|
||
};return _eg .MakeArray (_cbbef ...);};func (_edfe *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_bbba *PdfColorCalRGB )B ()float64 {return _bbba [1]};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_ggafc *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};func (_egfbd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_decbb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_dgeac :=0.3*_decbb .R ()+0.59*_decbb .G ()+0.11*_decbb .B ();_dgeac =_bc .Min (_bc .Max (_dgeac ,0.0),1.0);return NewPdfColorDeviceGray (_dgeac );};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_ccffa *PdfPageResources )AddExtGState (gsName _eg .PdfObjectName ,gsDict _eg .PdfObject )error {if _ccffa .ExtGState ==nil {_ccffa .ExtGState =_eg .MakeDict ();};_ffefc :=_ccffa .ExtGState ;_faefg ,_eaeea :=_eg .TraceToDirectObject (_ffefc ).(*_eg .PdfObjectDictionary );
|
||
if !_eaeea {_dbg .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",_ffefc ,_eg .TraceToDirectObject (_ffefc ));
|
||
return _eg .ErrTypeError ;};_faefg .Set (gsName ,gsDict );return nil ;};
|
||
|
||
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ggde *PdfAnnotationWidget )ToPdfObject ()_eg .PdfObject {_ggde .PdfAnnotation .ToPdfObject ();_gdec :=_ggde ._gag ;_bgec :=_gdec .PdfObject .(*_eg .PdfObjectDictionary );if _ggde ._gde {return _gdec ;};_ggde ._gde =true ;_bgec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_bgec .SetIfNotNil ("\u0048",_ggde .H );_bgec .SetIfNotNil ("\u004d\u004b",_ggde .MK );_bgec .SetIfNotNil ("\u0041",_ggde .A );_bgec .SetIfNotNil ("\u0041\u0041",_ggde .AA );_bgec .SetIfNotNil ("\u0042\u0053",_ggde .BS );_ffdf :=_ggde .Parent ;if _ggde ._cdda !=nil {if _ggde ._cdda ._afbe ==_ggde ._gag {_ggde ._cdda .ToPdfObject ();
|
||
};_ffdf =_ggde ._cdda .GetContainingPdfObject ();};if _ffdf !=_gdec {_bgec .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ffdf );};_ggde ._gde =false ;return _gdec ;};
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_gfdg *PdfReader )GetOutlines ()(*Outline ,error ){if _gfdg ==nil {return nil ,_bbd .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");
|
||
};_bdbbf :=_gfdg .GetOutlineTree ();if _bdbbf ==nil {return nil ,_bbd .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 _bbbgc func (_bgfd *PdfOutlineTreeNode ,_cbggc *[]*OutlineItem );_bbbgc =func (_dddcf *PdfOutlineTreeNode ,_ddeag *[]*OutlineItem ){if _dddcf ==nil {return ;};if _dddcf ._dbaeb ==nil {_dbg .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 _bgege *OutlineItem ;if _bdbc ,_agac :=_dddcf ._dbaeb .(*PdfOutlineItem );_agac {_efabg :=_bdbc .Dest ;if (_efabg ==nil ||_eg .IsNullObject (_efabg ))&&_bdbc .A !=nil {if _aeced ,_bcfde :=_eg .GetDict (_bdbc .A );_bcfde {_efabg ,_ =_eg .GetArray (_aeced .Get ("\u0044"));
|
||
};};var _bbbb OutlineDest ;if _efabg !=nil &&!_eg .IsNullObject (_efabg ){if _gedce ,_cdbeg :=_ddbc (_efabg ,_gfdg );_cdbeg ==nil {_bbbb =*_gedce ;}else {_dbg .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",_efabg ,_cdbeg );
|
||
};};_bgege =NewOutlineItem (_bdbc .Title .Decoded (),_bbbb );*_ddeag =append (*_ddeag ,_bgege );if _bdbc .Next !=nil {_bbbgc (_bdbc .Next ,_ddeag );};};if _dddcf .First !=nil {if _bgege !=nil {_ddeag =&_bgege .Entries ;};_bbbgc (_dddcf .First ,_ddeag );
|
||
};};_ebafa :=NewOutline ();_bbbgc (_bdbbf ,&_ebafa .Entries );return _ebafa ,nil ;};
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_adaf *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_cbcf ,_accdd :=color .(*PdfColorCalRGB );if !_accdd {_dbg .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 ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fcbb :=_cbcf .A ();_begc :=_cbcf .B ();_ebdc :=_cbcf .C ();X :=_adaf .Matrix [0]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [3]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [6]*_bc .Pow (_ebdc ,_adaf .Gamma [2]);
|
||
Y :=_adaf .Matrix [1]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [4]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [7]*_bc .Pow (_ebdc ,_adaf .Gamma [2]);Z :=_adaf .Matrix [2]*_bc .Pow (_fcbb ,_adaf .Gamma [0])+_adaf .Matrix [5]*_bc .Pow (_begc ,_adaf .Gamma [1])+_adaf .Matrix [8]*_bc .Pow (_ebdc ,_adaf .Gamma [2]);
|
||
_deeb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_egaf :=-0.969256*X +1.875992*Y +0.041556*Z ;_cegd :=0.055648*X +-0.204043*Y +1.057311*Z ;_deeb =_bc .Min (_bc .Max (_deeb ,0),1.0);_egaf =_bc .Min (_bc .Max (_egaf ,0),1.0);_cegd =_bc .Min (_bc .Max (_cegd ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_deeb ,_egaf ,_cegd ),nil ;};func _cbeab (_bfabe _eg .PdfObject )(*_eg .PdfObjectDictionary ,*fontCommon ,error ){_abeda :=&fontCommon {};if _gcee ,_faage :=_bfabe .(*_eg .PdfIndirectObject );_faage {_abeda ._aaaf =_gcee .ObjectNumber ;
|
||
};_fcbaa ,_gdbg :=_eg .GetDict (_bfabe );if !_gdbg {_dbg .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",_bfabe );
|
||
return nil ,nil ,ErrFontNotSupported ;};_ggcb ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u0054\u0079\u0070\u0065"));if !_gdbg {_dbg .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 _ggcb !="\u0046\u006f\u006e\u0074"{_dbg .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.",_ggcb ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_eg .ErrTypeError ;};_edfc ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gdbg {_dbg .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 ;};_abeda ._fgbbb =_edfc ;_face ,_gdbg :=_eg .GetNameVal (_fcbaa .Get ("\u004e\u0061\u006d\u0065"));if _gdbg {_abeda ._dfgf =_face ;};_egedd :=_fcbaa .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _egedd !=nil {_abeda ._fgegd =_eg .TraceToDirectObject (_egedd );
|
||
_aadgcg ,_abefd :=_eagd (_abeda ._fgegd ,_abeda );if _abefd !=nil {return _fcbaa ,_abeda ,_abefd ;};_abeda ._fffc =_aadgcg ;}else if _edfc =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_edfc =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_fdgga ,_agdfb :=_aff .NewCIDSystemInfo (_fcbaa .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _agdfb !=nil {return _fcbaa ,_abeda ,_agdfb ;};_fbgc :=_e .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_fdgga .Registry ,_fdgga .Ordering );if _aff .IsPredefinedCMap (_fbgc ){_abeda ._fffc ,_agdfb =_aff .LoadPredefinedCMap (_fbgc );
|
||
if _agdfb !=nil {_dbg .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",_fbgc ,_agdfb );
|
||
};};};_acgcg :=_fcbaa .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _acgcg !=nil {_dgdd ,_edbb :=_ffeb (_acgcg );if _edbb !=nil {_dbg .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",_edbb );
|
||
return _fcbaa ,_abeda ,_edbb ;};_abeda ._eecfe =_dgdd ;};if _edfc !="\u0054\u0079\u0070e\u0033"{_gebbe ,_affc :=_eg .GetNameVal (_fcbaa .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_affc {_dbg .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 _fcbaa ,_abeda ,ErrRequiredAttributeMissing ;};_abeda ._cfab =_gebbe ;};return _fcbaa ,_abeda ,nil ;};func (_gffb *PdfWriter )writeBytes (_bgcda []byte ){if _gffb ._cfgdd !=nil {return ;};_afcfe ,_facee :=_gffb ._fggeg .Write (_bgcda );_gffb ._agecc +=int64 (_afcfe );
|
||
_gffb ._cfgdd =_facee ;};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dbb :=NewPdfAnnotation ();_bbgf :=&PdfAnnotationWidget {};_bbgf .PdfAnnotation =_dbb ;_dbb .SetContext (_bbgf );return _bbgf ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_gcaa *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_bdee *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_dbg .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 ,_bbd .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");};const (_defe =0x00001;
|
||
_ggccae =0x00002;_efecb =0x00004;_afeg =0x00008;_bacd =0x00020;_fedcc =0x00040;_fcffe =0x10000;_eefdg =0x20000;_gbgg =0x40000;);func _ebbee (_addga *_eg .PdfIndirectObject ,_dfafc *_eg .PdfObjectDictionary )(*DSS ,error ){if _addga ==nil {_addga =_eg .MakeIndirectObject (nil );
|
||
};_addga .PdfObject =_eg .MakeDict ();_cgdaf :=map[string ]*VRI {};if _dccc ,_ffcfe :=_eg .GetDict (_dfafc .Get ("\u0056\u0052\u0049"));_ffcfe {for _ ,_dccb :=range _dccc .Keys (){if _fgce ,_bcdg :=_eg .GetDict (_dccc .Get (_dccb ));_bcdg {_cgdaf [_dc .ToUpper (_dccb .String ())]=_dgfc (_fgce );
|
||
};};};return &DSS {Certs :_feed (_dfafc .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_feed (_dfafc .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_feed (_dfafc .Get ("\u0043\u0052\u004c\u0073")),VRI :_cgdaf ,_gded :_addga },nil ;};
|
||
|
||
// EnableChain adds the specified certificate chain and validation data (OCSP
|
||
// and CRL information) for it to the global scope of the document DSS. The
|
||
// added data is used for validating any of the signatures present in the
|
||
// document. The LTV client attempts to build the certificate chain up to a
|
||
// trusted root by downloading any missing certificates.
|
||
func (_fggf *LTV )EnableChain (chain []*_ce .Certificate )error {return _fggf .enable (nil ,chain ,"")};func (_gcda Image )getBase ()_ff .ImageBase {return _ff .NewImageBase (int (_gcda .Width ),int (_gcda .Height ),int (_gcda .BitsPerComponent ),_gcda .ColorComponents ,_gcda .Data ,_gcda ._fcec ,_gcda ._aaeac );
|
||
};func _fafgc (_efeee *PdfField )[]*PdfField {_ebcge :=[]*PdfField {_efeee };for _ ,_cecc :=range _efeee .Kids {_ebcge =append (_ebcge ,_fafgc (_cecc )...);};return _ebcge ;};
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_bgedf *PdfPageResources )GetShadingByName (keyName _eg .PdfObjectName )(*PdfShading ,bool ){if _bgedf .Shading ==nil {return nil ,false ;};_aaaae ,_caaff :=_eg .TraceToDirectObject (_bgedf .Shading ).(*_eg .PdfObjectDictionary );if !_caaff {_dbg .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",_bgedf .Shading );
|
||
return nil ,false ;};if _defde :=_aaaae .Get (keyName );_defde !=nil {_defca ,_dggg :=_dcafge (_defde );if _dggg !=nil {_dbg .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",_dggg );
|
||
return nil ,false ;};return _defca ,true ;};return nil ,false ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_feaac *PdfOutline )GetContainingPdfObject ()_eg .PdfObject {return _feaac ._ffbba };
|
||
|
||
// 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 (_dbgce *PdfReader )Inspect ()(map[string ]int ,error ){return _dbgce ._cdggc .Inspect ()};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
|
||
|
||
// 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 (_fefc int ,_babfe *PdfPage );func _debbd (_acbc *_eg .PdfObjectDictionary ,_cabb *fontCommon ,_aafcd _cec .TextEncoder )(*pdfFontSimple ,error ){_fdegeb :=_dcaf (_cabb );_fdegeb ._fcgd =_aafcd ;if _aafcd ==nil {_abfg :=_acbc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
|
||
if _abfg ==nil {_abfg =_eg .MakeInteger (0);};_fdegeb .FirstChar =_abfg ;_ebcbd ,_dadf :=_eg .GetIntVal (_abfg );if !_dadf {_dbg .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",_abfg );
|
||
return nil ,_eg .ErrTypeError ;};_ceaa :=_cec .CharCode (_ebcbd );_abfg =_acbc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _abfg ==nil {_abfg =_eg .MakeInteger (255);};_fdegeb .LastChar =_abfg ;_ebcbd ,_dadf =_eg .GetIntVal (_abfg );if !_dadf {_dbg .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",_abfg );
|
||
return nil ,_eg .ErrTypeError ;};_agcg :=_cec .CharCode (_ebcbd );_fdegeb ._baga =make (map[_cec .CharCode ]float64 );_abfg =_acbc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _abfg !=nil {_fdegeb .Widths =_abfg ;_cfba ,_ecgd :=_eg .GetArray (_abfg );
|
||
if !_ecgd {_dbg .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",_abfg );return nil ,_eg .ErrTypeError ;
|
||
};_fecf ,_egffd :=_cfba .ToFloat64Array ();if _egffd !=nil {_dbg .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 ,_egffd ;};if len (_fecf )!=int (_agcg -_ceaa +1){_dbg .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",_agcg -_ceaa +1,len (_fecf ));
|
||
return nil ,_eg .ErrRangeError ;};for _bcbbb ,_facff :=range _fecf {_fdegeb ._baga [_ceaa +_cec .CharCode (_bcbbb )]=_facff ;};};};_fdegeb .Encoding =_eg .TraceToDirectObject (_acbc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _fdegeb ,nil ;
|
||
};func (_dgece *pdfFontType0 )bytesToCharcodes (_cgebc []byte )([]_cec .CharCode ,bool ){if _dgece ._adad ==nil {return nil ,false ;};_ecaf ,_fddba :=_dgece ._adad .BytesToCharcodes (_cgebc );if !_fddba {return nil ,false ;};_cbaab :=make ([]_cec .CharCode ,len (_ecaf ));
|
||
for _aabgf ,_gcdcb :=range _ecaf {_cbaab [_aabgf ]=_cec .CharCode (_gcdcb );};return _cbaab ,true ;};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););
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _eg .PdfObject ;Movie _eg .PdfObject ;A _eg .PdfObject ;};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_cdbec *Outline )Insert (index uint ,item *OutlineItem ){_acagc :=uint (len (_cdbec .Entries ));if index > _acagc {index =_acagc ;};_cdbec .Entries =append (_cdbec .Entries [:index ],append ([]*OutlineItem {item },_cdbec .Entries [index :]...)...);
|
||
};
|
||
|
||
// 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 (_cgcfab *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_fdfde :=_cgcfab .actualFont ();if _fdfde ==nil {_dbg .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",_cgcfab ._gdcab );
|
||
return _ab .CharMetrics {},false ;};if _ecef ,_dgbe :=_fdfde .GetRuneMetrics (r );_dgbe {return _ecef ,true ;};if _efea ,_fdbef :=_cgcfab .GetFontDescriptor ();_fdbef ==nil &&_efea !=nil {return _ab .CharMetrics {Wx :_efea ._afce },true ;};_dbg .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",_cgcfab );
|
||
return _ab .CharMetrics {},false ;};
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_cdedb *PdfPageResources )SetXObjectImageByName (keyName _eg .PdfObjectName ,ximg *XObjectImage )error {_abafc :=ximg .ToPdfObject ().(*_eg .PdfObjectStream );_efaga :=_cdedb .SetXObjectByName (keyName ,_abafc );return _efaga ;};
|
||
|
||
// 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 (_caef *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdfb :=vals [0];if _bdfb < 0.0||_bdfb > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_cda :=NewPdfColorCalGray (_bdfb );return _cda ,nil ;};
|
||
|
||
// 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 *_eg .PdfObjectStream ;Data []byte ;_acga *_eg .PdfIndirectObject ;_efdb *_eg .PdfObjectStream ;};func _ddbc (_bccfe _eg .PdfObject ,_ggabd *PdfReader )(*OutlineDest ,error ){_gedea ,_deef :=_eg .GetArray (_bccfe );if !_deef {return nil ,_bbd .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");
|
||
};_fcage :=_gedea .Len ();if _fcage < 2{return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_fcage );
|
||
};_ecddd :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_agfcb :=_gedea .Get (0);if _cebda ,_dceda :=_eg .GetIndirect (_agfcb );_dceda {if _ ,_eaaff ,_edfa :=_ggabd .PageFromIndirectObject (_cebda );_edfa ==nil {_ecddd .Page =int64 (_eaaff -1);}else {_dbg .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",_cebda );
|
||
};_ecddd .PageObj =_cebda ;}else if _cggd ,_bedcb :=_eg .GetIntVal (_agfcb );_bedcb {if _cggd >=0&&_cggd < len (_ggabd .PageList ){_ecddd .PageObj =_ggabd .PageList [_cggd ].GetPageAsIndirectObject ();}else {_dbg .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",_cggd );
|
||
};_ecddd .Page =int64 (_cggd );}else {return nil ,_e .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_agfcb );};_eedc ,_deef :=_eg .GetNameVal (_gedea .Get (1));
|
||
if !_deef {_dbg .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",_gedea .Get (1));
|
||
return _ecddd ,nil ;};switch _eedc {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _fcage > 2{_ecddd .Y ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _fcage > 2{_ecddd .X ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _fcage > 4{_ecddd .X ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (2)));_ecddd .Y ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (3)));_ecddd .Zoom ,_ =_eg .GetNumberAsFloat (_eg .TraceToDirectObject (_gedea .Get (4)));
|
||
};default:_eedc ="\u0046\u0069\u0074";};_ecddd .Mode =_eedc ;return _ecddd ,nil ;};
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ccgd :=NewPdfAnnotation ();_gda :=&PdfAnnotationFreeText {};_gda .PdfAnnotation =_ccgd ;_gda .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccgd .SetContext (_gda );return _gda ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_ccgc pdfFontType0 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){if _ccgc .DescendantFont ==nil {_dbg .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",_ccgc );
|
||
return _ab .CharMetrics {},false ;};return _ccgc .DescendantFont .GetRuneMetrics (r );};
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_abfda *PdfPattern )IsShading ()bool {return _abfda .PatternType ==2};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_feabc *PdfShading )ToPdfObject ()_eg .PdfObject {_cbdcc :=_feabc ._beag ;_cfgec ,_dfag :=_feabc .getShadingDict ();if _dfag !=nil {_dbg .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 _feabc .ShadingType !=nil {_cfgec .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_feabc .ShadingType );};if _feabc .ColorSpace !=nil {_cfgec .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_feabc .ColorSpace .ToPdfObject ());
|
||
};if _feabc .Background !=nil {_cfgec .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_feabc .Background );};if _feabc .BBox !=nil {_cfgec .Set ("\u0042\u0042\u006f\u0078",_feabc .BBox .ToPdfObject ());};if _feabc .AntiAlias !=nil {_cfgec .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_feabc .AntiAlias );
|
||
};return _cbdcc ;};
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_bbgbd *PdfPage )GetXObjectByName (name _eg .PdfObjectName )(_eg .PdfObject ,bool ){_efagd ,_gcgg :=_bbgbd .Resources .XObject .(*_eg .PdfObjectDictionary );if !_gcgg {return nil ,false ;};if _dedef :=_efagd .Get (name );_dedef !=nil {return _dedef ,true ;
|
||
};return nil ,false ;};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_gcbbf *PdfPage )AddImageResource (name _eg .PdfObjectName ,ximg *XObjectImage )error {var _ffgea *_eg .PdfObjectDictionary ;if _gcbbf .Resources .XObject ==nil {_ffgea =_eg .MakeDict ();_gcbbf .Resources .XObject =_ffgea ;}else {var _cggdd bool ;
|
||
_ffgea ,_cggdd =(_gcbbf .Resources .XObject ).(*_eg .PdfObjectDictionary );if !_cggdd {return _bbd .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_ffgea .Set (name ,ximg .ToPdfObject ());
|
||
return nil ;};func (_cfcee *PdfReader )newPdfAnnotationWatermarkFromDict (_eaac *_eg .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_geea :=PdfAnnotationWatermark {};_geea .FixedPrint =_eaac .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
|
||
return &_geea ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_gdace *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _gdace .Alternate ==nil {if _gdace .N ==1{_efae :=NewPdfColorspaceDeviceGray ();return _efae .ColorFromFloats (vals );}else if _gdace .N ==3{_dbda :=NewPdfColorspaceDeviceRGB ();
|
||
return _dbda .ColorFromFloats (vals );}else if _gdace .N ==4{_eafb :=NewPdfColorspaceDeviceCMYK ();return _eafb .ColorFromFloats (vals );}else {return nil ,_bbd .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 _gdace .Alternate .ColorFromFloats (vals );};
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_bcad *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bcad .AlternateSpace ==nil {return nil ,_bbd .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 _bcad .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_gdbea *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _gdbea ._ebgea };
|
||
|
||
// 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 (_cbgdg *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _ccfcc []*PdfField ;_adddd :=map[*_eg .PdfIndirectObject ]struct{}{};for _ ,_ddggc :=range _cbgdg .PageList {_fddcb ,_ffac :=_ddggc .GetAnnotations ();if _ffac !=nil {return _ffac ;
|
||
};for _ ,_aefg :=range _fddcb {var _gfaec *PdfField ;switch _gbbdg :=_aefg .GetContext ().(type ){case *PdfAnnotationWidget :if _gbbdg ._cdda !=nil {_gfaec =_gbbdg ._cdda ;break ;};if _eeceb ,_cdcc :=_eg .GetIndirect (_gbbdg .Parent );_cdcc {_gfaec ,_ffac =_cbgdg .newPdfFieldFromIndirectObject (_eeceb ,nil );
|
||
if _ffac ==nil {break ;};_dbg .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",_eeceb ,_ffac );
|
||
};if _gbbdg ._gag !=nil {_gfaec ,_ffac =_cbgdg .newPdfFieldFromIndirectObject (_gbbdg ._gag ,nil );if _ffac ==nil {break ;};_dbg .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",_gbbdg ._gag ,_ffac );
|
||
};};if _gfaec ==nil {continue ;};if _ ,_fgea :=_adddd [_gfaec ._afbe ];_fgea {continue ;};_adddd [_gfaec ._afbe ]=struct{}{};_ccfcc =append (_ccfcc ,_gfaec );};};if len (_ccfcc )==0{return nil ;};if _cbgdg .AcroForm ==nil {_cbgdg .AcroForm =NewPdfAcroForm ();
|
||
};_cbgdg .AcroForm .Fields =&_ccfcc ;return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aca *PdfAnnotationSound )ToPdfObject ()_eg .PdfObject {_aca .PdfAnnotation .ToPdfObject ();_aedb :=_aca ._gag ;_ccd :=_aedb .PdfObject .(*_eg .PdfObjectDictionary );_aca .PdfAnnotationMarkup .appendToPdfDictionary (_ccd );_ccd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_ccd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aca .Sound );_ccd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_aca .Name );return _aedb ;};
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_dedad *PdfRectangle )Width ()float64 {return _bc .Abs (_dedad .Urx -_dedad .Llx )};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_cgce *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func (_gedfc *LTV )generateVRIKey (_bgce *PdfSignature )(string ,error ){_abdd ,_dcabf :=_cafd (_bgce .Contents .Bytes ());if _dcabf !=nil {return "",_dcabf ;};return _dc .ToUpper (_c .EncodeToString (_abdd )),nil ;
|
||
};func _fegg (_abgca _eg .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_eggf :=&PdfColorspaceDeviceNAttributes {};var _bgeed *_eg .PdfObjectDictionary ;switch _fbfga :=_abgca .(type ){case *_eg .PdfIndirectObject :_eggf ._bcca =_fbfga ;var _cfgb bool ;
|
||
_bgeed ,_cfgb =_fbfga .PdfObject .(*_eg .PdfObjectDictionary );if !_cfgb {_dbg .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 ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};case *_eg .PdfObjectDictionary :_bgeed =_fbfga ;case *_eg .PdfObjectReference :_cbab :=_fbfga .Resolve ();return _fegg (_cbab );default:_dbg .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 ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beec :=_bgeed .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_beec !=nil {_ffgdf ,_cdceca :=_eg .TraceToDirectObject (_beec ).(*_eg .PdfObjectName );if !_cdceca {_dbg .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 ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_eggf .Subtype =_ffgdf ;};if _begd :=_bgeed .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_begd !=nil {_eggf .Colorants =_begd ;};if _fbgfa :=_bgeed .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_fbgfa !=nil {_eggf .Process =_fbgfa ;};if _faadc :=_bgeed .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_faadc !=nil {_eggf .MixingHints =_faadc ;};return _eggf ,nil ;};
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_eg .PdfObjectString ;Author *_eg .PdfObjectString ;Subject *_eg .PdfObjectString ;Keywords *_eg .PdfObjectString ;Creator *_eg .PdfObjectString ;Producer *_eg .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_eg .PdfObjectName ;
|
||
_fbfgb *_eg .PdfObjectDictionary ;};
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_cffgd *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _cffgd ._defdf .(*PdfShadingPattern );};
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_deabd *PdfPage )ToPdfObject ()_eg .PdfObject {_ddbbb :=_deabd ._caaef ;_deabd .GetPageDict ();return _ddbbb ;};
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_fbbce *PdfPage )Duplicate ()*PdfPage {_efbfd :=*_fbbce ;_efbfd ._ecbba =_eg .MakeDict ();_efbfd ._caaef =_eg .MakeIndirectObject (_efbfd ._ecbba );return &_efbfd ;};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_fdeec *OutlineItem )Add (item *OutlineItem ){_fdeec .Entries =append (_fdeec .Entries ,item )};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_faaf *PdfOutlineItem )ToPdfObject ()_eg .PdfObject {_bcdcg :=_faaf ._bfega ;_gadbg :=_bcdcg .PdfObject .(*_eg .PdfObjectDictionary );_gadbg .Set ("\u0054\u0069\u0074l\u0065",_faaf .Title );if _faaf .A !=nil {_gadbg .Set ("\u0041",_faaf .A );};if _ggceb :=_gadbg .Get ("\u0053\u0045");
|
||
_ggceb !=nil {_gadbg .Remove ("\u0053\u0045");};if _faaf .C !=nil {_gadbg .Set ("\u0043",_faaf .C );};if _faaf .Dest !=nil {_gadbg .Set ("\u0044\u0065\u0073\u0074",_faaf .Dest );};if _faaf .F !=nil {_gadbg .Set ("\u0046",_faaf .F );};if _faaf .Count !=nil {_gadbg .Set ("\u0043\u006f\u0075n\u0074",_eg .MakeInteger (*_faaf .Count ));
|
||
};if _faaf .Next !=nil {_gadbg .Set ("\u004e\u0065\u0078\u0074",_faaf .Next .ToPdfObject ());};if _faaf .First !=nil {_gadbg .Set ("\u0046\u0069\u0072s\u0074",_faaf .First .ToPdfObject ());};if _faaf .Prev !=nil {_gadbg .Set ("\u0050\u0072\u0065\u0076",_faaf .Prev .GetContext ().GetContainingPdfObject ());
|
||
};if _faaf .Last !=nil {_gadbg .Set ("\u004c\u0061\u0073\u0074",_faaf .Last .GetContext ().GetContainingPdfObject ());};if _faaf .Parent !=nil {_gadbg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_faaf .Parent .GetContext ().GetContainingPdfObject ());
|
||
};return _bcdcg ;};func (_ggfacc *PdfAcroForm )fill (_bgbfd FieldValueProvider ,_cbfb FieldAppearanceGenerator )error {if _ggfacc ==nil {return nil ;};_fbaab ,_decaa :=_bgbfd .FieldValues ();if _decaa !=nil {return _decaa ;};for _ ,_acbb :=range _ggfacc .AllFields (){_fbdfa :=_acbb .PartialName ();
|
||
_fbgba ,_dgfff :=_fbaab [_fbdfa ];if !_dgfff {if _cdcg ,_dfdc :=_acbb .FullName ();_dfdc ==nil {_fbgba ,_dgfff =_fbaab [_cdcg ];};};if !_dgfff {_dbg .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",_fbdfa );
|
||
continue ;};if _dceba :=_edbga (_acbb ,_fbgba );_dceba !=nil {return _dceba ;};if _cbfb ==nil {continue ;};for _ ,_cebb :=range _acbb .Annotations {_fcgb ,_cbgf :=_cbfb .GenerateAppearanceDict (_ggfacc ,_acbb ,_cebb );if _cbgf !=nil {return _cbgf ;};_cebb .AP =_fcgb ;
|
||
_cebb .ToPdfObject ();};};return nil ;};
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_caec *PdfReader )GetNumPages ()(int ,error ){if _caec ._cdggc .GetCrypter ()!=nil &&!_caec ._cdggc .IsAuthenticated (){return 0,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};return len (_caec ._dfff ),nil ;};
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_gfba :=&PdfAnnotation {};_gfba ._gag =_eg .MakeIndirectObject (_eg .MakeDict ());return _gfba ;};
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_eg .PdfObject ;};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_ecfda *Image )SetDecode (decode []float64 ){_ecfda ._aaeac =decode };
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_dddc *PdfColorDeviceCMYK )C ()float64 {return _dddc [0]};
|
||
|
||
// 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 (_fdfg *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbcb ,_bfa :=_eg .GetNumbersAsFloat (objects );
|
||
if _bfa !=nil {return nil ,_bfa ;};return _fdfg .ColorFromFloats (_dbcb );};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_feea *PdfReader )GetOCProperties ()(_eg .PdfObject ,error ){_cgdc :=_feea ._efdg ;_gegdg :=_cgdc .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_gegdg =_eg .ResolveReference (_gegdg );if !_feea ._bebe {_ffffa :=_feea .traverseObjectData (_gegdg );
|
||
if _ffffa !=nil {return nil ,_ffffa ;};};return _gegdg ,nil ;};
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_gd :=NewPdfAction ();_eec :=&PdfActionThread {};_eec .PdfAction =_gd ;_gd .SetContext (_eec );return _eec ;};
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _eg .PdfObject ;};func _aeebeg (_eecbb []byte )[]byte {const _geba =52845;const _fecfb =22719;_bceg :=55665;for _ ,_eddc :=range _eecbb [:4]{_bceg =(int (_eddc )+_bceg )*_geba +_fecfb ;};_bbfc :=make ([]byte ,len (_eecbb )-4);
|
||
for _ddcd ,_gabd :=range _eecbb [4:]{_bbfc [_ddcd ]=byte (int (_gabd )^_bceg >>8);_bceg =(int (_gabd )+_bceg )*_geba +_fecfb ;};return _bbfc ;};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_dcegc *PdfWriter )SetPageLabels (pageLabels _eg .PdfObject )error {if pageLabels ==nil {return nil ;};_dbg .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");
|
||
_dcegc ._ebaaa .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dcegc .addObjects (pageLabels );};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_gbadf *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _gbadf .UnderlyingCS ==nil {return nil ,_bbd .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 _gbadf .UnderlyingCS .ColorFromFloats (vals );};
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_eg .PdfObjectArray ;Matrix *_eg .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_cfdcc *PdfFont )IsCID ()bool {return _cfdcc .baseFields ().isCIDFont ()};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_ced :=NewPdfAnnotation ();_dggc :=&PdfAnnotationPrinterMark {};_dggc .PdfAnnotation =_ced ;_ced .SetContext (_dggc );return _dggc ;};var _gdeaa =_ge .MustCompile ("\u005c\u0073\u002a\u0044\u005c\u0073\u002a:\u005c\u0073\u002a\u0028\u005c\u0064\u007b\u0034\u007d\u0029\u0028\u005c\u0064\u007b2\u007d)\u0028\u005c\u0064\u007b\u0032\u007d)\u0028\u005c\u0064\u007b\u0032\u007d\u0029(\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005c\u0064\u007b\u0032\u007d\u0029\u0028\u005b\u002b\u002d\u005a\u005d\u0029\u003f\u0028\u005cd\u007b\u0032\u007d\u0029\u003f\u0027\u003f\u0028\u005c\u0064\u007b\u0032\u007d)\u003f");
|
||
|
||
|
||
// 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 (_fafgg *PdfSignature )bool ;Validate (_abfb *PdfSignature ,_fafef Hasher )(SignatureValidationResult ,error );
|
||
|
||
// InitSignature sets the PdfSignature parameters.
|
||
InitSignature (*PdfSignature )error ;NewDigest (_bbcea *PdfSignature )(Hasher ,error );Sign (_agbdc *PdfSignature ,_gace Hasher )error ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bea *PdfAnnotationProjection )ToPdfObject ()_eg .PdfObject {_bea .PdfAnnotation .ToPdfObject ();_dfbg :=_bea ._gag ;_ebdg :=_dfbg .PdfObject .(*_eg .PdfObjectDictionary );_bea .PdfAnnotationMarkup .appendToPdfDictionary (_ebdg );return _dfbg ;};
|
||
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_fdee :=NewPdfAnnotation ();_bgbf :=&PdfAnnotationFileAttachment {};_bgbf .PdfAnnotation =_fdee ;_bgbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdee .SetContext (_bgbf );return _bgbf ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gge *PdfActionGoToR )ToPdfObject ()_eg .PdfObject {_gge .PdfAction .ToPdfObject ();_aec :=_gge ._ege ;_aac :=_aec .PdfObject .(*_eg .PdfObjectDictionary );_aac .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeGoToR )));if _gge .F !=nil {_aac .Set ("\u0046",_gge .F .ToPdfObject ());
|
||
};_aac .SetIfNotNil ("\u0044",_gge .D );_aac .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gge .NewWindow );return _aec ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_ebae *PdfColorspaceLab )ToPdfObject ()_eg .PdfObject {_ace :=_eg .MakeArray ();_ace .Append (_eg .MakeName ("\u004c\u0061\u0062"));_dfdb :=_eg .MakeDict ();if _ebae .WhitePoint !=nil {_badg :=_eg .MakeArray (_eg .MakeFloat (_ebae .WhitePoint [0]),_eg .MakeFloat (_ebae .WhitePoint [1]),_eg .MakeFloat (_ebae .WhitePoint [2]));
|
||
_dfdb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_badg );}else {_dbg .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 _ebae .BlackPoint !=nil {_efec :=_eg .MakeArray (_eg .MakeFloat (_ebae .BlackPoint [0]),_eg .MakeFloat (_ebae .BlackPoint [1]),_eg .MakeFloat (_ebae .BlackPoint [2]));_dfdb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_efec );
|
||
};if _ebae .Range !=nil {_feae :=_eg .MakeArray (_eg .MakeFloat (_ebae .Range [0]),_eg .MakeFloat (_ebae .Range [1]),_eg .MakeFloat (_ebae .Range [2]),_eg .MakeFloat (_ebae .Range [3]));_dfdb .Set ("\u0052\u0061\u006eg\u0065",_feae );};_ace .Append (_dfdb );
|
||
if _ebae ._fcef !=nil {_ebae ._fcef .PdfObject =_ace ;return _ebae ._fcef ;};return _ace ;};
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_fdaab *PdfRectangle )Height ()float64 {return _bc .Abs (_fdaab .Ury -_fdaab .Lly )};func _aefad (_dgag StdFontName )(pdfFontSimple ,error ){_edcd ,_adce :=_ab .NewStdFontByName (_dgag );if !_adce {return pdfFontSimple {},ErrFontNotSupported ;};_bgba :=_gecc (_edcd );
|
||
return _bgba ,nil ;};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_eg .PdfObjectArray ;Domain *_eg .PdfObjectArray ;Function []PdfFunction ;Extend *_eg .PdfObjectArray ;};type pdfSignDictionary struct{*_eg .PdfObjectDictionary ;_fbfb *SignatureHandler ;_bcacg *PdfSignature ;
|
||
_gfefg int64 ;_addad int ;_gaeef int ;_ddbef int ;_bfgaa int ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_gdbcg *PdfOutlineTreeNode )ToPdfObject ()_eg .PdfObject {return _gdbcg .GetContext ().ToPdfObject ();};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bbdg *PdfAnnotationCircle )ToPdfObject ()_eg .PdfObject {_bbdg .PdfAnnotation .ToPdfObject ();_fgcf :=_bbdg ._gag ;_gega :=_fgcf .PdfObject .(*_eg .PdfObjectDictionary );_bbdg .PdfAnnotationMarkup .appendToPdfDictionary (_gega );_gega .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_gega .SetIfNotNil ("\u0042\u0053",_bbdg .BS );_gega .SetIfNotNil ("\u0049\u0043",_bbdg .IC );_gega .SetIfNotNil ("\u0042\u0045",_bbdg .BE );_gega .SetIfNotNil ("\u0052\u0044",_bbdg .RD );return _fgcf ;};
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_eeccd *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _eg .GetNumberAsFloat (_eeccd .Descent );};func (_gce *PdfReader )newPdfAnnotationPopupFromDict (_aefee *_eg .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_def :=PdfAnnotationPopup {};
|
||
_def .Parent =_aefee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_def .Open =_aefee .Get ("\u004f\u0070\u0065\u006e");return &_def ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_bbcga *VRI )ToPdfObject ()*_eg .PdfObjectDictionary {_ecdb :=_eg .MakeDict ();_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u0043\u0065\u0072\u0074"),_bffd (_bbcga .Cert ));_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u004f\u0043\u0053\u0050"),_bffd (_bbcga .OCSP ));
|
||
_ecdb .SetIfNotNil (_eg .PdfObjectName ("\u0043\u0052\u004c"),_bffd (_bbcga .CRL ));_ecdb .SetIfNotNil ("\u0054\u0055",_bbcga .TU );_ecdb .SetIfNotNil ("\u0054\u0053",_bbcga .TS );return _ecdb ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_bfaf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// 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 (_ceecf *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_afcgc ,_ ,_gfgfa :=_ceecf .CharcodesToUnicodeWithStats (_ceecf .BytesToCharcodes (data ));_gdcf :=_cec .ExpandLigatures (_afcgc );return _gdcf ,_cb .RuneCountInString (_gdcf ),_gfgfa ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gbfe *PdfAnnotationFreeText )ToPdfObject ()_eg .PdfObject {_gbfe .PdfAnnotation .ToPdfObject ();_aecf :=_gbfe ._gag ;_gfca :=_aecf .PdfObject .(*_eg .PdfObjectDictionary );_gbfe .PdfAnnotationMarkup .appendToPdfDictionary (_gfca );_gfca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_gfca .SetIfNotNil ("\u0044\u0041",_gbfe .DA );_gfca .SetIfNotNil ("\u0051",_gbfe .Q );_gfca .SetIfNotNil ("\u0052\u0043",_gbfe .RC );_gfca .SetIfNotNil ("\u0044\u0053",_gbfe .DS );_gfca .SetIfNotNil ("\u0043\u004c",_gbfe .CL );_gfca .SetIfNotNil ("\u0049\u0054",_gbfe .IT );
|
||
_gfca .SetIfNotNil ("\u0042\u0045",_gbfe .BE );_gfca .SetIfNotNil ("\u0052\u0044",_gbfe .RD );_gfca .SetIfNotNil ("\u0042\u0053",_gbfe .BS );_gfca .SetIfNotNil ("\u004c\u0045",_gbfe .LE );return _aecf ;};
|
||
|
||
// 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 (_dffa *LTV )Enable (sig *PdfSignature ,extraCerts []*_ce .Certificate )error {if _dddg :=_dffa .validateSig (sig );_dddg !=nil {return _dddg ;};_ggfef ,_ecdaf :=_dffa .generateVRIKey (sig );if _ecdaf !=nil {return _ecdaf ;};if _ ,_deece :=_dffa ._fgada .VRI [_ggfef ];
|
||
_deece &&_dffa .SkipExisting {return nil ;};_baafb ,_ecdaf :=sig .GetCerts ();if _ecdaf !=nil {return _ecdaf ;};return _dffa .enable (_baafb ,extraCerts ,_ggfef );};func (_deaa *DSS )addCerts (_abaf [][]byte )([]*_eg .PdfObjectStream ,error ){return _deaa .add (&_deaa .Certs ,_deaa ._gaad ,_abaf );
|
||
};
|
||
|
||
// 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 (_cdba *PdfFont )CharcodesToUnicodeWithStats (charcodes []_cec .CharCode )(_aadd []rune ,_fcbfb ,_ceagd int ){_gcbd ,_fcbfb ,_ceagd :=_cdba .CharcodesToStrings (charcodes );return []rune (_dc .Join (_gcbd ,"")),_fcbfb ,_ceagd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bcag *PdfAnnotationSquare )ToPdfObject ()_eg .PdfObject {_bcag .PdfAnnotation .ToPdfObject ();_gefa :=_bcag ._gag ;_aebe :=_gefa .PdfObject .(*_eg .PdfObjectDictionary );if _bcag .PdfAnnotationMarkup !=nil {_bcag .PdfAnnotationMarkup .appendToPdfDictionary (_aebe );
|
||
};_aebe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_aebe .SetIfNotNil ("\u0042\u0053",_bcag .BS );_aebe .SetIfNotNil ("\u0049\u0043",_bcag .IC );_aebe .SetIfNotNil ("\u0042\u0045",_bcag .BE );
|
||
_aebe .SetIfNotNil ("\u0052\u0044",_bcag .RD );return _gefa ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_edfec *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgfc ,_egefb :=_eg .GetNumbersAsFloat (objects );
|
||
if _egefb !=nil {return nil ,_egefb ;};return _edfec .ColorFromFloats (_bgfc );};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgg *PdfActionResetForm )ToPdfObject ()_eg .PdfObject {_dgg .PdfAction .ToPdfObject ();_ag :=_dgg ._ege ;_ffe :=_ag .PdfObject .(*_eg .PdfObjectDictionary );_ffe .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeResetForm )));_ffe .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dgg .Fields );
|
||
_ffe .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dgg .Flags );return _ag ;};func _cafedf (_fcdbd _eg .PdfObject )(string ,error ){_fcdbd =_eg .TraceToDirectObject (_fcdbd );switch _fafaa :=_fcdbd .(type ){case *_eg .PdfObjectString :return _fafaa .Str (),nil ;
|
||
case *_eg .PdfObjectStream :_debge ,_bcbc :=_eg .DecodeStream (_fafaa );if _bcbc !=nil {return "",_bcbc ;};return string (_debge ),nil ;};return "",_e .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_fcdbd );
|
||
};
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_ggfcc *PdfSignature )SetName (name string ){_ggfcc .Name =_eg .MakeString (name )};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_acade *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_acade .NumInputs {_dbg .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 ,_bbd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _acade ._dgfa ==nil {_acccc :=_acade .processSamples ();if _acccc !=nil {return nil ,_acccc ;};};_bcbbf :=_acade .Encode ;if _bcbbf ==nil {_bcbbf =[]float64 {};
|
||
for _cafac :=0;_cafac < len (_acade .Size );_cafac ++{_bcbbf =append (_bcbbf ,0);_bcbbf =append (_bcbbf ,float64 (_acade .Size [_cafac ]-1));};};_bdcf :=_acade .Decode ;if _bdcf ==nil {_bdcf =_acade .Range ;};_dbgeg :=make ([]int ,len (x ));for _fdeb :=0;
|
||
_fdeb < len (x );_fdeb ++{_aebgf :=x [_fdeb ];_gedff :=_bc .Min (_bc .Max (_aebgf ,_acade .Domain [2*_fdeb ]),_acade .Domain [2*_fdeb +1]);_dadab :=_ff .LinearInterpolate (_gedff ,_acade .Domain [2*_fdeb ],_acade .Domain [2*_fdeb +1],_bcbbf [2*_fdeb ],_bcbbf [2*_fdeb +1]);
|
||
_aeebd :=_bc .Min (_bc .Max (_dadab ,0),float64 (_acade .Size [_fdeb ]-1));_baff :=int (_bc .Floor (_aeebd +0.5));if _baff < 0{_baff =0;}else if _baff > _acade .Size [_fdeb ]{_baff =_acade .Size [_fdeb ]-1;};_dbgeg [_fdeb ]=_baff ;};_gcfcf :=_dbgeg [0];
|
||
for _fffb :=1;_fffb < _acade .NumInputs ;_fffb ++{_geaff :=_dbgeg [_fffb ];for _aabba :=0;_aabba < _fffb ;_aabba ++{_geaff *=_acade .Size [_aabba ];};_gcfcf +=_geaff ;};_gcfcf *=_acade .NumOutputs ;var _cbgad []float64 ;for _efbd :=0;_efbd < _acade .NumOutputs ;
|
||
_efbd ++{_gcca :=_gcfcf +_efbd ;if _gcca >=len (_acade ._dgfa ){_dbg .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 ;};_cgecag :=_acade ._dgfa [_gcca ];_accad :=_ff .LinearInterpolate (float64 (_cgecag ),0,_bc .Pow (2,float64 (_acade .BitsPerSample )),_bdcf [2*_efbd ],_bdcf [2*_efbd +1]);_fddcc :=_bc .Min (_bc .Max (_accad ,_acade .Range [2*_efbd ]),_acade .Range [2*_efbd +1]);
|
||
_cbgad =append (_cbgad ,_fddcc );};return _cbgad ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_ceec *PdfColorDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gcdd *PdfAnnotationCaret )ToPdfObject ()_eg .PdfObject {_gcdd .PdfAnnotation .ToPdfObject ();_bcbed :=_gcdd ._gag ;_ceca :=_bcbed .PdfObject .(*_eg .PdfObjectDictionary );_gcdd .PdfAnnotationMarkup .appendToPdfDictionary (_ceca );_ceca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_ceca .SetIfNotNil ("\u0052\u0044",_gcdd .RD );_ceca .SetIfNotNil ("\u0053\u0079",_gcdd .Sy );return _bcbed ;};
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_dgf :=NewPdfAnnotation ();_aeb :=&PdfAnnotationStamp {};_aeb .PdfAnnotation =_dgf ;_aeb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgf .SetContext (_aeb );return _aeb ;};func _ggafb (_ecddg _eg .PdfObject )(*PdfBorderStyle ,error ){_cffe :=&PdfBorderStyle {};
|
||
_cffe ._cbeg =_ecddg ;var _dbag *_eg .PdfObjectDictionary ;_ecddg =_eg .TraceToDirectObject (_ecddg );_dbag ,_fdag :=_ecddg .(*_eg .PdfObjectDictionary );if !_fdag {return nil ,_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};if _dbgb :=_dbag .Get ("\u0054\u0079\u0070\u0065");_dbgb !=nil {_cbb ,_dgbf :=_dbgb .(*_eg .PdfObjectName );if !_dgbf {_dbg .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",_dbgb );
|
||
}else {if *_cbb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_dbg .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",*_cbb );};};};if _bbdf :=_dbag .Get ("\u0057");
|
||
_bbdf !=nil {_adg ,_egc :=_eg .GetNumberAsFloat (_bbdf );if _egc !=nil {_dbg .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_egc );return nil ,_egc ;};_cffe .W =&_adg ;
|
||
};if _ccc :=_dbag .Get ("\u0053");_ccc !=nil {_fbdc ,_gdfb :=_ccc .(*_eg .PdfObjectName );if !_gdfb {return nil ,_bbd .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 _ffce BorderStyle ;switch *_fbdc {case "\u0053":_ffce =BorderStyleSolid ;case "\u0044":_ffce =BorderStyleDashed ;case "\u0042":_ffce =BorderStyleBeveled ;case "\u0049":_ffce =BorderStyleInset ;case "\u0055":_ffce =BorderStyleUnderline ;default:_dbg .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_fbdc );
|
||
return nil ,_bbd .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cffe .S =&_ffce ;};if _dafed :=_dbag .Get ("\u0044");_dafed !=nil {_bede ,_ggdb :=_dafed .(*_eg .PdfObjectArray );
|
||
if !_ggdb {_dbg .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",_dafed );return nil ,_bbd .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_debc ,_bfc :=_bede .ToIntegerArray ();if _bfc !=nil {_dbg .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",_bfc );
|
||
return nil ,_bfc ;};_cffe .D =&_debc ;};return _cffe ,nil ;};var _acgcf =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":{}};
|
||
|
||
|
||
// 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 (_gafa int ,_egdd *PdfPage )error ;func (_aaba *PdfAnnotationMarkup )appendToPdfDictionary (_fba *_eg .PdfObjectDictionary ){_fba .SetIfNotNil ("\u0054",_aaba .T );if _aaba .Popup !=nil {_fba .Set ("\u0050\u006f\u0070u\u0070",_aaba .Popup .ToPdfObject ());
|
||
};_fba .SetIfNotNil ("\u0043\u0041",_aaba .CA );_fba .SetIfNotNil ("\u0052\u0043",_aaba .RC );_fba .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_aaba .CreationDate );_fba .SetIfNotNil ("\u0049\u0052\u0054",_aaba .IRT );
|
||
_fba .SetIfNotNil ("\u0053\u0075\u0062\u006a",_aaba .Subj );_fba .SetIfNotNil ("\u0052\u0054",_aaba .RT );_fba .SetIfNotNil ("\u0049\u0054",_aaba .IT );_fba .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_aaba .ExData );};
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_egbeg .Lock ();defer _egbeg .Unlock ();_gdagd =producer };func (_cdeccd *PdfShading )getShadingDict ()(*_eg .PdfObjectDictionary ,error ){_dccbf :=_cdeccd ._beag ;if _ecgcd ,_ddaf :=_dccbf .(*_eg .PdfIndirectObject );
|
||
_ddaf {_eded ,_egfc :=_ecgcd .PdfObject .(*_eg .PdfObjectDictionary );if !_egfc {return nil ,_eg .ErrTypeError ;};return _eded ,nil ;}else if _egba ,_dfgfb :=_dccbf .(*_eg .PdfObjectStream );_dfgfb {return _egba .PdfObjectDictionary ,nil ;}else if _eecgbc ,_beeg :=_dccbf .(*_eg .PdfObjectDictionary );
|
||
_beeg {return _eecgbc ,nil ;}else {_dbg .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 ,_eg .ErrTypeError ;
|
||
};};func (_ebadd *PdfWriter )seekByName (_abddc _eg .PdfObject ,_dcgff []string ,_ccef string )([]_eg .PdfObject ,error ){_dbg .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_abddc );var _cadga []_eg .PdfObject ;
|
||
if _bfag ,_egcef :=_abddc .(*_eg .PdfIndirectObject );_egcef {return _ebadd .seekByName (_bfag .PdfObject ,_dcgff ,_ccef );};if _faaaa ,_ccbcg :=_abddc .(*_eg .PdfObjectStream );_ccbcg {return _ebadd .seekByName (_faaaa .PdfObjectDictionary ,_dcgff ,_ccef );
|
||
};if _abaga ,_dfda :=_abddc .(*_eg .PdfObjectDictionary );_dfda {_dbg .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_agfea :=range _abaga .Keys (){_cdcab :=_abaga .Get (_agfea );if string (_agfea )==_ccef {_cadga =append (_cadga ,_cdcab );};for _ ,_beadc :=range _dcgff {if string (_agfea )==_beadc {_dbg .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_beadc );
|
||
_fffba ,_geeedd :=_ebadd .seekByName (_cdcab ,_dcgff ,_ccef );if _geeedd !=nil {return _cadga ,_geeedd ;};_cadga =append (_cadga ,_fffba ...);break ;};};};return _cadga ,nil ;};return _cadga ,nil ;};
|
||
|
||
// SignatureValidationResult defines the response from the signature validation handler.
|
||
type SignatureValidationResult struct{
|
||
|
||
// List of errors when validating the signature.
|
||
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _ee .Time ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abcc *PdfAnnotationPolygon )ToPdfObject ()_eg .PdfObject {_abcc .PdfAnnotation .ToPdfObject ();_cgff :=_abcc ._gag ;_cfdbb :=_cgff .PdfObject .(*_eg .PdfObjectDictionary );_abcc .PdfAnnotationMarkup .appendToPdfDictionary (_cfdbb );_cfdbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_cfdbb .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_abcc .Vertices );_cfdbb .SetIfNotNil ("\u004c\u0045",_abcc .LE );_cfdbb .SetIfNotNil ("\u0042\u0053",_abcc .BS );_cfdbb .SetIfNotNil ("\u0049\u0043",_abcc .IC );_cfdbb .SetIfNotNil ("\u0042\u0045",_abcc .BE );
|
||
_cfdbb .SetIfNotNil ("\u0049\u0054",_abcc .IT );_cfdbb .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_abcc .Measure );return _cgff ;};func _ceggb (_ccfdg _eg .PdfObject )(*PdfPattern ,error ){_gcfef :=&PdfPattern {};var _beef *_eg .PdfObjectDictionary ;
|
||
if _abedb ,_agddd :=_eg .GetIndirect (_ccfdg );_agddd {_gcfef ._cfaag =_abedb ;_ffeaf ,_edagb :=_abedb .PdfObject .(*_eg .PdfObjectDictionary );if !_edagb {_dbg .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",_abedb .PdfObject );
|
||
return nil ,_eg .ErrTypeError ;};_beef =_ffeaf ;}else if _gdaa ,_fcecf :=_eg .GetStream (_ccfdg );_fcecf {_gcfef ._cfaag =_gdaa ;_beef =_gdaa .PdfObjectDictionary ;}else {_dbg .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",_ccfdg );
|
||
return nil ,_eg .ErrTypeError ;};_ddga :=_beef .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _ddga ==nil {_dbg .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 ;};_babfb ,_ggggf :=_ddga .(*_eg .PdfObjectInteger );if !_ggggf {_dbg .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",_ddga );
|
||
return nil ,_eg .ErrTypeError ;};if *_babfb !=1&&*_babfb !=2{_dbg .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",*_babfb );return nil ,_eg .ErrRangeError ;
|
||
};_gcfef .PatternType =int64 (*_babfb );switch *_babfb {case 1:_abbe ,_dddbc :=_gbdcb (_beef );if _dddbc !=nil {return nil ,_dddbc ;};_abbe .PdfPattern =_gcfef ;_gcfef ._defdf =_abbe ;return _gcfef ,nil ;case 2:_ggggb ,_egdabc :=_aceda (_beef );if _egdabc !=nil {return nil ,_egdabc ;
|
||
};_ggggb .PdfPattern =_gcfef ;_gcfef ._defdf =_ggggb ;return _gcfef ,nil ;};return nil ,_bbd .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};func (_cbacc *PdfReader )lookupPageByObject (_fdadg _eg .PdfObject )(*PdfPage ,error ){return nil ,_bbd .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edac *PdfAnnotationRichMedia )ToPdfObject ()_eg .PdfObject {_edac .PdfAnnotation .ToPdfObject ();_afgb :=_edac ._gag ;_abgfe :=_afgb .PdfObject .(*_eg .PdfObjectDictionary );_abgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_abgfe .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_edac .RichMediaSettings );_abgfe .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_edac .RichMediaContent );
|
||
return _afgb ;};func (_gage *PdfReader )newPdfAnnotationRichMediaFromDict (_cegf *_eg .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_aaad :=&PdfAnnotationRichMedia {};_aaad .RichMediaSettings =_cegf .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");
|
||
_aaad .RichMediaContent =_cegf .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _aaad ,nil ;};
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_gagg *PdfAppender )RemovePage (pageNum int ){_cgbc :=pageNum -1;_gagg ._bfce =append (_gagg ._bfce [0:_cgbc ],_gagg ._bfce [pageNum :]...);};func (_bfbc *PdfReader )buildOutlineTree (_dffd _eg .PdfObject ,_dacda *PdfOutlineTreeNode ,_fefec *PdfOutlineTreeNode ,_fgabcf map[_eg .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _fgabcf ==nil {_fgabcf =map[_eg .PdfObject ]struct{}{};
|
||
};_fgabcf [_dffd ]=struct{}{};_fcbba ,_agagb :=_dffd .(*_eg .PdfIndirectObject );if !_agagb {return nil ,nil ,_e .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_dffd );
|
||
};_bfbbe ,_caadfa :=_fcbba .PdfObject .(*_eg .PdfObjectDictionary );if !_caadfa {return nil ,nil ,_bbd .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_dbg .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",_bfbbe ,_fcbba ,_fcbba );
|
||
if _cccff :=_bfbbe .Get ("\u0054\u0069\u0074l\u0065");_cccff !=nil {_agee ,_bddaa :=_bfbc .newPdfOutlineItemFromIndirectObject (_fcbba );if _bddaa !=nil {return nil ,nil ,_bddaa ;};_agee .Parent =_dacda ;_agee .Prev =_fefec ;_cfdded :=_eg .ResolveReference (_bfbbe .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_adedb :=_fgabcf [_cfdded ];_cfdded !=nil &&_cfdded !=_fcbba &&!_adedb {if !_eg .IsNullObject (_cfdded ){_gcacf ,_agfgb ,_aaee :=_bfbc .buildOutlineTree (_cfdded ,&_agee .PdfOutlineTreeNode ,nil ,_fgabcf );if _aaee !=nil {_dbg .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",_aaee );
|
||
}else {_agee .First =_gcacf ;_agee .Last =_agfgb ;};};};_dbbgbd :=_eg .ResolveReference (_bfbbe .Get ("\u004e\u0065\u0078\u0074"));if _ ,_agcege :=_fgabcf [_dbbgbd ];_dbbgbd !=nil &&_dbbgbd !=_fcbba &&!_agcege {if !_eg .IsNullObject (_dbbgbd ){_fgdg ,_geccd ,_cbecf :=_bfbc .buildOutlineTree (_dbbgbd ,_dacda ,&_agee .PdfOutlineTreeNode ,_fgabcf );
|
||
if _cbecf !=nil {_dbg .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",_cbecf );
|
||
}else {_agee .Next =_fgdg ;return &_agee .PdfOutlineTreeNode ,_geccd ,nil ;};};};return &_agee .PdfOutlineTreeNode ,&_agee .PdfOutlineTreeNode ,nil ;};_caefb ,_becg :=_aaaad (_fcbba );if _becg !=nil {return nil ,nil ,_becg ;};_caefb .Parent =_dacda ;if _egcfcb :=_bfbbe .Get ("\u0046\u0069\u0072s\u0074");
|
||
_egcfcb !=nil {_egcfcb =_eg .ResolveReference (_egcfcb );if _ ,_afdd :=_fgabcf [_egcfcb ];_egcfcb !=nil &&_egcfcb !=_fcbba &&!_afdd {_becc :=_eg .TraceToDirectObject (_egcfcb );if _ ,_dfgc :=_becc .(*_eg .PdfObjectNull );!_dfgc &&_becc !=nil {_gcefe ,_bgeae ,_beae :=_bfbc .buildOutlineTree (_egcfcb ,&_caefb .PdfOutlineTreeNode ,nil ,_fgabcf );
|
||
if _beae !=nil {_dbg .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",_beae );
|
||
}else {_caefb .First =_gcefe ;_caefb .Last =_bgeae ;};};};};return &_caefb .PdfOutlineTreeNode ,&_caefb .PdfOutlineTreeNode ,nil ;};
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_eaee :=PdfColorDeviceGray (grayVal );return &_eaee ;};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_aeca *PdfAppender )Write (w _de .Writer )error {if _aeca ._fabe {return _bbd .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");
|
||
};_ggfc :=NewPdfWriter ();_fcff ,_edef :=_eg .GetDict (_ggfc ._afbga );if !_edef {return _bbd .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");
|
||
};_dgea ,_edef :=_fcff .Get ("\u004b\u0069\u0064\u0073").(*_eg .PdfObjectArray );if !_edef {return _bbd .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");
|
||
};_cgbca ,_edef :=_fcff .Get ("\u0043\u006f\u0075n\u0074").(*_eg .PdfObjectInteger );if !_edef {return _bbd .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");
|
||
};_eaeg :=_aeca ._acdg ._cdggc ;_dafg :=_eaeg .GetTrailer ();if _dafg ==nil {return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_eefb ,_edef :=_eg .GetIndirect (_dafg .Get ("\u0052\u006f\u006f\u0074"));
|
||
if !_edef {return _bbd .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_gbce ,_edef :=_eg .GetDict (_eefb );if !_edef {_dbg .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",_eefb ,*_dafg );
|
||
return _bbd .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_bfea :=range _gbce .Keys (){if _ggfc ._ebaaa .Get (_bfea )==nil {_cgdd :=_gbce .Get (_bfea );_ggfc ._ebaaa .Set (_bfea ,_cgdd );};};if _aeca ._ggcc !=nil {_ggfc ._ebaaa .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aeca ._ggcc .ToPdfObject ());
|
||
_aeca .updateObjectsDeep (_aeca ._ggcc .ToPdfObject (),nil );};if _aeca ._aegd !=nil {_aeca .updateObjectsDeep (_aeca ._aegd .ToPdfObject (),nil );_ggfc ._ebaaa .Set ("\u0044\u0053\u0053",_aeca ._aegd .GetContainingPdfObject ());};if _ggfc ._dacab < 2{_ggfc .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
|
||
_ggfc .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};_aeca .addNewObject (_ggfc ._ggca );_aeca .addNewObject (_ggfc ._eeeg );_gdfbf :=false ;if len (_aeca ._acdg .PageList )!=len (_aeca ._bfce ){_gdfbf =true ;}else {for _aadga :=range _aeca ._acdg .PageList {switch {case _aeca ._bfce [_aadga ]==_aeca ._acdg .PageList [_aadga ]:case _aeca ._bfce [_aadga ]==_aeca .Reader .PageList [_aadga ]:default:_gdfbf =true ;
|
||
};if _gdfbf {break ;};};};if _gdfbf {_aeca .updateObjectsDeep (_ggfc ._afbga ,nil );}else {_aeca ._agaa [_ggfc ._afbga ]=struct{}{};};_ggfc ._afbga .ObjectNumber =_aeca .Reader ._debff .ObjectNumber ;_aeca ._bddd [_ggfc ._afbga ]=_aeca .Reader ._debff .ObjectNumber ;
|
||
_bdec :=[]_eg .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 _ ,_dcgbf :=range _aeca ._bfce {_fdcd :=_dcgbf .ToPdfObject ();
|
||
*_cgbca =*_cgbca +1;if _aecb ,_fcfa :=_fdcd .(*_eg .PdfIndirectObject );_fcfa &&_aecb .GetParser ()==_aeca ._acdg ._cdggc {_dgea .Append (&_aecb .PdfObjectReference );continue ;};if _cacfg ,_ebcf :=_eg .GetDict (_fdcd );_ebcf {_agbc ,_bgge :=_cacfg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eg .PdfIndirectObject );
|
||
for _bgge {_dbg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_agbc );_bdgb ,_bdgf :=_agbc .PdfObject .(*_eg .PdfObjectDictionary );if !_bdgf {return _bbd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_bdeb :=range _bdec {_dbg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bdeb );if _cacfg .Get (_bdeb )!=nil {_dbg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _bff :=_bdgb .Get (_bdeb );_bff !=nil {_dbg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bdeb );_cacfg .Set (_bdeb ,_bff );};};_agbc ,_bgge =_bdgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eg .PdfIndirectObject );
|
||
_dbg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bdgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_cacfg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ggfc ._afbga );};_aeca .updateObjectsDeep (_fdcd ,nil );
|
||
_dgea .Append (_fdcd );};if _ ,_fcb :=_aeca ._gcbb .Seek (0,_de .SeekStart );_fcb !=nil {return _fcb ;};_cbga :=make (map[SignatureHandler ]_de .Writer );_gade :=_eg .MakeArray ();for _ ,_ebgf :=range _aeca ._acda {if _eecgb ,_bggd :=_eg .GetIndirect (_ebgf );
|
||
_bggd {if _ceef ,_egaa :=_eecgb .PdfObject .(*pdfSignDictionary );_egaa {_bbde :=*_ceef ._fbfb ;var _bbda error ;_cbga [_bbde ],_bbda =_bbde .NewDigest (_ceef ._bcacg );if _bbda !=nil {return _bbda ;};_gade .Append (_eg .MakeInteger (0xfffff),_eg .MakeInteger (0xfffff));
|
||
};};};if _gade .Len ()> 0{_gade .Append (_eg .MakeInteger (0xfffff),_eg .MakeInteger (0xfffff));};for _ ,_bbag :=range _aeca ._acda {if _dfaa ,_ecbc :=_eg .GetIndirect (_bbag );_ecbc {if _bebaa ,_faea :=_dfaa .PdfObject .(*pdfSignDictionary );_faea {_bebaa .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gade );
|
||
};};};_afaa :=len (_cbga )> 0;var _gddb _de .Reader =_aeca ._gcbb ;if _afaa {_aage :=make ([]_de .Writer ,0,len (_cbga ));for _ ,_acfa :=range _cbga {_aage =append (_aage ,_acfa );};_gddb =_de .TeeReader (_aeca ._gcbb ,_de .MultiWriter (_aage ...));};_cabc ,_fbca :=_de .Copy (w ,_gddb );
|
||
if _fbca !=nil {return _fbca ;};if len (_aeca ._acda )==0{return nil ;};_ggfc ._dfgff =_cabc ;_ggfc .ObjNumOffset =_aeca ._dace ;_ggfc ._aaedc =true ;_ggfc ._adcdd =_aeca ._cdga ;_ggfc ._fcebcb =_aeca ._cfaf ;_ggfc ._cdedc =_aeca ._ade ;_ggfc ._ecae =_aeca ._acdg .PdfVersion ().Minor ;
|
||
_ggfc ._cacc =_aeca ._bddd ;_bgdb :=_aeca ._fbdd .GetXrefType ();if _bgdb !=nil {_aagd :=*_bgdb ==_eg .XrefTypeObjectStream ;_ggfc ._fdgeg =&_aagd ;};_ggfc ._bccbf =map[_eg .PdfObject ]struct{}{};_ggfc ._aecabb =[]_eg .PdfObject {};for _ ,_decb :=range _aeca ._acda {if _ ,_cdbb :=_aeca ._agaa [_decb ];
|
||
_cdbb {continue ;};_ggfc .addObject (_decb );};_dfcc :=w ;if _afaa {_dfcc =_cbd .NewBuffer (nil );};if _fce :=_ggfc .Write (_dfcc );_fce !=nil {return _fce ;};if _afaa {_acfgg :=_dfcc .(*_cbd .Buffer ).Bytes ();_gagf :=_eg .MakeArray ();var _gacg []*pdfSignDictionary ;
|
||
var _deafa int64 ;for _ ,_bcde :=range _ggfc ._aecabb {if _gcfd ,_acca :=_eg .GetIndirect (_bcde );_acca {if _cgab ,_eab :=_gcfd .PdfObject .(*pdfSignDictionary );_eab {_gacg =append (_gacg ,_cgab );_eaad :=_cgab ._gfefg +int64 (_cgab ._addad );_gagf .Append (_eg .MakeInteger (_deafa ),_eg .MakeInteger (_eaad -_deafa ));
|
||
_deafa =_cgab ._gfefg +int64 (_cgab ._gaeef );};};};_gagf .Append (_eg .MakeInteger (_deafa ),_eg .MakeInteger (_cabc +int64 (len (_acfgg ))-_deafa ));_ebdbd :=[]byte (_gagf .WriteString ());for _ ,_bdgff :=range _gacg {_gfgab :=int (_bdgff ._gfefg -_cabc );
|
||
for _egcf :=_bdgff ._ddbef ;_egcf < _bdgff ._bfgaa ;_egcf ++{_acfgg [_gfgab +_egcf ]=' ';};_cfb :=_acfgg [_gfgab +_bdgff ._ddbef :_gfgab +_bdgff ._bfgaa ];copy (_cfb ,_ebdbd );};var _bced int ;for _ ,_eea :=range _gacg {_ebgd :=int (_eea ._gfefg -_cabc );
|
||
_beaa :=_acfgg [_bced :_ebgd +_eea ._addad ];_ddgb :=*_eea ._fbfb ;_cbga [_ddgb ].Write (_beaa );_bced =_ebgd +_eea ._gaeef ;};for _ ,_baaf :=range _gacg {_bgecf :=_acfgg [_bced :];_cgac :=*_baaf ._fbfb ;_cbga [_cgac ].Write (_bgecf );};for _ ,_fbg :=range _gacg {_fdac :=int (_fbg ._gfefg -_cabc );
|
||
_aacf :=*_fbg ._fbfb ;_gfdc :=_cbga [_aacf ];if _cddf :=_aacf .Sign (_fbg ._bcacg ,_gfdc );_cddf !=nil {return _cddf ;};_fbg ._bcacg .ByteRange =_gagf ;_fcc :=[]byte (_fbg ._bcacg .Contents .WriteString ());for _gbad :=_fbg ._ddbef ;_gbad < _fbg ._bfgaa ;
|
||
_gbad ++{_acfgg [_fdac +_gbad ]=' ';};for _bgbeb :=_fbg ._addad ;_bgbeb < _fbg ._gaeef ;_bgbeb ++{_acfgg [_fdac +_bgbeb ]=' ';};_fegd :=_acfgg [_fdac +_fbg ._ddbef :_fdac +_fbg ._bfgaa ];copy (_fegd ,_ebdbd );_fegd =_acfgg [_fdac +_fbg ._addad :_fdac +_fbg ._gaeef ];
|
||
copy (_fegd ,_fcc );};_eeab :=_cbd .NewBuffer (_acfgg );_ ,_fbca =_de .Copy (w ,_eeab );if _fbca !=nil {return _fbca ;};};_aeca ._fabe =true ;return nil ;};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_bcdcb *PdfFont )ToUnicode ()string {if _bcdcb .baseFields ()._fffc ==nil {return "";};return _bcdcb .baseFields ()._fffc .Name ();};
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_bgga *PdfFontDescriptor )String ()string {var _deddf []string ;if _bgga .FontName !=nil {_deddf =append (_deddf ,_bgga .FontName .String ());};if _bgga .FontFamily !=nil {_deddf =append (_deddf ,_bgga .FontFamily .String ());};if _bgga .fontFile !=nil {_deddf =append (_deddf ,_bgga .fontFile .String ());
|
||
};if _bgga ._bgcbd !=nil {_deddf =append (_deddf ,_bgga ._bgcbd .String ());};_deddf =append (_deddf ,_e .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bgga .FontFile3 !=nil ));return _e .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_dc .Join (_deddf ,"\u002c\u0020"));
|
||
};func (_ecega *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};func (_beagg *PdfWriter )copyObject (_gafc _eg .PdfObject ,_edcc map[_eg .PdfObject ]_eg .PdfObject ,_bcbeda map[_eg .PdfObject ]struct{},_eeddb bool )_eg .PdfObject {_cbfcc :=!_beagg ._aaedc &&_bcbeda !=nil ;
|
||
if _bfcff ,_bbceed :=_edcc [_gafc ];_bbceed {if _cbfcc &&!_eeddb {delete (_bcbeda ,_gafc );};return _bfcff ;};_bdcge :=_gafc ;switch _bgfge :=_gafc .(type ){case *_eg .PdfObjectArray :_fffdg :=_eg .MakeArray ();_bdcge =_fffdg ;_edcc [_gafc ]=_bdcge ;for _ ,_ffadc :=range _bgfge .Elements (){_fffdg .Append (_beagg .copyObject (_ffadc ,_edcc ,_bcbeda ,_eeddb ));
|
||
};case *_eg .PdfObjectStreams :_fgeac :=&_eg .PdfObjectStreams {PdfObjectReference :_bgfge .PdfObjectReference };_bdcge =_fgeac ;_edcc [_gafc ]=_bdcge ;for _ ,_dcabe :=range _bgfge .Elements (){_fgeac .Append (_beagg .copyObject (_dcabe ,_edcc ,_bcbeda ,_eeddb ));
|
||
};case *_eg .PdfObjectStream :_adca :=&_eg .PdfObjectStream {Stream :_bgfge .Stream ,PdfObjectReference :_bgfge .PdfObjectReference };_bdcge =_adca ;_edcc [_gafc ]=_bdcge ;_adca .PdfObjectDictionary =_beagg .copyObject (_bgfge .PdfObjectDictionary ,_edcc ,_bcbeda ,_eeddb ).(*_eg .PdfObjectDictionary );
|
||
case *_eg .PdfObjectDictionary :var _eaaaf bool ;if _cbfcc &&!_eeddb {if _dfbcd ,_ :=_eg .GetNameVal (_bgfge .Get ("\u0054\u0079\u0070\u0065"));_dfbcd =="\u0050\u0061\u0067\u0065"{_ ,_ceab :=_beagg ._eacbf [_bgfge ];_eeddb =!_ceab ;_eaaaf =_eeddb ;};};
|
||
_bdacf :=_eg .MakeDict ();_bdcge =_bdacf ;_edcc [_gafc ]=_bdcge ;for _ ,_aacee :=range _bgfge .Keys (){_bdacf .Set (_aacee ,_beagg .copyObject (_bgfge .Get (_aacee ),_edcc ,_bcbeda ,_eeddb ));};if _eaaaf {_bdcge =_eg .MakeNull ();_eeddb =false ;};case *_eg .PdfIndirectObject :_bgfdf :=&_eg .PdfIndirectObject {PdfObjectReference :_bgfge .PdfObjectReference };
|
||
_bdcge =_bgfdf ;_edcc [_gafc ]=_bdcge ;_bgfdf .PdfObject =_beagg .copyObject (_bgfge .PdfObject ,_edcc ,_bcbeda ,_eeddb );case *_eg .PdfObjectString :_becbe :=*_bgfge ;_bdcge =&_becbe ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectName :_eceag :=*_bgfge ;
|
||
_bdcge =&_eceag ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectNull :_bdcge =_eg .MakeNull ();_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectInteger :_agfef :=*_bgfge ;_bdcge =&_agfef ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectReference :_faec :=*_bgfge ;_bdcge =&_faec ;
|
||
_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectFloat :_fgdcc :=*_bgfge ;_bdcge =&_fgdcc ;_edcc [_gafc ]=_bdcge ;case *_eg .PdfObjectBool :_aegcd :=*_bgfge ;_bdcge =&_aegcd ;_edcc [_gafc ]=_bdcge ;case *pdfSignDictionary :_afcd :=&pdfSignDictionary {PdfObjectDictionary :_eg .MakeDict (),_fbfb :_bgfge ._fbfb ,_bcacg :_bgfge ._bcacg };
|
||
_bdcge =_afcd ;_edcc [_gafc ]=_bdcge ;for _ ,_bfbeg :=range _bgfge .Keys (){_afcd .Set (_bfbeg ,_beagg .copyObject (_bgfge .Get (_bfbeg ),_edcc ,_bcbeda ,_eeddb ));};default:_dbg .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",_gafc );
|
||
};if _cbfcc &&_eeddb {_bcbeda [_gafc ]=struct{}{};};return _bdcge ;};func _cddff (_bbafb *_eg .PdfObjectStream )(*PdfFunctionType4 ,error ){_faegb :=&PdfFunctionType4 {};_faegb ._egdfb =_bbafb ;_daddg :=_bbafb .PdfObjectDictionary ;_fcad ,_cabbe :=_eg .TraceToDirectObject (_daddg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );
|
||
if !_cabbe {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _fcad .Len ()%2!=0{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_aaaff ,_cccb :=_fcad .ToFloat64Array ();
|
||
if _cccb !=nil {return nil ,_cccb ;};_faegb .Domain =_aaaff ;_fcad ,_cabbe =_eg .TraceToDirectObject (_daddg .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _cabbe {if _fcad .Len ()< 0||_fcad .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_fdgf ,_cfeec :=_fcad .ToFloat64Array ();if _cfeec !=nil {return nil ,_cfeec ;};_faegb .Range =_fdgf ;};_cdgf ,_cccb :=_eg .DecodeStream (_bbafb );if _cccb !=nil {return nil ,_cccb ;};_faegb ._efgdd =_cdgf ;_bfecc :=_ea .NewPSParser (_cdgf );_adcee ,_cccb :=_bfecc .Parse ();
|
||
if _cccb !=nil {return nil ,_cccb ;};_faegb .Program =_adcee ;return _faegb ,nil ;};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_dbaeb interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _eg .PdfObject ;ColorSpace _eg .PdfObject ;Pattern _eg .PdfObject ;Shading _eg .PdfObject ;XObject _eg .PdfObject ;Font _eg .PdfObject ;ProcSet _eg .PdfObject ;Properties _eg .PdfObject ;_fbcbc *_eg .PdfObjectDictionary ;
|
||
_gecbc *PdfPageResourcesColorspaces ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_bgefe *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bfg *PdfActionNamed )ToPdfObject ()_eg .PdfObject {_bfg .PdfAction .ToPdfObject ();_bab :=_bfg ._ege ;_egd :=_bab .PdfObject .(*_eg .PdfObjectDictionary );_egd .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeNamed )));_egd .SetIfNotNil ("\u004e",_bfg .N );
|
||
return _bab ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_ceea pdfCIDFontType0 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){return _ab .CharMetrics {Wx :_ceea ._gfbab },true ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_bbge *PdfColorCalRGB )C ()float64 {return _bbge [2]};func _fgca (_faade _eg .PdfObject )(*PdfColorspaceCalRGB ,error ){_dbce :=NewPdfColorspaceCalRGB ();if _dbbc ,_bdaa :=_faade .(*_eg .PdfIndirectObject );_bdaa {_dbce ._gdef =_dbbc ;};_faade =_eg .TraceToDirectObject (_faade );
|
||
_fbfa ,_aaff :=_faade .(*_eg .PdfObjectArray );if !_aaff {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fbfa .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_faade =_eg .TraceToDirectObject (_fbfa .Get (0));_eefd ,_aaff :=_faade .(*_eg .PdfObjectName );if !_aaff {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
|
||
};if *_eefd !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_e .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_faade =_eg .TraceToDirectObject (_fbfa .Get (1));
|
||
_gffd ,_aaff :=_faade .(*_eg .PdfObjectDictionary );if !_aaff {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};
|
||
_faade =_gffd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_faade =_eg .TraceToDirectObject (_faade );_fbed ,_aaff :=_faade .(*_eg .PdfObjectArray );if !_aaff {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
|
||
};if _fbed .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_agbf ,_eeaf :=_fbed .GetAsFloat64Slice ();
|
||
if _eeaf !=nil {return nil ,_eeaf ;};_dbce .WhitePoint =_agbf ;_faade =_gffd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_bdba ,_cbdg :=_faade .(*_eg .PdfObjectArray );
|
||
if !_cbdg {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _bdba .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_agfg ,_bdbd :=_bdba .GetAsFloat64Slice ();if _bdbd !=nil {return nil ,_bdbd ;};_dbce .BlackPoint =_agfg ;};_faade =_gffd .Get ("\u0047\u0061\u006dm\u0061");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_cfcb ,_ebeb :=_faade .(*_eg .PdfObjectArray );
|
||
if !_ebeb {return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _cfcb .Len ()!=3{return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
|
||
};_feab ,_dcgg :=_cfcb .GetAsFloat64Slice ();if _dcgg !=nil {return nil ,_dcgg ;};_dbce .Gamma =_feab ;};_faade =_gffd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _faade !=nil {_faade =_eg .TraceToDirectObject (_faade );_eeeb ,_ebcc :=_faade .(*_eg .PdfObjectArray );
|
||
if !_ebcc {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _eeeb .Len ()!=9{_dbg .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_eeeb .String ());
|
||
return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_fgbc ,_gfbad :=_eeeb .GetAsFloat64Slice ();if _gfbad !=nil {return nil ,_gfbad ;
|
||
};_dbce .Matrix =_fgbc ;};return _dbce ,nil ;};
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _eg .PdfObject ;RichMediaContent _eg .PdfObject ;};
|
||
|
||
// 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 (_aadgc *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_afdg ,_ebbe :=color .(*PdfColorPattern );if !_ebbe {_dbg .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 _afdg .Color ==nil {return color ,nil ;};if _aadgc .UnderlyingCS ==nil {return nil ,_bbd .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
|
||
return _aadgc .UnderlyingCS .ColorToRGB (_afdg .Color );};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _eg .StreamEncoder ;FormType _eg .PdfObject ;BBox _eg .PdfObject ;Matrix _eg .PdfObject ;Resources *PdfPageResources ;Group _eg .PdfObject ;Ref _eg .PdfObject ;MetaData _eg .PdfObject ;PieceInfo _eg .PdfObject ;LastModified _eg .PdfObject ;
|
||
StructParent _eg .PdfObject ;StructParents _eg .PdfObject ;OPI _eg .PdfObject ;OC _eg .PdfObject ;Name _eg .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_cdcaf *_eg .PdfObjectStream ;};
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_egbeg .Lock ();defer _egbeg .Unlock ();_dfdfdc =author };
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _eg .PdfObject ;Open _eg .PdfObject ;};
|
||
|
||
// 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 (_aageg _de .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_gcab _ec .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_egaeb _ec .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_febce *Image ,_fddda int64 )(*Image ,error );};
|
||
|
||
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
|
||
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
|
||
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
|
||
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
|
||
// If using package creator, use its EnableFontSubsetting method instead.
|
||
func (_bgbfeb *PdfFont )SubsetRegistered ()error {switch _agdd :=_bgbfeb ._gdcab .(type ){case *pdfFontType0 :_eecb :=_agdd .subsetRegistered ();if _eecb !=nil {_dbg .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eecb );
|
||
return _eecb ;};if _agdd ._becfa !=nil {if _agdd ._eceba !=nil {_agdd ._eceba .ToPdfObject ();};_agdd .ToPdfObject ();};default:_dbg .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",_agdd );
|
||
};return nil ;};func _fgfa (_cabg *_eg .PdfObjectDictionary )(*PdfFieldChoice ,error ){_eega :=&PdfFieldChoice {};_eega .Opt ,_ =_eg .GetArray (_cabg .Get ("\u004f\u0070\u0074"));_eega .TI ,_ =_eg .GetInt (_cabg .Get ("\u0054\u0049"));_eega .I ,_ =_eg .GetArray (_cabg .Get ("\u0049"));
|
||
return _eega ,nil ;};func (_acce *PdfReader )newPdfAnnotationSoundFromDict (_ffa *_eg .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_fgac :=PdfAnnotationSound {};_abba ,_bgd :=_acce .newPdfAnnotationMarkupFromDict (_ffa );if _bgd !=nil {return nil ,_bgd ;
|
||
};_fgac .PdfAnnotationMarkup =_abba ;_fgac .Name =_ffa .Get ("\u004e\u0061\u006d\u0065");_fgac .Sound =_ffa .Get ("\u0053\u006f\u0075n\u0064");return &_fgac ,nil ;};type fontFile struct{_dadg string ;_gecf string ;_feffd _cec .SimpleEncoder ;};
|
||
|
||
// 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 *_eg .PdfObjectArray ;ExtGState _eg .PdfObject ;};
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_begf *PdfField )GetContainingPdfObject ()_eg .PdfObject {return _begf ._afbe };func (_cdf *PdfReader )newPdfActionGoTo3DViewFromDict (_cag *_eg .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_cag .Get ("\u0054\u0041"),V :_cag .Get ("\u0056")},nil ;
|
||
};func _egbde (_gcadf *_ff .ImageBase )(_caaaf Image ){_caaaf .Width =int64 (_gcadf .Width );_caaaf .Height =int64 (_gcadf .Height );_caaaf .BitsPerComponent =int64 (_gcadf .BitsPerComponent );_caaaf .ColorComponents =_gcadf .ColorComponents ;_caaaf .Data =_gcadf .Data ;
|
||
_caaaf ._aaeac =_gcadf .Decode ;_caaaf ._fcec =_gcadf .Alpha ;return _caaaf ;};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_cecfa *OutlineItem )Insert (index uint ,item *OutlineItem ){_afca :=uint (len (_cecfa .Entries ));if index > _afca {index =_afca ;};_cecfa .Entries =append (_cecfa .Entries [:index ],append ([]*OutlineItem {item },_cecfa .Entries [index :]...)...);
|
||
};
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_gadge :map[_eg .PdfObject ]struct{}{},_gced :_dbbge (),_cdggc :_eg .NewParserFromString (txt )};};func (_egdfbc *PdfWriter )addObject (_dfbedd _eg .PdfObject )bool {_ffbccd :=_egdfbc .hasObject (_dfbedd );
|
||
if !_ffbccd {_aceeb :=_eg .ResolveReferencesDeep (_dfbedd ,_egdfbc ._aeceg );if _aceeb !=nil {_dbg .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_aceeb );};_egdfbc ._aecabb =append (_egdfbc ._aecabb ,_dfbedd );
|
||
_egdfbc ._bccbf [_dfbedd ]=struct{}{};return true ;};return false ;};type pdfFontSimple struct{fontCommon ;_acfb *_eg .PdfIndirectObject ;_baga map[_cec .CharCode ]float64 ;_gccbc _cec .TextEncoder ;_fcgd _cec .TextEncoder ;_ggce *PdfFontDescriptor ;
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _eg .PdfObject ;LastChar _eg .PdfObject ;Widths _eg .PdfObject ;Encoding _eg .PdfObject ;_edgae *_ab .RuneCharSafeMap ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdd *PdfActionThread )ToPdfObject ()_eg .PdfObject {_fdd .PdfAction .ToPdfObject ();_fde :=_fdd ._ege ;_ada :=_fde .PdfObject .(*_eg .PdfObjectDictionary );_ada .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeThread )));if _fdd .F !=nil {_ada .Set ("\u0046",_fdd .F .ToPdfObject ());
|
||
};_ada .SetIfNotNil ("\u0044",_fdd .D );_ada .SetIfNotNil ("\u0042",_fdd .B );return _fde ;};
|
||
|
||
// 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 (_dbfe *Image )GetSamples ()[]uint32 {_cgffb :=_ccg .ResampleBytes (_dbfe .Data ,int (_dbfe .BitsPerComponent ));if _dbfe .BitsPerComponent < 8{_cgffb =_dbfe .samplesTrimPadding (_cgffb );};_ebbed :=int (_dbfe .Width )*int (_dbfe .Height )*_dbfe .ColorComponents ;
|
||
if len (_cgffb )< _ebbed {_dbg .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 (_cgffb ),_ebbed );
|
||
return _cgffb ;}else if len (_cgffb )> _ebbed {_dbg .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 (_cgffb ),_ebbed );
|
||
_cgffb =_cgffb [:_ebbed ];};return _cgffb ;};
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_cbeg _eg .PdfObject ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _eg .PdfObject ;T3DV _eg .PdfObject ;T3DA _eg .PdfObject ;T3DI _eg .PdfObject ;T3DB _eg .PdfObject ;};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_aafg ,_bfebg :=_ab .NewStdFontByName (HelveticaName );if !_bfebg {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");
|
||
};_dfebf :=_gecc (_aafg );return &PdfFont {_gdcab :&_dfebf };};
|
||
|
||
// 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 (_efaa *PdfFont )GetCharMetrics (code _cec .CharCode )(CharMetrics ,bool ){var _fafb _ab .CharMetrics ;switch _gcag :=_efaa ._gdcab .(type ){case *pdfFontSimple :if _ebea ,_bbdga :=_gcag .GetCharMetrics (code );_bbdga {return _ebea ,_bbdga ;};case *pdfFontType0 :if _beaag ,_fbeb :=_gcag .GetCharMetrics (code );
|
||
_fbeb {return _beaag ,_fbeb ;};case *pdfCIDFontType0 :if _dacb ,_dddcc :=_gcag .GetCharMetrics (code );_dddcc {return _dacb ,_dddcc ;};case *pdfCIDFontType2 :if _bfced ,_cebd :=_gcag .GetCharMetrics (code );_cebd {return _bfced ,_cebd ;};case *pdfFontType3 :if _cegeg ,_acee :=_gcag .GetCharMetrics (code );
|
||
_acee {return _cegeg ,_acee ;};default:_dbg .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",_efaa ._gdcab );
|
||
return _fafb ,false ;};if _gege ,_caea :=_efaa .GetFontDescriptor ();_caea ==nil &&_gege !=nil {return _ab .CharMetrics {Wx :_gege ._afce },true ;};_dbg .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",_efaa );
|
||
return _fafb ,false ;};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_aeccf *PdfReader )GetEncryptionMethod ()string {_bebge :=_aeccf ._cdggc .GetCrypter ();return _bebge .String ();};
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_dbcag *PdfInfo )ToPdfObject ()_eg .PdfObject {_dcgbb :=_eg .MakeDict ();_dcgbb .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_dbcag .Title );_dcgbb .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_dbcag .Author );_dcgbb .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_dbcag .Subject );
|
||
_dcgbb .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_dbcag .Keywords );_dcgbb .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_dbcag .Creator );_dcgbb .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_dbcag .Producer );
|
||
_dcgbb .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_dbcag .Trapped );if _dbcag .CreationDate !=nil {_dcgbb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dbcag .CreationDate .ToPdfObject ());};if _dbcag .ModifiedDate !=nil {_dcgbb .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_dbcag .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_dggf :=range _dbcag ._fbfgb .Keys (){_dcgbb .SetIfNotNil (_dggf ,_dbcag ._fbfgb .Get (_dggf ));};return _dcgbb ;};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_bggbc *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _bggbc .Range };
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_gbfcb *pdfSignDictionary )GetSubFilter ()string {_aacfef :=_gbfcb .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _aacfef ==nil {return "";};if _ebdfb ,_aegb :=_eg .GetNameVal (_aacfef );_aegb {return _ebdfb ;};return "";};func (_gbcab *PdfReader )newPdfOutlineItemFromIndirectObject (_aaeg *_eg .PdfIndirectObject )(*PdfOutlineItem ,error ){_eabf ,_febcb :=_aaeg .PdfObject .(*_eg .PdfObjectDictionary );
|
||
if !_febcb {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_gbac :=NewPdfOutlineItem ();_afcab :=_eabf .Get ("\u0054\u0069\u0074l\u0065");
|
||
if _afcab ==nil {return nil ,_e .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
|
||
};_bedb ,_fccbd :=_eg .GetString (_afcab );if !_fccbd {return nil ,_e .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_afcab );};_gbac .Title =_bedb ;if _gbegg :=_eabf .Get ("\u0043\u006f\u0075n\u0074");
|
||
_gbegg !=nil {_faeee ,_gfcg :=_gbegg .(*_eg .PdfObjectInteger );if !_gfcg {return nil ,_e .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_gbegg );};_dbebf :=int64 (*_faeee );
|
||
_gbac .Count =&_dbebf ;};if _gcdag :=_eabf .Get ("\u0044\u0065\u0073\u0074");_gcdag !=nil {_gbac .Dest =_eg .ResolveReference (_gcdag );if !_gbcab ._bebe {_dcgeb :=_gbcab .traverseObjectData (_gbac .Dest );if _dcgeb !=nil {return nil ,_dcgeb ;};};};if _edbd :=_eabf .Get ("\u0041");
|
||
_edbd !=nil {_gbac .A =_eg .ResolveReference (_edbd );if !_gbcab ._bebe {_baef :=_gbcab .traverseObjectData (_gbac .A );if _baef !=nil {return nil ,_baef ;};};};if _aeae :=_eabf .Get ("\u0053\u0045");_aeae !=nil {_gbac .SE =nil ;};if _aecab :=_eabf .Get ("\u0043");
|
||
_aecab !=nil {_gbac .C =_eg .ResolveReference (_aecab );};if _feaa :=_eabf .Get ("\u0046");_feaa !=nil {_gbac .F =_eg .ResolveReference (_feaa );};return _gbac ,nil ;};
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_fcaab *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _fcaab .AcroForm ==nil {return nil ,nil ;};if _fcaab .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_cbafb *PdfSignature ;
|
||
_cgcga *PdfField ;_dgdeb SignatureHandler ;};var _geegc []*sigFieldPair ;for _ ,_efada :=range _fcaab .AcroForm .AllFields (){if _efada .V ==nil {continue ;};if _faegg ,_eagab :=_eg .GetDict (_efada .V );_eagab {if _dcfgc ,_aabeb :=_eg .GetNameVal (_faegg .Get ("\u0054\u0079\u0070\u0065"));
|
||
_aabeb &&_dcfgc =="\u0053\u0069\u0067"{_bdgbg ,_ffced :=_eg .GetIndirect (_efada .V );if !_ffced {_dbg .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 ;};_dcce ,_aaafff :=_fcaab .newPdfSignatureFromIndirect (_bdgbg );if _aaafff !=nil {return nil ,_aaafff ;};var _fdedf SignatureHandler ;for _ ,_fggbg :=range handlers {if _fggbg .IsApplicable (_dcce ){_fdedf =_fggbg ;break ;};};
|
||
_geegc =append (_geegc ,&sigFieldPair {_cbafb :_dcce ,_cgcga :_efada ,_dgdeb :_fdedf });};};};var _fefbb []SignatureValidationResult ;for _ ,_ggece :=range _geegc {_acdcg :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_ggece ._cgcga }};
|
||
if _ggece ._dgdeb ==nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_fefbb =append (_fefbb ,_acdcg );continue ;};_abebef ,_eaeeb :=_ggece ._dgdeb .NewDigest (_ggece ._cbafb );
|
||
if _eaeeb !=nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_eaeeb .Error ());_fefbb =append (_fefbb ,_acdcg );continue ;};_aegga :=_ggece ._cbafb .ByteRange ;if _aegga ==nil {_acdcg .Errors =append (_acdcg .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
|
||
_fefbb =append (_fefbb ,_acdcg );continue ;};for _cegag :=0;_cegag < _aegga .Len ();_cegag =_cegag +2{_cfabc ,_ :=_eg .GetNumberAsInt64 (_aegga .Get (_cegag ));_bffef ,_ :=_eg .GetIntVal (_aegga .Get (_cegag +1));if _ ,_dcbcff :=_fcaab ._addac .Seek (_cfabc ,_de .SeekStart );
|
||
_dcbcff !=nil {return nil ,_dcbcff ;};_dcag :=make ([]byte ,_bffef );if _ ,_eefddf :=_fcaab ._addac .Read (_dcag );_eefddf !=nil {return nil ,_eefddf ;};_abebef .Write (_dcag );};_gbedb ,_eaeeb :=_ggece ._dgdeb .Validate (_ggece ._cbafb ,_abebef );if _eaeeb !=nil {return nil ,_eaeeb ;
|
||
};_gbedb .Name =_ggece ._cbafb .Name .Decoded ();_gbedb .Reason =_ggece ._cbafb .Reason .Decoded ();if _ggece ._cbafb .M !=nil {_fdded ,_fcdg :=NewPdfDate (_ggece ._cbafb .M .String ());if _fcdg !=nil {_gbedb .Errors =append (_gbedb .Errors ,_fcdg .Error ());
|
||
continue ;};_gbedb .Date =_fdded ;};_gbedb .ContactInfo =_ggece ._cbafb .ContactInfo .Decoded ();_gbedb .Location =_ggece ._cbafb .Location .Decoded ();_gbedb .Fields =_acdcg .Fields ;_fefbb =append (_fefbb ,_gbedb );};return _fefbb ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_eecde *PdfPage )GetContainingPdfObject ()_eg .PdfObject {return _eecde ._caaef };func _egbe (_bacg ,_addca string )string {if _dc .Contains (_bacg ,"\u002b"){_ffcc :=_dc .Split (_bacg ,"\u002b");if len (_ffcc )==2{_bacg =_ffcc [1];};};return _addca +"\u002b"+_bacg ;
|
||
};
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _eg .PdfObject ;Name _eg .PdfObject ;};func (_dcbc *PdfAppender )mergeResources (_dea ,_fadg _eg .PdfObject ,_efdc map[_eg .PdfObjectName ]_eg .PdfObjectName )_eg .PdfObject {if _fadg ==nil &&_dea ==nil {return nil ;
|
||
};if _fadg ==nil {return _dea ;};_bcfc ,_gdcc :=_eg .GetDict (_fadg );if !_gdcc {return _dea ;};if _dea ==nil {_aegg :=_eg .MakeDict ();_aegg .Merge (_bcfc );return _fadg ;};_egfe ,_gdcc :=_eg .GetDict (_dea );if !_gdcc {_dbg .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");
|
||
_egfe =_eg .MakeDict ();};for _ ,_dedg :=range _bcfc .Keys (){if _deaf ,_ebgg :=_efdc [_dedg ];_ebgg {_egfe .Set (_deaf ,_bcfc .Get (_dedg ));}else {_egfe .Set (_dedg ,_bcfc .Get (_dedg ));};};return _egfe ;};
|
||
|
||
// 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 (_faegf []_eg .PdfObject )([]_eg .PdfObject ,error );};func _cfabd ()string {_egbeg .Lock ();defer _egbeg .Unlock ();_dcagg :=_dd .GetLicenseKey ();if len (_gdagd )> 0&&(_dcagg .IsLicensed ()||_dfgac ){return _gdagd ;};
|
||
return _e .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_abbg (),_dcagg .TypeToString ());};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdda *PdfAnnotationLine )ToPdfObject ()_eg .PdfObject {_fdda .PdfAnnotation .ToPdfObject ();_cbfe :=_fdda ._gag ;_aaced :=_cbfe .PdfObject .(*_eg .PdfObjectDictionary );_fdda .PdfAnnotationMarkup .appendToPdfDictionary (_aaced );_aaced .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_aaced .SetIfNotNil ("\u004c",_fdda .L );_aaced .SetIfNotNil ("\u0042\u0053",_fdda .BS );_aaced .SetIfNotNil ("\u004c\u0045",_fdda .LE );_aaced .SetIfNotNil ("\u0049\u0043",_fdda .IC );_aaced .SetIfNotNil ("\u004c\u004c",_fdda .LL );_aaced .SetIfNotNil ("\u004c\u004c\u0045",_fdda .LLE );
|
||
_aaced .SetIfNotNil ("\u0043\u0061\u0070",_fdda .Cap );_aaced .SetIfNotNil ("\u0049\u0054",_fdda .IT );_aaced .SetIfNotNil ("\u004c\u004c\u004f",_fdda .LLO );_aaced .SetIfNotNil ("\u0043\u0050",_fdda .CP );_aaced .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fdda .Measure );
|
||
_aaced .SetIfNotNil ("\u0043\u004f",_fdda .CO );return _cbfe ;};
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_faeg :=&PdfColorspaceLab {};_faeg .BlackPoint =[]float64 {0.0,0.0,0.0};_faeg .Range =[]float64 {-100,100,-100,100};return _faeg ;};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_fgge *PdfColorLab )A ()float64 {return _fgge [1]};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_egfa *PdfColorspaceSpecialSeparation )ToPdfObject ()_eg .PdfObject {_gbfc :=_eg .MakeArray (_eg .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_gbfc .Append (_egfa .ColorantName );_gbfc .Append (_egfa .AlternateSpace .ToPdfObject ());
|
||
_gbfc .Append (_egfa .TintTransform .ToPdfObject ());if _egfa ._cegff !=nil {_egfa ._cegff .PdfObject =_gbfc ;return _egfa ._cegff ;};return _gbfc ;};func (_fbdgb *PdfReader )newPdfAcroFormFromDict (_fage *_eg .PdfIndirectObject ,_fefa *_eg .PdfObjectDictionary )(*PdfAcroForm ,error ){_ffbaf :=NewPdfAcroForm ();
|
||
if _fage !=nil {_ffbaf ._edeaf =_fage ;_fage .PdfObject =_eg .MakeDict ();};if _dfgb :=_fefa .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_dfgb !=nil {_bgfe ,_adac :=_eg .GetArray (_dfgb );if !_adac {return nil ,_e .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_dfgb );
|
||
};var _ddfd []*PdfField ;for _ ,_cceeb :=range _bgfe .Elements (){_gbdg ,_cedgg :=_eg .GetIndirect (_cceeb );if !_cedgg {if _ ,_gedc :=_cceeb .(*_eg .PdfObjectNull );_gedc {_dbg .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 ;};_dbg .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",_cceeb );
|
||
return nil ,_e .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_afbfff ,_bdgad :=_fbdgb .newPdfFieldFromIndirectObject (_gbdg ,nil );
|
||
if _bdgad !=nil {return nil ,_bdgad ;};_dbg .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_afbfff );_ddfd =append (_ddfd ,_afbfff );};_ffbaf .Fields =&_ddfd ;};if _aaec :=_fefa .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_aaec !=nil {_deedc ,_cfge :=_eg .GetBool (_aaec );if _cfge {_ffbaf .NeedAppearances =_deedc ;}else {_dbg .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",_aaec );
|
||
};};if _ggbcc :=_fefa .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ggbcc !=nil {_ecdba ,_cdef :=_eg .GetInt (_ggbcc );if _cdef {_ffbaf .SigFlags =_ecdba ;}else {_dbg .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",_ggbcc );
|
||
};};if _ffbdcc :=_fefa .Get ("\u0043\u004f");_ffbdcc !=nil {_dfbd ,_fbbbg :=_eg .GetArray (_ffbdcc );if _fbbbg {_ffbaf .CO =_dfbd ;}else {_dbg .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",_ffbdcc );
|
||
};};if _ddgd :=_fefa .Get ("\u0044\u0052");_ddgd !=nil {if _efbe ,_edfcd :=_eg .GetDict (_ddgd );_edfcd {_dfdfd ,_aegc :=NewPdfPageResourcesFromDict (_efbe );if _aegc !=nil {_dbg .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_aegc );
|
||
return nil ,_aegc ;};_ffbaf .DR =_dfdfd ;}else {_dbg .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",_ddgd );};};if _cdag :=_fefa .Get ("\u0044\u0041");
|
||
_cdag !=nil {_gfcfg ,_dcdfe :=_eg .GetString (_cdag );if _dcdfe {_ffbaf .DA =_gfcfg ;}else {_dbg .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",_cdag );
|
||
};};if _fafbb :=_fefa .Get ("\u0051");_fafbb !=nil {_fcdaa ,_abggg :=_eg .GetInt (_fafbb );if _abggg {_ffbaf .Q =_fcdaa ;}else {_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_fafbb );
|
||
};};if _gdegc :=_fefa .Get ("\u0058\u0046\u0041");_gdegc !=nil {_ffbaf .XFA =_gdegc ;};_ffbaf .ToPdfObject ();return _ffbaf ,nil ;};
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_ggcf *PdfRectangle )Normalize (){if _ggcf .Llx > _ggcf .Urx {_ggcf .Llx ,_ggcf .Urx =_ggcf .Urx ,_ggcf .Llx ;};if _ggcf .Lly > _ggcf .Ury {_ggcf .Lly ,_ggcf .Ury =_ggcf .Ury ,_ggcf .Lly ;};};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_egcd *pdfSignDictionary )WriteString ()string {_egcd ._addad =0;_egcd ._gaeef =0;_egcd ._ddbef =0;_egcd ._bfgaa =0;_dgaaf :=_cbd .NewBuffer (nil );_dgaaf .WriteString ("\u003c\u003c");for _ ,_acfdc :=range _egcd .Keys (){_fdggf :=_egcd .Get (_acfdc );
|
||
switch _acfdc {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._ddbef =_dgaaf .Len ();_dgaaf .WriteString (_fdggf .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._bfgaa =_dgaaf .Len ()-1;
|
||
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._addad =_dgaaf .Len ();_dgaaf .WriteString (_fdggf .WriteString ());_dgaaf .WriteString ("\u0020");_egcd ._gaeef =_dgaaf .Len ()-1;
|
||
default:_dgaaf .WriteString (_acfdc .WriteString ());_dgaaf .WriteString ("\u0020");_dgaaf .WriteString (_fdggf .WriteString ());};};_dgaaf .WriteString ("\u003e\u003e");return _dgaaf .String ();};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bcc *PdfActionLaunch )ToPdfObject ()_eg .PdfObject {_bcc .PdfAction .ToPdfObject ();_aacb :=_bcc ._ege ;_ddf :=_aacb .PdfObject .(*_eg .PdfObjectDictionary );_ddf .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeLaunch )));if _bcc .F !=nil {_ddf .Set ("\u0046",_bcc .F .ToPdfObject ());
|
||
};_ddf .SetIfNotNil ("\u0057\u0069\u006e",_bcc .Win );_ddf .SetIfNotNil ("\u004d\u0061\u0063",_bcc .Mac );_ddf .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bcc .Unix );_ddf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bcc .NewWindow );return _aacb ;
|
||
};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_fcfeg pdfCIDFontType2 )Encoder ()_cec .TextEncoder {return _fcfeg ._befc };
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _eg .PdfObject ;T _eg .PdfObject ;Operation _eg .PdfObject ;};
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_fd :=NewPdfAction ();_be :=&PdfActionGoTo {};_be .PdfAction =_fd ;_fd .SetContext (_be );return _be ;};func (_dfce *PdfReader )newPdfActionSubmitFormFromDict (_cafe *_eg .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_degb ,_gfab :=_gbbe (_cafe .Get ("\u0046"));
|
||
if _gfab !=nil {return nil ,_gfab ;};return &PdfActionSubmitForm {F :_degb ,Fields :_cafe .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cafe .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_dfbed *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dfbed .fill (provider ,nil )};
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_fef :=NewPdfAnnotation ();_fea :=&PdfAnnotationCaret {};_fea .PdfAnnotation =_fef ;_fea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fef .SetContext (_fea );return _fea ;};
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_fdde *PdfField )SetContext (ctx PdfModel ){_fdde ._ceag =ctx };type pdfFontType0 struct{fontCommon ;_becfa *_eg .PdfIndirectObject ;_eceba _cec .TextEncoder ;Encoding _eg .PdfObject ;DescendantFont *PdfFont ;_adad *_aff .CMap ;};
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_bcbb *PdfField )Flags ()FieldFlag {var _bbbc FieldFlag ;_ecgfa ,_gcaaf :=_bcbb .inherit (func (_fbbf *PdfField )bool {if _fbbf .Ff !=nil {_bbbc =FieldFlag (*_bcbb .Ff );return true ;};return false ;});if _gcaaf !=nil {_dbg .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",_gcaaf );
|
||
};if !_ecgfa {_dbg .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 _bbbc ;};func _bbafc (_gfde *PdfField ,_fagg _eg .PdfObject ){for _ ,_aebge :=range _gfde .Annotations {_aebge .AS =_fagg ;
|
||
_aebge .ToPdfObject ();};};
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_ggfdc *XObjectImage )GetContainingPdfObject ()_eg .PdfObject {return _ggfdc ._dcdb };func _eagd (_dfebd _eg .PdfObject ,_bfgc *fontCommon )(*_aff .CMap ,error ){_abgbe ,_eeaab :=_eg .GetStream (_dfebd );if !_eeaab {_dbg .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",_dfebd );
|
||
return nil ,_eg .ErrTypeError ;};_aefdb ,_caac :=_eg .DecodeStream (_abgbe );if _caac !=nil {return nil ,_caac ;};_bebaaf ,_caac :=_aff .LoadCmapFromData (_aefdb ,!_bfgc .isCIDFont ());if _caac !=nil {_dbg .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",_abgbe .ObjectNumber ,_caac );
|
||
};return _bebaaf ,_caac ;};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;NewWindow _eg .PdfObject ;T _eg .PdfObject ;};func _gdea (_egebc _eg .PdfObject )(*PdfFunctionType3 ,error ){_ccfg :=&PdfFunctionType3 {};var _dcacg *_eg .PdfObjectDictionary ;if _deec ,_gcddf :=_egebc .(*_eg .PdfIndirectObject );
|
||
_gcddf {_bgged ,_beabf :=_deec .PdfObject .(*_eg .PdfObjectDictionary );if !_beabf {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ccfg ._gfddd =_deec ;_dcacg =_bgged ;}else if _fead ,_eefge :=_egebc .(*_eg .PdfObjectDictionary );
|
||
_eefge {_dcacg =_fead ;}else {return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gaagc ,_gcdga :=_eg .TraceToDirectObject (_dcacg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eg .PdfObjectArray );
|
||
if !_gcdga {_dbg .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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 _gaagc .Len ()!=2{_dbg .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_bbd .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fbbdg ,_fgabf :=_gaagc .ToFloat64Array ();
|
||
if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Domain =_fbbdg ;_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0052\u0061\u006eg\u0065")).(*_eg .PdfObjectArray );if _gcdga {if _gaagc .Len ()< 0||_gaagc .Len ()%2!=0{return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_afbfd ,_dbagg :=_gaagc .ToFloat64Array ();if _dbagg !=nil {return nil ,_dbagg ;};_ccfg .Range =_afbfd ;};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_eg .PdfObjectArray );if !_gcdga {_dbg .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 ,_bbd .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");};_ccfg .Functions =[]PdfFunction {};
|
||
for _ ,_afefg :=range _gaagc .Elements (){_begb ,_abcbb :=_dgbga (_afefg );if _abcbb !=nil {return nil ,_abcbb ;};_ccfg .Functions =append (_ccfg .Functions ,_begb );};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_eg .PdfObjectArray );
|
||
if !_gcdga {_dbg .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_bbd .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");
|
||
};_ffggc ,_fgabf :=_gaagc .ToFloat64Array ();if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Bounds =_ffggc ;if len (_ccfg .Bounds )!=len (_ccfg .Functions )-1{_dbg .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 (_ccfg .Bounds ),len (_ccfg .Functions ));
|
||
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaagc ,_gcdga =_eg .TraceToDirectObject (_dcacg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eg .PdfObjectArray );if !_gcdga {_dbg .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_bbd .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");};_gcbce ,_fgabf :=_gaagc .ToFloat64Array ();
|
||
if _fgabf !=nil {return nil ,_fgabf ;};_ccfg .Encode =_gcbce ;if len (_ccfg .Encode )!=2*len (_ccfg .Functions ){_dbg .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 (_ccfg .Encode ),len (_ccfg .Functions ));
|
||
return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _ccfg ,nil ;};
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_fddcbg *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_fddcbg ._dacab =majorVersion ;_fddcbg ._ecae =minorVersion ;};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_bacgd *PdfSignature )SetReason (reason string ){_bacgd .Reason =_eg .MakeString (reason )};
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};func _egdg (_bdca *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_bdca }};
|
||
|
||
// 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{_cdggc *_eg .PdfParser ;_faafd _eg .PdfObject ;_debff *_eg .PdfIndirectObject ;_faacgc *_eg .PdfObjectDictionary ;_dfff []*_eg .PdfIndirectObject ;PageList []*PdfPage ;_abddb int ;_efdg *_eg .PdfObjectDictionary ;_ebgea *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_gced *modelManager ;_bebe bool ;_gadge map[_eg .PdfObject ]struct{};_addac _de .ReadSeeker ;_ebcgb string ;};func _bfbaf (_dfeefc *_eg .PdfObjectDictionary )(*PdfShadingType2 ,error ){_cacdf :=PdfShadingType2 {};
|
||
_acebb :=_dfeefc .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _acebb ==nil {_dbg .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 ;};_gbccg ,_feecb :=_acebb .(*_eg .PdfObjectArray );if !_feecb {_dbg .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",_acebb );
|
||
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _gbccg .Len ()!=4{_dbg .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",_gbccg .Len ());
|
||
return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_cacdf .Coords =_gbccg ;if _feaea :=_dfeefc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_feaea !=nil {_feaea =_eg .TraceToDirectObject (_feaea );
|
||
_dgfg ,_faedd :=_feaea .(*_eg .PdfObjectArray );if !_faedd {_dbg .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",_feaea );return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_cacdf .Domain =_dgfg ;};_acebb =_dfeefc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _acebb ==nil {_dbg .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 ;};_cacdf .Function =[]PdfFunction {};if _fgaa ,_gbfgdc :=_acebb .(*_eg .PdfObjectArray );_gbfgdc {for _ ,_daegg :=range _fgaa .Elements (){_fdffb ,_geadd :=_dgbga (_daegg );if _geadd !=nil {_dbg .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",_geadd );
|
||
return nil ,_geadd ;};_cacdf .Function =append (_cacdf .Function ,_fdffb );};}else {_gdagf ,_aadb :=_dgbga (_acebb );if _aadb !=nil {_dbg .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",_aadb );
|
||
return nil ,_aadb ;};_cacdf .Function =append (_cacdf .Function ,_gdagf );};if _ecead :=_dfeefc .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ecead !=nil {_ecead =_eg .TraceToDirectObject (_ecead );_egdgf ,_bffa :=_ecead .(*_eg .PdfObjectArray );if !_bffa {_dbg .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",_ecead );
|
||
return nil ,_eg .ErrTypeError ;};if _egdgf .Len ()!=2{_dbg .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",_egdgf .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_cacdf .Extend =_egdgf ;};return &_cacdf ,nil ;};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_egbeg .Lock ();defer _egbeg .Unlock ();_ebgfe =creator };
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_fecce *PdfFunctionType4 )ToPdfObject ()_eg .PdfObject {_caeae :=_fecce ._egdfb ;if _caeae ==nil {_fecce ._egdfb =&_eg .PdfObjectStream {};_caeae =_fecce ._egdfb ;};_bebgb :=_eg .MakeDict ();_bebgb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eg .MakeInteger (4));
|
||
_bbgg :=&_eg .PdfObjectArray {};for _ ,_ddaea :=range _fecce .Domain {_bbgg .Append (_eg .MakeFloat (_ddaea ));};_bebgb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bbgg );_gafg :=&_eg .PdfObjectArray {};for _ ,_acba :=range _fecce .Range {_gafg .Append (_eg .MakeFloat (_acba ));
|
||
};_bebgb .Set ("\u0052\u0061\u006eg\u0065",_gafg );if _fecce ._efgdd ==nil &&_fecce .Program !=nil {_fecce ._efgdd =[]byte (_fecce .Program .String ());};_bebgb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_fecce ._efgdd ))));
|
||
_caeae .Stream =_fecce ._efgdd ;_caeae .PdfObjectDictionary =_bebgb ;return _caeae ;};
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_afccb *PdfWriter )GetOptimizer ()Optimizer {return _afccb ._efdcf };
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_fbdfg :=&PdfPageResources {};_fbdfg ._fbcbc =_eg .MakeDict ();return _fbdfg ;};
|
||
|
||
// 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 ;_ffae *_eg .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_eg .PdfObjectName ;Filter *_eg .PdfObjectName ;SubFilter *_eg .PdfObjectName ;Contents *_eg .PdfObjectString ;Cert _eg .PdfObject ;ByteRange *_eg .PdfObjectArray ;Reference *_eg .PdfObjectArray ;Changes *_eg .PdfObjectArray ;Name *_eg .PdfObjectString ;
|
||
M *_eg .PdfObjectString ;Location *_eg .PdfObjectString ;Reason *_eg .PdfObjectString ;ContactInfo *_eg .PdfObjectString ;R *_eg .PdfObjectInteger ;V *_eg .PdfObjectInteger ;PropBuild *_eg .PdfObjectDictionary ;PropAuthTime *_eg .PdfObjectInteger ;PropAuthType *_eg .PdfObjectName ;
|
||
};func (_fcfc *pdfFontSimple )updateStandard14Font (){_ggfd ,_bfga :=_fcfc .Encoder ().(_cec .SimpleEncoder );if !_bfga {_dbg .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",_fcfc .Encoder (),_fcfc );
|
||
return ;};_gdfgf :=_ggfd .Charcodes ();_fcfc ._baga =make (map[_cec .CharCode ]float64 ,len (_gdfgf ));for _ ,_fbgg :=range _gdfgf {_dedb ,_ :=_ggfd .CharcodeToRune (_fbgg );_cbfca ,_ :=_fcfc ._edgae .Read (_dedb );_fcfc ._baga [_fbgg ]=_cbfca .Wx ;};};
|
||
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_bgdg *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gea *PdfAnnotationPopup )ToPdfObject ()_eg .PdfObject {_gea .PdfAnnotation .ToPdfObject ();_ffggf :=_gea ._gag ;_edb :=_ffggf .PdfObject .(*_eg .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_edb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gea .Parent );_edb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gea .Open );return _ffggf ;};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_ddeeg *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _ddeeg .MediaBox !=nil {return _ddeeg .MediaBox ,nil ;};_ebdf :=_ddeeg .Parent ;for _ebdf !=nil {_aafced ,_dfdcb :=_eg .GetDict (_ebdf );if !_dfdcb {return nil ,_bbd .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 _acfbc :=_aafced .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_acfbc !=nil {_egaad ,_acae :=_eg .GetArray (_acfbc );if !_acae {return nil ,_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_dfgg ,_bdgec :=NewPdfRectangle (*_egaad );if _bdgec !=nil {return nil ,_bdgec ;};return _dfgg ,nil ;};_ebdf =_aafced .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_bbd .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// 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 ,_cec .SimpleEncoder ,error ){_gdecb ,_cdfdd :=_aefad (basefont );if _cdfdd !=nil {return nil ,nil ,_cdfdd ;};_fggdd ,_ebdd :=_gdecb .Encoder ().(_cec .SimpleEncoder );
|
||
if !_ebdd {return nil ,nil ,_e .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_gdecb .Encoder ());
|
||
};_dfef :=make (map[rune ]_cec .GlyphName );for _bgegd :=range alphabet {if _ ,_deafd :=_fggdd .RuneToCharcode (_bgegd );!_deafd {_ ,_gbca :=_gdecb ._edgae .Read (_bgegd );if !_gbca {_dbg .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",_bgegd ,_bgegd );
|
||
continue ;};_bcfd ,_gbca :=_cec .RuneToGlyph (_bgegd );if !_gbca {_dbg .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_bgegd ,_bgegd );continue ;};if len (_dfef )>=255{return nil ,nil ,_bbd .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");
|
||
};_dfef [_bgegd ]=_bcfd ;};};var (_dccg []_cec .CharCode ;_dgacc []_cec .CharCode ;);for _efbc :=_cec .CharCode (1);_efbc <=0xff;_efbc ++{_fdegb ,_debga :=_fggdd .CharcodeToRune (_efbc );if !_debga {_dccg =append (_dccg ,_efbc );continue ;};if _ ,_debga =alphabet [_fdegb ];
|
||
!_debga {_dgacc =append (_dgacc ,_efbc );};};_fabef :=append (_dccg ,_dgacc ...);if len (_fabef )< len (_dfef ){return nil ,nil ,_e .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_dfef ),len (_fabef ));
|
||
};_deea :=make ([]rune ,0,len (_dfef ));for _afbff :=range _dfef {_deea =append (_deea ,_afbff );};_ae .Slice (_deea ,func (_gfec ,_gcdc int )bool {return _deea [_gfec ]< _deea [_gcdc ]});_eabb :=make (map[_cec .CharCode ]_cec .GlyphName ,len (_deea ));
|
||
for _ ,_fdedd :=range _deea {_gagfb :=_fabef [0];_fabef =_fabef [1:];_eabb [_gagfb ]=_dfef [_fdedd ];};_fggdd =_cec .ApplyDifferences (_fggdd ,_eabb );_gdecb .SetEncoder (_fggdd );return &PdfFont {_gdcab :&_gdecb },_fggdd ,nil ;};
|
||
|
||
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
// Currently, the Outline object can only be used to construct PDF outlines.
|
||
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_bfed *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_fbdg :=_bc .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fbdg *_bfed .R ()),uint32 (_fbdg *_bfed .G ()),uint32 (_fbdg *_bfed .B ())};};
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_eebc *PdfPattern )GetContainingPdfObject ()_eg .PdfObject {return _eebc ._cfaag };func (_ggabc *PdfReader )loadAnnotations (_aegf _eg .PdfObject )([]*PdfAnnotation ,error ){_cbfcd ,_gfee :=_eg .GetArray (_aegf );if !_gfee {return nil ,_e .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _deeac []*PdfAnnotation ;for _ ,_afgcg :=range _cbfcd .Elements (){_afgcg =_eg .ResolveReference (_afgcg );if _ ,_eedde :=_afgcg .(*_eg .PdfObjectNull );_eedde {continue ;};_gdba ,_baed :=_afgcg .(*_eg .PdfObjectDictionary );_ggef ,_addcc :=_afgcg .(*_eg .PdfIndirectObject );
|
||
if _baed {_ggef =&_eg .PdfIndirectObject {};_ggef .PdfObject =_gdba ;}else {if !_addcc {return nil ,_e .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};};_fedbf ,_efaed :=_ggabc .newPdfAnnotationFromIndirectObject (_ggef );if _efaed !=nil {return nil ,_efaed ;};switch _debfg :=_fedbf .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_cabf :=range _ggabc .AcroForm .AllFields (){if _cabf ._afbe ==_debfg .Parent {_debfg ._cdda =_cabf ;
|
||
break ;};};};if _fedbf !=nil {_deeac =append (_deeac ,_fedbf );};};return _deeac ,nil ;};func (_fee *PdfReader )newPdfActionNamedFromDict (_egfb *_eg .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_egfb .Get ("\u004e")},nil ;
|
||
};
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_dbd :=NewPdfAnnotation ();_dee :=&PdfAnnotationHighlight {};_dee .PdfAnnotation =_dbd ;_dee .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dbd .SetContext (_dee );return _dee ;};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_geff *PdfFieldButton )IsPush ()bool {return _geff .GetType ()==ButtonTypePush };
|
||
|
||
// 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 (_bec PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_eg .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_ddef []_eg .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_cebg []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_fcfg *PdfColorspaceICCBased )GetNumComponents ()int {return _fcfg .N };func (_fcea *PdfWriter )hasObject (_cfdgc _eg .PdfObject )bool {_ ,_dcbbg :=_fcea ._bccbf [_cfdgc ];return _dcbbg ;};func _cfafcb (_caacd _eg .PdfObject )(*PdfPageResourcesColorspaces ,error ){_bdfeb :=&PdfPageResourcesColorspaces {};
|
||
if _aggaa ,_agcgb :=_caacd .(*_eg .PdfIndirectObject );_agcgb {_bdfeb ._abbc =_aggaa ;_caacd =_aggaa .PdfObject ;};_ggdc ,_bfaee :=_eg .GetDict (_caacd );if !_bfaee {return nil ,_bbd .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_bdfeb .Names =[]string {};_bdfeb .Colorspaces =map[string ]PdfColorspace {};for _ ,_dcfeb :=range _ggdc .Keys (){_gabfg :=_ggdc .Get (_dcfeb );_bdfeb .Names =append (_bdfeb .Names ,string (_dcfeb ));_bfdg ,_ecefc :=NewPdfColorspaceFromPdfObject (_gabfg );
|
||
if _ecefc !=nil {return nil ,_ecefc ;};_bdfeb .Colorspaces [string (_dcfeb )]=_bfdg ;};return _bdfeb ,nil ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_daffe *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_dabgc :=func (_dcda float64 )float64 {if _dcda >=6.0/29{return _dcda *_dcda *_dcda ;};return 108.0/841*(_dcda -4/29);};_aaae :=img ._aaeac ;if len (_aaae )!=6{_dbg .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");
|
||
_aaae =_daffe .DecodeArray ();};_acacd :=_ccg .NewReader (img .getBase ());_edg :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._fcec ,img ._aaeac );_gceg :=_ccg .NewWriter (_edg );_beeb :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_gccdg :=make ([]uint32 ,3);var (_abdg error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_ccee ,_aee ,_bcbeb float64 ;);for {_abdg =_acacd .ReadSamples (_gccdg );if _abdg ==_de .EOF {break ;}else if _abdg !=nil {return img ,_abdg ;};Ls =float64 (_gccdg [0])/_beeb ;
|
||
As =float64 (_gccdg [1])/_beeb ;Bs =float64 (_gccdg [2])/_beeb ;Ls =_ff .LinearInterpolate (Ls ,0.0,1.0,_aaae [0],_aaae [1]);As =_ff .LinearInterpolate (As ,0.0,1.0,_aaae [2],_aaae [3]);Bs =_ff .LinearInterpolate (Bs ,0.0,1.0,_aaae [4],_aaae [5]);L =(Ls +16)/116+As /500;
|
||
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_daffe .WhitePoint [0]*_dabgc (L );Y =_daffe .WhitePoint [1]*_dabgc (M );Z =_daffe .WhitePoint [2]*_dabgc (N );_ccee =3.240479*X +-1.537150*Y +-0.498535*Z ;_aee =-0.969256*X +1.875992*Y +0.041556*Z ;_bcbeb =0.055648*X +-0.204043*Y +1.057311*Z ;
|
||
_ccee =_bc .Min (_bc .Max (_ccee ,0),1.0);_aee =_bc .Min (_bc .Max (_aee ,0),1.0);_bcbeb =_bc .Min (_bc .Max (_bcbeb ,0),1.0);_gccdg [0]=uint32 (_ccee *_beeb );_gccdg [1]=uint32 (_aee *_beeb );_gccdg [2]=uint32 (_bcbeb *_beeb );if _abdg =_gceg .WriteSamples (_gccdg );
|
||
_abdg !=nil {return img ,_abdg ;};};return _egbde (&_edg ),nil ;};
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_eg .PdfObjectBool ;SigFlags *_eg .PdfObjectInteger ;CO *_eg .PdfObjectArray ;DR *PdfPageResources ;DA *_eg .PdfObjectString ;Q *_eg .PdfObjectInteger ;XFA _eg .PdfObject ;_edeaf *_eg .PdfIndirectObject ;
|
||
};var _dfgac =false ;
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _eg .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _eg .PdfObject ;Contents _eg .PdfObject ;
|
||
Rotate *int64 ;Group _eg .PdfObject ;Thumb _eg .PdfObject ;B _eg .PdfObject ;Dur _eg .PdfObject ;Trans _eg .PdfObject ;AA _eg .PdfObject ;Metadata _eg .PdfObject ;PieceInfo _eg .PdfObject ;StructParents _eg .PdfObject ;ID _eg .PdfObject ;PZ _eg .PdfObject ;
|
||
SeparationInfo _eg .PdfObject ;Tabs _eg .PdfObject ;TemplateInstantiated _eg .PdfObject ;PresSteps _eg .PdfObject ;UserUnit _eg .PdfObject ;VP _eg .PdfObject ;Annots _eg .PdfObject ;_egge []*PdfAnnotation ;_ecbba *_eg .PdfObjectDictionary ;_caaef *_eg .PdfIndirectObject ;
|
||
_fdfdec *PdfReader ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cabe pdfFontType0 )Encoder ()_cec .TextEncoder {return _cabe ._eceba };
|
||
|
||
// 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 ;_gfddd *_eg .PdfIndirectObject ;};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_fceb fontCommon )String ()string {return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_fceb .coreString ());};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_adaff *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=_adaff .GetNumComponents (){return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggcca ,_adff :=_eg .GetNumbersAsFloat (objects );
|
||
if _adff !=nil {return nil ,_adff ;};return _adaff .ColorFromFloats (_ggcca );};
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _eg .PdfObject )(PdfColorspace ,error ){var _aacfe *_eg .PdfIndirectObject ;var _cdee *_eg .PdfObjectName ;var _dgcgb *_eg .PdfObjectArray ;if _acfge ,_ebfa :=obj .(*_eg .PdfIndirectObject );_ebfa {_aacfe =_acfge ;
|
||
};obj =_eg .TraceToDirectObject (obj );switch _fcag :=obj .(type ){case *_eg .PdfObjectArray :_dgcgb =_fcag ;case *_eg .PdfObjectName :_cdee =_fcag ;};if _cdee !=nil {switch *_cdee {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:_dbg .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",*_cdee );return nil ,_fgega ;};};if _dgcgb !=nil &&_dgcgb .Len ()> 0{var _egae _eg .PdfObject =_aacfe ;
|
||
if _aacfe ==nil {_egae =_dgcgb ;};if _ceff ,_dfbb :=_eg .GetName (_dgcgb .Get (0));_dfbb {switch _ceff .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _dgcgb .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _becf (_egae );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _fgca (_egae );
|
||
case "\u004c\u0061\u0062":return _degbd (_egae );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _fbgdc (_egae );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _adbbg (_egae );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _acde (_egae );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _feaee (_egae );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _cafa (_egae );default:_dbg .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",*_ceff );
|
||
};};};_dbg .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 ;};
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_cagf :=&PdfColorspaceCalGray {};_cagf .BlackPoint =[]float64 {0.0,0.0,0.0};_cagf .Gamma =1;return _cagf ;};
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _ee .Time ){_egbeg .Lock ();defer _egbeg .Unlock ();_gbbee =creationDate ;};
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_ceedb *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_eg .StreamEncoder ,error ){_eddg ,_dgba :=_ceedb ._cfaag .(*_eg .PdfObjectStream );if !_dgba {_dbg .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",_ceedb ._cfaag );
|
||
return nil ,nil ,_eg .ErrTypeError ;};_ccfeb ,_befa :=_eg .DecodeStream (_eddg );if _befa !=nil {_dbg .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",_befa );
|
||
return nil ,nil ,_befa ;};_cbed ,_befa :=_eg .NewEncoderFromStream (_eddg );if _befa !=nil {_dbg .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",_befa );
|
||
return nil ,nil ,_befa ;};return _ccfeb ,_cbed ,nil ;};
|
||
|
||
// FillWithAppearance populates `form` with values provided by `provider`.
|
||
// If not nil, `appGen` is used to generate appearance dictionaries for the
|
||
// field annotations, based on the specified settings. Otherwise, appearance
|
||
// generation is skipped.
|
||
// e.g.: appGen := annotator.FieldAppearance{OnlyIfMissing: true, RegenerateTextFields: true}
|
||
// NOTE: In next major version this functionality will be part of Fill. (v4)
|
||
func (_feca *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {return _feca .fill (provider ,appGen );};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_fgcbd *PdfPageResources )SetXObjectByName (keyName _eg .PdfObjectName ,stream *_eg .PdfObjectStream )error {if _fgcbd .XObject ==nil {_fgcbd .XObject =_eg .MakeDict ();};_daceb :=_eg .TraceToDirectObject (_fgcbd .XObject );_geac ,_gdaga :=_daceb .(*_eg .PdfObjectDictionary );
|
||
if !_gdaga {_dbg .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",_fgcbd .XObject ,_daceb );return _bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_geac .Set (keyName ,stream );return nil ;};
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_gdfc *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_bbbf :=func (_gbe float64 )float64 {if _gbe >=6.0/29{return _gbe *_gbe *_gbe ;};return 108.0/841*(_gbe -4/29);};_debb ,_bdbg :=color .(*PdfColorLab );if !_bdbg {_dbg .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_debb .L ();AStar :=_debb .A ();BStar :=_debb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_gdfc .WhitePoint [0]*_bbbf (L );Y :=_gdfc .WhitePoint [1]*_bbbf (M );Z :=_gdfc .WhitePoint [2]*_bbbf (N );_fddb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bggb :=-0.969256*X +1.875992*Y +0.041556*Z ;_agfba :=0.055648*X +-0.204043*Y +1.057311*Z ;_fddb =_bc .Min (_bc .Max (_fddb ,0),1.0);
|
||
_bggb =_bc .Min (_bc .Max (_bggb ,0),1.0);_agfba =_bc .Min (_bc .Max (_agfba ,0),1.0);return NewPdfColorDeviceRGB (_fddb ,_bggb ,_agfba ),nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_eaaeg *PdfOutlineItem )GetContainingPdfObject ()_eg .PdfObject {return _eaaeg ._bfega };
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _eg .PdfObject ;H _eg .PdfObject ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_dfaad *pdfFontType0 )ToPdfObject ()_eg .PdfObject {if _dfaad ._becfa ==nil {_dfaad ._becfa =&_eg .PdfIndirectObject {};};_bbcee :=_dfaad .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_dfaad ._becfa .PdfObject =_bbcee ;if _dfaad .Encoding !=nil {_bbcee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfaad .Encoding );
|
||
}else if _dfaad ._eceba !=nil {_bbcee .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfaad ._eceba .ToPdfObject ());};if _dfaad .DescendantFont !=nil {_bbcee .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_eg .MakeArray (_dfaad .DescendantFont .ToPdfObject ()));
|
||
};return _dfaad ._becfa ;};
|
||
|
||
// Write writes out the PDF.
|
||
func (_cdfab *PdfWriter )Write (writer _de .Writer )error {_dbg .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_bcfbf :=_dd .GetLicenseKey ();if (_bcfbf ==nil ||!_bcfbf .IsLicensed ())&&!_dfgac {_e .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
|
||
_e .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
|
||
return _bbd .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");};if _cdfab ._ebeg !=nil {_dbg .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_cdfab ._ebeg );
|
||
_fffbe :=_cdfab ._ebeg .ToPdfObject ();_dbg .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_fffbe ,_fffbe ,_fffbe );_cdfab ._ebaaa .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_fffbe );
|
||
_cgcgb :=_cdfab .addObjects (_fffbe );if _cgcgb !=nil {return _cgcgb ;};};if _cdfab ._adcgf !=nil {_dbg .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_cdgd :=_cdfab ._adcgf .ToPdfObject ();_dbg .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_cdgd );
|
||
_cdfab ._ebaaa .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_cdgd );_dfgeg :=_cdfab .addObjects (_cdgd );if _dfgeg !=nil {return _dfgeg ;};};for _afbbb ,_eafed :=range _cdfab ._cfadb {if !_cdfab .hasObject (_afbbb ){_dbg .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",_afbbb ,_afbbb ,_afbbb );
|
||
for _ ,_fddee :=range _eafed {for _ ,_edfac :=range _fddee .Keys (){_fbggc :=_fddee .Get (_edfac );if _fbggc ==_afbbb {_dbg .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");
|
||
_fddee .Set (_edfac ,_eg .MakeNull ());break ;};};};};};_cdfab ._ebaaa .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_eg .MakeName (_e .Sprintf ("\u0025\u0064\u002e%\u0064",_cdfab ._dacab ,_cdfab ._ecae )));_cdfab .copyObjects ();if _cdfab ._efdcf !=nil {var _eaaed error ;
|
||
_cdfab ._aecabb ,_eaaed =_cdfab ._efdcf .Optimize (_cdfab ._aecabb );if _eaaed !=nil {return _eaaed ;};_bgeded :=make (map[_eg .PdfObject ]struct{},len (_cdfab ._aecabb ));for _ ,_ggaee :=range _cdfab ._aecabb {_bgeded [_ggaee ]=struct{}{};};_cdfab ._bccbf =_bgeded ;
|
||
};_cdfab ._agecc =_cdfab ._dfgff ;_cdfab ._fggeg =_g .NewWriter (writer );_dgfcg :=_cdfab ._dacab > 1||(_cdfab ._dacab ==1&&_cdfab ._ecae > 4);if _cdfab ._fdgeg !=nil {_dgfcg =*_cdfab ._fdgeg ;};_eace :=make (map[_eg .PdfObject ]bool );for _ ,_abfef :=range _cdfab ._aecabb {if _cegce ,_eeddg :=_abfef .(*_eg .PdfObjectStreams );
|
||
_eeddg {_dgfcg =true ;for _ ,_bcgf :=range _cegce .Elements (){_eace [_bcgf ]=true ;if _dadfa ,_effca :=_bcgf .(*_eg .PdfIndirectObject );_effca {_eace [_dadfa .PdfObject ]=true ;};};};};if _dgfcg &&_cdfab ._dacab ==1&&_cdfab ._ecae < 5{_cdfab ._ecae =5;
|
||
};if _cdfab ._aaedc {_cdfab .writeString ("\u000a");}else {_cdfab .writeString (_e .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_cdfab ._dacab ,_cdfab ._ecae ));_cdfab .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");
|
||
};_cdfab .updateObjectNumbers ();_dbg .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_cdfab ._aecabb ));_cdfab ._fadgbb =make (map[int ]crossReference );_cdfab ._fadgbb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
|
||
if _cdfab ._adcdd .ObjectMap !=nil {for _eadfff ,_afgg :=range _cdfab ._adcdd .ObjectMap {if _eadfff ==0{continue ;};if _afgg .XType ==_eg .XrefTypeObjectStream {_abee :=crossReference {Type :2,ObjectNumber :_afgg .OsObjNumber ,Index :_afgg .OsObjIndex };
|
||
_cdfab ._fadgbb [_eadfff ]=_abee ;};if _afgg .XType ==_eg .XrefTypeTableEntry {_dgbec :=crossReference {Type :1,ObjectNumber :_afgg .ObjectNumber ,Offset :_afgg .Offset };_cdfab ._fadgbb [_eadfff ]=_dgbec ;};};};for _ ,_dbcde :=range _cdfab ._aecabb {if _efgf :=_eace [_dbcde ];
|
||
_efgf {continue ;};_ddgdeg :=int64 (0);switch _caga :=_dbcde .(type ){case *_eg .PdfIndirectObject :_ddgdeg =_caga .ObjectNumber ;case *_eg .PdfObjectStream :_ddgdeg =_caga .ObjectNumber ;case *_eg .PdfObjectStreams :_ddgdeg =_caga .ObjectNumber ;default:_dbg .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",_dbcde );
|
||
return ErrTypeCheck ;};if _cdfab ._ccag !=nil &&_dbcde !=_cdfab ._fbbfd {_ebcagg :=_cdfab ._ccag .Encrypt (_dbcde ,_ddgdeg ,0);if _ebcagg !=nil {_dbg .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",_ebcagg );
|
||
return _ebcagg ;};};_cdfab .writeObject (int (_ddgdeg ),_dbcde );};_dcfgf :=_cdfab ._agecc ;var _dafbac int ;for _fdcc :=range _cdfab ._fadgbb {if _fdcc > _dafbac {_dafbac =_fdcc ;};};if _dgfcg {_fged :=_dafbac +1;_cdfab ._fadgbb [_fged ]=crossReference {Type :1,ObjectNumber :_fged ,Offset :_dcfgf };
|
||
_acbac :=_cbd .NewBuffer (nil );_egdbe :=_eg .MakeArray ();for _dagfd :=0;_dagfd <=_dafbac ;{for ;_dagfd <=_dafbac ;_dagfd ++{_bebb ,_eadfe :=_cdfab ._fadgbb [_dagfd ];if _eadfe &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_bebb .Type ==1&&_bebb .Offset >=_cdfab ._cdedc ||_bebb .Type ==0)){break ;
|
||
};};var _ebcgea int ;for _ebcgea =_dagfd +1;_ebcgea <=_dafbac ;_ebcgea ++{_caba ,_aafceda :=_cdfab ._fadgbb [_ebcgea ];if _aafceda &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_caba .Type ==1&&_caba .Offset > _cdfab ._cdedc )){continue ;};break ;};_egdbe .Append (_eg .MakeInteger (int64 (_dagfd )),_eg .MakeInteger (int64 (_ebcgea -_dagfd )));
|
||
for _cgfg :=_dagfd ;_cgfg < _ebcgea ;_cgfg ++{_fgaac :=_cdfab ._fadgbb [_cgfg ];switch _fgaac .Type {case 0:_gg .Write (_acbac ,_gg .BigEndian ,byte (0));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (0));_gg .Write (_acbac ,_gg .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_gg .Write (_acbac ,_gg .BigEndian ,byte (1));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (_fgaac .Offset ));_gg .Write (_acbac ,_gg .BigEndian ,uint16 (_fgaac .Generation ));case 2:_gg .Write (_acbac ,_gg .BigEndian ,byte (2));_gg .Write (_acbac ,_gg .BigEndian ,uint32 (_fgaac .ObjectNumber ));
|
||
_gg .Write (_acbac ,_gg .BigEndian ,uint16 (_fgaac .Index ));};};_dagfd =_ebcgea +1;};_ebgbaa ,_bbab :=_eg .MakeStream (_acbac .Bytes (),_eg .NewFlateEncoder ());if _bbab !=nil {return _bbab ;};_ebgbaa .ObjectNumber =int64 (_fged );_ebgbaa .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_ebgbaa .PdfObjectDictionary .Set ("\u0057",_eg .MakeArray (_eg .MakeInteger (1),_eg .MakeInteger (4),_eg .MakeInteger (2)));_ebgbaa .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_egdbe );_ebgbaa .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_eg .MakeInteger (int64 (_fged +1)));
|
||
_ebgbaa .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_cdfab ._ggca );_ebgbaa .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_cdfab ._eeeg );if _cdfab ._aaedc &&_cdfab ._fcebcb > 0{_ebgbaa .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_eg .MakeInteger (_cdfab ._fcebcb ));
|
||
};if _cdfab ._ccag !=nil {_ebgbaa .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cdfab ._fbbfd );_ebgbaa .Set ("\u0049\u0044",_cdfab ._ecadc );_dbg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cdfab ._ecadc );};_cdfab .writeObject (int (_ebgbaa .ObjectNumber ),_ebgbaa );
|
||
}else {_cdfab .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _dbdef :=0;_dbdef <=_dafbac ;{for ;_dbdef <=_dafbac ;_dbdef ++{_gdbca ,_bdcad :=_cdfab ._fadgbb [_dbdef ];if _bdcad &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_gdbca .Type ==1&&_gdbca .Offset >=_cdfab ._cdedc ||_gdbca .Type ==0)){break ;
|
||
};};var _geccdc int ;for _geccdc =_dbdef +1;_geccdc <=_dafbac ;_geccdc ++{_dadabf ,_effcf :=_cdfab ._fadgbb [_geccdc ];if _effcf &&(!_cdfab ._aaedc ||_cdfab ._aaedc &&(_dadabf .Type ==1&&_dadabf .Offset > _cdfab ._cdedc )){continue ;};break ;};_gcgc :=_e .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_dbdef ,_geccdc -_dbdef );
|
||
_cdfab .writeString (_gcgc );for _bbcab :=_dbdef ;_bbcab < _geccdc ;_bbcab ++{_decde :=_cdfab ._fadgbb [_bbcab ];switch _decde .Type {case 0:_gcgc =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
|
||
_cdfab .writeString (_gcgc );case 1:_gcgc =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_decde .Offset ,0);_cdfab .writeString (_gcgc );};};_dbdef =_geccdc +1;};_fdafe :=_eg .MakeDict ();_fdafe .Set ("\u0049\u006e\u0066\u006f",_cdfab ._ggca );
|
||
_fdafe .Set ("\u0052\u006f\u006f\u0074",_cdfab ._eeeg );_fdafe .Set ("\u0053\u0069\u007a\u0065",_eg .MakeInteger (int64 (_dafbac +1)));if _cdfab ._aaedc &&_cdfab ._fcebcb > 0{_fdafe .Set ("\u0050\u0072\u0065\u0076",_eg .MakeInteger (_cdfab ._fcebcb ));
|
||
};if _cdfab ._ccag !=nil {_fdafe .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cdfab ._fbbfd );_fdafe .Set ("\u0049\u0044",_cdfab ._ecadc );_dbg .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cdfab ._ecadc );};_cdfab .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");
|
||
_cdfab .writeString (_fdafe .WriteString ());_cdfab .writeString ("\u000a");};_dabf :=_e .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_dcfgf );_cdfab .writeString (_dabf );_cdfab .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");
|
||
if _cdfab ._cfgdd ==nil {_cdfab ._cfgdd =_cdfab ._fggeg .Flush ();};return _cdfab ._cfgdd ;};
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_eecgc *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_dbg .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_dbg .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 );
|
||
_dbg .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_dbg .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_efad ,_eeef :=_ff .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._fcec ,img ._aaeac );if _eeef !=nil {return Image {},_eeef ;};_effb ,_eeef :=_ff .NRGBAConverter .Convert (_efad );if _eeef !=nil {return Image {},_eeef ;
|
||
};return _egbde (_effb .Base ()),nil ;};
|
||
|
||
// LTV represents an LTV (Long-Term Validation) client. It is used to LTV
|
||
// enable signatures by adding validation and revocation data (certificate,
|
||
// OCSP and CRL information) to the DSS dictionary of a PDF document.
|
||
//
|
||
// LTV is added through the DSS by:
|
||
// - Adding certificates, OCSP and CRL information in the global scope of the
|
||
// DSS. The global data is used for validating any of the signatures present
|
||
// in the document.
|
||
// - Adding certificates, OCSP and CRL information for a single signature,
|
||
// through an entry in the VRI dictionary of the DSS. The added data is used
|
||
// for validating that particular signature only. This is the recommended
|
||
// method for adding validation data for a signature. However, this is not
|
||
// is not possible in the same revision the signature is applied. Validation
|
||
// data for a signature is added based on the Contents entry of the signature,
|
||
// which is known only after the revision is written. Even if the Contents
|
||
// are known (e.g. when signing externally), updating the DSS at that point
|
||
// would invalidate the calculated signature. As a result, if adding LTV
|
||
// in the same revision is a requirement, use the first method.
|
||
// See LTV.EnableChain.
|
||
// The client applies both methods, when possible.
|
||
//
|
||
// If `LTV.SkipExisting` is set to true (the default), validations are
|
||
// not added for signatures which are already present in the VRI entry of the
|
||
// document's DSS dictionary.
|
||
type LTV struct{
|
||
|
||
// CertClient is the client used to retrieve certificates.
|
||
CertClient *_cbf .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_cbf .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_cbf .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_caadf *PdfAppender ;_fgada *DSS ;};func _edff (_efece *_eg .PdfObjectDictionary )(*PdfFieldButton ,error ){_eefc :=&PdfFieldButton {};_eefc .Opt ,_ =_eg .GetArray (_efece .Get ("\u004f\u0070\u0074"));return _eefc ,nil ;};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_fcfe :=NewPdfAnnotation ();_efc :=&PdfAnnotationRichMedia {};_efc .PdfAnnotation =_fcfe ;_fcfe .SetContext (_efc );return _efc ;};
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_gebea *PdfRectangle )ToPdfObject ()_eg .PdfObject {return _eg .MakeArray (_eg .MakeFloat (_gebea .Llx ),_eg .MakeFloat (_gebea .Lly ),_eg .MakeFloat (_gebea .Urx ),_eg .MakeFloat (_gebea .Ury ));};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_aebff *pdfFontSimple )Encoder ()_cec .TextEncoder {if _aebff ._gccbc !=nil {return _aebff ._gccbc ;};if _aebff ._fcgd !=nil {return _aebff ._fcgd ;};_gfgcba ,_ :=_cec .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _gfgcba ;};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_gaefgc *PdfWriter )AddPage (page *PdfPage )error {const _cfgg ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_faadf (page );_cdacc :=page .ToPdfObject ();_dbg .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_dbg .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_cdacc );_dfea ,_ecfdf :=_eg .GetIndirect (_cdacc );if !_ecfdf {return _bbd .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");
|
||
};_dbg .Log .Trace ("\u0025\u0073",_dfea );_dbg .Log .Trace ("\u0025\u0073",_dfea .PdfObject );_effbc ,_ecfdf :=_eg .GetDict (_dfea .PdfObject );if !_ecfdf {return _bbd .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");
|
||
};_beedc ,_ecfdf :=_eg .GetName (_effbc .Get ("\u0054\u0079\u0070\u0065"));if !_ecfdf {return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_effbc .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _beedc .String ()!="\u0050\u0061\u0067\u0065"{return _bbd .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");};_bgcbg :=[]_eg .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"};
|
||
_fdfce ,_afcbb :=_eg .GetIndirect (_effbc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_dbg .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_effbc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_afcbb );
|
||
for _afcbb {_dbg .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fdfce );_gggc ,_dgfda :=_eg .GetDict (_fdfce .PdfObject );if !_dgfda {return _bbd .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_gdgbfg :=range _bgcbg {_dbg .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdgbfg );if _effbc .Get (_gdgbfg )!=nil {_dbg .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");
|
||
continue ;};if _cfbad :=_gggc .Get (_gdgbfg );_cfbad !=nil {_dbg .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gdgbfg );_effbc .Set (_gdgbfg ,_cfbad );};};_fdfce ,_afcbb =_eg .GetIndirect (_gggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_dbg .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_dbg .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_effbc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gaefgc ._afbga );_dfea .PdfObject =_effbc ;_cadd ,_ecfdf :=_eg .GetDict (_gaefgc ._afbga .PdfObject );if !_ecfdf {return _bbd .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");
|
||
};_dbaef ,_ecfdf :=_eg .GetArray (_cadd .Get ("\u004b\u0069\u0064\u0073"));if !_ecfdf {return _bbd .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");
|
||
};_dbaef .Append (_dfea );_gaefgc ._eacbf [_effbc ]=struct{}{};_abbf ,_ecfdf :=_eg .GetInt (_cadd .Get ("\u0043\u006f\u0075n\u0074"));if !_ecfdf {return _bbd .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");
|
||
};*_abbf =*_abbf +1;if page ._fdfdec ==nil {_fedag :=_dd .Track (_gaefgc ._fggebg ,_cfgg );if _fedag !=nil {return _fedag ;};}else {_deaaf :=_dd .Track (page ._fdfdec ._ebcgb ,_cfgg );if _deaaf !=nil {return _deaaf ;};};_gaefgc .addObject (_dfea );_ceee :=_gaefgc .addObjects (_effbc );
|
||
if _ceee !=nil {return _ceee ;};return nil ;};func _ddaab (_bcae string )(map[_cec .CharCode ]_cec .GlyphName ,error ){_cgdgg :=_dc .Split (_bcae ,"\u000a");_cdfe :=make (map[_cec .CharCode ]_cec .GlyphName );for _ ,_fcggc :=range _cgdgg {_fada :=_dcadg .FindStringSubmatch (_fcggc );
|
||
if _fada ==nil {continue ;};_acgcge ,_dggbf :=_fada [1],_fada [2];_afeb ,_abgaa :=_db .Atoi (_acgcge );if _abgaa !=nil {_dbg .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",_fcggc );
|
||
return nil ,_eg .ErrTypeError ;};_cdfe [_cec .CharCode (_afeb )]=_cec .GlyphName (_dggbf );};_dbg .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",_cdfe );
|
||
return _cdfe ,nil ;};
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_dcb :=NewPdfAction ();_afc :=&PdfActionResetForm {};_afc .PdfAction =_dcb ;_dcb .SetContext (_afc );return _afc ;};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_cfga *PdfWriter )SetDocInfo (info *PdfInfo ){if _cfga .hasObject (_cfga ._ggca ){delete (_cfga ._bccbf ,_cfga ._ggca );delete (_cfga ._aeceg ,_cfga ._ggca );for _bbcd ,_ddedc :=range _cfga ._aecabb {if _ddedc ==_cfga ._ggca {copy (_cfga ._aecabb [_bbcd :],_cfga ._aecabb [_bbcd +1:]);
|
||
_cfga ._aecabb [len (_cfga ._aecabb )-1]=nil ;_cfga ._aecabb =_cfga ._aecabb [:len (_cfga ._aecabb )-1];break ;};};};_cgfae :=_eg .PdfIndirectObject {};_cgfae .PdfObject =info .ToPdfObject ();_cfga ._ggca =&_cgfae ;_cfga .addObject (&_cgfae );};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_dbdd *PdfColorspaceSpecialIndexed )ToPdfObject ()_eg .PdfObject {_gcfa :=_eg .MakeArray (_eg .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_gcfa .Append (_dbdd .Base .ToPdfObject ());_gcfa .Append (_eg .MakeInteger (int64 (_dbdd .HiVal )));
|
||
_gcfa .Append (_dbdd .Lookup );if _dbdd ._cbdga !=nil {_dbdd ._cbdga .PdfObject =_gcfa ;return _dbdd ._cbdga ;};return _gcfa ;};func _dbaea (_cccf *_eg .PdfObjectDictionary ,_fgggg *fontCommon )(*pdfFontType3 ,error ){_caedg :=_efeb (_fgggg );_aeaa :=_cccf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
|
||
if _aeaa ==nil {_aeaa =_eg .MakeInteger (0);};_caedg .FirstChar =_aeaa ;_dfeef ,_ffcce :=_eg .GetIntVal (_aeaa );if !_ffcce {_dbg .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",_aeaa );
|
||
return nil ,_eg .ErrTypeError ;};_geeeg :=_cec .CharCode (_dfeef );_aeaa =_cccf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _aeaa ==nil {_aeaa =_eg .MakeInteger (255);};_caedg .LastChar =_aeaa ;_dfeef ,_ffcce =_eg .GetIntVal (_aeaa );if !_ffcce {_dbg .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",_aeaa );
|
||
return nil ,_eg .ErrTypeError ;};_gdfbb :=_cec .CharCode (_dfeef );_aeaa =_cccf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _aeaa !=nil {_caedg .Resources =_aeaa ;};_aeaa =_cccf .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _aeaa ==nil {_dbg .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",_aeaa );
|
||
return nil ,_eg .ErrNotSupported ;};_caedg .CharProcs =_aeaa ;_aeaa =_cccf .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _aeaa ==nil {_dbg .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",_aeaa );
|
||
return nil ,_eg .ErrNotSupported ;};_caedg .FontMatrix =_aeaa ;_caedg ._cgcec =make (map[_cec .CharCode ]float64 );_aeaa =_cccf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _aeaa !=nil {_caedg .Widths =_aeaa ;_dgbef ,_egbdf :=_eg .GetArray (_aeaa );
|
||
if !_egbdf {_dbg .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",_aeaa );return nil ,_eg .ErrTypeError ;
|
||
};_aafce ,_fcca :=_dgbef .ToFloat64Array ();if _fcca !=nil {_dbg .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 ,_fcca ;};if len (_aafce )!=int (_gdfbb -_geeeg +1){_dbg .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",_gdfbb -_geeeg +1,len (_aafce ));
|
||
return nil ,_eg .ErrRangeError ;};_cagc ,_egbdf :=_eg .GetArray (_caedg .FontMatrix );if !_egbdf {_dbg .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",_cagc );
|
||
return nil ,_fcca ;};_bfbec ,_fcca :=_cagc .ToFloat64Array ();if _fcca !=nil {_dbg .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 ,_fcca ;};_ceefa :=_cc .NewMatrix (_bfbec [0],_bfbec [1],_bfbec [2],_bfbec [3],_bfbec [4],_bfbec [5]);for _beebd ,_bddcb :=range _aafce {_bgdd ,_ :=_ceefa .Transform (_bddcb ,_bddcb );_caedg ._cgcec [_geeeg +_cec .CharCode (_beebd )]=_bgdd ;
|
||
};};_caedg .Encoding =_eg .TraceToDirectObject (_cccf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_dgde :=_cccf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _dgde !=nil {_caedg ._fgegd =_eg .TraceToDirectObject (_dgde );_dfecd ,_dccad :=_eagd (_caedg ._fgegd ,&_caedg .fontCommon );
|
||
if _dccad !=nil {return nil ,_dccad ;};_caedg ._fffc =_dfecd ;};if _fedaa :=_caedg ._fffc ;_fedaa !=nil {_caedg ._daeg =_cec .NewCMapEncoder ("",nil ,_fedaa );}else {_caedg ._daeg =_cec .NewPdfDocEncoder ();};return _caedg ,nil ;};
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_dgedg :=PdfColorDeviceRGB {r ,g ,b };return &_dgedg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ggea *PdfAnnotationPolyLine )ToPdfObject ()_eg .PdfObject {_ggea .PdfAnnotation .ToPdfObject ();_gece :=_ggea ._gag ;_aba :=_gece .PdfObject .(*_eg .PdfObjectDictionary );_ggea .PdfAnnotationMarkup .appendToPdfDictionary (_aba );_aba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_aba .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_ggea .Vertices );_aba .SetIfNotNil ("\u004c\u0045",_ggea .LE );_aba .SetIfNotNil ("\u0042\u0053",_ggea .BS );_aba .SetIfNotNil ("\u0049\u0043",_ggea .IC );_aba .SetIfNotNil ("\u0042\u0045",_ggea .BE );
|
||
_aba .SetIfNotNil ("\u0049\u0054",_ggea .IT );_aba .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ggea .Measure );return _gece ;};
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_bdgaf *XObjectImage )SetFilter (encoder _eg .StreamEncoder )error {_eeada :=_bdgaf .Stream ;_dgeb ,_babb :=_bdgaf .Filter .DecodeBytes (_eeada );if _babb !=nil {return _babb ;};_bdgaf .Filter =encoder ;encoder .UpdateParams (_bdgaf .getParamsDict ());
|
||
_eeada ,_babb =encoder .EncodeBytes (_dgeb );if _babb !=nil {return _babb ;};_bdgaf .Stream =_eeada ;return nil ;};
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_gdee :=NewPdfAnnotation ();_bfge :=&PdfAnnotationWatermark {};_bfge .PdfAnnotation =_gdee ;_gdee .SetContext (_bfge );return _bfge ;};var _ pdfFont =(*pdfFontType0 )(nil );
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_bdce *PdfPageResourcesColorspaces )Set (key _eg .PdfObjectName ,val PdfColorspace ){if _ ,_fgfe :=_bdce .Colorspaces [string (key )];!_fgfe {_bdce .Names =append (_bdce .Names ,string (key ));};_bdce .Colorspaces [string (key )]=val ;};var (ErrRequiredAttributeMissing =_bbd .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 =_bbd .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_bbd .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fgega =_bbd .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
||
ErrEncrypted =_bbd .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 =_bbd .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
ErrFontNotSupported =_ead .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_eg .ErrNotSupported );ErrType1CFontNotSupported =_ead .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",_eg .ErrNotSupported );
|
||
ErrType3FontNotSupported =_ead .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",_eg .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_ead .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",_eg .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_ead .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 =_ead .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"););
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_bbg :=NewPdfAction ();_ad :=&PdfActionMovie {};_ad .PdfAction =_bbg ;_bbg .SetContext (_ad );return _ad ;};
|
||
|
||
// SetNamedDestinations sets the Names entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_bagcf *PdfWriter )SetNamedDestinations (names _eg .PdfObject )error {if names ==nil {return nil ;};_dbg .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_bagcf ._ebaaa .Set ("\u004e\u0061\u006de\u0073",names );return _bagcf .addObjects (names );};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_efbdg *PdfPageResources )GetContainingPdfObject ()_eg .PdfObject {return _efbdg ._fbcbc };
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_cbaad *XObjectForm )GetContainingPdfObject ()_eg .PdfObject {return _cbaad ._cdcaf };
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_cebae :=PdfPage {};_cebae ._ecbba =_eg .MakeDict ();_cebae .Resources =NewPdfPageResources ();_edfdg :=_eg .PdfIndirectObject {};_edfdg .PdfObject =_cebae ._ecbba ;_cebae ._caaef =&_edfdg ;return &_cebae ;};
|
||
|
||
// 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 (_gadef *PdfColorspaceLab )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbgd ,_bbcgf :=_eg .GetNumbersAsFloat (objects );
|
||
if _bbcgf !=nil {return nil ,_bbcgf ;};return _gadef .ColorFromFloats (_fbgd );};
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_bfgg *PdfPage )HasFontByName (name _eg .PdfObjectName )bool {_bdacb ,_dbgfeg :=_bfgg .Resources .Font .(*_eg .PdfObjectDictionary );if !_dbgfeg {return false ;};if _gdafg :=_bdacb .Get (name );_gdafg !=nil {return true ;};return false ;};
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_ceaee :=NewPdfAnnotation ();_gac :=&PdfAnnotationCircle {};_gac .PdfAnnotation =_ceaee ;_gac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ceaee .SetContext (_gac );return _gac ;};func (_fgfae *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _fgfae ._eecfe ==nil &&_fgfae .DescendantFont !=nil {return _fgfae .DescendantFont .FontDescriptor ();
|
||
};return _fgfae ._eecfe ;};func _fccc (_bfbbc *XObjectImage )error {if _bfbbc .SMask ==nil {return nil ;};_afea ,_ccge :=_bfbbc .SMask .(*_eg .PdfObjectStream );if !_ccge {_dbg .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 _eg .ErrTypeError ;};_gfcce :=_afea .PdfObjectDictionary ;_bfeae :=_gfcce .Get ("\u004d\u0061\u0074t\u0065");if _bfeae ==nil {return nil ;};_efgb ,_eacd :=_gbdcf (_bfeae .(*_eg .PdfObjectArray ));if _eacd !=nil {return _eacd ;};_fdagf :=_eg .MakeArrayFromFloats ([]float64 {_efgb });
|
||
_gfcce .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fdagf );return nil ;};func (_ecfc *PdfReader )newPdfFieldFromIndirectObject (_eceb *_eg .PdfIndirectObject ,_bccc *PdfField )(*PdfField ,error ){if _cbdf ,_eaga :=_ecfc ._gced .GetModelFromPrimitive (_eceb ).(*PdfField );
|
||
_eaga {return _cbdf ,nil ;};_decg ,_fcda :=_eg .GetDict (_eceb );if !_fcda {return nil ,_e .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_debde :=NewPdfField ();_debde ._afbe =_eceb ;_debde ._afbe .PdfObject =_decg ;if _aabg ,_dgcge :=_eg .GetName (_decg .Get ("\u0046\u0054"));_dgcge {_debde .FT =_aabg ;};if _bccc !=nil {_debde .Parent =_bccc ;};_debde .T ,_ =_decg .Get ("\u0054").(*_eg .PdfObjectString );
|
||
_debde .TU ,_ =_decg .Get ("\u0054\u0055").(*_eg .PdfObjectString );_debde .TM ,_ =_decg .Get ("\u0054\u004d").(*_eg .PdfObjectString );_debde .Ff ,_ =_decg .Get ("\u0046\u0066").(*_eg .PdfObjectInteger );_debde .V =_decg .Get ("\u0056");_debde .DV =_decg .Get ("\u0044\u0056");
|
||
_debde .AA =_decg .Get ("\u0041\u0041");_ceagb :=_debde .FT ;if _ceagb ==nil &&_bccc !=nil {_ceagb =_bccc .FT ;};if _ceagb !=nil {switch *_ceagb {case "\u0054\u0078":_bcfe ,_fdacd :=_fafc (_decg );if _fdacd !=nil {return nil ,_fdacd ;};_bcfe .PdfField =_debde ;
|
||
_debde ._ceag =_bcfe ;case "\u0043\u0068":_dagf ,_gcbba :=_fgfa (_decg );if _gcbba !=nil {return nil ,_gcbba ;};_dagf .PdfField =_debde ;_debde ._ceag =_dagf ;case "\u0042\u0074\u006e":_efg ,_bafc :=_edff (_decg );if _bafc !=nil {return nil ,_bafc ;};_efg .PdfField =_debde ;
|
||
_debde ._ceag =_efg ;case "\u0053\u0069\u0067":_effde ,_bfabg :=_ecfc .newPdfFieldSignatureFromDict (_decg );if _bfabg !=nil {return nil ,_bfabg ;};_effde .PdfField =_debde ;_debde ._ceag =_effde ;default:_dbg .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",*_debde .FT );
|
||
return nil ,_bbd .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");};};if _bfcb ,_edfeg :=_eg .GetName (_decg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_edfeg {if *_bfcb =="\u0057\u0069\u0064\u0067\u0065\u0074"{_dbdb ,_agffg :=_ecfc .newPdfAnnotationFromIndirectObject (_eceb );
|
||
if _agffg !=nil {return nil ,_agffg ;};_cgcef ,_ffbg :=_dbdb .GetContext ().(*PdfAnnotationWidget );if !_ffbg {return nil ,_bbd .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");
|
||
};_cgcef ._cdda =_debde ;_cgcef .Parent =_debde ._afbe ;_debde .Annotations =append (_debde .Annotations ,_cgcef );return _debde ,nil ;};};_begfb :=true ;if _dbgc ,_cdgg :=_eg .GetArray (_decg .Get ("\u004b\u0069\u0064\u0073"));_cdgg {_dcgga :=make ([]*_eg .PdfIndirectObject ,0,_dbgc .Len ());
|
||
for _ ,_fcde :=range _dbgc .Elements (){_ffcg ,_cfbdd :=_eg .GetIndirect (_fcde );if !_cfbdd {_ccdd ,_dgbg :=_eg .GetStream (_fcde );if _dgbg &&_ccdd .PdfObjectDictionary !=nil {_gcfg ,_fgab :=_eg .GetNameVal (_ccdd .Get ("\u0054\u0079\u0070\u0065"));if _fgab &&_gcfg =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_dbg .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 ,_bbd .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");};_egaca ,_dgfcf :=_eg .GetDict (_ffcg );
|
||
if !_dgfcf {return nil ,ErrTypeCheck ;};if _begfb {_begfb =!_dgace (_egaca );};_dcgga =append (_dcgga ,_ffcg );};for _ ,_edbg :=range _dcgga {if _begfb {_cggb ,_dgef :=_ecfc .newPdfAnnotationFromIndirectObject (_edbg );if _dgef !=nil {_dbg .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",_dgef );
|
||
return nil ,_dgef ;};_gcbc ,_bdea :=_cggb ._ffbe .(*PdfAnnotationWidget );if !_bdea {return nil ,ErrTypeCheck ;};_gcbc ._cdda =_debde ;_debde .Annotations =append (_debde .Annotations ,_gcbc );}else {_dgcf ,_gdgg :=_ecfc .newPdfFieldFromIndirectObject (_edbg ,_debde );
|
||
if _gdgg !=nil {_dbg .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",_gdgg );return nil ,_gdgg ;};_debde .Kids =append (_debde .Kids ,_dgcf );
|
||
};};};return _debde ,nil ;};func (_acg *PdfReader )newPdfAnnotationTrapNetFromDict (_eebgc *_eg .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fffe :=PdfAnnotationTrapNet {};return &_fffe ,nil ;};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_ecdbe *PdfFieldButton )IsCheckbox ()bool {return _ecdbe .GetType ()==ButtonTypeCheckbox };func (_dgacg *PdfFunctionType0 )processSamples ()error {_befd :=_ccg .ResampleBytes (_dgacg ._ebad ,_dgacg .BitsPerSample );_dgacg ._dgfa =_befd ;return nil ;
|
||
};
|
||
|
||
// 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 (_ebd *PdfAnnotationWidget )Field ()*PdfField {return _ebd ._cdda };func _feaee (_ggfac _eg .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_gddf :=NewPdfColorspaceSpecialSeparation ();if _cdcf ,_acdee :=_ggfac .(*_eg .PdfIndirectObject );_acdee {_gddf ._cegff =_cdcf ;
|
||
};_ggfac =_eg .TraceToDirectObject (_ggfac );_gdfcc ,_feaed :=_ggfac .(*_eg .PdfObjectArray );if !_feaed {return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
|
||
};if _gdfcc .Len ()!=4{return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_ggfac =_gdfcc .Get (0);
|
||
_fbfd ,_feaed :=_ggfac .(*_eg .PdfObjectName );if !_feaed {return nil ,_e .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_fbfd !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_e .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};_ggfac =_gdfcc .Get (1);_fbfd ,_feaed =_ggfac .(*_eg .PdfObjectName );if !_feaed {return nil ,_e .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
|
||
};_gddf .ColorantName =_fbfd ;_ggfac =_gdfcc .Get (2);_cfefb ,_edgf :=NewPdfColorspaceFromPdfObject (_ggfac );if _edgf !=nil {return nil ,_edgf ;};_gddf .AlternateSpace =_cfefb ;_afff ,_edgf :=_dgbga (_gdfcc .Get (3));if _edgf !=nil {return nil ,_edgf ;
|
||
};_gddf .TintTransform =_afff ;return _gddf ,nil ;};
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_bfafe *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_ffgf :=_ccg .NewReader (img .getBase ());_addg :=_ff .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dbaa :=_ccg .NewWriter (_addg );
|
||
_dded :=_bc .Pow (2,float64 (img .BitsPerComponent ))-1;_ceeca :=make ([]uint32 ,3);var (_caed uint32 ;ANorm ,X ,Y ,Z ,_bedfa ,_ffgd ,_faff float64 ;_ffdb error ;);for {_caed ,_ffdb =_ffgf .ReadSample ();if _ffdb ==_de .EOF {break ;}else if _ffdb !=nil {return img ,_ffdb ;
|
||
};ANorm =float64 (_caed )/_dded ;X =_bfafe .WhitePoint [0]*_bc .Pow (ANorm ,_bfafe .Gamma );Y =_bfafe .WhitePoint [1]*_bc .Pow (ANorm ,_bfafe .Gamma );Z =_bfafe .WhitePoint [2]*_bc .Pow (ANorm ,_bfafe .Gamma );_bedfa =3.240479*X +-1.537150*Y +-0.498535*Z ;
|
||
_ffgd =-0.969256*X +1.875992*Y +0.041556*Z ;_faff =0.055648*X +-0.204043*Y +1.057311*Z ;_bedfa =_bc .Min (_bc .Max (_bedfa ,0),1.0);_ffgd =_bc .Min (_bc .Max (_ffgd ,0),1.0);_faff =_bc .Min (_bc .Max (_faff ,0),1.0);_ceeca [0]=uint32 (_bedfa *_dded );_ceeca [1]=uint32 (_ffgd *_dded );
|
||
_ceeca [2]=uint32 (_faff *_dded );if _ffdb =_dbaa .WriteSamples (_ceeca );_ffdb !=nil {return img ,_ffdb ;};};return _egbde (&_addg ),nil ;};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_gded :_eg .MakeIndirectObject (_eg .MakeDict ()),VRI :map[string ]*VRI {}};};func (_edfff *PdfSignature )extractChainFromCert ()([]*_ce .Certificate ,error ){var _addcb *_eg .PdfObjectArray ;switch _faedb :=_edfff .Cert .(type ){case *_eg .PdfObjectString :_addcb =_eg .MakeArray (_faedb );
|
||
case *_eg .PdfObjectArray :_addcb =_faedb ;default:return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_faedb );
|
||
};var _fddgb _cbd .Buffer ;for _ ,_bgbfeg :=range _addcb .Elements (){_aeabb ,_gegf :=_eg .GetString (_bgbfeg );if !_gegf {return nil ,_e .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_bgbfeg );
|
||
};if _ ,_adfag :=_fddgb .Write (_aeabb .Bytes ());_adfag !=nil {return nil ,_adfag ;};};return _ce .ParseCertificates (_fddgb .Bytes ());};
|
||
|
||
// 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 (_gcfe DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};func _gagda ()_ee .Time {_egbeg .Lock ();defer _egbeg .Unlock ();return _cced };func (_aggd *PdfReader )newPdfAnnotationCaretFromDict (_ggf *_eg .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_adcg :=PdfAnnotationCaret {};
|
||
_dbga ,_bfe :=_aggd .newPdfAnnotationMarkupFromDict (_ggf );if _bfe !=nil {return nil ,_bfe ;};_adcg .PdfAnnotationMarkup =_dbga ;_adcg .RD =_ggf .Get ("\u0052\u0044");_adcg .Sy =_ggf .Get ("\u0053\u0079");return &_adcg ,nil ;};
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_ebcd *PdfAnnotation )SetContext (ctx PdfModel ){_ebcd ._ffbe =ctx };func (_fbbgg *PdfReader )traverseObjectData (_eadga _eg .PdfObject )error {return _eg .ResolveReferencesDeep (_eadga ,_fbbgg ._gadge );};
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_eg .PdfObjectArray ;TI *_eg .PdfObjectInteger ;I *_eg .PdfObjectArray ;};func (_gef *PdfReader )newPdfAnnotationSquigglyFromDict (_eebg *_eg .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_aggg :=PdfAnnotationSquiggly {};
|
||
_fgfd ,_ddea :=_gef .newPdfAnnotationMarkupFromDict (_eebg );if _ddea !=nil {return nil ,_ddea ;};_aggg .PdfAnnotationMarkup =_fgfd ;_aggg .QuadPoints =_eebg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_aggg ,nil ;};func (_gdfeb SignatureValidationResult )String ()string {var _agbde _cbd .Buffer ;
|
||
_agbde .WriteString (_e .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_gdfeb .Name ));if _gdfeb .Date ._cggcf > 0{_agbde .WriteString (_e .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_gdfeb .Date .ToGoTime ().String ()));}else {_agbde .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_gdfeb .Reason )> 0{_agbde .WriteString (_e .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gdfeb .Reason ));}else {_agbde .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
|
||
};if len (_gdfeb .Location )> 0{_agbde .WriteString (_e .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_gdfeb .Location ));}else {_agbde .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_gdfeb .ContactInfo )> 0{_agbde .WriteString (_e .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_gdfeb .ContactInfo ));}else {_agbde .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
|
||
};_agbde .WriteString (_e .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_gdfeb .Fields )));if _gdfeb .IsSigned {_agbde .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 {_agbde .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _gdfeb .IsVerified {_agbde .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 {_agbde .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 _gdfeb .IsTrusted {_agbde .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 {_agbde .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 !_gdfeb .GeneralizedTime .IsZero (){_agbde .WriteString (_e .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_gdfeb .GeneralizedTime .String ()));
|
||
};return _agbde .String ();};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_ecbb *_eg .PdfIndirectObject ;};
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_abcb *PdfColorspaceLab )DecodeArray ()[]float64 {_acfe :=[]float64 {0,100};if _abcb .Range !=nil &&len (_abcb .Range )==4{_acfe =append (_acfe ,_abcb .Range ...);}else {_acfe =append (_acfe ,-100,100,-100,100);};return _acfe ;};
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_eg .PdfObjectArray ;Domain *_eg .PdfObjectArray ;Function []PdfFunction ;Extend *_eg .PdfObjectArray ;};func (_adec *PdfReader )flattenFieldsWithOpts (_dbbg bool ,_bbgb FieldAppearanceGenerator ,_efaeb *FieldFlattenOpts )error {if _efaeb ==nil {_efaeb =&FieldFlattenOpts {};
|
||
};var _aafd bool ;_cgga :=map[*PdfAnnotation ]bool {};{var _bafdc []*PdfField ;_gabab :=_adec .AcroForm ;if _gabab !=nil {if _efaeb .FilterFunc !=nil {_bafdc =_gabab .filteredFields (_efaeb .FilterFunc ,true );_aafd =_gabab .Fields !=nil &&len (*_gabab .Fields )> 0;
|
||
}else {_bafdc =_gabab .AllFields ();};};for _ ,_fbfe :=range _bafdc {for _ ,_dfab :=range _fbfe .Annotations {_cgga [_dfab .PdfAnnotation ]=_fbfe .V !=nil ;if _bbgb !=nil {_dceb ,_agdf :=_bbgb .GenerateAppearanceDict (_gabab ,_fbfe ,_dfab );if _agdf !=nil {return _agdf ;
|
||
};_dfab .AP =_dceb ;};};};};if _dbbg {for _ ,_fcabc :=range _adec .PageList {_badc ,_cbbe :=_fcabc .GetAnnotations ();if _cbbe !=nil {return _cbbe ;};for _ ,_deeef :=range _badc {_cgga [_deeef ]=true ;};};};for _ ,_gfae :=range _adec .PageList {var _dbded []*PdfAnnotation ;
|
||
if _bbgb !=nil {if _egda :=_bbgb .WrapContentStream (_gfae );_egda !=nil {return _egda ;};};_ffgde ,_eadg :=_gfae .GetAnnotations ();if _eadg !=nil {return _eadg ;};for _ ,_gcad :=range _ffgde {_efdf ,_efdfd :=_cgga [_gcad ];if !_efdfd &&_efaeb .AnnotFilterFunc !=nil {if _ ,_ecdaa :=_gcad .GetContext ().(*PdfAnnotationWidget );
|
||
!_ecdaa {_efdfd =_efaeb .AnnotFilterFunc (_gcad );};};if !_efdfd {_dbded =append (_dbded ,_gcad );continue ;};switch _gcad .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
|
||
};_gbge ,_ddeee ,_dfec :=_ebbgf (_gcad );if _dfec !=nil {if !_efdf {_dbg .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 ;};_dbg .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",_dfec );
|
||
continue ;};if _gbge ==nil {continue ;};_bfdb :=_gfae .Resources .GenerateXObjectName ();_gfae .Resources .SetXObjectFormByName (_bfdb ,_gbge );_bbeb :=_bc .Min (_ddeee .Llx ,_ddeee .Urx );_cgcfa :=_bc .Min (_ddeee .Lly ,_ddeee .Ury );var _debg []string ;
|
||
_debg =append (_debg ,"\u0071");_debg =append (_debg ,_e .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_bbeb ,_cgcfa ));
|
||
_debg =append (_debg ,_e .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_bfdb .String ()));_debg =append (_debg ,"\u0051");_ebcff :=_dc .Join (_debg ,"\u000a");_dfec =_gfae .AppendContentStream (_ebcff );if _dfec !=nil {return _dfec ;};if _gbge .Resources !=nil {_dcgea ,_cega :=_eg .GetDict (_gbge .Resources .Font );
|
||
if _cega {for _ ,_agcd :=range _dcgea .Keys (){if !_gfae .Resources .HasFontByName (_agcd ){_gfae .Resources .SetFontByName (_agcd ,_dcgea .Get (_agcd ));};};};};};if len (_dbded )> 0{_gfae ._egge =_dbded ;}else {_gfae ._egge =[]*PdfAnnotation {};};};if !_aafd {_adec .AcroForm =nil ;
|
||
};return nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_daffb pdfCIDFontType2 )GetCharMetrics (code _cec .CharCode )(_ab .CharMetrics ,bool ){if _ebcg ,_ebga :=_daffb ._egdc [code ];_ebga {return _ab .CharMetrics {Wx :_ebcg },true ;};_bacdb :=rune (code );_ebcce ,_afef :=_daffb ._dgefb [_bacdb ];if !_afef {_ebcce =int (_daffb ._cbgd );
|
||
};return _ab .CharMetrics {Wx :float64 (_ebcce )},true ;};
|
||
|
||
// 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 (_dagg *PdfReader )GetObjectNums ()[]int {return _dagg ._cdggc .GetObjectNums ()};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_fdgag *XObjectForm )GetContentStream ()([]byte ,error ){_gfded ,_bbfbd :=_eg .DecodeStream (_fdgag ._cdcaf );if _bbfbd !=nil {return nil ,_bbfbd ;};return _gfded ,nil ;};
|
||
|
||
// XObjectImage (Table 89 in 8.9.5.1).
|
||
// Implements PdfModel interface.
|
||
type XObjectImage struct{
|
||
|
||
//ColorSpace PdfObject
|
||
Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _eg .StreamEncoder ;Intent _eg .PdfObject ;ImageMask _eg .PdfObject ;Mask _eg .PdfObject ;Matte _eg .PdfObject ;Decode _eg .PdfObject ;Interpolate _eg .PdfObject ;Alternatives _eg .PdfObject ;
|
||
SMask _eg .PdfObject ;SMaskInData _eg .PdfObject ;Name _eg .PdfObject ;StructParent _eg .PdfObject ;ID _eg .PdfObject ;OPI _eg .PdfObject ;Metadata _eg .PdfObject ;OC _eg .PdfObject ;Stream []byte ;_dcdb *_eg .PdfObjectStream ;};
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_dgd :=NewPdfAction ();_gfg :=&PdfActionGoToE {};_gfg .PdfAction =_dgd ;_dgd .SetContext (_gfg );return _gfg ;};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _eg .PdfObject ;Flags _eg .PdfObject ;};
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _eg .PdfObject ;};func _abegg (_fbagb *_eg .PdfObjectDictionary )(*PdfShadingType1 ,error ){_adaed :=PdfShadingType1 {};if _ebbce :=_fbagb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");
|
||
_ebbce !=nil {_ebbce =_eg .TraceToDirectObject (_ebbce );_eecdd ,_aagaa :=_ebbce .(*_eg .PdfObjectArray );if !_aagaa {_dbg .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",_ebbce );
|
||
return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_adaed .Domain =_eecdd ;};if _ebbd :=_fbagb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ebbd !=nil {_ebbd =_eg .TraceToDirectObject (_ebbd );
|
||
_abacg ,_fbef :=_ebbd .(*_eg .PdfObjectArray );if !_fbef {_dbg .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",_ebbd );return nil ,_bbd .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_adaed .Matrix =_abacg ;};_edae :=_fbagb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _edae ==nil {_dbg .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 ;};_adaed .Function =[]PdfFunction {};if _bfebe ,_gfge :=_edae .(*_eg .PdfObjectArray );_gfge {for _ ,_dbebdc :=range _bfebe .Elements (){_aead ,_fgfcb :=_dgbga (_dbebdc );if _fgfcb !=nil {_dbg .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",_fgfcb );
|
||
return nil ,_fgfcb ;};_adaed .Function =append (_adaed .Function ,_aead );};}else {_dcfcb ,_gedge :=_dgbga (_edae );if _gedge !=nil {_dbg .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",_gedge );
|
||
return nil ,_gedge ;};_adaed .Function =append (_adaed .Function ,_dcfcb );};return &_adaed ,nil ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_caafb *XObjectForm )ToPdfObject ()_eg .PdfObject {_cfgba :=_caafb ._cdcaf ;_fgedg :=_cfgba .PdfObjectDictionary ;if _caafb .Filter !=nil {_fgedg =_caafb .Filter .MakeStreamDict ();_cfgba .PdfObjectDictionary =_fgedg ;};_fgedg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_fgedg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u0072\u006d"));_fgedg .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_caafb .FormType );_fgedg .SetIfNotNil ("\u0042\u0042\u006f\u0078",_caafb .BBox );_fgedg .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_caafb .Matrix );
|
||
if _caafb .Resources !=nil {_fgedg .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_caafb .Resources .ToPdfObject ());};_fgedg .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_caafb .Group );_fgedg .SetIfNotNil ("\u0052\u0065\u0066",_caafb .Ref );
|
||
_fgedg .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_caafb .MetaData );_fgedg .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_caafb .PieceInfo );_fgedg .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_caafb .LastModified );
|
||
_fgedg .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_caafb .StructParent );_fgedg .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_caafb .StructParents );_fgedg .SetIfNotNil ("\u004f\u0050\u0049",_caafb .OPI );
|
||
_fgedg .SetIfNotNil ("\u004f\u0043",_caafb .OC );_fgedg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_caafb .Name );_fgedg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eg .MakeInteger (int64 (len (_caafb .Stream ))));_cfgba .Stream =_caafb .Stream ;return _cfgba ;
|
||
};var _ pdfFont =(*pdfFontSimple )(nil );
|
||
|
||
// PdfColorspaceDeviceNAttributes contains additional information about the components of colour space that
|
||
// conforming readers may use. Conforming readers need not use the alternateSpace and tintTransform parameters,
|
||
// and may instead use a custom blending algorithms, along with other information provided in the attributes
|
||
// dictionary if present.
|
||
type PdfColorspaceDeviceNAttributes struct{Subtype *_eg .PdfObjectName ;Colorants _eg .PdfObject ;Process _eg .PdfObject ;MixingHints _eg .PdfObject ;_bcca *_eg .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbcb *PdfActionSubmitForm )ToPdfObject ()_eg .PdfObject {_cbcb .PdfAction .ToPdfObject ();_adb :=_cbcb ._ege ;_ffb :=_adb .PdfObject .(*_eg .PdfObjectDictionary );_ffb .SetIfNotNil ("\u0053",_eg .MakeName (string (ActionTypeSubmitForm )));if _cbcb .F !=nil {_ffb .Set ("\u0046",_cbcb .F .ToPdfObject ());
|
||
};_ffb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_cbcb .Fields );_ffb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_cbcb .Flags );return _adb ;};
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_ggab *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_bade :=range pages {_bade =_bade .Duplicate ();_faadf (_bade );_ggab ._bfce =append (_ggab ._bfce ,_bade );};};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_gfgbb :=&PdfSignature {Type :_eg .MakeName ("\u0053\u0069\u0067"),Handler :handler };_dgcca :=&pdfSignDictionary {PdfObjectDictionary :_eg .MakeDict (),_fbfb :&handler ,_bcacg :_gfgbb };_gfgbb ._ffae =_eg .MakeIndirectObject (_dgcca );
|
||
return _gfgbb ;};func (_cfddc *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _ffgbb []*PdfFieldSignature ;for _ ,_fdba :=range _cfddc .AllFields (){switch _dgbgb :=_fdba .GetContext ().(type ){case *PdfFieldSignature :_bffcg :=_dgbgb ;_ffgbb =append (_ffgbb ,_bffcg );
|
||
};};return _ffgbb ;};func (_fbae fontCommon )coreString ()string {_aeebe :="";if _fbae ._eecfe !=nil {_aeebe =_fbae ._eecfe .String ();};return _e .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_fbae ._fgbbb ,_fbae ._cfab ,_fbae ._dfgf ,_fbae ._aaaf ,_fbae ._fgegd !=nil ,_fbae .fontFlags (),_aeebe );
|
||
};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_ef *PdfAction )String ()string {_cgd ,_dg :=_ef .ToPdfObject ().(*_eg .PdfIndirectObject );if _dg {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ef ._cea ,_cgd .PdfObject .String ());};return "";};
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_abf *PdfColorspaceCalGray )ToPdfObject ()_eg .PdfObject {_gbcg :=&_eg .PdfObjectArray {};_gbcg .Append (_eg .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_gfgdd :=_eg .MakeDict ();if _abf .WhitePoint !=nil {_gfgdd .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_eg .MakeArray (_eg .MakeFloat (_abf .WhitePoint [0]),_eg .MakeFloat (_abf .WhitePoint [1]),_eg .MakeFloat (_abf .WhitePoint [2])));
|
||
}else {_dbg .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 _abf .BlackPoint !=nil {_gfgdd .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eg .MakeArray (_eg .MakeFloat (_abf .BlackPoint [0]),_eg .MakeFloat (_abf .BlackPoint [1]),_eg .MakeFloat (_abf .BlackPoint [2])));
|
||
};_gfgdd .Set ("\u0047\u0061\u006dm\u0061",_eg .MakeFloat (_abf .Gamma ));_gbcg .Append (_gfgdd );if _abf ._gccdc !=nil {_abf ._gccdc .PdfObject =_gbcg ;return _abf ._gccdc ;};return _gbcg ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_fgbb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func (_ffbc *PdfReader )newPdfActionThreadFromDict (_ggc *_eg .PdfObjectDictionary )(*PdfActionThread ,error ){_cdd ,_acd :=_gbbe (_ggc .Get ("\u0046"));if _acd !=nil {return nil ,_acd ;
|
||
};return &PdfActionThread {D :_ggc .Get ("\u0044"),B :_ggc .Get ("\u0042"),F :_cdd },nil ;};func (_abga *DSS )generateHashMap (_eaea []*_eg .PdfObjectStream )(map[string ]*_eg .PdfObjectStream ,error ){_fgfb :=map[string ]*_eg .PdfObjectStream {};for _ ,_egac :=range _eaea {_edge ,_cgbg :=_eg .DecodeStream (_egac );
|
||
if _cgbg !=nil {return nil ,_cgbg ;};_gdfbcc ,_cgbg :=_cafd (_edge );if _cgbg !=nil {return nil ,_cgbg ;};_fgfb [string (_gdfbcc )]=_egac ;};return _fgfb ,nil ;};
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};func (_bgee *PdfReader )newPdfAnnotationFreeTextFromDict (_cfa *_eg .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_bege :=PdfAnnotationFreeText {};_dfa ,_gadc :=_bgee .newPdfAnnotationMarkupFromDict (_cfa );
|
||
if _gadc !=nil {return nil ,_gadc ;};_bege .PdfAnnotationMarkup =_dfa ;_bege .DA =_cfa .Get ("\u0044\u0041");_bege .Q =_cfa .Get ("\u0051");_bege .RC =_cfa .Get ("\u0052\u0043");_bege .DS =_cfa .Get ("\u0044\u0053");_bege .CL =_cfa .Get ("\u0043\u004c");
|
||
_bege .IT =_cfa .Get ("\u0049\u0054");_bege .BE =_cfa .Get ("\u0042\u0045");_bege .RD =_cfa .Get ("\u0052\u0044");_bege .BS =_cfa .Get ("\u0042\u0053");_bege .LE =_cfa .Get ("\u004c\u0045");return &_bege ,nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_ffbd *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_eg .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_debfc ,_eefdd :=_eg .GetNumbersAsFloat (objects );
|
||
if _eefdd !=nil {return nil ,_eefdd ;};return _ffbd .ColorFromFloats (_debfc );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_decd *PdfFilespec )ToPdfObject ()_eg .PdfObject {_ebbg :=_decd .getDict ();_ebbg .Clear ();_ebbg .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_ebbg .SetIfNotNil ("\u0046\u0053",_decd .FS );
|
||
_ebbg .SetIfNotNil ("\u0046",_decd .F );_ebbg .SetIfNotNil ("\u0055\u0046",_decd .UF );_ebbg .SetIfNotNil ("\u0044\u004f\u0053",_decd .DOS );_ebbg .SetIfNotNil ("\u004d\u0061\u0063",_decd .Mac );_ebbg .SetIfNotNil ("\u0055\u006e\u0069\u0078",_decd .Unix );
|
||
_ebbg .SetIfNotNil ("\u0049\u0044",_decd .ID );_ebbg .SetIfNotNil ("\u0056",_decd .V );_ebbg .SetIfNotNil ("\u0045\u0046",_decd .EF );_ebbg .SetIfNotNil ("\u0052\u0046",_decd .RF );_ebbg .SetIfNotNil ("\u0044\u0065\u0073\u0063",_decd .Desc );_ebbg .SetIfNotNil ("\u0043\u0049",_decd .CI );
|
||
return _decd ._fceg ;};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_dgccd :=&PdfColorspaceSpecialSeparation {};return _dgccd ;};func _gbdcb (_gedffc *_eg .PdfObjectDictionary )(*PdfTilingPattern ,error ){_bggg :=&PdfTilingPattern {};_aagda :=_gedffc .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
|
||
if _aagda ==nil {_dbg .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cgffc ,_geafg :=_aagda .(*_eg .PdfObjectInteger );if !_geafg {_dbg .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",_aagda );
|
||
return nil ,_eg .ErrTypeError ;};_bggg .PaintType =_cgffc ;_aagda =_gedffc .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _aagda ==nil {_dbg .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_feabff ,_geafg :=_aagda .(*_eg .PdfObjectInteger );if !_geafg {_dbg .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",_aagda );
|
||
return nil ,_eg .ErrTypeError ;};_bggg .TilingType =_feabff ;_aagda =_gedffc .Get ("\u0042\u0042\u006f\u0078");if _aagda ==nil {_dbg .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_aagda =_eg .TraceToDirectObject (_aagda );_ggede ,_geafg :=_aagda .(*_eg .PdfObjectArray );if !_geafg {_dbg .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",_aagda );
|
||
return nil ,_eg .ErrTypeError ;};_bcdce ,_afadc :=NewPdfRectangle (*_ggede );if _afadc !=nil {_dbg .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_afadc );return nil ,_afadc ;};_bggg .BBox =_bcdce ;_aagda =_gedffc .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _aagda ==nil {_dbg .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_abfgd ,_afadc :=_eg .GetNumberAsFloat (_aagda );if _afadc !=nil {_dbg .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",_abfgd );
|
||
return nil ,_afadc ;};_bggg .XStep =_eg .MakeFloat (_abfgd );_aagda =_gedffc .Get ("\u0059\u0053\u0074e\u0070");if _aagda ==nil {_dbg .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_agcaf ,_afadc :=_eg .GetNumberAsFloat (_aagda );if _afadc !=nil {_dbg .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",_agcaf );
|
||
return nil ,_afadc ;};_bggg .YStep =_eg .MakeFloat (_agcaf );_aagda =_gedffc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _aagda ==nil {_dbg .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_gedffc ,_geafg =_eg .TraceToDirectObject (_aagda ).(*_eg .PdfObjectDictionary );if !_geafg {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_aagda );
|
||
};_aecag ,_afadc :=NewPdfPageResourcesFromDict (_gedffc );if _afadc !=nil {return nil ,_afadc ;};_bggg .Resources =_aecag ;if _fgdcd :=_gedffc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fgdcd !=nil {_fdgd ,_gfaba :=_fgdcd .(*_eg .PdfObjectArray );if !_gfaba {_dbg .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",_fgdcd );
|
||
return nil ,_eg .ErrTypeError ;};_bggg .Matrix =_fdgd ;};return _bggg ,nil ;};
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_dcge :=&PdfAppender {_gcbb :reader ._addac ,Reader :reader ,_fbdd :reader ._cdggc ,_baeg :reader ._gadge };_geab ,_fdeg :=_dcge ._gcbb .Seek (0,_de .SeekEnd );if _fdeg !=nil {return nil ,_fdeg ;
|
||
};_dcge ._ade =_geab ;if _ ,_fdeg =_dcge ._gcbb .Seek (0,_de .SeekStart );_fdeg !=nil {return nil ,_fdeg ;};_dcge ._acdg ,_fdeg =NewPdfReader (_dcge ._gcbb );if _fdeg !=nil {return nil ,_fdeg ;};for _ ,_baec :=range _dcge .Reader .GetObjectNums (){if _dcge ._dace < _baec {_dcge ._dace =_baec ;
|
||
};};_dcge ._cdga =_dcge ._fbdd .GetXrefTable ();_dcge ._cfaf =_dcge ._fbdd .GetXrefOffset ();_dcge ._bfce =append (_dcge ._bfce ,_dcge ._acdg .PageList ...);_dcge ._adge =make (map[_eg .PdfObject ]struct{});_dcge ._bddd =make (map[_eg .PdfObject ]int64 );
|
||
_dcge ._agaa =make (map[_eg .PdfObject ]struct{});_dcge ._ggcc =_dcge ._acdg .AcroForm ;_dcge ._aegd =_dcge ._acdg .DSS ;return _dcge ,nil ;};
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_gcccb *PdfPattern )IsTiling ()bool {return _gcccb .PatternType ==1};
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_dcfgab *PdfPageResources )HasXObjectByName (keyName _eg .PdfObjectName )bool {_dcdac ,_ :=_dcfgab .GetXObjectByName (keyName );return _dcdac !=nil ;};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_gefe *PdfFont )Subtype ()string {_dfdf :=_gefe .baseFields ()._fgbbb ;if _feebf ,_feddd :=_gefe ._gdcab .(*pdfFontType0 );_feddd {_dfdf =_dfdf +"\u003a"+_feebf .DescendantFont .Subtype ();};return _dfdf ;};
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_abgdgg *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_abgdgg ._ebeg =outlineTree ;};
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_cbdb *PdfPageResources )GetPatternByName (keyName _eg .PdfObjectName )(*PdfPattern ,bool ){if _cbdb .Pattern ==nil {return nil ,false ;};_eafc ,_bcfcc :=_eg .TraceToDirectObject (_cbdb .Pattern ).(*_eg .PdfObjectDictionary );if !_bcfcc {_dbg .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",_cbdb .Pattern );
|
||
return nil ,false ;};if _cbdeb :=_eafc .Get (keyName );_cbdeb !=nil {_acfda ,_cdca :=_ceggb (_cbdeb );if _cdca !=nil {_dbg .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",_cdca );
|
||
return nil ,false ;};return _acfda ,true ;};return nil ,false ;};
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_gdda *PdfShading )SetContext (ctx PdfModel ){_gdda ._ccdbe =ctx };
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_bagb *PdfReader )Decrypt (password []byte )(bool ,error ){_cbaacg ,_febbfa :=_bagb ._cdggc .Decrypt (password );if _febbfa !=nil {return false ,_febbfa ;};if !_cbaacg {return false ,nil ;};_febbfa =_bagb .loadStructure ();if _febbfa !=nil {_dbg .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",_febbfa );
|
||
return false ,_febbfa ;};return true ,nil ;};
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_cgcde *PdfColorDeviceRGB )B ()float64 {return _cgcde [2]};
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_cegcb *PdfAcroForm ,_egcfc *PdfField ,_cfed *PdfAnnotationWidget )(*_eg .PdfObjectDictionary ,error );};func _fafc (_abac *_eg .PdfObjectDictionary )(*PdfFieldText ,error ){_cdab :=&PdfFieldText {};
|
||
_cdab .DA ,_ =_eg .GetString (_abac .Get ("\u0044\u0041"));_cdab .Q ,_ =_eg .GetInt (_abac .Get ("\u0051"));_cdab .DS ,_ =_eg .GetString (_abac .Get ("\u0044\u0053"));_cdab .RV =_abac .Get ("\u0052\u0056");_cdab .MaxLen ,_ =_eg .GetInt (_abac .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));
|
||
return _cdab ,nil ;};
|
||
|
||
// 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 (_geecf *LTV )EnableAll (extraCerts []*_ce .Certificate )error {_ebbcaa :=_geecf ._caadf ._acdg .AcroForm ;for _ ,_dbeb :=range _ebbcaa .AllFields (){_adbdd ,_ :=_dbeb .GetContext ().(*PdfFieldSignature );if _adbdd ==nil {continue ;};_efagb :=_adbdd .V ;
|
||
if _debbc :=_geecf .validateSig (_efagb );_debbc !=nil {_dbg .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",_debbc );
|
||
};if _cage :=_geecf .Enable (_efagb ,extraCerts );_cage !=nil {return _cage ;};};return nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain three elements representing the
|
||
// A, B and C components of the color. The values of the elements should be
|
||
// between 0 and 1.
|
||
func (_eefg *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dbgf :=vals [0];if _dbgf < 0.0||_dbgf > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_dgec :=vals [1];if _dgec < 0.0||_dgec > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffee :=vals [2];if _ffee < 0.0||_ffee > 1.0{return nil ,_bbd .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_aefeg :=NewPdfColorCalRGB (_dbgf ,_dgec ,_ffee );return _aefeg ,nil ;};func (_fafg *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};func (_bedgf fontCommon )asPdfObjectDictionary (_bgff string )*_eg .PdfObjectDictionary {if _bgff !=""&&_bedgf ._fgbbb !=""&&_bgff !=_bedgf ._fgbbb {_dbg .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",_bgff ,_bedgf );
|
||
}else if _bgff ==""&&_bedgf ._fgbbb ==""{_dbg .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",_bedgf );
|
||
}else if _bedgf ._fgbbb ==""{_bedgf ._fgbbb =_bgff ;};_bega :=_eg .MakeDict ();_bega .Set ("\u0054\u0079\u0070\u0065",_eg .MakeName ("\u0046\u006f\u006e\u0074"));_bega .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_eg .MakeName (_bedgf ._cfab ));
|
||
_bega .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eg .MakeName (_bedgf ._fgbbb ));if _bedgf ._eecfe !=nil {_bega .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_bedgf ._eecfe .ToPdfObject ());};if _bedgf ._fgegd !=nil {_bega .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_bedgf ._fgegd );
|
||
}else if _bedgf ._fffc !=nil {_dega ,_dacd :=_bedgf ._fffc .Stream ();if _dacd !=nil {_dbg .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",_dacd );
|
||
}else {_bega .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dega );};};return _bega ;};
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_bcdgg *Image )GetParamsDict ()*_eg .PdfObjectDictionary {_ebcbdg :=_eg .MakeDict ();_ebcbdg .Set ("\u0057\u0069\u0064t\u0068",_eg .MakeInteger (_bcdgg .Width ));_ebcbdg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eg .MakeInteger (_bcdgg .Height ));
|
||
_ebcbdg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eg .MakeInteger (int64 (_bcdgg .ColorComponents )));_ebcbdg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eg .MakeInteger (_bcdgg .BitsPerComponent ));
|
||
return _ebcbdg ;};
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _eg .PdfObject ;B _eg .PdfObject ;};func _ffeb (_fbdf _eg .PdfObject )(*PdfFontDescriptor ,error ){_gebd :=&PdfFontDescriptor {};_fbdf =_eg .ResolveReference (_fbdf );if _bafe ,_bgbab :=_fbdf .(*_eg .PdfIndirectObject );
|
||
_bgbab {_gebd ._fcfbbf =_bafe ;_fbdf =_bafe .PdfObject ;};_caad ,_edce :=_eg .GetDict (_fbdf );if !_edce {_dbg .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",_fbdf );
|
||
return nil ,_eg .ErrTypeError ;};if _cecdd :=_caad .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cecdd !=nil {_gebd .FontName =_cecdd ;}else {_dbg .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");
|
||
};_debcf ,_ :=_eg .GetName (_gebd .FontName );if _gdgdb :=_caad .Get ("\u0054\u0079\u0070\u0065");_gdgdb !=nil {_bbfe ,_ebead :=_gdgdb .(*_eg .PdfObjectName );if !_ebead ||string (*_bbfe )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_dbg .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",_gdgdb ,_debcf ,_gebd .FontName );
|
||
};}else {_dbg .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",_debcf ,_gebd .FontName );
|
||
};_gebd .FontFamily =_caad .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gebd .FontStretch =_caad .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gebd .FontWeight =_caad .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_gebd .Flags =_caad .Get ("\u0046\u006c\u0061g\u0073");_gebd .FontBBox =_caad .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gebd .ItalicAngle =_caad .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gebd .Ascent =_caad .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_gebd .Descent =_caad .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gebd .Leading =_caad .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gebd .CapHeight =_caad .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gebd .XHeight =_caad .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_gebd .StemV =_caad .Get ("\u0053\u0074\u0065m\u0056");_gebd .StemH =_caad .Get ("\u0053\u0074\u0065m\u0048");_gebd .AvgWidth =_caad .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gebd .MaxWidth =_caad .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_gebd .MissingWidth =_caad .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gebd .FontFile =_caad .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gebd .FontFile2 =_caad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_gebd .FontFile3 =_caad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gebd .CharSet =_caad .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gebd .Style =_caad .Get ("\u0053\u0074\u0079l\u0065");_gebd .Lang =_caad .Get ("\u004c\u0061\u006e\u0067");
|
||
_gebd .FD =_caad .Get ("\u0046\u0044");_gebd .CIDSet =_caad .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gebd .Flags !=nil {if _acbed ,_eecfg :=_eg .GetIntVal (_gebd .Flags );_eecfg {_gebd ._eaafa =_acbed ;};};if _gebd .MissingWidth !=nil {if _cgca ,_eaege :=_eg .GetNumberAsFloat (_gebd .MissingWidth );
|
||
_eaege ==nil {_gebd ._afce =_cgca ;};};if _gebd .FontFile !=nil {_gaga ,_agga :=_gbeab (_gebd .FontFile );if _agga !=nil {return _gebd ,_agga ;};_dbg .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_gaga );_gebd .fontFile =_gaga ;
|
||
};if _gebd .FontFile2 !=nil {_fggeb ,_dcgfb :=_ab .NewFontFile2FromPdfObject (_gebd .FontFile2 );if _dcgfb !=nil {return _gebd ,_dcgfb ;};_dbg .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_fggeb .String ());_gebd ._bgcbd =&_fggeb ;
|
||
};return _gebd ,nil ;};func (_dabg *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
// Format: [/DeviceN names alternateSpace tintTransform]
|
||
// or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
func (_edde *PdfColorspaceDeviceN )ToPdfObject ()_eg .PdfObject {_febcd :=_eg .MakeArray (_eg .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_febcd .Append (_edde .ColorantNames );_febcd .Append (_edde .AlternateSpace .ToPdfObject ());_febcd .Append (_edde .TintTransform .ToPdfObject ());
|
||
if _edde .Attributes !=nil {_febcd .Append (_edde .Attributes .ToPdfObject ());};if _edde ._cedg !=nil {_edde ._cedg .PdfObject =_febcd ;return _edde ._cedg ;};return _febcd ;};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dcg :=NewPdfAnnotation ();_bbeg :=&PdfAnnotationPopup {};_bbeg .PdfAnnotation =_dcg ;_dcg .SetContext (_bbeg );return _bbeg ;};
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_fcafb *PdfAcroForm )GetContainingPdfObject ()_eg .PdfObject {return _fcafb ._edeaf };func _aabab (_bfad *_eg .PdfObjectDictionary )(*PdfShadingType3 ,error ){_eaed :=PdfShadingType3 {};_agafe :=_bfad .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
|
||
if _agafe ==nil {_dbg .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 ;
|
||
};_agbfe ,_ebde :=_agafe .(*_eg .PdfObjectArray );if !_ebde {_dbg .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",_agafe );return nil ,_eg .ErrTypeError ;
|
||
};if _agbfe .Len ()!=6{_dbg .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",_agbfe .Len ());return nil ,ErrInvalidAttribute ;};_eaed .Coords =_agbfe ;
|
||
if _fddff :=_bfad .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_fddff !=nil {_fddff =_eg .TraceToDirectObject (_fddff );_babce ,_bedbd :=_fddff .(*_eg .PdfObjectArray );if !_bedbd {_dbg .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",_fddff );
|
||
return nil ,_eg .ErrTypeError ;};_eaed .Domain =_babce ;};_agafe =_bfad .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agafe ==nil {_dbg .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 ;};_eaed .Function =[]PdfFunction {};if _gafd ,_cbee :=_agafe .(*_eg .PdfObjectArray );_cbee {for _ ,_cggcb :=range _gafd .Elements (){_cfgd ,_fagb :=_dgbga (_cggcb );if _fagb !=nil {_dbg .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",_fagb );
|
||
return nil ,_fagb ;};_eaed .Function =append (_eaed .Function ,_cfgd );};}else {_fabf ,_bcfba :=_dgbga (_agafe );if _bcfba !=nil {_dbg .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",_bcfba );
|
||
return nil ,_bcfba ;};_eaed .Function =append (_eaed .Function ,_fabf );};if _aabbc :=_bfad .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_aabbc !=nil {_aabbc =_eg .TraceToDirectObject (_aabbc );_eafea ,_ecfb :=_aabbc .(*_eg .PdfObjectArray );if !_ecfb {_dbg .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",_aabbc );
|
||
return nil ,_eg .ErrTypeError ;};if _eafea .Len ()!=2{_dbg .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",_eafea .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_eaed .Extend =_eafea ;};return &_eaed ,nil ;};
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_ab .CharMetrics ;
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_gead *modelManager )Register (primitive _eg .PdfObject ,model PdfModel ){_gead ._eegb [model ]=primitive ;_gead ._bfgf [primitive ]=model ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_gbaaa pdfCIDFontType2 )GetRuneMetrics (r rune )(_ab .CharMetrics ,bool ){_fefe ,_eead :=_gbaaa ._dgefb [r ];if !_eead {_aaef ,_gfbc :=_eg .GetInt (_gbaaa .DW );if !_gfbc {return _ab .CharMetrics {},false ;};_fefe =int (*_aaef );};return _ab .CharMetrics {Wx :float64 (_fefe )},true ;
|
||
};func _gaggb (_fcddb *_eg .PdfObjectDictionary )(*PdfShadingType5 ,error ){_eeag :=PdfShadingType5 {};_fgag :=_fcddb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fgag ==nil {_dbg .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 ;};_eeeda ,_dcgcd :=_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .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",_fgag );
|
||
return nil ,_eg .ErrTypeError ;};_eeag .BitsPerCoordinate =_eeeda ;_fgag =_fcddb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fgag ==nil {_dbg .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 ;};_eeeda ,_dcgcd =_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .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",_fgag );
|
||
return nil ,_eg .ErrTypeError ;};_eeag .BitsPerComponent =_eeeda ;_fgag =_fcddb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _fgag ==nil {_dbg .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 ;};_eeeda ,_dcgcd =_fgag .(*_eg .PdfObjectInteger );if !_dcgcd {_dbg .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",_fgag );
|
||
return nil ,_eg .ErrTypeError ;};_eeag .VerticesPerRow =_eeeda ;_fgag =_fcddb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fgag ==nil {_dbg .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 ;};_cfff ,_dcgcd :=_fgag .(*_eg .PdfObjectArray );if !_dcgcd {_dbg .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",_fgag );
|
||
return nil ,_eg .ErrTypeError ;};_eeag .Decode =_cfff ;if _dagb :=_fcddb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dagb !=nil {_eeag .Function =[]PdfFunction {};if _bddce ,_dfca :=_dagb .(*_eg .PdfObjectArray );_dfca {for _ ,_ecdaaa :=range _bddce .Elements (){_bbac ,_fbcag :=_dgbga (_ecdaaa );
|
||
if _fbcag !=nil {_dbg .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",_fbcag );return nil ,_fbcag ;};_eeag .Function =append (_eeag .Function ,_bbac );
|
||
};}else {_dfgcb ,_fgbdbc :=_dgbga (_dagb );if _fgbdbc !=nil {_dbg .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",_fgbdbc );return nil ,_fgbdbc ;
|
||
};_eeag .Function =append (_eeag .Function ,_dfgcb );};};return &_eeag ,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 (_dcdgg *PdfOutlineTreeNode )GetContext ()PdfModel {if _ebaac ,_aecbd :=_dcdgg ._dbaeb .(*PdfOutline );_aecbd {return _ebaac ;};if _gcecf ,_fgacgd :=_dcdgg ._dbaeb .(*PdfOutlineItem );_fgacgd {return _gcecf ;};_dbg .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 ;};
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_dbdbg *PdfPageResources )GetExtGState (keyName _eg .PdfObjectName )(_eg .PdfObject ,bool ){if _dbdbg .ExtGState ==nil {return nil ,false ;};_faefa ,_dbea :=_eg .TraceToDirectObject (_dbdbg .ExtGState ).(*_eg .PdfObjectDictionary );if !_dbea {_dbg .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",_dbdbg .ExtGState );
|
||
return nil ,false ;};if _cead :=_faefa .Get (keyName );_cead !=nil {return _cead ,true ;};return nil ,false ;};func _feed (_aedf _eg .PdfObject )[]*_eg .PdfObjectStream {if _aedf ==nil {return nil ;};_fbbee ,_edgea :=_eg .GetArray (_aedf );if !_edgea ||_fbbee .Len ()==0{return nil ;
|
||
};_dgfba :=make ([]*_eg .PdfObjectStream ,0,_fbbee .Len ());for _ ,_dafbaba :=range _fbbee .Elements (){if _gfccc ,_cgfab :=_eg .GetStream (_dafbaba );_cgfab {_dgfba =append (_dgfba ,_gfccc );};};return _dgfba ;};func _cdac (_efff _eg .PdfObject ,_acdc bool )(*PdfFont ,error ){_daea ,_fedab ,_acfed :=_cbeab (_efff );
|
||
if _acfed !=nil {if _acfed ==ErrType1CFontNotSupported {_gbaf ,_baace :=_debbd (_daea ,_fedab ,nil );if _baace !=nil {_dbg .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",_fedab ,_baace );
|
||
return nil ,_acfed ;};return &PdfFont {_gdcab :_gbaf },_acfed ;};return nil ,_acfed ;};_fdgcc :=&PdfFont {};switch _fedab ._fgbbb {case "\u0054\u0079\u0070e\u0030":if !_acdc {_dbg .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",_fedab );
|
||
return nil ,_bbd .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_abde ,_fgefb :=_faae (_daea ,_fedab );if _fgefb !=nil {_dbg .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",_fedab ,_fgefb );
|
||
return nil ,_fgefb ;};_fdgcc ._gdcab =_abde ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _gbaa *pdfFontSimple ;_gdfe ,_dcfc :=_ab .NewStdFontByName (_ab .StdFontName (_fedab ._cfab ));
|
||
if _dcfc {_ebbca :=_gecc (_gdfe );_fdgcc ._gdcab =&_ebbca ;_gfgg :=_eg .TraceToDirectObject (_ebbca .ToPdfObject ());_ffab ,_bcgcd ,_daeac :=_cbeab (_gfgg );if _daeac !=nil {_dbg .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",_fedab ,_ebbca );
|
||
return nil ,_daeac ;};for _ ,_agagc :=range _daea .Keys (){_ffab .Set (_agagc ,_daea .Get (_agagc ));};_gbaa ,_daeac =_debbd (_ffab ,_bcgcd ,_ebbca ._fcgd );if _daeac !=nil {_dbg .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",_fedab ,_ebbca );
|
||
return nil ,_daeac ;};_gbaa ._baga =_ebbca ._baga ;_gbaa ._edgae =_ebbca ._edgae ;}else {_gbaa ,_acfed =_debbd (_daea ,_fedab ,nil );if _acfed !=nil {_dbg .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",_fedab ,_acfed );
|
||
return nil ,_acfed ;};};_acfed =_gbaa .addEncoding ();if _acfed !=nil {return nil ,_acfed ;};if _dcfc {_gbaa .updateStandard14Font ();};if _dcfc &&_gbaa ._gccbc ==nil &&_gbaa ._fcgd ==nil {_dbg .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gbaa );
|
||
_dbg .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_gdfe );};if len (_gbaa ._baga )==0{_dbg .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_gbaa );};_fdgcc ._gdcab =_gbaa ;
|
||
case "\u0054\u0079\u0070e\u0033":_ccadf ,_bgdaa :=_dbaea (_daea ,_fedab );if _bgdaa !=nil {_dbg .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",_bgdaa );
|
||
return nil ,_bgdaa ;};_fdgcc ._gdcab =_ccadf ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_fcffb ,_gedd :=_adged (_daea ,_fedab );if _gedd !=nil {_dbg .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",_gedd );
|
||
return nil ,_gedd ;};_fdgcc ._gdcab =_fcffb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_dfcb ,_gbea :=_fegb (_daea ,_fedab );if _gbea !=nil {_dbg .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",_fedab ,_gbea );
|
||
return nil ,_gbea ;};_fdgcc ._gdcab =_dfcb ;default:_dbg .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",_fedab );
|
||
return nil ,_e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_fedab );};return _fdgcc ,nil ;};
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_abgdg *PdfShading )GetContext ()PdfModel {return _abgdg ._ccdbe };func (_edbe *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_bbegc *Outline )ToPdfOutline ()*PdfOutline {_eafec :=NewPdfOutline ();var _gfbfcc []*PdfOutlineItem ;var _gadca int64 ;var _dfdge *PdfOutlineItem ;for _ ,_abadc :=range _bbegc .Entries {_afae ,_dfeff :=_abadc .ToPdfOutlineItem ();_afae .Parent =&_eafec .PdfOutlineTreeNode ;
|
||
if _dfdge !=nil {_dfdge .Next =&_afae .PdfOutlineTreeNode ;_afae .Prev =&_dfdge .PdfOutlineTreeNode ;};_gfbfcc =append (_gfbfcc ,_afae );_gadca +=_dfeff ;_dfdge =_afae ;};_ecaa :=int64 (len (_gfbfcc ));_gadca +=_ecaa ;if _ecaa > 0{_eafec .First =&_gfbfcc [0].PdfOutlineTreeNode ;
|
||
_eafec .Last =&_gfbfcc [_ecaa -1].PdfOutlineTreeNode ;_eafec .Count =&_gadca ;};return _eafec ;};func (_adbda *pdfFontType0 )baseFields ()*fontCommon {return &_adbda .fontCommon };func (_cceg *PdfWriter )updateObjectNumbers (){_fdcgg :=_cceg .ObjNumOffset ;
|
||
_cffdf :=0;for _ ,_bbada :=range _cceg ._aecabb {_aadf :=int64 (_cffdf +1+_fdcgg );_ccdfg :=true ;if _cceg ._aaedc {if _gffdd ,_deggd :=_cceg ._cacc [_bbada ];_deggd {_aadf =_gffdd ;_ccdfg =false ;};};switch _daebd :=_bbada .(type ){case *_eg .PdfIndirectObject :_daebd .ObjectNumber =_aadf ;
|
||
_daebd .GenerationNumber =0;case *_eg .PdfObjectStream :_daebd .ObjectNumber =_aadf ;_daebd .GenerationNumber =0;case *_eg .PdfObjectStreams :_daebd .ObjectNumber =_aadf ;_daebd .GenerationNumber =0;default:_dbg .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",_daebd );
|
||
continue ;};if _ccdfg {_cffdf ++;};};_cebe :=func (_baeeg _eg .PdfObject )int64 {switch _daagg :=_baeeg .(type ){case *_eg .PdfIndirectObject :return _daagg .ObjectNumber ;case *_eg .PdfObjectStream :return _daagg .ObjectNumber ;case *_eg .PdfObjectStreams :return _daagg .ObjectNumber ;
|
||
};return 0;};_ae .SliceStable (_cceg ._aecabb ,func (_ddcgg ,_gdcg int )bool {return _cebe (_cceg ._aecabb [_ddcgg ])< _cebe (_cceg ._aecabb [_gdcg ])});};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eg .PdfObject ;};func (_cgc *PdfReader )newPdfActionRenditionFromDict (_fedb *_eg .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_fedb .Get ("\u0052"),AN :_fedb .Get ("\u0041\u004e"),OP :_fedb .Get ("\u004f\u0050"),JS :_fedb .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_eacc *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _febbf []float64 ;for _fgacg :=0;_fgacg < _eacc .GetNumComponents ();_fgacg ++{_febbf =append (_febbf ,0.0,1.0);};return _febbf ;};func _gcbdb (_aedbe *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_aedbe }};
|
||
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _ee .Time ){_egbeg .Lock ();defer _egbeg .Unlock ();_cced =modifiedDate ;};
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_ddgde :=&PdfPageResourcesColorspaces {};_ddgde .Names =[]string {};_ddgde .Colorspaces =map[string ]PdfColorspace {};_ddgde ._abbc =&_eg .PdfIndirectObject {};return _ddgde ;};
|
||
|
||
// 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{_ceag PdfModel ;_afbe *_eg .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_eg .PdfObjectName ;T *_eg .PdfObjectString ;TU *_eg .PdfObjectString ;TM *_eg .PdfObjectString ;Ff *_eg .PdfObjectInteger ;
|
||
V _eg .PdfObject ;DV _eg .PdfObject ;AA _eg .PdfObject ;};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_dfafd *PdfPageResources )HasExtGState (keyName _eg .PdfObjectName )bool {_ ,_befdg :=_dfafd .GetFontByName (keyName );return _befdg ;}; |