mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-01 22:17:29 +08:00
5014 lines
747 KiB
Go
5014 lines
747 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 (_b "bufio";_dd "bytes";_ca "crypto/md5";_ef "crypto/rand";_bdf "crypto/sha1";_ad "crypto/x509";_bd "encoding/binary";_c "encoding/hex";_da "errors";_g "fmt";_dcc "github.com/unidoc/pkcs7";_ccb "github.com/unidoc/unipdf/v3/common";
|
||
_eca "github.com/unidoc/unipdf/v3/core";_bb "github.com/unidoc/unipdf/v3/core/security";_db "github.com/unidoc/unipdf/v3/core/security/crypt";_ded "github.com/unidoc/unipdf/v3/internal/cmap";_bbg "github.com/unidoc/unipdf/v3/internal/imageutil";_aag "github.com/unidoc/unipdf/v3/internal/license";
|
||
_bf "github.com/unidoc/unipdf/v3/internal/sampling";_dbb "github.com/unidoc/unipdf/v3/internal/textencoding";_dcb "github.com/unidoc/unipdf/v3/internal/timeutils";_gg "github.com/unidoc/unipdf/v3/internal/transform";_ba "github.com/unidoc/unipdf/v3/model/internal/docutil";
|
||
_ffd "github.com/unidoc/unipdf/v3/model/internal/fonts";_ecg "github.com/unidoc/unipdf/v3/model/mdp";_ffg "github.com/unidoc/unipdf/v3/model/sigutil";_dad "github.com/unidoc/unipdf/v3/ps";_dg "github.com/unidoc/unitype";_ebf "golang.org/x/xerrors";_f "hash";
|
||
_cc "image";_cf "image/color";_ "image/gif";_ "image/png";_beg "io";_dc "io/ioutil";_de "math";_eb "math/rand";_efg "os";_aa "regexp";_gac "sort";_ge "strconv";_ec "strings";_a "sync";_d "time";_cb "unicode";_be "unicode/utf8";);
|
||
|
||
// 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 (_acdec *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _acdec ._faccea !=nil {return _acdec ._faccea ,nil ;};if _acdec .ColorSpace ==nil {return nil ,nil ;};_caabg ,_cafcg :=_eagff (_acdec .ColorSpace );if _cafcg !=nil {return nil ,_cafcg ;
|
||
};_acdec ._faccea =_caabg ;return _acdec ._faccea ,nil ;};func _addg (_acffe *_eca .PdfObjectDictionary )(*PdfFieldText ,error ){_bdceg :=&PdfFieldText {};_bdceg .DA ,_ =_eca .GetString (_acffe .Get ("\u0044\u0041"));_bdceg .Q ,_ =_eca .GetInt (_acffe .Get ("\u0051"));
|
||
_bdceg .DS ,_ =_eca .GetString (_acffe .Get ("\u0044\u0053"));_bdceg .RV =_acffe .Get ("\u0052\u0056");_bdceg .MaxLen ,_ =_eca .GetInt (_acffe .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _bdceg ,nil ;};func (_aggca *PdfFunctionType0 )processSamples ()error {_cdccg :=_bf .ResampleBytes (_aggca ._gefbg ,_aggca .BitsPerSample );
|
||
_aggca ._acbe =_cdccg ;return nil ;};
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bea :=NewPdfAnnotation ();_ggad :=&PdfAnnotationFreeText {};_ggad .PdfAnnotation =_bea ;_ggad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bea .SetContext (_ggad );return _ggad ;};
|
||
|
||
// CompliancePdfReader is a wrapper over PdfReader that is used for verifying if the input Pdf document matches the
|
||
// compliance rules of standards like PDF/A.
|
||
// NOTE: This implementation is in experimental development state.
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
type CompliancePdfReader struct{*PdfReader ;_cbbce _eca .ParserMetadata ;};
|
||
|
||
// GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_gdb *PdfAppender )GetDSS ()(_ccdb *DSS ){return _gdb ._adff };
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_aaba *_eca .PdfIndirectObject ;};
|
||
|
||
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
|
||
func NewPdfTransformParamsDocMDP (permission _ecg .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_eca .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_eca .MakeInteger (int64 (permission )),V :_eca .MakeName ("\u0031\u002e\u0032")};
|
||
};
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_eebfa DefaultImageHandler )NewGrayImageFromGoImage (goimg _cc .Image )(*Image ,error ){_egddb :=goimg .Bounds ();_daff :=&Image {Width :int64 (_egddb .Dx ()),Height :int64 (_egddb .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _eadec :=goimg .(type ){case *_cc .Gray :if len (_eadec .Pix )!=_egddb .Dx ()*_egddb .Dy (){_cegdg ,_fafge :=_bbg .GrayConverter .Convert (goimg );
|
||
if _fafge !=nil {return nil ,_fafge ;};_daff .Data =_cegdg .Pix ();}else {_daff .Data =_eadec .Pix ;};case *_cc .Gray16 :_daff .BitsPerComponent =16;if len (_eadec .Pix )!=_egddb .Dx ()*_egddb .Dy ()*2{_bdaad ,_ffffd :=_bbg .Gray16Converter .Convert (goimg );
|
||
if _ffffd !=nil {return nil ,_ffffd ;};_daff .Data =_bdaad .Pix ();}else {_daff .Data =_eadec .Pix ;};case _bbg .Image :_fcfba :=_eadec .Base ();if _fcfba .ColorComponents ==1{_daff .BitsPerComponent =int64 (_fcfba .BitsPerComponent );_daff .Data =_fcfba .Data ;
|
||
return _daff ,nil ;};_ecfce ,_feada :=_bbg .GrayConverter .Convert (goimg );if _feada !=nil {return nil ,_feada ;};_daff .Data =_ecfce .Pix ();default:_ggade ,_babda :=_bbg .GrayConverter .Convert (goimg );if _babda !=nil {return nil ,_babda ;};_daff .Data =_ggade .Pix ();
|
||
};return _daff ,nil ;};func (_gef *PdfReader )newPdfActionTransFromDict (_fbe *_eca .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_fbe .Get ("\u0054\u0072\u0061n\u0073")},nil ;};
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_bfbb :=NewPdfAnnotation ();_aba :=&PdfAnnotationMovie {};_aba .PdfAnnotation =_bfbb ;_bfbb .SetContext (_aba );return _aba ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eccd *PdfAnnotationSquiggly )ToPdfObject ()_eca .PdfObject {_eccd .PdfAnnotation .ToPdfObject ();_aeef :=_eccd ._cdc ;_cbg :=_aeef .PdfObject .(*_eca .PdfObjectDictionary );_eccd .PdfAnnotationMarkup .appendToPdfDictionary (_cbg );_cbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_cbg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eccd .QuadPoints );return _aeef ;};func (_gbaef *PdfWriter )checkPendingObjects (){for _ebgf ,_afccb :=range _gbaef ._cbfcb {if !_gbaef .hasObject (_ebgf ){_ccb .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",_ebgf ,_ebgf ,_ebgf );
|
||
for _ ,_bfcfec :=range _afccb {for _ ,_fgbbg :=range _bfcfec .Keys (){_bfbgb :=_bfcfec .Get (_fgbbg );if _bfbgb ==_ebgf {_ccb .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");
|
||
_bfcfec .Set (_fgbbg ,_eca .MakeNull ());break ;};};};};};};
|
||
|
||
// 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 *_eca .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_eca .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_eca .PdfObjectBool ;_abefa PdfModel ;_dcbe _eca .PdfObject ;};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_eca .PdfObjectStream )(*XObjectForm ,error ){_aaabc :=&XObjectForm {};_aaabc ._afddc =stream ;_bgbea :=*(stream .PdfObjectDictionary );_agfgea ,_edebf :=_eca .NewEncoderFromStream (stream );if _edebf !=nil {return nil ,_edebf ;
|
||
};_aaabc .Filter =_agfgea ;if _dgbgf :=_bgbea .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dgbgf !=nil {_abcb ,_bfffd :=_dgbgf .(*_eca .PdfObjectName );if !_bfffd {return nil ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_abcb !="\u0046\u006f\u0072\u006d"{_ccb .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _cddbb :=_bgbea .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_cddbb !=nil {_aaabc .FormType =_cddbb ;};if _aceae :=_bgbea .Get ("\u0042\u0042\u006f\u0078");_aceae !=nil {_aaabc .BBox =_aceae ;};if _aefegd :=_bgbea .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_aefegd !=nil {_aaabc .Matrix =_aefegd ;};if _acbeg :=_bgbea .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_acbeg !=nil {_acbeg =_eca .TraceToDirectObject (_acbeg );_bgfbb ,_decec :=_acbeg .(*_eca .PdfObjectDictionary );if !_decec {_ccb .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 ,_eca .ErrTypeError ;};_agaae ,_cgcdg :=NewPdfPageResourcesFromDict (_bgfbb );if _cgcdg !=nil {_ccb .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 ,_cgcdg ;};_aaabc .Resources =_agaae ;_ccb .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_aaabc .Resources );};_aaabc .Group =_bgbea .Get ("\u0047\u0072\u006fu\u0070");
|
||
_aaabc .Ref =_bgbea .Get ("\u0052\u0065\u0066");_aaabc .MetaData =_bgbea .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_aaabc .PieceInfo =_bgbea .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_aaabc .LastModified =_bgbea .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_aaabc .StructParent =_bgbea .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_aaabc .StructParents =_bgbea .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_aaabc .OPI =_bgbea .Get ("\u004f\u0050\u0049");
|
||
_aaabc .OC =_bgbea .Get ("\u004f\u0043");_aaabc .Name =_bgbea .Get ("\u004e\u0061\u006d\u0065");_aaabc .Stream =stream .Stream ;return _aaabc ,nil ;};
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_aaef *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _eca .GetNumberAsFloat (_aaef .CapHeight );};
|
||
|
||
// GetVersion gets the document version.
|
||
func (_afgag *PdfWriter )GetVersion ()_eca .Version {return _afgag ._dgab };var (_aabdg =_aa .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_ceefb =_aa .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");
|
||
_efgc =_aa .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");
|
||
_cagg ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_gefe ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_ffbag ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_efacg *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _efacg .AcroForm ==nil {return nil ,nil ;};if _efacg .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_gbdae *PdfSignature ;
|
||
_ccgb *PdfField ;_adaad SignatureHandler ;};var _fbdcc []*sigFieldPair ;for _ ,_acccc :=range _efacg .AcroForm .AllFields (){if _acccc .V ==nil {continue ;};if _gbgaf ,_fgcae :=_eca .GetDict (_acccc .V );_fgcae {if _ggada ,_fcbg :=_eca .GetNameVal (_gbgaf .Get ("\u0054\u0079\u0070\u0065"));
|
||
_fcbg &&(_ggada =="\u0053\u0069\u0067"||_ggada =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_cbfca ,_bedga :=_eca .GetIndirect (_acccc .V );if !_bedga {_ccb .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 ;};_cffbe ,_acadg :=_efacg .newPdfSignatureFromIndirect (_cbfca );if _acadg !=nil {return nil ,_acadg ;};var _dcccag SignatureHandler ;for _ ,_bcgab :=range handlers {if _bcgab .IsApplicable (_cffbe ){_dcccag =_bcgab ;break ;};
|
||
};_fbdcc =append (_fbdcc ,&sigFieldPair {_gbdae :_cffbe ,_ccgb :_acccc ,_adaad :_dcccag });};};};var _bffc []SignatureValidationResult ;for _ ,_fbcgc :=range _fbdcc {_fcbf :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_fbcgc ._ccgb }};
|
||
if _fbcgc ._adaad ==nil {_fcbf .Errors =append (_fcbf .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_bffc =append (_bffc ,_fcbf );continue ;};_fbeef ,_cegaf :=_fbcgc ._adaad .NewDigest (_fbcgc ._gbdae );if _cegaf !=nil {_fcbf .Errors =append (_fcbf .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_cegaf .Error ());
|
||
_bffc =append (_bffc ,_fcbf );continue ;};_daadcc :=_fbcgc ._gbdae .ByteRange ;if _daadcc ==nil {_fcbf .Errors =append (_fcbf .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_bffc =append (_bffc ,_fcbf );
|
||
continue ;};for _gfaec :=0;_gfaec < _daadcc .Len ();_gfaec =_gfaec +2{_cdfac ,_ :=_eca .GetNumberAsInt64 (_daadcc .Get (_gfaec ));_bfbeebd ,_ :=_eca .GetIntVal (_daadcc .Get (_gfaec +1));if _ ,_fcdfa :=_efacg ._eacag .Seek (_cdfac ,_beg .SeekStart );_fcdfa !=nil {return nil ,_fcdfa ;
|
||
};_eddfd :=make ([]byte ,_bfbeebd );if _ ,_dgea :=_efacg ._eacag .Read (_eddfd );_dgea !=nil {return nil ,_dgea ;};_fbeef .Write (_eddfd );};var _eceba SignatureValidationResult ;if _acaeb ,_cddadd :=_fbcgc ._adaad .(SignatureHandlerDocMDP );_cddadd {_eceba ,_cegaf =_acaeb .ValidateWithOpts (_fbcgc ._gbdae ,_fbeef ,SignatureHandlerDocMDPParams {Parser :_efacg ._ecfeba });
|
||
}else {_eceba ,_cegaf =_fbcgc ._adaad .Validate (_fbcgc ._gbdae ,_fbeef );};if _cegaf !=nil {_ccb .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_cegaf ,_fbcgc ._adaad );_eceba .Errors =append (_eceba .Errors ,_cegaf .Error ());
|
||
};_eceba .Name =_fbcgc ._gbdae .Name .Decoded ();_eceba .Reason =_fbcgc ._gbdae .Reason .Decoded ();if _fbcgc ._gbdae .M !=nil {_babfa ,_deadf :=NewPdfDate (_fbcgc ._gbdae .M .String ());if _deadf !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_deadf );
|
||
_eceba .Errors =append (_eceba .Errors ,_deadf .Error ());continue ;};_eceba .Date =_babfa ;};_eceba .ContactInfo =_fbcgc ._gbdae .ContactInfo .Decoded ();_eceba .Location =_fbcgc ._gbdae .Location .Decoded ();_eceba .Fields =_fcbf .Fields ;_bffc =append (_bffc ,_eceba );
|
||
};return _bffc ,nil ;};
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_eca .PdfObjectArray ;TI *_eca .PdfObjectInteger ;I *_eca .PdfObjectArray ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;
|
||
BorderStyleUnderline BorderStyle =iota ;);func _egcfe (_defc *_eca .PdfObjectDictionary ,_accba *fontCommon )(*pdfFontType3 ,error ){_fgge :=_caebd (_accba );_gagc :=_defc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gagc ==nil {_gagc =_eca .MakeInteger (0);
|
||
};_fgge .FirstChar =_gagc ;_caebe ,_cbfcd :=_eca .GetIntVal (_gagc );if !_cbfcd {_ccb .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",_gagc );
|
||
return nil ,_eca .ErrTypeError ;};_dgcd :=_dbb .CharCode (_caebe );_gagc =_defc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gagc ==nil {_gagc =_eca .MakeInteger (255);};_fgge .LastChar =_gagc ;_caebe ,_cbfcd =_eca .GetIntVal (_gagc );
|
||
if !_cbfcd {_ccb .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",_gagc );return nil ,_eca .ErrTypeError ;
|
||
};_gacff :=_dbb .CharCode (_caebe );_gagc =_defc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _gagc !=nil {_fgge .Resources =_gagc ;};_gagc =_defc .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _gagc ==nil {_ccb .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",_gagc );
|
||
return nil ,_eca .ErrNotSupported ;};_fgge .CharProcs =_gagc ;_gagc =_defc .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _gagc ==nil {_ccb .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",_gagc );
|
||
return nil ,_eca .ErrNotSupported ;};_fgge .FontMatrix =_gagc ;_fgge ._ggcge =make (map[_dbb .CharCode ]float64 );_gagc =_defc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gagc !=nil {_fgge .Widths =_gagc ;_gebgc ,_bgdgc :=_eca .GetArray (_gagc );
|
||
if !_bgdgc {_ccb .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",_gagc );return nil ,_eca .ErrTypeError ;
|
||
};_ggfc ,_dfgfg :=_gebgc .ToFloat64Array ();if _dfgfg !=nil {_ccb .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 ,_dfgfg ;};if len (_ggfc )!=int (_gacff -_dgcd +1){_ccb .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",_gacff -_dgcd +1,len (_ggfc ));
|
||
return nil ,_eca .ErrRangeError ;};_feec ,_bgdgc :=_eca .GetArray (_fgge .FontMatrix );if !_bgdgc {_ccb .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",_feec );
|
||
return nil ,_dfgfg ;};_bgaac ,_dfgfg :=_feec .ToFloat64Array ();if _dfgfg !=nil {_ccb .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 ,_dfgfg ;};_efbfb :=_gg .NewMatrix (_bgaac [0],_bgaac [1],_bgaac [2],_bgaac [3],_bgaac [4],_bgaac [5]);for _gbgaa ,_dgede :=range _ggfc {_gdacg ,_ :=_efbfb .Transform (_dgede ,_dgede );_fgge ._ggcge [_dgcd +_dbb .CharCode (_gbgaa )]=_gdacg ;
|
||
};};_fgge .Encoding =_eca .TraceToDirectObject (_defc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));_gcgd :=_defc .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _gcgd !=nil {_fgge ._effb =_eca .TraceToDirectObject (_gcgd );_efbfa ,_gabge :=_accgb (_fgge ._effb ,&_fgge .fontCommon );
|
||
if _gabge !=nil {return nil ,_gabge ;};_fgge ._gegfa =_efbfa ;};if _ecag :=_fgge ._gegfa ;_ecag !=nil {_fgge ._aeefc =_dbb .NewCMapEncoder ("",nil ,_ecag );}else {_fgge ._aeefc =_dbb .NewPdfDocEncoder ();};return _fgge ,nil ;};
|
||
|
||
// VariableText contains the common attributes of a variable text.
|
||
// The VariableText is typically not used directly, but is can encapsulate by PdfField
|
||
// See section 12.7.3.3 "Variable Text" and Table 222 (pp. 434-436 PDF32000_2008).
|
||
type VariableText struct{DA *_eca .PdfObjectString ;Q *_eca .PdfObjectInteger ;DS *_eca .PdfObjectString ;RV _eca .PdfObject ;};
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_aaaed *PdfField )GetContext ()PdfModel {return _aaaed ._fbgb };
|
||
|
||
// 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 (_cadgg *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_aceb ,_ccgca :=color .(*PdfColorPattern );if !_ccgca {_ccb .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 _aceb .Color ==nil {return color ,nil ;};if _cadgg .UnderlyingCS ==nil {return nil ,_da .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _cadgg .UnderlyingCS .ColorToRGB (_aceb .Color );
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_ecde *PdfShadingType6 )ToPdfObject ()_eca .PdfObject {_ecde .PdfShading .ToPdfObject ();_dfad ,_ffcaa :=_ecde .getShadingDict ();if _ffcaa !=nil {_ccb .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 _ecde .BitsPerCoordinate !=nil {_dfad .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_ecde .BitsPerCoordinate );};if _ecde .BitsPerComponent !=nil {_dfad .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ecde .BitsPerComponent );
|
||
};if _ecde .BitsPerFlag !=nil {_dfad .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_ecde .BitsPerFlag );};if _ecde .Decode !=nil {_dfad .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_ecde .Decode );};if _ecde .Function !=nil {if len (_ecde .Function )==1{_dfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ecde .Function [0].ToPdfObject ());
|
||
}else {_cbdbb :=_eca .MakeArray ();for _ ,_dbabd :=range _ecde .Function {_cbdbb .Append (_dbabd .ToPdfObject ());};_dfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbdbb );};};return _ecde ._dcbe ;};func (_eefbf *fontFile )parseASCIIPart (_ecegd []byte )error {if len (_ecegd )< 2||string (_ecegd [:2])!="\u0025\u0021"{return _da .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");
|
||
};_ggcc ,_aece ,_facc :=_gdebg (_ecegd );if _facc !=nil {return _facc ;};_bfeab :=_fegaf (_ggcc );_eefbf ._gfafb =_bfeab ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _eefbf ._gfafb ==""{_ccb .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 _aece !=""{_fegb ,_ceddg :=_cadc (_aece );if _ceddg !=nil {return _ceddg ;};_eccag ,_ceddg :=_dbb .NewCustomSimpleTextEncoder (_fegb ,nil );if _ceddg !=nil {_ccb .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",_ceddg );
|
||
return nil ;};_eefbf ._eggeg =_eccag ;};return nil ;};
|
||
|
||
// SetDocInfo sets the document /Info metadata.
|
||
// This will overwrite any globally declared document info.
|
||
func (_cagd *PdfAppender )SetDocInfo (info *PdfInfo ){_cagd ._gece =info };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdce *PdfAnnotationStrikeOut )ToPdfObject ()_eca .PdfObject {_fdce .PdfAnnotation .ToPdfObject ();_gaaf :=_fdce ._cdc ;_faae :=_gaaf .PdfObject .(*_eca .PdfObjectDictionary );_fdce .PdfAnnotationMarkup .appendToPdfDictionary (_faae );_faae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_faae .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fdce .QuadPoints );return _gaaf ;};
|
||
|
||
// Items returns all children outline items.
|
||
func (_cdgad *OutlineItem )Items ()[]*OutlineItem {return _cdgad .Entries };
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_agcd *PdfColorCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_affb *PdfAnnotationPolygon )ToPdfObject ()_eca .PdfObject {_affb .PdfAnnotation .ToPdfObject ();_bcdd :=_affb ._cdc ;_bddd :=_bcdd .PdfObject .(*_eca .PdfObjectDictionary );_affb .PdfAnnotationMarkup .appendToPdfDictionary (_bddd );_bddd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_bddd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_affb .Vertices );_bddd .SetIfNotNil ("\u004c\u0045",_affb .LE );_bddd .SetIfNotNil ("\u0042\u0053",_affb .BS );_bddd .SetIfNotNil ("\u0049\u0043",_affb .IC );_bddd .SetIfNotNil ("\u0042\u0045",_affb .BE );
|
||
_bddd .SetIfNotNil ("\u0049\u0054",_affb .IT );_bddd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_affb .Measure );return _bcdd ;};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_ccce ,_baeeb :=_ffd .NewStdFontByName (HelveticaName );if !_baeeb {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");
|
||
};_bcgd :=_fgcd (_ccce );return &PdfFont {_dbgb :&_bcgd };};
|
||
|
||
// GetCatalogMetadata gets the catalog defined XMP Metadata.
|
||
func (_abaefg *PdfReader )GetCatalogMetadata ()(_eca .PdfObject ,bool ){if _abaefg ._affc ==nil {return nil ,false ;};_agcdf :=_abaefg ._affc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _agcdf ,_agcdf !=nil ;};func _fdbg (_ceec *_eca .PdfObjectDictionary ,_fbbf *fontCommon ,_fagf _dbb .TextEncoder )(*pdfFontSimple ,error ){_cgbcd :=_fcgf (_fbbf );
|
||
_cgbcd ._aaggg =_fagf ;if _fagf ==nil {_edda :=_ceec .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _edda ==nil {_edda =_eca .MakeInteger (0);};_cgbcd .FirstChar =_edda ;_cfde ,_fdeb :=_eca .GetIntVal (_edda );if !_fdeb {_ccb .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",_edda );
|
||
return nil ,_eca .ErrTypeError ;};_gdgc :=_dbb .CharCode (_cfde );_edda =_ceec .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _edda ==nil {_edda =_eca .MakeInteger (255);};_cgbcd .LastChar =_edda ;_cfde ,_fdeb =_eca .GetIntVal (_edda );if !_fdeb {_ccb .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",_edda );
|
||
return nil ,_eca .ErrTypeError ;};_gbgeg :=_dbb .CharCode (_cfde );_cgbcd ._gfcfb =make (map[_dbb .CharCode ]float64 );_edda =_ceec .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _edda !=nil {_cgbcd .Widths =_edda ;_agcbd ,_ebbed :=_eca .GetArray (_edda );
|
||
if !_ebbed {_ccb .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",_edda );return nil ,_eca .ErrTypeError ;
|
||
};_cgcdc ,_bdbfb :=_agcbd .ToFloat64Array ();if _bdbfb !=nil {_ccb .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 ,_bdbfb ;};if len (_cgcdc )!=int (_gbgeg -_gdgc +1){_ccb .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",_gbgeg -_gdgc +1,len (_cgcdc ));
|
||
return nil ,_eca .ErrRangeError ;};for _eegdc ,_ffgfe :=range _cgcdc {_cgbcd ._gfcfb [_gdgc +_dbb .CharCode (_eegdc )]=_ffgfe ;};};};_cgbcd .Encoding =_eca .TraceToDirectObject (_ceec .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _cgbcd ,nil ;
|
||
};
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_egd :=NewPdfAnnotation ();_fgg :=&PdfAnnotationPolygon {};_fgg .PdfAnnotation =_egd ;_fgg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_egd .SetContext (_fgg );return _fgg ;};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_bddac *PdfFont )BaseFont ()string {return _bddac .baseFields ()._daac };
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_acbg *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if _acbg .Alternate ==nil {if _acbg .N ==1{_agcb :=NewPdfColorspaceDeviceGray ();return _agcb .ColorFromPdfObjects (objects );}else if _acbg .N ==3{_efaad :=NewPdfColorspaceDeviceRGB ();
|
||
return _efaad .ColorFromPdfObjects (objects );}else if _acbg .N ==4{_cbdee :=NewPdfColorspaceDeviceCMYK ();return _cbdee .ColorFromPdfObjects (objects );}else {return nil ,_da .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 _acbg .Alternate .ColorFromPdfObjects (objects );};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_dage :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_g .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_dage .N =N ;return _dage ,nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
// How it works:
|
||
// 1. It calls the GetCharMetrics function for the underlying font, either a simple font or
|
||
// a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics
|
||
// mappings.
|
||
// 2. If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a
|
||
// a CharMetrics with the FontDescriptor's /MissingWidth is returned.
|
||
// 3. If there is no /MissingWidth then a failure is returned.
|
||
//
|
||
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
|
||
// well give them 0 width. There is no need for the bool return.
|
||
//
|
||
// TODO(gunnsth): Reconsider whether needed or if can map via GlyphName.
|
||
func (_bafa *PdfFont )GetCharMetrics (code _dbb .CharCode )(CharMetrics ,bool ){var _bdff _ffd .CharMetrics ;switch _bgaf :=_bafa ._dbgb .(type ){case *pdfFontSimple :if _bcee ,_geec :=_bgaf .GetCharMetrics (code );_geec {return _bcee ,_geec ;};case *pdfFontType0 :if _fgccb ,_egcbd :=_bgaf .GetCharMetrics (code );
|
||
_egcbd {return _fgccb ,_egcbd ;};case *pdfCIDFontType0 :if _bcec ,_eacf :=_bgaf .GetCharMetrics (code );_eacf {return _bcec ,_eacf ;};case *pdfCIDFontType2 :if _egffb ,_cadge :=_bgaf .GetCharMetrics (code );_cadge {return _egffb ,_cadge ;};case *pdfFontType3 :if _adab ,_ggca :=_bgaf .GetCharMetrics (code );
|
||
_ggca {return _adab ,_ggca ;};default:_ccb .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",_bafa ._dbgb );
|
||
return _bdff ,false ;};if _dgfe ,_dgde :=_bafa .GetFontDescriptor ();_dgde ==nil &&_dgfe !=nil {return _ffd .CharMetrics {Wx :_dgfe ._fdadf },true ;};_ccb .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",_bafa );
|
||
return _bdff ,false ;};
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_dcbag *Outline )ToPdfOutline ()*PdfOutline {_bdcd :=NewPdfOutline ();var _bbad []*PdfOutlineItem ;var _bedc int64 ;var _bgfb *PdfOutlineItem ;for _ ,_gegfga :=range _dcbag .Entries {_afdbb ,_fedc :=_gegfga .ToPdfOutlineItem ();_afdbb .Parent =&_bdcd .PdfOutlineTreeNode ;
|
||
if _bgfb !=nil {_bgfb .Next =&_afdbb .PdfOutlineTreeNode ;_afdbb .Prev =&_bgfb .PdfOutlineTreeNode ;};_bbad =append (_bbad ,_afdbb );_bedc +=_fedc ;_bgfb =_afdbb ;};_dgbb :=int64 (len (_bbad ));_bedc +=_dgbb ;if _dgbb > 0{_bdcd .First =&_bbad [0].PdfOutlineTreeNode ;
|
||
_bdcd .Last =&_bbad [_dgbb -1].PdfOutlineTreeNode ;_bdcd .Count =&_bedc ;};return _bdcd ;};
|
||
|
||
// 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 *_eca .PdfObjectStream ;Data []byte ;_bgefa *_eca .PdfIndirectObject ;_fdga *_eca .PdfObjectStream ;};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _eca .StreamEncoder ;FormType _eca .PdfObject ;BBox _eca .PdfObject ;Matrix _eca .PdfObject ;Resources *PdfPageResources ;Group _eca .PdfObject ;Ref _eca .PdfObject ;MetaData _eca .PdfObject ;PieceInfo _eca .PdfObject ;LastModified _eca .PdfObject ;
|
||
StructParent _eca .PdfObject ;StructParents _eca .PdfObject ;OPI _eca .PdfObject ;OC _eca .PdfObject ;Name _eca .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_afddc *_eca .PdfObjectStream ;};func (_gbef *PdfReader )newPdfAnnotationLineFromDict (_fgcf *_eca .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_edga :=PdfAnnotationLine {};_cgg ,_geda :=_gbef .newPdfAnnotationMarkupFromDict (_fgcf );
|
||
if _geda !=nil {return nil ,_geda ;};_edga .PdfAnnotationMarkup =_cgg ;_edga .L =_fgcf .Get ("\u004c");_edga .BS =_fgcf .Get ("\u0042\u0053");_edga .LE =_fgcf .Get ("\u004c\u0045");_edga .IC =_fgcf .Get ("\u0049\u0043");_edga .LL =_fgcf .Get ("\u004c\u004c");
|
||
_edga .LLE =_fgcf .Get ("\u004c\u004c\u0045");_edga .Cap =_fgcf .Get ("\u0043\u0061\u0070");_edga .IT =_fgcf .Get ("\u0049\u0054");_edga .LLO =_fgcf .Get ("\u004c\u004c\u004f");_edga .CP =_fgcf .Get ("\u0043\u0050");_edga .Measure =_fgcf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
|
||
_edga .CO =_fgcf .Get ("\u0043\u004f");return &_edga ,nil ;};
|
||
|
||
// PdfSignature represents a PDF signature dictionary and is used for signing via form signature fields.
|
||
// (Section 12.8, Table 252 - Entries in a signature dictionary p. 475 in PDF32000_2008).
|
||
type PdfSignature struct{Handler SignatureHandler ;_bfebg *_eca .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_eca .PdfObjectName ;Filter *_eca .PdfObjectName ;SubFilter *_eca .PdfObjectName ;Contents *_eca .PdfObjectString ;Cert _eca .PdfObject ;ByteRange *_eca .PdfObjectArray ;Reference *_eca .PdfObjectArray ;Changes *_eca .PdfObjectArray ;Name *_eca .PdfObjectString ;
|
||
M *_eca .PdfObjectString ;Location *_eca .PdfObjectString ;Reason *_eca .PdfObjectString ;ContactInfo *_eca .PdfObjectString ;R *_eca .PdfObjectInteger ;V *_eca .PdfObjectInteger ;PropBuild *_eca .PdfObjectDictionary ;PropAuthTime *_eca .PdfObjectInteger ;
|
||
PropAuthType *_eca .PdfObjectName ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_bdedfa *PdfFunctionType4 )ToPdfObject ()_eca .PdfObject {_eeebb :=_bdedfa ._bdgbf ;if _eeebb ==nil {_bdedfa ._bdgbf =&_eca .PdfObjectStream {};_eeebb =_bdedfa ._bdgbf ;};_cfdeb :=_eca .MakeDict ();_cfdeb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (4));
|
||
_egfec :=&_eca .PdfObjectArray {};for _ ,_addcb :=range _bdedfa .Domain {_egfec .Append (_eca .MakeFloat (_addcb ));};_cfdeb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_egfec );_cdbgg :=&_eca .PdfObjectArray {};for _ ,_eace :=range _bdedfa .Range {_cdbgg .Append (_eca .MakeFloat (_eace ));
|
||
};_cfdeb .Set ("\u0052\u0061\u006eg\u0065",_cdbgg );if _bdedfa ._aeafdg ==nil &&_bdedfa .Program !=nil {_bdedfa ._aeafdg =[]byte (_bdedfa .Program .String ());};_cfdeb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_bdedfa ._aeafdg ))));
|
||
_eeebb .Stream =_bdedfa ._aeafdg ;_eeebb .PdfObjectDictionary =_cfdeb ;return _eeebb ;};
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_aded *PdfPageResources )GetXObjectByName (keyName _eca .PdfObjectName )(*_eca .PdfObjectStream ,XObjectType ){if _aded .XObject ==nil {return nil ,XObjectTypeUndefined ;};_fbffg ,_bdgfe :=_eca .TraceToDirectObject (_aded .XObject ).(*_eca .PdfObjectDictionary );
|
||
if !_bdgfe {_ccb .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",_eca .TraceToDirectObject (_aded .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _faefe :=_fbffg .Get (keyName );_faefe !=nil {_affee ,_dadcc :=_eca .GetStream (_faefe );if !_dadcc {_ccb .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",_faefe );
|
||
return nil ,XObjectTypeUndefined ;};_bcedeb :=_affee .PdfObjectDictionary ;_gfae ,_dadcc :=_eca .TraceToDirectObject (_bcedeb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_eca .PdfObjectName );if !_dadcc {_ccb .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",_bcedeb .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_gfae =="\u0049\u006d\u0061g\u0065"{return _affee ,XObjectTypeImage ;}else if *_gfae =="\u0046\u006f\u0072\u006d"{return _affee ,XObjectTypeForm ;}else if *_gfae =="\u0050\u0053"{return _affee ,XObjectTypePS ;}else {_ccb .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",*_gfae );
|
||
return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;};};
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_eabfd *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_eabfd ._ccgeg =outlineTree };
|
||
|
||
// 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 (_bbga *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fad :=vals [0];if _fad < 0.0||_fad > 1.0{_ccb .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 _fad < 0.0{_fad =0.0;}else if _fad > 1.0{_fad =1.0;};return NewPdfColorDeviceGray (_fad ),nil ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_cgbe *PdfColorCalRGB )C ()float64 {return _cgbe [2]};func _cebgd ()string {_ccbac .Lock ();defer _ccbac .Unlock ();return _gfcfa };
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_deba *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_deba .NumInputs {_ccb .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 ,_da .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _deba ._acbe ==nil {_eadde :=_deba .processSamples ();if _eadde !=nil {return nil ,_eadde ;};};_bbgb :=_deba .Encode ;if _bbgb ==nil {_bbgb =[]float64 {};
|
||
for _cdbgb :=0;_cdbgb < len (_deba .Size );_cdbgb ++{_bbgb =append (_bbgb ,0);_bbgb =append (_bbgb ,float64 (_deba .Size [_cdbgb ]-1));};};_dcecf :=_deba .Decode ;if _dcecf ==nil {_dcecf =_deba .Range ;};_bcge :=make ([]int ,len (x ));for _agcf :=0;_agcf < len (x );
|
||
_agcf ++{_facbe :=x [_agcf ];_bbgca :=_de .Min (_de .Max (_facbe ,_deba .Domain [2*_agcf ]),_deba .Domain [2*_agcf +1]);_gegg :=_bbg .LinearInterpolate (_bbgca ,_deba .Domain [2*_agcf ],_deba .Domain [2*_agcf +1],_bbgb [2*_agcf ],_bbgb [2*_agcf +1]);_bbdf :=_de .Min (_de .Max (_gegg ,0),float64 (_deba .Size [_agcf ]-1));
|
||
_fcegg :=int (_de .Floor (_bbdf +0.5));if _fcegg < 0{_fcegg =0;}else if _fcegg > _deba .Size [_agcf ]{_fcegg =_deba .Size [_agcf ]-1;};_bcge [_agcf ]=_fcegg ;};_gcbgg :=_bcge [0];for _bdaaac :=1;_bdaaac < _deba .NumInputs ;_bdaaac ++{_cbff :=_bcge [_bdaaac ];
|
||
for _aegce :=0;_aegce < _bdaaac ;_aegce ++{_cbff *=_deba .Size [_aegce ];};_gcbgg +=_cbff ;};_gcbgg *=_deba .NumOutputs ;var _bbabe []float64 ;for _cgae :=0;_cgae < _deba .NumOutputs ;_cgae ++{_befcc :=_gcbgg +_cgae ;if _befcc >=len (_deba ._acbe ){_ccb .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 ;};_baefa :=_deba ._acbe [_befcc ];_eccccc :=_bbg .LinearInterpolate (float64 (_baefa ),0,_de .Pow (2,float64 (_deba .BitsPerSample )),_dcecf [2*_cgae ],_dcecf [2*_cgae +1]);_aegbf :=_de .Min (_de .Max (_eccccc ,_deba .Range [2*_cgae ]),_deba .Range [2*_cgae +1]);
|
||
_bbabe =append (_bbabe ,_aegbf );};return _bbabe ,nil ;};
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_ed :=NewPdfAction ();_dcg :=&PdfActionThread {};_dcg .PdfAction =_ed ;_ed .SetContext (_dcg );return _dcg ;};func (_bfbde *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";
|
||
};
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _eca .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _faed *_eca .PdfIndirectObject ;var _ecbbb *_eca .PdfObjectName ;var _gebc *_eca .PdfObjectArray ;if _bcfe ,_adea :=obj .(*_eca .PdfIndirectObject );
|
||
_adea {_faed =_bcfe ;};obj =_eca .TraceToDirectObject (obj );switch _bfd :=obj .(type ){case *_eca .PdfObjectArray :_gebc =_bfd ;case *_eca .PdfObjectName :_ecbbb =_bfd ;};if _ecbbb !=nil {switch *_ecbbb {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:_ccb .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",*_ecbbb );return nil ,_abbe ;};};if _gebc !=nil &&_gebc .Len ()> 0{var _adcbf _eca .PdfObject =_faed ;
|
||
if _faed ==nil {_adcbf =_gebc ;};if _ageb ,_acgf :=_eca .GetName (_gebc .Get (0));_acgf {switch _ageb .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _gebc .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _gebc .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _gebc .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _afec (_adcbf );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _gdde (_adcbf );
|
||
case "\u004c\u0061\u0062":return _dcegf (_adcbf );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gcbg (_adcbf );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _aafd (_adcbf );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _ecgc (_adcbf );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _fbff (_adcbf );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _beeca (_adcbf );default:_ccb .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",*_ageb );
|
||
};};};_ccb .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
|
||
return nil ,ErrTypeCheck ;};func _bbdgf (_fbga _eca .PdfObject ,_gfgbd bool )(*PdfFont ,error ){_decf ,_adge ,_efacc :=_ebdc (_fbga );if _decf !=nil {_gebb (_decf );};if _efacc !=nil {if _efacc ==ErrType1CFontNotSupported {_acffec ,_fgba :=_fdbg (_decf ,_adge ,nil );
|
||
if _fgba !=nil {_ccb .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",_adge ,_fgba );
|
||
return nil ,_efacc ;};return &PdfFont {_dbgb :_acffec },_efacc ;};return nil ,_efacc ;};_cdcce :=&PdfFont {};switch _adge ._cfbe {case "\u0054\u0079\u0070e\u0030":if !_gfgbd {_ccb .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",_adge );
|
||
return nil ,_da .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_fgfe ,_abaca :=_dagb (_decf ,_adge );if _abaca !=nil {_ccb .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",_adge ,_abaca );
|
||
return nil ,_abaca ;};_cdcce ._dbgb =_fgfe ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ggce *pdfFontSimple ;_fdbfa ,_becad :=_ffd .NewStdFontByName (_ffd .StdFontName (_adge ._daac ));
|
||
if _becad {_acffc :=_fgcd (_fdbfa );_cdcce ._dbgb =&_acffc ;_gdeb :=_eca .TraceToDirectObject (_acffc .ToPdfObject ());_fddfb ,_ggbba ,_accd :=_ebdc (_gdeb );if _accd !=nil {_ccb .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",_adge ,_acffc );
|
||
return nil ,_accd ;};for _ ,_ecdge :=range _decf .Keys (){_fddfb .Set (_ecdge ,_decf .Get (_ecdge ));};_ggce ,_accd =_fdbg (_fddfb ,_ggbba ,_acffc ._aaggg );if _accd !=nil {_ccb .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",_adge ,_acffc );
|
||
return nil ,_accd ;};_ggce ._gfcfb =_acffc ._gfcfb ;_ggce ._cedde =_acffc ._cedde ;if _ggce ._bggag ==nil {_ggce ._bggag =_acffc ._bggag ;};}else {_ggce ,_efacc =_fdbg (_decf ,_adge ,nil );if _efacc !=nil {_ccb .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",_adge ,_efacc );
|
||
return nil ,_efacc ;};};_efacc =_ggce .addEncoding ();if _efacc !=nil {return nil ,_efacc ;};if _becad {_ggce .updateStandard14Font ();};if _becad &&_ggce ._daddc ==nil &&_ggce ._aaggg ==nil {_ccb .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ggce );
|
||
_ccb .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_fdbfa );};if len (_ggce ._gfcfb )==0{_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ggce );};_cdcce ._dbgb =_ggce ;
|
||
case "\u0054\u0079\u0070e\u0033":_dbcef ,_aaga :=_egcfe (_decf ,_adge );if _aaga !=nil {_ccb .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",_aaga );
|
||
return nil ,_aaga ;};_cdcce ._dbgb =_dbcef ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_fgdf ,_dcdgd :=_gfaf (_decf ,_adge );if _dcdgd !=nil {_ccb .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",_dcdgd );
|
||
return nil ,_dcdgd ;};_cdcce ._dbgb =_fgdf ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_aeafc ,_dcbc :=_ffdd (_decf ,_adge );if _dcbc !=nil {_ccb .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",_adge ,_dcbc );
|
||
return nil ,_dcbc ;};_cdcce ._dbgb =_aeafc ;default:_ccb .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",_adge );
|
||
return nil ,_g .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",_adge );};return _cdcce ,nil ;};
|
||
|
||
// StringToCharcodeBytes maps the provided string runes to charcode bytes and
|
||
// it returns the resulting slice of bytes, along with the number of runes
|
||
// which could not be converted. If the number of misses is 0, all string runes
|
||
// were successfully converted.
|
||
func (_cage *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _cage .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_efae *PdfAcroForm ,_gbfa *PdfField ,_bcbb *PdfAnnotationWidget )(*_eca .PdfObjectDictionary ,error );};func (_aefa fontCommon )isCIDFont ()bool {if _aefa ._cfbe ==""{_ccb .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",_aefa );
|
||
};_bddf :=false ;switch _aefa ._cfbe {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":_bddf =true ;};_ccb .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",_bddf ,_aefa );
|
||
return _bddf ;};type pdfFont interface{_ffd .Font ;
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_eca .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_gafa *PdfReader )GetEncryptionMethod ()string {_fbged :=_gafa ._ecfeba .GetCrypter ();return _fbged .String ();};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_ddfa *PdfFont )Subtype ()string {_dabaf :=_ddfa .baseFields ()._cfbe ;if _ebbga ,_fbadd :=_ddfa ._dbgb .(*pdfFontType0 );_fbadd {_dabaf =_dabaf +"\u003a"+_ebbga .DescendantFont .Subtype ();};return _dabaf ;};
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_edcg *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _edcg .AlternateSpace ==nil {return nil ,_da .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 _edcg .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_bdgdc *PdfReader )GetOutlines ()(*Outline ,error ){if _bdgdc ==nil {return nil ,_da .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");
|
||
};_dfbbf :=_bdgdc .GetOutlineTree ();if _dfbbf ==nil {return nil ,_da .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 _gfadb func (_adaac *PdfOutlineTreeNode ,_fceag *[]*OutlineItem );_gfadb =func (_ggcbc *PdfOutlineTreeNode ,_gfcfbb *[]*OutlineItem ){if _ggcbc ==nil {return ;};if _ggcbc ._dcfbf ==nil {_ccb .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 _edabc *OutlineItem ;if _afdad ,_bcbf :=_ggcbc ._dcfbf .(*PdfOutlineItem );_bcbf {_egde :=_afdad .Dest ;if (_egde ==nil ||_eca .IsNullObject (_egde ))&&_afdad .A !=nil {if _egaeb ,_feccb :=_eca .GetDict (_afdad .A );_feccb {if _abccg ,_cdaab :=_eca .GetArray (_egaeb .Get ("\u0044"));
|
||
_cdaab {_egde =_abccg ;}else {_fcagg ,_gedef :=_eca .GetString (_egaeb .Get ("\u0044"));if !_gedef {return ;};_ebfcbf ,_gedef :=_bdgdc ._affc .Get ("\u004e\u0061\u006de\u0073").(*_eca .PdfObjectReference );if !_gedef {return ;};_feegf ,_ceeaf :=_bdgdc ._ecfeba .LookupByReference (*_ebfcbf );
|
||
if _ceeaf !=nil {_ccb .Log .Debug ("\u0045\u0052\u0052O\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0072\u0065\u0061\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0020\u0028\u0025\u0073\u0029",_ceeaf .Error ());
|
||
return ;};_bedde ,_gedef :=_feegf .(*_eca .PdfIndirectObject );if !_gedef {return ;};_beea :=map[_eca .PdfObject ]struct{}{};_ceeaf =_bdgdc .buildNameNodes (_bedde ,_beea );if _ceeaf !=nil {_ccb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0062\u0075\u0069\u006c\u0064\u0020\u006ea\u006d\u0065\u0020\u006e\u006fd\u0065\u0073 \u0028\u0025\u0073\u0029",_ceeaf .Error ());
|
||
return ;};for _facca :=range _beea {_fccgf ,_dadc :=_eca .GetDict (_facca );if !_dadc {continue ;};_ddeggc ,_dadc :=_eca .GetArray (_fccgf .Get ("\u004e\u0061\u006de\u0073"));if !_dadc {continue ;};for _ddeadb ,_gdgfg :=range _ddeggc .Elements (){switch _gdgfg .(type ){case *_eca .PdfObjectString :if _gdgfg .String ()==_fcagg .String (){if _dggc :=_ddeggc .Get (_ddeadb +1);
|
||
_dggc !=nil {if _fcacc ,_bgfdf :=_eca .GetDict (_dggc );_bgfdf {_egde =_fcacc .Get ("\u0044");break ;};};};};};};};};};var _agada OutlineDest ;if _egde !=nil &&!_eca .IsNullObject (_egde ){if _bbagd ,_bbabb :=_degfg (_egde ,_bdgdc );_bbabb ==nil {_agada =*_bbagd ;
|
||
}else {_ccb .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",_egde ,_bbabb );
|
||
};};_edabc =NewOutlineItem (_afdad .Title .Decoded (),_agada );*_gfcfbb =append (*_gfcfbb ,_edabc );if _afdad .Next !=nil {_gfadb (_afdad .Next ,_gfcfbb );};};if _ggcbc .First !=nil {if _edabc !=nil {_gfcfbb =&_edabc .Entries ;};_gfadb (_ggcbc .First ,_gfcfbb );
|
||
};};_aaccg :=NewOutline ();_gfadb (_dfbbf ,&_aaccg .Entries );return _aaccg ,nil ;};
|
||
|
||
// DSS represents a Document Security Store dictionary.
|
||
// The DSS dictionary contains both global and signature specific validation
|
||
// information. The certificates and revocation data in the `Certs`, `OCSPs`,
|
||
// and `CRLs` fields can be used to validate any signature in the document.
|
||
// Additionally, the VRI entry contains validation data per signature.
|
||
// The keys in the VRI entry are calculated as upper(hex(sha1(sig.Contents))).
|
||
// The values are VRI dictionaries containing certificates and revocation
|
||
// information used for validating a single signature.
|
||
// See ETSI TS 102 778-4 V1.1.1 for more information.
|
||
type DSS struct{_cdaa *_eca .PdfIndirectObject ;Certs []*_eca .PdfObjectStream ;OCSPs []*_eca .PdfObjectStream ;CRLs []*_eca .PdfObjectStream ;VRI map[string ]*VRI ;_aaed map[string ]*_eca .PdfObjectStream ;_defag map[string ]*_eca .PdfObjectStream ;_ccgf map[string ]*_eca .PdfObjectStream ;
|
||
};func (_ccd *PdfReader )newPdfAnnotationLinkFromDict (_cgcc *_eca .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_gffa :=PdfAnnotationLink {};_gffa .A =_cgcc .Get ("\u0041");_gffa .Dest =_cgcc .Get ("\u0044\u0065\u0073\u0074");_gffa .H =_cgcc .Get ("\u0048");
|
||
_gffa .PA =_cgcc .Get ("\u0050\u0041");_gffa .QuadPoints =_cgcc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gffa .BS =_cgcc .Get ("\u0042\u0053");return &_gffa ,nil ;};func (_bdg *PdfReader )newPdfAnnotationSquareFromDict (_aege *_eca .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_dedg :=PdfAnnotationSquare {};
|
||
_gded ,_fcfa :=_bdg .newPdfAnnotationMarkupFromDict (_aege );if _fcfa !=nil {return nil ,_fcfa ;};_dedg .PdfAnnotationMarkup =_gded ;_dedg .BS =_aege .Get ("\u0042\u0053");_dedg .IC =_aege .Get ("\u0049\u0043");_dedg .BE =_aege .Get ("\u0042\u0045");_dedg .RD =_aege .Get ("\u0052\u0044");
|
||
return &_dedg ,nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_gbfb *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cagb *PdfPageResourcesColorspaces )ToPdfObject ()_eca .PdfObject {_cegaeg :=_eca .MakeDict ();for _ ,_ccaa :=range _cagb .Names {_cegaeg .Set (_eca .PdfObjectName (_ccaa ),_cagb .Colorspaces [_ccaa ].ToPdfObject ());};if _cagb ._faddg !=nil {_cagb ._faddg .PdfObject =_cegaeg ;
|
||
return _cagb ._faddg ;};return _cegaeg ;};func _egbf ()string {return _ccb .Version };
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_geg :=NewPdfAction ();_cadg :=&PdfActionSound {};_cadg .PdfAction =_geg ;_geg .SetContext (_cadg );return _cadg ;};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;var _bafe =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":{}};
|
||
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_faag *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _faag .UnderlyingCS .GetNumComponents ();};
|
||
|
||
// 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 (_daaaa *Image )ConvertToBinary ()error {if _daaaa .ColorComponents ==1&&_daaaa .BitsPerComponent ==1{return nil ;};_cddca ,_feagf :=_daaaa .ToGoImage ();if _feagf !=nil {return _feagf ;};_addf ,_feagf :=_bbg .MonochromeConverter .Convert (_cddca );
|
||
if _feagf !=nil {return _feagf ;};_daaaa .Data =_addf .Base ().Data ;_daaaa ._gcgb ,_feagf =_bbg .ScaleAlphaToMonochrome (_daaaa ._gcgb ,int (_daaaa .Width ),int (_daaaa .Height ));if _feagf !=nil {return _feagf ;};_daaaa .BitsPerComponent =1;_daaaa .ColorComponents =1;
|
||
_daaaa ._cfgaa =nil ;return nil ;};func _bfgd (_fdgc *_eca .PdfObjectStream )(*PdfFunctionType0 ,error ){_cfaee :=&PdfFunctionType0 {};_cfaee ._ggde =_fdgc ;_gedb :=_fdgc .PdfObjectDictionary ;_aegb ,_ggccb :=_eca .TraceToDirectObject (_gedb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray );
|
||
if !_ggccb {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _aegb .Len ()< 0||_aegb .Len ()%2!=0{_ccb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_cfaee .NumInputs =_aegb .Len ()/2;_dcgfg ,_gcdcd :=_aegb .ToFloat64Array ();if _gcdcd !=nil {return nil ,_gcdcd ;};_cfaee .Domain =_dcgfg ;_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if !_ggccb {_ccb .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_da .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 _aegb .Len ()< 0||_aegb .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_cfaee .NumOutputs =_aegb .Len ()/2;_deaad ,_gcdcd :=_aegb .ToFloat64Array ();if _gcdcd !=nil {return nil ,_gcdcd ;};_cfaee .Range =_deaad ;_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0053\u0069\u007a\u0065")).(*_eca .PdfObjectArray );if !_ggccb {_ccb .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_da .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");};_bgeda ,_gcdcd :=_aegb .ToIntegerArray ();
|
||
if _gcdcd !=nil {return nil ,_gcdcd ;};if len (_bgeda )!=_cfaee .NumInputs {_ccb .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 ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfaee .Size =_bgeda ;_cedgb ,_ggccb :=_eca .TraceToDirectObject (_gedb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_eca .PdfObjectInteger );
|
||
if !_ggccb {_ccb .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 ,_da .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 *_cedgb !=1&&*_cedgb !=2&&*_cedgb !=4&&*_cedgb !=8&&*_cedgb !=12&&*_cedgb !=16&&*_cedgb !=24&&*_cedgb !=32{_ccb .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",*_cedgb );
|
||
return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfaee .BitsPerSample =int (*_cedgb );_cfaee .Order =1;_dcgdag ,_ggccb :=_eca .TraceToDirectObject (_gedb .Get ("\u004f\u0072\u0064e\u0072")).(*_eca .PdfObjectInteger );
|
||
if _ggccb {if *_dcgdag !=1&&*_dcgdag !=3{_ccb .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_dcgdag );return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cfaee .Order =int (*_dcgdag );
|
||
};_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eca .PdfObjectArray );if _ggccb {_fbaa ,_gaega :=_aegb .ToFloat64Array ();if _gaega !=nil {return nil ,_gaega ;};_cfaee .Encode =_fbaa ;};_aegb ,_ggccb =_eca .TraceToDirectObject (_gedb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_eca .PdfObjectArray );
|
||
if _ggccb {_degdd ,_agag :=_aegb .ToFloat64Array ();if _agag !=nil {return nil ,_agag ;};_cfaee .Decode =_degdd ;};_ggedb ,_gcdcd :=_eca .DecodeStream (_fdgc );if _gcdcd !=nil {return nil ,_gcdcd ;};_cfaee ._gefbg =_ggedb ;return _cfaee ,nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_edabe pdfFontType3 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _fgcfgf ,_gbdde :=_edabe ._ggcge [code ];_gbdde {return _ffd .CharMetrics {Wx :_fgcfgf },true ;};if _ffd .IsStdFont (_ffd .StdFontName (_edabe ._daac )){return _ffd .CharMetrics {Wx :250},true ;
|
||
};return _ffd .CharMetrics {},false ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cag *PdfAnnotationPolyLine )ToPdfObject ()_eca .PdfObject {_cag .PdfAnnotation .ToPdfObject ();_cffa :=_cag ._cdc ;_edcd :=_cffa .PdfObject .(*_eca .PdfObjectDictionary );_cag .PdfAnnotationMarkup .appendToPdfDictionary (_edcd );_edcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_edcd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_cag .Vertices );_edcd .SetIfNotNil ("\u004c\u0045",_cag .LE );_edcd .SetIfNotNil ("\u0042\u0053",_cag .BS );_edcd .SetIfNotNil ("\u0049\u0043",_cag .IC );_edcd .SetIfNotNil ("\u0042\u0045",_cag .BE );
|
||
_edcd .SetIfNotNil ("\u0049\u0054",_cag .IT );_edcd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cag .Measure );return _cffa ;};
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_aeaef :=PdfColorCalRGB {a ,b ,c };return &_aeaef ;};
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_acdc *PdfFunctionType0 )ToPdfObject ()_eca .PdfObject {if _acdc ._ggde ==nil {_acdc ._ggde =&_eca .PdfObjectStream {};};_bggac :=_eca .MakeDict ();_bggac .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (0));
|
||
_dcccaa :=&_eca .PdfObjectArray {};for _ ,_egcc :=range _acdc .Domain {_dcccaa .Append (_eca .MakeFloat (_egcc ));};_bggac .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dcccaa );_daagg :=&_eca .PdfObjectArray {};for _ ,_dacce :=range _acdc .Range {_daagg .Append (_eca .MakeFloat (_dacce ));
|
||
};_bggac .Set ("\u0052\u0061\u006eg\u0065",_daagg );_febc :=&_eca .PdfObjectArray {};for _ ,_dfef :=range _acdc .Size {_febc .Append (_eca .MakeInteger (int64 (_dfef )));};_bggac .Set ("\u0053\u0069\u007a\u0065",_febc );_bggac .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_eca .MakeInteger (int64 (_acdc .BitsPerSample )));
|
||
if _acdc .Order !=1{_bggac .Set ("\u004f\u0072\u0064e\u0072",_eca .MakeInteger (int64 (_acdc .Order )));};_bggac .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_acdc ._gefbg ))));_acdc ._ggde .Stream =_acdc ._gefbg ;_acdc ._ggde .PdfObjectDictionary =_bggac ;
|
||
return _acdc ._ggde ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_aagd *PdfAnnotation )ToPdfObject ()_eca .PdfObject {_ecd :=_aagd ._cdc ;_abb :=_ecd .PdfObject .(*_eca .PdfObjectDictionary );_abb .Clear ();_abb .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0041\u006e\u006eo\u0074"));_abb .SetIfNotNil ("\u0052\u0065\u0063\u0074",_aagd .Rect );
|
||
_abb .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_aagd .Contents );_abb .SetIfNotNil ("\u0050",_aagd .P );_abb .SetIfNotNil ("\u004e\u004d",_aagd .NM );_abb .SetIfNotNil ("\u004d",_aagd .M );_abb .SetIfNotNil ("\u0046",_aagd .F );_abb .SetIfNotNil ("\u0041\u0050",_aagd .AP );
|
||
_abb .SetIfNotNil ("\u0041\u0053",_aagd .AS );_abb .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_aagd .Border );_abb .SetIfNotNil ("\u0043",_aagd .C );_abb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_aagd .StructParent );
|
||
_abb .SetIfNotNil ("\u004f\u0043",_aagd .OC );return _ecd ;};func _gfgce (_edega *_eca .PdfObjectDictionary )(*PdfShadingType6 ,error ){_cedcf :=PdfShadingType6 {};_afcdb :=_edega .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _afcdb ==nil {_ccb .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 ;};_eegde ,_ageca :=_afcdb .(*_eca .PdfObjectInteger );if !_ageca {_ccb .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",_afcdb );
|
||
return nil ,_eca .ErrTypeError ;};_cedcf .BitsPerCoordinate =_eegde ;_afcdb =_edega .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _afcdb ==nil {_ccb .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 ;};_eegde ,_ageca =_afcdb .(*_eca .PdfObjectInteger );if !_ageca {_ccb .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",_afcdb );
|
||
return nil ,_eca .ErrTypeError ;};_cedcf .BitsPerComponent =_eegde ;_afcdb =_edega .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _afcdb ==nil {_ccb .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 ;};_eegde ,_ageca =_afcdb .(*_eca .PdfObjectInteger );if !_ageca {_ccb .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",_afcdb );
|
||
return nil ,_eca .ErrTypeError ;};_cedcf .BitsPerComponent =_eegde ;_afcdb =_edega .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _afcdb ==nil {_ccb .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 ;};_gecea ,_ageca :=_afcdb .(*_eca .PdfObjectArray );if !_ageca {_ccb .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",_afcdb );
|
||
return nil ,_eca .ErrTypeError ;};_cedcf .Decode =_gecea ;if _dcfa :=_edega .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dcfa !=nil {_cedcf .Function =[]PdfFunction {};if _bggfb ,_gabf :=_dcfa .(*_eca .PdfObjectArray );_gabf {for _ ,_cbcab :=range _bggfb .Elements (){_gdcdg ,_bbaea :=_febaf (_cbcab );
|
||
if _bbaea !=nil {_ccb .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",_bbaea );return nil ,_bbaea ;};_cedcf .Function =append (_cedcf .Function ,_gdcdg );
|
||
};}else {_egagc ,_aegda :=_febaf (_dcfa );if _aegda !=nil {_ccb .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",_aegda );return nil ,_aegda ;
|
||
};_cedcf .Function =append (_cedcf .Function ,_egagc );};};return &_cedcf ,nil ;};
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};func (_acbea *Image )resampleLowBits (_dbgbca []uint32 ){_egccg :=_bbg .BytesPerLine (int (_acbea .Width ),int (_acbea .BitsPerComponent ),_acbea .ColorComponents );_cgddd :=make ([]byte ,_acbea .ColorComponents *_egccg *int (_acbea .Height ));
|
||
_ddgbd :=int (_acbea .BitsPerComponent )*_acbea .ColorComponents *int (_acbea .Width );_eaabdf :=uint8 (8);var (_bddba ,_egcac int ;_eabbd uint32 ;);for _gaegb :=0;_gaegb < int (_acbea .Height );_gaegb ++{_egcac =_gaegb *_egccg ;for _ccacg :=0;_ccacg < _ddgbd ;
|
||
_ccacg ++{_eabbd =_dbgbca [_bddba ];_eaabdf -=uint8 (_acbea .BitsPerComponent );_cgddd [_egcac ]|=byte (_eabbd )<<_eaabdf ;if _eaabdf ==0{_eaabdf =8;_egcac ++;};_bddba ++;};};_acbea .Data =_cgddd ;};
|
||
|
||
// 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 (_debe *PdfReader )CheckAccessRights (password []byte )(bool ,_bb .Permissions ,error ){return _debe ._ecfeba .CheckAccessRights (password );};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_gefa *PdfPage )AddImageResource (name _eca .PdfObjectName ,ximg *XObjectImage )error {var _bcef *_eca .PdfObjectDictionary ;if _gefa .Resources .XObject ==nil {_bcef =_eca .MakeDict ();_gefa .Resources .XObject =_bcef ;}else {var _fdfcd bool ;_bcef ,_fdfcd =(_gefa .Resources .XObject ).(*_eca .PdfObjectDictionary );
|
||
if !_fdfcd {return _da .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_bcef .Set (name ,ximg .ToPdfObject ());return nil ;};func (_ffe *PdfReader )newPdfAnnotationProjectionFromDict (_gdad *_eca .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_fcae :=&PdfAnnotationProjection {};
|
||
_caea ,_eead :=_ffe .newPdfAnnotationMarkupFromDict (_gdad );if _eead !=nil {return nil ,_eead ;};_fcae .PdfAnnotationMarkup =_caea ;return _fcae ,nil ;};func (_bggbd *PdfReader )newPdfPageFromDict (_beaec *_eca .PdfObjectDictionary )(*PdfPage ,error ){_fdagb :=NewPdfPage ();
|
||
_fdagb ._agaea =_beaec ;_fdagb ._gbaec =*_beaec ;_fcacg :=*_beaec ;_agec ,_ggcgfg :=_fcacg .Get ("\u0054\u0079\u0070\u0065").(*_eca .PdfObjectName );if !_ggcgfg {return nil ,_da .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 *_agec !="\u0050\u0061\u0067\u0065"{return nil ,_da .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 _agefe :=_fcacg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_agefe !=nil {_fdagb .Parent =_agefe ;};if _eggdfd :=_fcacg .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_eggdfd !=nil {_bafef ,_cfeba :=_eca .GetString (_eggdfd );if !_cfeba {return nil ,_da .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");
|
||
};_ababb ,_abega :=NewPdfDate (_bafef .Str ());if _abega !=nil {return nil ,_abega ;};_fdagb .LastModified =&_ababb ;};if _acfg :=_fcacg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_acfg !=nil &&!_eca .IsNullObject (_acfg ){_becfc ,_bcfc :=_eca .GetDict (_acfg );
|
||
if !_bcfc {return nil ,_g .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",_acfg );};var _gfaad error ;_fdagb .Resources ,_gfaad =NewPdfPageResourcesFromDict (_becfc );
|
||
if _gfaad !=nil {return nil ,_gfaad ;};}else {_aegdf ,_ccfg :=_fdagb .getParentResources ();if _ccfg !=nil {return nil ,_ccfg ;};if _aegdf ==nil {_aegdf =NewPdfPageResources ();};_fdagb .Resources =_aegdf ;};if _bgea :=_fcacg .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_bgea !=nil {_fccdc ,_ggcd :=_eca .GetArray (_bgea );if !_ggcd {return nil ,_da .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 _ggace error ;
|
||
_fdagb .MediaBox ,_ggace =NewPdfRectangle (*_fccdc );if _ggace !=nil {return nil ,_ggace ;};};if _gbdbg :=_fcacg .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_gbdbg !=nil {_eegac ,_ecfcf :=_eca .GetArray (_gbdbg );if !_ecfcf {return nil ,_da .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _dbba error ;_fdagb .CropBox ,_dbba =NewPdfRectangle (*_eegac );if _dbba !=nil {return nil ,_dbba ;};};if _aecfg :=_fcacg .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_aecfg !=nil {_agdcb ,_dgbgg :=_eca .GetArray (_aecfg );if !_dgbgg {return nil ,_da .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 _edddf error ;_fdagb .BleedBox ,_edddf =NewPdfRectangle (*_agdcb );if _edddf !=nil {return nil ,_edddf ;};};if _fgda :=_fcacg .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_fgda !=nil {_efccg ,_eeede :=_eca .GetArray (_fgda );if !_eeede {return nil ,_da .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _dfbec error ;_fdagb .TrimBox ,_dfbec =NewPdfRectangle (*_efccg );if _dfbec !=nil {return nil ,_dfbec ;};};if _cffgc :=_fcacg .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_cffgc !=nil {_fgcfd ,_fcgfe :=_eca .GetArray (_cffgc );if !_fcgfe {return nil ,_da .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _gcfdbe error ;_fdagb .ArtBox ,_gcfdbe =NewPdfRectangle (*_fgcfd );if _gcfdbe !=nil {return nil ,_gcfdbe ;};};if _dcbfe :=_fcacg .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_dcbfe !=nil {_fdagb .BoxColorInfo =_dcbfe ;
|
||
};if _ffcbag :=_fcacg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_ffcbag !=nil {_fdagb .Contents =_ffcbag ;};if _cdae :=_fcacg .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_cdae !=nil {_abfec ,_dbebg :=_eca .GetNumberAsInt64 (_cdae );if _dbebg !=nil {return nil ,_da .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");
|
||
};_fdagb .Rotate =&_abfec ;};if _gdffa :=_fcacg .Get ("\u0047\u0072\u006fu\u0070");_gdffa !=nil {_fdagb .Group =_gdffa ;};if _ccba :=_fcacg .Get ("\u0054\u0068\u0075m\u0062");_ccba !=nil {_fdagb .Thumb =_ccba ;};if _dcfgd :=_fcacg .Get ("\u0042");_dcfgd !=nil {_fdagb .B =_dcfgd ;
|
||
};if _ebedff :=_fcacg .Get ("\u0044\u0075\u0072");_ebedff !=nil {_fdagb .Dur =_ebedff ;};if _dceff :=_fcacg .Get ("\u0054\u0072\u0061n\u0073");_dceff !=nil {_fdagb .Trans =_dceff ;};if _egee :=_fcacg .Get ("\u0041\u0041");_egee !=nil {_fdagb .AA =_egee ;
|
||
};if _caba :=_fcacg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_caba !=nil {_fdagb .Metadata =_caba ;};if _efaec :=_fcacg .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_efaec !=nil {_fdagb .PieceInfo =_efaec ;};if _ggcdf :=_fcacg .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
|
||
_ggcdf !=nil {_fdagb .StructParents =_ggcdf ;};if _gggdg :=_fcacg .Get ("\u0049\u0044");_gggdg !=nil {_fdagb .ID =_gggdg ;};if _eacff :=_fcacg .Get ("\u0050\u005a");_eacff !=nil {_fdagb .PZ =_eacff ;};if _cbdegd :=_fcacg .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
|
||
_cbdegd !=nil {_fdagb .SeparationInfo =_cbdegd ;};if _deaag :=_fcacg .Get ("\u0054\u0061\u0062\u0073");_deaag !=nil {_fdagb .Tabs =_deaag ;};if _bcbbg :=_fcacg .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
|
||
_bcbbg !=nil {_fdagb .TemplateInstantiated =_bcbbg ;};if _cccef :=_fcacg .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_cccef !=nil {_fdagb .PresSteps =_cccef ;};if _dbgba :=_fcacg .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dbgba !=nil {_fdagb .UserUnit =_dbgba ;
|
||
};if _gfdg :=_fcacg .Get ("\u0056\u0050");_gfdg !=nil {_fdagb .VP =_gfdg ;};if _geba :=_fcacg .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_geba !=nil {_fdagb .Annots =_geba ;};_fdagb ._cdgeb =_bggbd ;return _fdagb ,nil ;};
|
||
|
||
// OutlineDest represents the destination of an outline item.
|
||
// It holds the page and the position on the page an outline item points to.
|
||
type OutlineDest struct{PageObj *_eca .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};func (_deef *PdfReader )newPdfAnnotationScreenFromDict (_cbca *_eca .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_abcd :=PdfAnnotationScreen {};
|
||
_abcd .T =_cbca .Get ("\u0054");_abcd .MK =_cbca .Get ("\u004d\u004b");_abcd .A =_cbca .Get ("\u0041");_abcd .AA =_cbca .Get ("\u0041\u0041");return &_abcd ,nil ;};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_ceefg *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _ceefg ._eabaf };
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_egcb *PdfColorspaceICCBased )ToPdfObject ()_eca .PdfObject {_eaabd :=&_eca .PdfObjectArray {};_eaabd .Append (_eca .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _bacf *_eca .PdfObjectStream ;if _egcb ._fdga !=nil {_bacf =_egcb ._fdga ;
|
||
}else {_bacf =&_eca .PdfObjectStream {};};_aeba :=_eca .MakeDict ();_aeba .Set ("\u004e",_eca .MakeInteger (int64 (_egcb .N )));if _egcb .Alternate !=nil {_aeba .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_egcb .Alternate .ToPdfObject ());};if _egcb .Metadata !=nil {_aeba .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_egcb .Metadata );
|
||
};if _egcb .Range !=nil {var _bdbb []_eca .PdfObject ;for _ ,_ceaee :=range _egcb .Range {_bdbb =append (_bdbb ,_eca .MakeFloat (_ceaee ));};_aeba .Set ("\u0052\u0061\u006eg\u0065",_eca .MakeArray (_bdbb ...));};_aeba .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_egcb .Data ))));
|
||
_bacf .Stream =_egcb .Data ;_bacf .PdfObjectDictionary =_aeba ;_eaabd .Append (_bacf );if _egcb ._bgefa !=nil {_egcb ._bgefa .PdfObject =_eaabd ;return _egcb ._bgefa ;};return _eaabd ;};func _fdeeee (_bdgd *_eca .PdfIndirectObject )(*PdfOutline ,error ){_bcgfd ,_fcbba :=_bdgd .PdfObject .(*_eca .PdfObjectDictionary );
|
||
if !_fcbba {return nil ,_g .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");};_gcga :=NewPdfOutline ();if _fbfg :=_bcgfd .Get ("\u0054\u0079\u0070\u0065");
|
||
_fbfg !=nil {_fbce ,_fdefc :=_fbfg .(*_eca .PdfObjectName );if _fdefc {if *_fbce !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ccb .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",*_fbce );
|
||
};};};if _eecd :=_bcgfd .Get ("\u0043\u006f\u0075n\u0074");_eecd !=nil {_bbbe ,_gagbf :=_eca .GetNumberAsInt64 (_eecd );if _gagbf !=nil {return nil ,_gagbf ;};_gcga .Count =&_bbbe ;};return _gcga ,nil ;};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _eca .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dbd *PdfActionJavaScript )ToPdfObject ()_eca .PdfObject {_dbd .PdfAction .ToPdfObject ();_gc :=_dbd ._bee ;_ecc :=_gc .PdfObject .(*_eca .PdfObjectDictionary );_ecc .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeJavaScript )));_ecc .SetIfNotNil ("\u004a\u0053",_dbd .JS );
|
||
return _gc ;};
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_abdb *PdfAcroForm )GetContainingPdfObject ()_eca .PdfObject {return _abdb ._aeac };
|
||
|
||
// SignatureHandler interface defines the common functionality for PDF signature handlers, which
|
||
// need to be capable of validating digital signatures and signing PDF documents.
|
||
type SignatureHandler interface{
|
||
|
||
// IsApplicable checks if a given signature dictionary `sig` is applicable for the signature handler.
|
||
// For example a signature of type `adbe.pkcs7.detached` might not fit for a rsa.sha1 handler.
|
||
IsApplicable (_gdbeb *PdfSignature )bool ;
|
||
|
||
// Validate validates a PDF signature against a given digest (hash) such as that determined
|
||
// for an input file. Returns validation results.
|
||
Validate (_dfdda *PdfSignature ,_degc Hasher )(SignatureValidationResult ,error );
|
||
|
||
// InitSignature prepares the signature dictionary for signing. This involves setting all
|
||
// necessary fields, and also allocating sufficient space to the Contents so that the
|
||
// finalized signature can be inserted once the hash is calculated.
|
||
InitSignature (_bdggg *PdfSignature )error ;
|
||
|
||
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
|
||
NewDigest (_fddca *PdfSignature )(Hasher ,error );
|
||
|
||
// Sign receives the hash `digest` (for example hash of an input file), and signs based
|
||
// on the signature dictionary `sig` and applies the signature data to the signature
|
||
// dictionary Contents field.
|
||
Sign (_gafce *PdfSignature ,_fbdgc Hasher )error ;};
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _eca .PdfObject ;PreserveRB _eca .PdfObject ;};
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_bgdc :=NewPdfAnnotation ();_bfbe :=&PdfAnnotationStamp {};_bfbe .PdfAnnotation =_bgdc ;_bfbe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgdc .SetContext (_bfbe );return _bfbe ;};
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_cdg :=NewPdfAnnotation ();_bacb :=&PdfAnnotationStrikeOut {};_bacb .PdfAnnotation =_cdg ;_bacb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cdg .SetContext (_bacb );return _bacb ;};func _ebdc (_faabb _eca .PdfObject )(*_eca .PdfObjectDictionary ,*fontCommon ,error ){_badfe :=&fontCommon {};
|
||
if _edfbg ,_gdef :=_faabb .(*_eca .PdfIndirectObject );_gdef {_badfe ._dccaa =_edfbg .ObjectNumber ;};_cagfd ,_dfbg :=_eca .GetDict (_faabb );if !_dfbg {_ccb .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",_faabb );
|
||
return nil ,nil ,ErrFontNotSupported ;};_bacfg ,_dfbg :=_eca .GetNameVal (_cagfd .Get ("\u0054\u0079\u0070\u0065"));if !_dfbg {_ccb .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 _bacfg !="\u0046\u006f\u006e\u0074"{_ccb .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.",_bacfg ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_eca .ErrTypeError ;};_bgacee ,_dfbg :=_eca .GetNameVal (_cagfd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_dfbg {_ccb .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 ;};_badfe ._cfbe =_bgacee ;_aagf ,_dfbg :=_eca .GetNameVal (_cagfd .Get ("\u004e\u0061\u006d\u0065"));if _dfbg {_badfe ._agdaa =_aagf ;};_efecb :=_cagfd .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");
|
||
if _efecb !=nil {_badfe ._effb =_eca .TraceToDirectObject (_efecb );_eaeda ,_cdac :=_accgb (_badfe ._effb ,_badfe );if _cdac !=nil {return _cagfd ,_badfe ,_cdac ;};_badfe ._gegfa =_eaeda ;}else if _bgacee =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_bgacee =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_gdga ,_bggba :=_ded .NewCIDSystemInfo (_cagfd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _bggba !=nil {return _cagfd ,_badfe ,_bggba ;};_ffbc :=_g .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_gdga .Registry ,_gdga .Ordering );if _ded .IsPredefinedCMap (_ffbc ){_badfe ._gegfa ,_bggba =_ded .LoadPredefinedCMap (_ffbc );
|
||
if _bggba !=nil {_ccb .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",_ffbc ,_bggba );
|
||
};};};_acef :=_cagfd .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _acef !=nil {_fcaaf ,_abgc :=_egfde (_acef );if _abgc !=nil {_ccb .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",_abgc );
|
||
return _cagfd ,_badfe ,_abgc ;};_badfe ._ccec =_fcaaf ;};if _bgacee !="\u0054\u0079\u0070e\u0033"{_gdaga ,_dfgd :=_eca .GetNameVal (_cagfd .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_dfgd {_ccb .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 _cagfd ,_badfe ,ErrRequiredAttributeMissing ;};_badfe ._daac =_gdaga ;};return _cagfd ,_badfe ,nil ;};func (_ecbd *PdfWriter )addObject (_ceed _eca .PdfObject )bool {_ebcbe :=_ecbd .hasObject (_ceed );if !_ebcbe {_bbdeg :=_eca .ResolveReferencesDeep (_ceed ,_ecbd ._aeedc );
|
||
if _bbdeg !=nil {_ccb .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_bbdeg );};_ecbd ._daecf =append (_ecbd ._daecf ,_ceed );_ecbd ._ceace [_ceed ]=struct{}{};return true ;};return false ;
|
||
};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_cdfag :=&PdfOutline {_gfaag :_eca .MakeIndirectObject (_eca .MakeDict ())};_cdfag ._dcfbf =_cdfag ;return _cdfag ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_gdcaa *PdfFilespec )GetContainingPdfObject ()_eca .PdfObject {return _gdcaa ._ggdg };
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_ccbgfd :=NewPdfOutline ();_ccbgfd ._dcfbf =&_ccbgfd ;return _ccbgfd ;};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_faede *PdfPageResources )HasColorspaceByName (keyName _eca .PdfObjectName )bool {_cgea ,_bfdec :=_faede .GetColorspaces ();if _bfdec !=nil {_ccb .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",_bfdec );
|
||
return false ;};if _cgea ==nil {return false ;};_ ,_gaegc :=_cgea .Colorspaces [string (keyName )];return _gaegc ;};func _gfaf (_bddg *_eca .PdfObjectDictionary ,_badc *fontCommon )(*pdfCIDFontType0 ,error ){if _badc ._cfbe !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ccb .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",_badc );
|
||
return nil ,_eca .ErrRangeError ;};_cbcg :=_fcee (_badc );_bgcbgc ,_cdgb :=_eca .GetDict (_bddg .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_cdgb {_ccb .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",_badc );
|
||
return nil ,ErrRequiredAttributeMissing ;};_cbcg .CIDSystemInfo =_bgcbgc ;_cbcg .DW =_bddg .Get ("\u0044\u0057");_cbcg .W =_bddg .Get ("\u0057");_cbcg .DW2 =_bddg .Get ("\u0044\u0057\u0032");_cbcg .W2 =_bddg .Get ("\u0057\u0032");_cbcg ._eegbc =1000.0;
|
||
if _ecba ,_bgefaed :=_eca .GetNumberAsFloat (_cbcg .DW );_bgefaed ==nil {_cbcg ._eegbc =_ecba ;};_becag ,_bdge :=_dgfdb (_cbcg .W );if _bdge !=nil {return nil ,_bdge ;};if _becag ==nil {_becag =map[_dbb .CharCode ]float64 {};};_cbcg ._ccfe =_becag ;return _cbcg ,nil ;
|
||
};
|
||
|
||
// GetRevisionNumber returns the version of the current Pdf document
|
||
func (_ccfc *PdfReader )GetRevisionNumber ()int {return _ccfc ._ecfeba .GetRevisionNumber ()};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_bdbba FieldFlag )String ()string {_ddgeb :="";if _bdbba ==FieldFlagClear {_ddgeb ="\u0043\u006c\u0065a\u0072";return _ddgeb ;};if _bdbba &FieldFlagReadOnly > 0{_ddgeb +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _bdbba &FieldFlagRequired > 0{_ddgeb +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
|
||
};if _bdbba &FieldFlagNoExport > 0{_ddgeb +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _bdbba &FieldFlagNoToggleToOff > 0{_ddgeb +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _bdbba &FieldFlagRadio > 0{_ddgeb +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _bdbba &FieldFlagPushbutton > 0{_ddgeb +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _bdbba &FieldFlagRadiosInUnision > 0{_ddgeb +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};
|
||
if _bdbba &FieldFlagMultiline > 0{_ddgeb +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";};if _bdbba &FieldFlagPassword > 0{_ddgeb +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _bdbba &FieldFlagFileSelect > 0{_ddgeb +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _bdbba &FieldFlagDoNotScroll > 0{_ddgeb +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";};if _bdbba &FieldFlagComb > 0{_ddgeb +="\u007c\u0043\u006fm\u0062";};if _bdbba &FieldFlagRichText > 0{_ddgeb +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";
|
||
};if _bdbba &FieldFlagDoNotSpellCheck > 0{_ddgeb +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";};if _bdbba &FieldFlagCombo > 0{_ddgeb +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _bdbba &FieldFlagEdit > 0{_ddgeb +="\u007c\u0045\u0064i\u0074";
|
||
};if _bdbba &FieldFlagSort > 0{_ddgeb +="\u007c\u0053\u006fr\u0074";};if _bdbba &FieldFlagMultiSelect > 0{_ddgeb +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";};if _bdbba &FieldFlagCommitOnSelChange > 0{_ddgeb +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";
|
||
};return _ec .Trim (_ddgeb ,"\u007c");};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_cbedge *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_ccee ,_cgfc :=color .(*PdfColorDeviceCMYK );if !_cgfc {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_accec :=_ccee .C ();_abdc :=_ccee .M ();_cccg :=_ccee .Y ();_bcce :=_ccee .K ();_accec =_accec *(1-_bcce )+_bcce ;_abdc =_abdc *(1-_bcce )+_bcce ;
|
||
_cccg =_cccg *(1-_bcce )+_bcce ;_cebg :=1-_accec ;_ceee :=1-_abdc ;_defa :=1-_cccg ;return NewPdfColorDeviceRGB (_cebg ,_ceee ,_defa ),nil ;};
|
||
|
||
// AlphaMapFunc represents a alpha mapping function: byte -> byte. Can be used for
|
||
// thresholding the alpha channel, i.e. setting all alpha values below threshold to transparent.
|
||
type AlphaMapFunc func (_cbbaf byte )byte ;
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_cbdd :=NewPdfAnnotation ();_ada :=&PdfAnnotationText {};_ada .PdfAnnotation =_cbdd ;_ada .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbdd .SetContext (_ada );return _ada ;};
|
||
|
||
// FieldFilterFunc represents a PDF field filtering function. If the function
|
||
// returns true, the PDF field is kept, otherwise it is discarded.
|
||
type FieldFilterFunc func (*PdfField )bool ;func (_fbcg *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _bfceg :=_fbcg ._ccec ;_bfceg !=nil {return _bfceg ;};return _fbcg ._bggag ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cg *PdfActionMovie )ToPdfObject ()_eca .PdfObject {_cg .PdfAction .ToPdfObject ();_bgf :=_cg ._bee ;_cbd :=_bgf .PdfObject .(*_eca .PdfObjectDictionary );_cbd .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeMovie )));_cbd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_cg .Annotation );
|
||
_cbd .SetIfNotNil ("\u0054",_cg .T );_cbd .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_cg .Operation );return _bgf ;};func _fcee (_beaed *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_beaed }};
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_dbcbb *PdfPattern )GetContext ()PdfModel {return _dbcbb ._cegb };
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_gcbaff *Outline )Add (item *OutlineItem ){_gcbaff .Entries =append (_gcbaff .Entries ,item )};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_ebcgg *PdfOutline )ToPdfObject ()_eca .PdfObject {_fggfg :=_ebcgg ._gfaag ;_bcbegf :=_fggfg .PdfObject .(*_eca .PdfObjectDictionary );_bcbegf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _ebcgg .First !=nil {_bcbegf .Set ("\u0046\u0069\u0072s\u0074",_ebcgg .First .ToPdfObject ());
|
||
};if _ebcgg .Last !=nil {_bcbegf .Set ("\u004c\u0061\u0073\u0074",_ebcgg .Last .GetContext ().GetContainingPdfObject ());};if _ebcgg .Parent !=nil {_bcbegf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ebcgg .Parent .GetContext ().GetContainingPdfObject ());
|
||
};if _ebcgg .Count !=nil {_bcbegf .Set ("\u0043\u006f\u0075n\u0074",_eca .MakeInteger (*_ebcgg .Count ));};return _fggfg ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_fedee *XObjectForm )ToPdfObject ()_eca .PdfObject {_eabc :=_fedee ._afddc ;_gaag :=_eabc .PdfObjectDictionary ;if _fedee .Filter !=nil {_gaag =_fedee .Filter .MakeStreamDict ();_eabc .PdfObjectDictionary =_gaag ;};_gaag .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_gaag .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0046\u006f\u0072\u006d"));_gaag .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_fedee .FormType );_gaag .SetIfNotNil ("\u0042\u0042\u006f\u0078",_fedee .BBox );_gaag .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_fedee .Matrix );
|
||
if _fedee .Resources !=nil {_gaag .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fedee .Resources .ToPdfObject ());};_gaag .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_fedee .Group );_gaag .SetIfNotNil ("\u0052\u0065\u0066",_fedee .Ref );_gaag .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_fedee .MetaData );
|
||
_gaag .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_fedee .PieceInfo );_gaag .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_fedee .LastModified );_gaag .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fedee .StructParent );
|
||
_gaag .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_fedee .StructParents );_gaag .SetIfNotNil ("\u004f\u0050\u0049",_fedee .OPI );_gaag .SetIfNotNil ("\u004f\u0043",_fedee .OC );_gaag .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fedee .Name );
|
||
_gaag .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_fedee .Stream ))));_eabc .Stream =_fedee .Stream ;return _eabc ;};func (_dafed *PdfWriter )checkLicense ()error {_agcfd :=_aag .GetLicenseKey ();if (_agcfd ==nil ||!_agcfd .IsLicensed ())&&!_gccefc {_g .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");
|
||
_g .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 _da .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};return nil ;};func (_ggbdc *PdfWriter )setCatalogVersion (){_ggbdc ._eeggd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_eca .MakeName (_g .Sprintf ("\u0025\u0064\u002e%\u0064",_ggbdc ._dgab .Major ,_ggbdc ._dgab .Minor )));
|
||
};
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_aecb *PdfInfo )ToPdfObject ()_eca .PdfObject {_dfbb :=_eca .MakeDict ();_dfbb .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_aecb .Title );_dfbb .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_aecb .Author );_dfbb .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_aecb .Subject );
|
||
_dfbb .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_aecb .Keywords );_dfbb .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_aecb .Creator );_dfbb .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_aecb .Producer );
|
||
_dfbb .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_aecb .Trapped );if _aecb .CreationDate !=nil {_dfbb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_aecb .CreationDate .ToPdfObject ());};if _aecb .ModifiedDate !=nil {_dfbb .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_aecb .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_dcdg :=range _aecb ._bcfd .Keys (){_dfbb .SetIfNotNil (_dcdg ,_aecb ._bcfd .Get (_dcdg ));};return _dfbb ;};
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_gbaaea *PdfPageResources )SetFontByName (keyName _eca .PdfObjectName ,obj _eca .PdfObject )error {if _gbaaea .Font ==nil {_gbaaea .Font =_eca .MakeDict ();};_accf ,_cfdf :=_eca .TraceToDirectObject (_gbaaea .Font ).(*_eca .PdfObjectDictionary );
|
||
if !_cfdf {_ccb .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",_eca .TraceToDirectObject (_gbaaea .Font ));
|
||
return _eca .ErrTypeError ;};_accf .Set (keyName ,obj );return nil ;};
|
||
|
||
// 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 (_bgafg *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_fbef :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_fbega ,_abefc :=_bgafg .GetNumPages ();if _abefc !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abefc );
|
||
return nil ,_abefc ;};for _gdfbf :=1;_gdfbf <=_fbega ;_gdfbf ++{_deeba ,_gbefb :=_bgafg .GetPage (_gdfbf );if _gbefb !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbefb );return nil ,_gbefb ;};if opts .PageProcessCallback !=nil {_gbefb =opts .PageProcessCallback (_gdfbf ,_deeba );
|
||
if _gbefb !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbefb );return nil ,_gbefb ;};}else if opts .PageCallback !=nil {opts .PageCallback (_gdfbf ,_deeba );};_gbefb =_fbef .AddPage (_deeba );if _gbefb !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbefb );
|
||
return nil ,_gbefb ;};};_fbef ._dgab =_bgafg .PdfVersion ();if !opts .SkipInfo {_ecdcac ,_gbaae :=_bgafg .GetPdfInfo ();if _gbaae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbaae );}else {_fbef ._fbegc .PdfObject =_ecdcac .ToPdfObject ();
|
||
};};if !opts .SkipMetadata {if _baebd :=_bgafg ._affc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_baebd !=nil {if _dbcg :=_fbef .SetCatalogMetadata (_baebd );_dbcg !=nil {return nil ,_dbcg ;};};};if !opts .SkipAcroForm {_effbd :=_fbef .SetForms (_bgafg .AcroForm );
|
||
if _effbd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_effbd );return nil ,_effbd ;};};if !opts .SkipOutlines {_fbef .AddOutlineTree (_bgafg .GetOutlineTree ());};if !opts .SkipOCProperties {_bbcgg ,_cecc :=_bgafg .GetOCProperties ();
|
||
if _cecc !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cecc );}else {_cecc =_fbef .SetOCProperties (_bbcgg );if _cecc !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cecc );};};};if !opts .SkipPageLabels {_cefce ,_ddae :=_bgafg .GetPageLabels ();
|
||
if _ddae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ddae );}else {_ddae =_fbef .SetPageLabels (_cefce );if _ddae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ddae );};};};if !opts .SkipNamedDests {_abgbc ,_fdda :=_bgafg .GetNamedDestinations ();
|
||
if _fdda !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdda );}else {_fdda =_fbef .SetNamedDestinations (_abgbc );if _fdda !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdda );};};};if !opts .SkipNameDictionary {_eaafga ,_bcbec :=_bgafg .GetNameDictionary ();
|
||
if _bcbec !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bcbec );}else {_bcbec =_fbef .SetNameDictionary (_eaafga );if _bcbec !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bcbec );};};};if !opts .SkipRotation &&_bgafg .Rotate !=nil {if _dcceae :=_fbef .SetRotation (*_bgafg .Rotate );
|
||
_dcceae !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dcceae );};};return &_fbef ,nil ;};
|
||
|
||
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
|
||
func (_decba *PdfWriter )SetCatalogMetadata (meta _eca .PdfObject )error {if meta ==nil {_decba ._eeggd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_gdfcee ,_dcde :=_eca .GetStream (meta );if !_dcde {return _da .New ("\u0063\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u006d\u0065\u0074\u0061\u0064a\u0074\u0061\u0020\u006d\u0075\u0073t\u0020\u0062\u0065\u0020\u0061\u0020\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d");
|
||
};_decba .addObject (_gdfcee );_decba ._eeggd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gdfcee );return 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 ;
|
||
|
||
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
|
||
// flags are specific.
|
||
type FieldFlag uint32 ;
|
||
|
||
// 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 (_acee pdfFontSimple )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _dbgf ,_fagd :=_acee ._gfcfb [code ];_fagd {return _ffd .CharMetrics {Wx :_dbgf },true ;};if _ffd .IsStdFont (_ffd .StdFontName (_acee ._daac )){return _ffd .CharMetrics {Wx :250},true ;
|
||
};return _ffd .CharMetrics {},false ;};func (_aagdb *PdfAcroForm )fillImageWithAppearance (_cdggf FieldImageProvider ,_gcdc FieldAppearanceGenerator )error {if _aagdb ==nil {return nil ;};_dggf ,_agccf :=_cdggf .FieldImageValues ();if _agccf !=nil {return _agccf ;
|
||
};for _ ,_dcbae :=range _aagdb .AllFields (){_ecccc :=_dcbae .PartialName ();_cbfac ,_eabea :=_dggf [_ecccc ];if !_eabea {if _edad ,_bafee :=_dcbae .FullName ();_bafee ==nil {_cbfac ,_eabea =_dggf [_edad ];};};if !_eabea {_ccb .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",_ecccc );
|
||
continue ;};switch _cfgcc :=_dcbae .GetContext ().(type ){case *PdfFieldButton :if _cfgcc .IsPush (){_cfgcc .SetFillImage (_cbfac );};};if _gcdc ==nil {continue ;};for _ ,_dbced :=range _dcbae .Annotations {_cdca ,_egcbc :=_gcdc .GenerateAppearanceDict (_aagdb ,_dcbae ,_dbced );
|
||
if _egcbc !=nil {return _egcbc ;};_dbced .AP =_cdca ;_dbced .ToPdfObject ();};};return nil ;};
|
||
|
||
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
|
||
func NewPdfShadingType3 ()*PdfShadingType3 {_eggea :=&PdfShadingType3 {};_eggea .PdfShading =&PdfShading {};_eggea .PdfShading ._dcbe =_eca .MakeIndirectObject (_eca .MakeDict ());_eggea .PdfShading ._abefa =_eggea ;return _eggea ;};var _afag =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"};
|
||
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_gace *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aeec ,_bebfe :=_eca .GetNumbersAsFloat (objects );
|
||
if _bebfe !=nil {return nil ,_bebfe ;};return _gace .ColorFromFloats (_aeec );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fce *PdfActionTrans )ToPdfObject ()_eca .PdfObject {_fce .PdfAction .ToPdfObject ();_cef :=_fce ._bee ;_fcc :=_cef .PdfObject .(*_eca .PdfObjectDictionary );_fcc .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeTrans )));_fcc .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fce .Trans );
|
||
return _cef ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eddf *PdfAnnotationRichMedia )ToPdfObject ()_eca .PdfObject {_eddf .PdfAnnotation .ToPdfObject ();_fcd :=_eddf ._cdc ;_dada :=_fcd .PdfObject .(*_eca .PdfObjectDictionary );_dada .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_dada .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_eddf .RichMediaSettings );_dada .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_eddf .RichMediaContent );
|
||
return _fcd ;};
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_cd PdfModel ;Type _eca .PdfObject ;S _eca .PdfObject ;Next _eca .PdfObject ;_bee *_eca .PdfIndirectObject ;};
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_geggb :=&XObjectImage {};_bcdfa :=&_eca .PdfObjectStream {};_bcdfa .PdfObjectDictionary =_eca .MakeDict ();_geggb ._gddeaa =_bcdfa ;return _geggb ;};func (_befgf *PdfWriter )writeAcroFormFields ()error {if _befgf ._bebb ==nil {return nil ;
|
||
};_ccb .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_aceba :=_befgf ._bebb .ToPdfObject ();_ccb .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_aceba );
|
||
_befgf ._eeggd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aceba );_bccgd :=_befgf .addObjects (_aceba );if _bccgd !=nil {return _bccgd ;};return nil ;};var _fdcgf =_aa .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_fcfc *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _fcfc ._gabcd !=nil {return _fcfc ._gabcd ,nil ;};if _fcfc .Annots ==nil {_fcfc ._gabcd =[]*PdfAnnotation {};return nil ,nil ;};if _fcfc ._cdgeb ==nil {_fcfc ._gabcd =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_gdgcc ,_gbcfd :=_fcfc ._cdgeb .loadAnnotations (_fcfc .Annots );if _gbcfd !=nil {return nil ,_gbcfd ;};if _gdgcc ==nil {_fcfc ._gabcd =[]*PdfAnnotation {};};_fcfc ._gabcd =_gdgcc ;return _fcfc ._gabcd ,nil ;};
|
||
|
||
// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
|
||
//
|
||
// 9.10 Extraction of Text Content (page 292)
|
||
// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
|
||
// - For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
|
||
// for Type 1 Fonts".
|
||
// - For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
|
||
// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
|
||
// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
|
||
// encoding and use the glyph indices as character codes, as described following Table 118.
|
||
func (_edcb *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_ebaag ,_ ,_effef :=_edcb .CharcodesToUnicodeWithStats (_edcb .BytesToCharcodes (data ));_gggc :=_dbb .ExpandLigatures (_ebaag );return _gggc ,_be .RuneCountInString (_gggc ),_effef ;
|
||
};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_bbfg :=NewPdfAnnotation ();_bde :=&PdfAnnotationProjection {};_bde .PdfAnnotation =_bbfg ;_bde .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbfg .SetContext (_bde );return _bde ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ebaad *PdfFont )Encoder ()_dbb .TextEncoder {_cgebf :=_ebaad .actualFont ();if _cgebf ==nil {_ccb .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",_ebaad ._dbgb );
|
||
return nil ;};return _cgebf .Encoder ();};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ddffc pdfFontType3 )Encoder ()_dbb .TextEncoder {return _ddffc ._aeefc };
|
||
|
||
// 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 (_gcfba []_eca .PdfObject )([]_eca .PdfObject ,error );};
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_gbgg *PdfTilingPattern )SetContentStream (content []byte ,encoder _eca .StreamEncoder )error {_egggf ,_fbecef :=_gbgg ._cdfed .(*_eca .PdfObjectStream );if !_fbecef {_ccb .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",_gbgg ._cdfed );
|
||
return _eca .ErrTypeError ;};if encoder ==nil {encoder =_eca .NewRawEncoder ();};_abddd :=_egggf .PdfObjectDictionary ;_fdfg :=encoder .MakeStreamDict ();_abddd .Merge (_fdfg );_agdb ,_ffdab :=encoder .EncodeBytes (content );if _ffdab !=nil {return _ffdab ;
|
||
};_abddd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_agdb ))));_egggf .Stream =_agdb ;return nil ;};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_afega :=&PdfColorspaceCalRGB {};_afega .BlackPoint =[]float64 {0.0,0.0,0.0};_afega .Gamma =[]float64 {1.0,1.0,1.0};_afega .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _afega ;};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_efbac *PdfReader )PageFromIndirectObject (ind *_eca .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_efbac .PageList )!=len (_efbac ._gfabb ){return nil ,0,_da .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _dfcge ,_abbdb :=range _efbac ._gfabb {if _abbdb ==ind {return _efbac .PageList [_dfcge ],_dfcge +1,nil ;};};return nil ,0,_da .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};func (_fcfce *PdfReader )loadStructure ()error {if _fcfce ._ecfeba .GetCrypter ()!=nil &&!_fcfce ._ecfeba .IsAuthenticated (){return _g .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");
|
||
};_aeede :=_fcfce ._ecfeba .GetTrailer ();if _aeede ==nil {return _g .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bcaa ,_ccdbf :=_aeede .Get ("\u0052\u006f\u006f\u0074").(*_eca .PdfObjectReference );if !_ccdbf {return _g .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",_aeede );
|
||
};_baeg ,_badbd :=_fcfce ._ecfeba .LookupByReference (*_bcaa );if _badbd !=nil {_ccb .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",_badbd );
|
||
return _badbd ;};_fdgf ,_ccdbf :=_baeg .(*_eca .PdfIndirectObject );if !_ccdbf {_ccb .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",_baeg ,*_aeede );
|
||
return _da .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dccaag ,_ccdbf :=(*_fdgf ).PdfObject .(*_eca .PdfObjectDictionary );if !_ccdbf {_ccb .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",_fdgf .PdfObject );
|
||
return _da .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ccb .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_dccaag );_gbgac ,_ccdbf :=_dccaag .Get ("\u0050\u0061\u0067e\u0073").(*_eca .PdfObjectReference );
|
||
if !_ccdbf {return _da .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");};_fged ,_badbd :=_fcfce ._ecfeba .LookupByReference (*_gbgac );
|
||
if _badbd !=nil {_ccb .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 _badbd ;};_fdadb ,_ccdbf :=_fged .(*_eca .PdfIndirectObject );if !_ccdbf {_ccb .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");
|
||
_ccb .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_fdadb );return _da .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_edgfa ,_ccdbf :=_fdadb .PdfObject .(*_eca .PdfObjectDictionary );if !_ccdbf {_ccb .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",_fdadb );
|
||
return _da .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_gbed ,_ccdbf :=_eca .GetInt (_edgfa .Get ("\u0043\u006f\u0075n\u0074"));if !_ccdbf {_ccb .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 _da .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_ccdbf =_eca .GetName (_edgfa .Get ("\u0054\u0079\u0070\u0065"));!_ccdbf {_ccb .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");
|
||
_edgfa .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfeag ,_dbdg :=_eca .GetInt (_edgfa .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_dbdg {_gcacb :=int64 (*_bfeag );_fcfce .Rotate =&_gcacb ;};_fcfce ._eefcf =_bcaa ;
|
||
_fcfce ._affc =_dccaag ;_fcfce ._bdac =_edgfa ;_fcfce ._ebddg =_fdadb ;_fcfce ._gebe =int (*_gbed );_fcfce ._gfabb =[]*_eca .PdfIndirectObject {};_dgcf :=map[_eca .PdfObject ]struct{}{};_badbd =_fcfce .buildPageList (_fdadb ,nil ,_dgcf );if _badbd !=nil {return _badbd ;
|
||
};_ccb .Log .Trace ("\u002d\u002d\u002d");_ccb .Log .Trace ("\u0054\u004f\u0043");_ccb .Log .Trace ("\u0050\u0061\u0067e\u0073");_ccb .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_fcfce ._gfabb ),_fcfce ._gfabb );_fcfce ._eabaf ,_badbd =_fcfce .loadOutlines ();
|
||
if _badbd !=nil {_ccb .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",_badbd );
|
||
return _badbd ;};_fcfce .AcroForm ,_badbd =_fcfce .loadForms ();if _badbd !=nil {return _badbd ;};_fcfce .DSS ,_badbd =_fcfce .loadDSS ();if _badbd !=nil {return _badbd ;};_fcfce ._bdbaa ,_badbd =_fcfce .loadPerms ();if _badbd !=nil {return _badbd ;};return nil ;
|
||
};
|
||
|
||
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
|
||
func NewPdfInfoFromObject (obj _eca .PdfObject )(*PdfInfo ,error ){var _afcc PdfInfo ;_ddgf ,_fafg :=obj .(*_eca .PdfObjectDictionary );if !_fafg {return nil ,_g .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj );
|
||
};for _ ,_aaag :=range _ddgf .Keys (){switch _aaag {case "\u0054\u0069\u0074l\u0065":_afcc .Title ,_ =_eca .GetString (_ddgf .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_afcc .Author ,_ =_eca .GetString (_ddgf .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
|
||
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_afcc .Subject ,_ =_eca .GetString (_ddgf .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_afcc .Keywords ,_ =_eca .GetString (_ddgf .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
|
||
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_afcc .Creator ,_ =_eca .GetString (_ddgf .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_afcc .Producer ,_ =_eca .GetString (_ddgf .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
|
||
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_afcc .Trapped ,_ =_eca .GetName (_ddgf .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _bfce ,_bdba :=_eca .GetString (_ddgf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
|
||
_bdba &&_bfce .String ()!=""{_gfgf ,_ebfdf :=NewPdfDate (_bfce .String ());if _ebfdf !=nil {return nil ,_g .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_ebfdf );
|
||
};_afcc .CreationDate =&_gfgf ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _adcd ,_gcff :=_eca .GetString (_ddgf .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gcff &&_adcd .String ()!=""{_acfde ,_fabg :=NewPdfDate (_adcd .String ());if _fabg !=nil {return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_fabg );
|
||
};_afcc .ModifiedDate =&_acfde ;};default:_gaec ,_ :=_eca .GetString (_ddgf .Get (_aaag ));if _afcc ._bcfd ==nil {_afcc ._bcfd =_eca .MakeDict ();};_afcc ._bcfd .Set (_aaag ,_gaec );};};return &_afcc ,nil ;};func (_gbddb *PdfWriter )flushWriter ()error {if _gbddb ._fafa ==nil {_gbddb ._fafa =_gbddb ._agbgb .Flush ();
|
||
};return _gbddb ._fafa ;};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_bgbcg *Outline )Insert (index uint ,item *OutlineItem ){_dbbf :=uint (len (_bgbcg .Entries ));if index > _dbbf {index =_dbbf ;};_bgbcg .Entries =append (_bgbcg .Entries [:index ],append ([]*OutlineItem {item },_bgbcg .Entries [index :]...)...);};
|
||
func (_dfb *PdfAppender )updateObjectsDeep (_feaea _eca .PdfObject ,_fcfb map[_eca .PdfObject ]struct{}){if _fcfb ==nil {_fcfb =map[_eca .PdfObject ]struct{}{};};if _ ,_cefb :=_fcfb [_feaea ];_cefb ||_feaea ==nil {return ;};_fcfb [_feaea ]=struct{}{};_gaca :=_eca .ResolveReferencesDeep (_feaea ,_dfb ._bgefc );
|
||
if _gaca !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaca );};switch _cbbg :=_feaea .(type ){case *_eca .PdfIndirectObject :switch {case _cbbg .GetParser ()==_dfb ._badg ._ecfeba :return ;case _cbbg .GetParser ()==_dfb .Reader ._ecfeba :_fegg ,_ :=_dfb ._badg .GetIndirectObjectByNumber (int (_cbbg .ObjectNumber ));
|
||
_abg ,_eefe :=_fegg .(*_eca .PdfIndirectObject );if _eefe &&_abg !=nil {if _abg .PdfObject !=_cbbg .PdfObject &&_abg .PdfObject .WriteString ()!=_cbbg .PdfObject .WriteString (){_dfb .addNewObject (_feaea );_dfb ._ccbc [_feaea ]=_cbbg .ObjectNumber ;};
|
||
};default:_dfb .addNewObject (_feaea );};_dfb .updateObjectsDeep (_cbbg .PdfObject ,_fcfb );case *_eca .PdfObjectArray :for _ ,_fcec :=range _cbbg .Elements (){_dfb .updateObjectsDeep (_fcec ,_fcfb );};case *_eca .PdfObjectDictionary :for _ ,_baab :=range _cbbg .Keys (){_dfb .updateObjectsDeep (_cbbg .Get (_baab ),_fcfb );
|
||
};case *_eca .PdfObjectStreams :if _cbbg .GetParser ()!=_dfb ._badg ._ecfeba {for _ ,_deaba :=range _cbbg .Elements (){_dfb .updateObjectsDeep (_deaba ,_fcfb );};};case *_eca .PdfObjectStream :switch {case _cbbg .GetParser ()==_dfb ._badg ._ecfeba :return ;
|
||
case _cbbg .GetParser ()==_dfb .Reader ._ecfeba :if _ggbd ,_agdg :=_dfb ._badg ._ecfeba .LookupByReference (_cbbg .PdfObjectReference );_agdg ==nil {var _fgfa bool ;if _bbag ,_bacea :=_eca .GetStream (_ggbd );_bacea &&_dd .Equal (_bbag .Stream ,_cbbg .Stream ){_fgfa =true ;
|
||
};if _cgeec ,_aacaa :=_eca .GetDict (_ggbd );_fgfa &&_aacaa {_fgfa =_cgeec .WriteString ()==_cbbg .PdfObjectDictionary .WriteString ();};if _fgfa {return ;};};if _cbbg .ObjectNumber !=0{_dfb ._ccbc [_feaea ]=_cbbg .ObjectNumber ;};default:if _ ,_eeeg :=_dfb ._eeb [_feaea ];
|
||
!_eeeg {_dfb .addNewObject (_feaea );};};_dfb .updateObjectsDeep (_cbbg .PdfObjectDictionary ,_fcfb );};};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _eca .PdfObject ;AN _eca .PdfObject ;OP _eca .PdfObject ;JS _eca .PdfObject ;};
|
||
|
||
// GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array.
|
||
// Each sample is represented by BitsPerComponent consecutive bits in the raw data.
|
||
// NOTE: The method resamples the image byte data before returning the result and
|
||
// this could lead to high memory usage, especially on large images. It should
|
||
// be avoided, when possible. It is recommended to access the Data field of the
|
||
// image directly or use the ColorAt method to extract individual pixels.
|
||
func (_afde *Image )GetSamples ()[]uint32 {_fdffb :=_bf .ResampleBytes (_afde .Data ,int (_afde .BitsPerComponent ));if _afde .BitsPerComponent < 8{_fdffb =_afde .samplesTrimPadding (_fdffb );};_fgbdc :=int (_afde .Width )*int (_afde .Height )*_afde .ColorComponents ;
|
||
if len (_fdffb )< _fgbdc {_ccb .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 (_fdffb ),_fgbdc );
|
||
return _fdffb ;}else if len (_fdffb )> _fgbdc {_ccb .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 (_fdffb ),_fgbdc );
|
||
_fdffb =_fdffb [:_fgbdc ];};return _fdffb ;};func _dbecc (_gfgc StdFontName )(pdfFontSimple ,error ){_ecfd ,_cgaa :=_ffd .NewStdFontByName (_gfgc );if !_cgaa {return pdfFontSimple {},ErrFontNotSupported ;};_feca :=_fgcd (_ecfd );return _feca ,nil ;};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_cge :=NewPdfAnnotation ();_fbac :=&PdfAnnotationSquare {};_fbac .PdfAnnotation =_cge ;_fbac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cge .SetContext (_fbac );return _fbac ;};func _dcfeb (_bfage *_eca .PdfObjectDictionary )(*PdfShadingType1 ,error ){_acbd :=PdfShadingType1 {};
|
||
if _ddba :=_bfage .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_ddba !=nil {_ddba =_eca .TraceToDirectObject (_ddba );_ceacd ,_ffce :=_ddba .(*_eca .PdfObjectArray );if !_ffce {_ccb .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",_ddba );
|
||
return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_acbd .Domain =_ceacd ;};if _cedaf :=_bfage .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cedaf !=nil {_cedaf =_eca .TraceToDirectObject (_cedaf );
|
||
_cbgac ,_fbdbc :=_cedaf .(*_eca .PdfObjectArray );if !_fbdbc {_ccb .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",_cedaf );return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_acbd .Matrix =_cbgac ;};_ceaff :=_bfage .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ceaff ==nil {_ccb .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 ;};_acbd .Function =[]PdfFunction {};if _efefd ,_cfdgd :=_ceaff .(*_eca .PdfObjectArray );_cfdgd {for _ ,_daebe :=range _efefd .Elements (){_aceff ,_facbc :=_febaf (_daebe );if _facbc !=nil {_ccb .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",_facbc );
|
||
return nil ,_facbc ;};_acbd .Function =append (_acbd .Function ,_aceff );};}else {_ceaec ,_cbfda :=_febaf (_ceaff );if _cbfda !=nil {_ccb .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",_cbfda );
|
||
return nil ,_cbfda ;};_acbd .Function =append (_acbd .Function ,_ceaec );};return &_acbd ,nil ;};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_dgbg *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_bbae :=map[rune ]int {};for _ ,_edagg :=range text {_bbae [_edagg ]++;};return _bbae ;};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_cdgdc *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _cdgdc .Range };
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_bcfbd *PdfPageResources )GenerateXObjectName ()_eca .PdfObjectName {_gbgegb :=1;for {_feaad :=_eca .MakeName (_g .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_gbgegb ));if !_bcfbd .HasXObjectByName (*_feaad ){return *_feaad ;};_gbgegb ++;};};
|
||
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_dddcc pdfCIDFontType0 )Encoder ()_dbb .TextEncoder {return _dddcc ._dccca };
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_eca .PdfObjectBool ;SigFlags *_eca .PdfObjectInteger ;CO *_eca .PdfObjectArray ;DR *PdfPageResources ;DA *_eca .PdfObjectString ;Q *_eca .PdfObjectInteger ;XFA _eca .PdfObject ;
|
||
|
||
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
|
||
ADBEEchoSign _eca .PdfObject ;_aeac *_eca .PdfIndirectObject ;_eecff bool ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_gcfd pdfFontType0 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){if _gcfd .DescendantFont ==nil {_ccb .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",_gcfd );
|
||
return _ffd .CharMetrics {},false ;};return _gcfd .DescendantFont .GetRuneMetrics (r );};
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_ggcbcd *PdfPageResources )GetPatternByName (keyName _eca .PdfObjectName )(*PdfPattern ,bool ){if _ggcbcd .Pattern ==nil {return nil ,false ;};_bcedd ,_ccbaf :=_eca .TraceToDirectObject (_ggcbcd .Pattern ).(*_eca .PdfObjectDictionary );if !_ccbaf {_ccb .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",_ggcbcd .Pattern );
|
||
return nil ,false ;};if _dedfc :=_bcedd .Get (keyName );_dedfc !=nil {_cccee ,_cdcbg :=_gbdag (_dedfc );if _cdcbg !=nil {_ccb .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",_cdcbg );
|
||
return nil ,false ;};return _cccee ,true ;};return nil ,false ;};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_gacf :=NewPdfAnnotation ();_bbab :=&PdfAnnotationPolyLine {};_bbab .PdfAnnotation =_gacf ;_bbab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gacf .SetContext (_bbab );return _bbab ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_edca *pdfFontSimple )Encoder ()_dbb .TextEncoder {if _edca ._daddc !=nil {return _edca ._daddc ;};if _edca ._aaggg !=nil {return _edca ._aaggg ;};_fegd ,_ :=_dbb .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _fegd ;};
|
||
|
||
// SetFillImage attach a model.Image to push button.
|
||
func (_edfdd *PdfFieldButton )SetFillImage (image *Image ){if _edfdd .IsPush (){_edfdd ._fbffd =image ;};};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_agbac *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _agbac .UnderlyingCS ==nil {return nil ,_da .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 _agbac .UnderlyingCS .ColorFromFloats (vals );};func (_edcag *PdfWriter )writeXRefStreams (_gdgef int ,_ddfgf int64 )error {_gcfdc :=_gdgef +1;_edcag ._eaad [_gcfdc ]=crossReference {Type :1,ObjectNumber :_gcfdc ,Offset :_ddfgf };_fdgff :=_dd .NewBuffer (nil );
|
||
_gecfc :=_eca .MakeArray ();for _ccdcf :=0;_ccdcf <=_gdgef ;{for ;_ccdcf <=_gdgef ;_ccdcf ++{_efbge ,_faceb :=_edcag ._eaad [_ccdcf ];if _faceb &&(!_edcag ._ccdgb ||_edcag ._ccdgb &&(_efbge .Type ==1&&_efbge .Offset >=_edcag ._ffeaf ||_efbge .Type ==0)){break ;
|
||
};};var _cffdc int ;for _cffdc =_ccdcf +1;_cffdc <=_gdgef ;_cffdc ++{_dbac ,_eacba :=_edcag ._eaad [_cffdc ];if _eacba &&(!_edcag ._ccdgb ||_edcag ._ccdgb &&(_dbac .Type ==1&&_dbac .Offset > _edcag ._ffeaf )){continue ;};break ;};_gecfc .Append (_eca .MakeInteger (int64 (_ccdcf )),_eca .MakeInteger (int64 (_cffdc -_ccdcf )));
|
||
for _degae :=_ccdcf ;_degae < _cffdc ;_degae ++{_bggefd :=_edcag ._eaad [_degae ];switch _bggefd .Type {case 0:_bd .Write (_fdgff ,_bd .BigEndian ,byte (0));_bd .Write (_fdgff ,_bd .BigEndian ,uint32 (0));_bd .Write (_fdgff ,_bd .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_bd .Write (_fdgff ,_bd .BigEndian ,byte (1));_bd .Write (_fdgff ,_bd .BigEndian ,uint32 (_bggefd .Offset ));_bd .Write (_fdgff ,_bd .BigEndian ,uint16 (_bggefd .Generation ));case 2:_bd .Write (_fdgff ,_bd .BigEndian ,byte (2));_bd .Write (_fdgff ,_bd .BigEndian ,uint32 (_bggefd .ObjectNumber ));
|
||
_bd .Write (_fdgff ,_bd .BigEndian ,uint16 (_bggefd .Index ));};};_ccdcf =_cffdc +1;};_adafg ,_ceeaa :=_eca .MakeStream (_fdgff .Bytes (),_eca .NewFlateEncoder ());if _ceeaa !=nil {return _ceeaa ;};_adafg .ObjectNumber =int64 (_gcfdc );_adafg .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_adafg .PdfObjectDictionary .Set ("\u0057",_eca .MakeArray (_eca .MakeInteger (1),_eca .MakeInteger (4),_eca .MakeInteger (2)));_adafg .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_gecfc );_adafg .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_eca .MakeInteger (int64 (_gcfdc +1)));
|
||
_adafg .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_edcag ._fbegc );_adafg .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_edcag ._bggab );if _edcag ._ccdgb &&_edcag ._dcggeb > 0{_adafg .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_eca .MakeInteger (_edcag ._dcggeb ));
|
||
};if _edcag ._badga !=nil {_adafg .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_edcag ._fdgaf );};if _edcag ._dadf ==nil &&_edcag ._aadc !=""&&_edcag ._fcbcc !=""{_edcag ._dadf =_eca .MakeArray (_eca .MakeHexString (_edcag ._aadc ),_eca .MakeHexString (_edcag ._fcbcc ));
|
||
};if _edcag ._dadf !=nil {_ccb .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_edcag ._dadf );_adafg .Set ("\u0049\u0044",_edcag ._dadf );};_edcag .writeObject (int (_adafg .ObjectNumber ),_adafg );return 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 _beg .ReadSeeker )(*PdfReader ,error ){const _dgeeca ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _cfbdee (rs ,&ReaderOpts {},false ,_dgeeca );};func (_gbdab *PdfReader )loadPerms ()(*Permissions ,error ){if _aedcb :=_gbdab ._affc .Get ("\u0050\u0065\u0072m\u0073");
|
||
_aedcb !=nil {if _feggdd ,_bceee :=_eca .GetDict (_aedcb );_bceee {_acfbg :=_feggdd .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _acfbg ==nil {return nil ,nil ;};if _aebba ,_aaea :=_eca .GetIndirect (_acfbg );_aaea {_bafcf ,_eebea :=_gbdab .newPdfSignatureFromIndirect (_aebba );
|
||
if _eebea !=nil {return nil ,_eebea ;};return NewPermissions (_bafcf ),nil ;};return nil ,_g .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_g .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
|
||
};return nil ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_egff *PdfColorCalGray )ToInteger (bits int )uint32 {_gcgge :=_de .Pow (2,float64 (bits ))-1;return uint32 (_gcgge *_egff .Val ());};
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_fgbdf *PdfField )SetContext (ctx PdfModel ){_fgbdf ._fbgb =ctx };
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_ggag *PdfAppender )RemovePage (pageNum int ){_ceae :=pageNum -1;_ggag ._fecc =append (_ggag ._fecc [0:_ceae ],_ggag ._fecc [pageNum :]...);};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_defbe *PdfColorspaceLab )GetNumComponents ()int {return 3};
|
||
|
||
// 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 ;_cegb PdfModel ;_cdfed _eca .PdfObject ;};
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_fbae *PdfAppender )UpdateObject (obj _eca .PdfObject ){_fbae .replaceObject (obj ,obj );if _ ,_accc :=_fbae ._eeb [obj ];!_accc {_fbae ._afce =append (_fbae ._afce ,obj );_fbae ._eeb [obj ]=struct{}{};};};func _gebb (_gdcac *_eca .PdfObjectDictionary ){_cgbcc ,_fbgee :=_eca .GetArray (_gdcac .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));
|
||
_cddg ,_acbcc :=_eca .GetIntVal (_gdcac .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_bgeg ,_bdcg :=_eca .GetIntVal (_gdcac .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _fbgee &&_acbcc &&_bdcg {_ccbfc :=_cgbcc .Len ();if _ccbfc !=_bgeg -_cddg +1{_ccb .Log .Debug ("\u0055\u006e\u0065x\u0070\u0065\u0063\u0074\u0065\u0064\u0020\u0057\u0069\u0064\u0074\u0068\u0073\u0020\u006c\u0065\u006e\u0067\u0074\u0068\u003a\u0020\u0025\u0076\u002c\u0020\u004c\u0061\u0073t\u0043\u0068\u0061\u0072\u003a\u0020\u0025\u0076",_ccbfc ,_bgeg );
|
||
_bccb :=_eca .PdfObjectInteger (_cddg +_ccbfc -1);_gdcac .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_bccb );};};};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_aeeb *PdfPage )AppendContentStream (contentStr string )error {_cbcfe ,_dcgba :=_aeeb .GetContentStreams ();if _dcgba !=nil {return _dcgba ;};if len (_cbcfe )==0{_cbcfe =[]string {contentStr };return _aeeb .SetContentStreams (_cbcfe ,_eca .NewFlateEncoder ());
|
||
};var _cddeb _dd .Buffer ;_cddeb .WriteString (_cbcfe [len (_cbcfe )-1]);_cddeb .WriteString ("\u000a");_cddeb .WriteString (contentStr );_cbcfe [len (_cbcfe )-1]=_cddeb .String ();return _aeeb .SetContentStreams (_cbcfe ,_eca .NewFlateEncoder ());};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ac *PdfAction )ToPdfObject ()_eca .PdfObject {_fed :=_ac ._bee ;_gf :=_fed .PdfObject .(*_eca .PdfObjectDictionary );_gf .Clear ();_gf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_gf .SetIfNotNil ("\u0053",_ac .S );
|
||
_gf .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ac .Next );return _fed ;};
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;func (_acdbe *LTV )enable (_bbcg ,_gcfa []*_ad .Certificate ,_gacfd string )error {_dabb ,_eaeg ,_ffaf :=_acdbe .buildCertChain (_bbcg ,_gcfa );if _ffaf !=nil {return _ffaf ;};_fagfb ,_ffaf :=_acdbe .getCerts (_dabb );if _ffaf !=nil {return _ffaf ;
|
||
};var _gefc ,_cafcfc [][]byte ;if _acdbe .OCSPClient !=nil {_gefc ,_ffaf =_acdbe .getOCSPs (_dabb ,_eaeg );if _ffaf !=nil {return _ffaf ;};};if _acdbe .CRLClient !=nil {_cafcfc ,_ffaf =_acdbe .getCRLs (_dabb );if _ffaf !=nil {return _ffaf ;};};_ddggf :=_acdbe ._eebfab ;
|
||
_bfbc ,_ffaf :=_ddggf .AddCerts (_fagfb );if _ffaf !=nil {return _ffaf ;};_ddca ,_ffaf :=_ddggf .AddOCSPs (_gefc );if _ffaf !=nil {return _ffaf ;};_ggfga ,_ffaf :=_ddggf .AddCRLs (_cafcfc );if _ffaf !=nil {return _ffaf ;};if _gacfd !=""{_ddggf .VRI [_gacfd ]=&VRI {Cert :_bfbc ,OCSP :_ddca ,CRL :_ggfga };
|
||
};_acdbe ._deaee .SetDSS (_ddggf );return nil ;};
|
||
|
||
// 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 (_ccad *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fffg :=vals [0];if _fffg < 0.0||_fffg > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fffg );
|
||
return nil ,ErrColorOutOfRange ;};_ebdb :=vals [1];if _ebdb < 0.0||_ebdb > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fffg );return nil ,ErrColorOutOfRange ;
|
||
};_gcf :=vals [2];if _gcf < 0.0||_gcf > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fffg );return nil ,ErrColorOutOfRange ;};_adcag :=NewPdfColorDeviceRGB (_fffg ,_ebdb ,_gcf );
|
||
return _adcag ,nil ;};
|
||
|
||
// 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 _beg .ReadSeeker )(*PdfFont ,error ){const _dfgba =_dbb .CharCode (32);const _daec =_dbb .CharCode (255);_dcgdd ,_gaff :=_dc .ReadAll (r );if _gaff !=nil {_ccb .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",_gaff );
|
||
return nil ,_gaff ;};_agcac ,_gaff :=_ffd .TtfParse (_dd .NewReader (_dcgdd ));if _gaff !=nil {_ccb .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",_gaff );
|
||
return nil ,_gaff ;};_eedg :=&pdfFontSimple {_gfcfb :make (map[_dbb .CharCode ]float64 ),fontCommon :fontCommon {_cfbe :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_eedg ._daddc =_dbb .NewWinAnsiEncoder ();_eedg ._daac =_agcac .PostScriptName ;
|
||
_eedg .FirstChar =_eca .MakeInteger (int64 (_dfgba ));_eedg .LastChar =_eca .MakeInteger (int64 (_daec ));_aaagb :=1000.0/float64 (_agcac .UnitsPerEm );if len (_agcac .Widths )<=0{return nil ,_da .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");
|
||
};_acfdd :=_aaagb *float64 (_agcac .Widths [0]);_dffdb :=make ([]float64 ,0,_daec -_dfgba +1);for _eabegg :=_dfgba ;_eabegg <=_daec ;_eabegg ++{_dgdc ,_aebg :=_eedg .Encoder ().CharcodeToRune (_eabegg );if !_aebg {_ccb .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_eabegg );
|
||
_dffdb =append (_dffdb ,_acfdd );continue ;};_caag ,_efagd :=_agcac .Chars [_dgdc ];if !_efagd {_ccb .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dffdb =append (_dffdb ,_acfdd );
|
||
continue ;};_gaea :=_aaagb *float64 (_agcac .Widths [_caag ]);_dffdb =append (_dffdb ,_gaea );};_eedg .Widths =_eca .MakeIndirectObject (_eca .MakeArrayFromFloats (_dffdb ));if len (_dffdb )< int (_daec -_dfgba +1){_ccb .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 (_dffdb ),255-32+1);
|
||
return nil ,_eca .ErrRangeError ;};for _aaede :=_dfgba ;_aaede <=_daec ;_aaede ++{_eedg ._gfcfb [_aaede ]=_dffdb [_aaede -_dfgba ];};_eedg .Encoding =_eca .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_fdef :=&PdfFontDescriptor {};
|
||
_fdef .FontName =_eca .MakeName (_agcac .PostScriptName );_fdef .Ascent =_eca .MakeFloat (_aaagb *float64 (_agcac .TypoAscender ));_fdef .Descent =_eca .MakeFloat (_aaagb *float64 (_agcac .TypoDescender ));_fdef .CapHeight =_eca .MakeFloat (_aaagb *float64 (_agcac .CapHeight ));
|
||
_fdef .FontBBox =_eca .MakeArrayFromFloats ([]float64 {_aaagb *float64 (_agcac .Xmin ),_aaagb *float64 (_agcac .Ymin ),_aaagb *float64 (_agcac .Xmax ),_aaagb *float64 (_agcac .Ymax )});_fdef .ItalicAngle =_eca .MakeFloat (_agcac .ItalicAngle );_fdef .MissingWidth =_eca .MakeFloat (_aaagb *float64 (_agcac .Widths [0]));
|
||
_bfea ,_gaff :=_eca .MakeStream (_dcgdd ,_eca .NewFlateEncoder ());if _gaff !=nil {_ccb .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",_gaff );
|
||
return nil ,_gaff ;};_bfea .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eca .MakeInteger (int64 (len (_dcgdd ))));_fdef .FontFile2 =_bfea ;if _agcac .Bold {_fdef .StemV =_eca .MakeInteger (120);}else {_fdef .StemV =_eca .MakeInteger (70);
|
||
};_bead :=_eaccc ;if _agcac .IsFixedPitch {_bead |=_ebab ;};if _agcac .ItalicAngle !=0{_bead |=_afdgf ;};_fdef .Flags =_eca .MakeInteger (int64 (_bead ));_eedg ._ccec =_fdef ;_abaaa :=&PdfFont {_dbgb :_eedg };return _abaaa ,nil ;};
|
||
|
||
// NewStandardPdfOutputIntent creates a new standard PdfOutputIntent.
|
||
func NewStandardPdfOutputIntent (outputCondition ,outputConditionIdentifier ,registryName string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,RegistryName :registryName ,DestOutputProfile :destOutputProfile ,ColorComponents :colorComponents ,_bfbdb :_eca .MakeDict ()};
|
||
};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_dcfbf interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_eddbf *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// 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 (_fdfd *pdfFontSimple )SetEncoder (encoder _dbb .TextEncoder ){_fdfd ._daddc =encoder };
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_cgd *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _cgd ._egc !=nil {return _cgd ._egc ,nil ;};if _cgd .A ==nil {return nil ,nil ;};if _cgd ._gagb ==nil {return nil ,nil ;};_dga ,_fdb :=_cgd ._gagb .loadAction (_cgd .A );if _fdb !=nil {return nil ,_fdb ;
|
||
};_cgd ._egc =_dga ;return _cgd ._egc ,nil ;};func _dagb (_bbabc *_eca .PdfObjectDictionary ,_cfae *fontCommon )(*pdfFontType0 ,error ){_fdeacf ,_ffff :=_eca .GetArray (_bbabc .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
|
||
if !_ffff {_ccb .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",_cfae );
|
||
return nil ,_eca .ErrRangeError ;};if _fdeacf .Len ()!=1{_ccb .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",_fdeacf .Len ());
|
||
return nil ,_eca .ErrRangeError ;};_cgded ,_eeadd :=_bbdgf (_fdeacf .Get (0),false );if _eeadd !=nil {_ccb .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",_eeadd ,_cfae );
|
||
return nil ,_eeadd ;};_fgcca :=_efbe (_cfae );_fgcca .DescendantFont =_cgded ;_aaedf ,_ffff :=_eca .GetNameVal (_bbabc .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _ffff {if _aaedf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_aaedf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_fgcca ._gdcea =_dbb .NewIdentityTextEncoder (_aaedf );
|
||
}else if _ded .IsPredefinedCMap (_aaedf ){_fgcca ._bfefe ,_eeadd =_ded .LoadPredefinedCMap (_aaedf );if _eeadd !=nil {_ccb .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",_aaedf ,_eeadd );
|
||
};}else {_ccb .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_aaedf );};};if _egdce :=_cgded .baseFields ()._gegfa ;_egdce !=nil {if _bdaac :=_egdce .Name ();_bdaac =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_bdaac =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_bdaac =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_bdaac =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_fgcca ._gdcea =_dbb .NewCMapEncoder (_aaedf ,_fgcca ._bfefe ,_egdce );
|
||
};};return _fgcca ,nil ;};
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_afa *PdfColorDeviceCMYK )C ()float64 {return _afa [0]};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_gddc *modelManager )GetPrimitiveFromModel (model PdfModel )_eca .PdfObject {_cegae ,_abda :=_gddc ._dccab [model ];if !_abda {return nil ;};return _cegae ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_aadg *PdfOutline )GetContainingPdfObject ()_eca .PdfObject {return _aadg ._gfaag };
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_aabe *PdfColorspaceDeviceCMYK )ToPdfObject ()_eca .PdfObject {return _eca .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _eca .PdfObject ;BS _eca .PdfObject ;};
|
||
|
||
// 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 ;
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_ccbac .Lock ();defer _ccbac .Unlock ();_aacgb =subject };type pdfFontSimple struct{fontCommon ;_bgegd *_eca .PdfIndirectObject ;_gfcfb map[_dbb .CharCode ]float64 ;_daddc _dbb .TextEncoder ;_aaggg _dbb .TextEncoder ;
|
||
_bggag *PdfFontDescriptor ;
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _eca .PdfObject ;LastChar _eca .PdfObject ;Widths _eca .PdfObject ;Encoding _eca .PdfObject ;_cedde *_ffd .RuneCharSafeMap ;};
|
||
|
||
// StandardApplier is the interface that performs optimization of the whole PDF document.
|
||
// As a result an input document is being changed by the optimizer.
|
||
// The writer than takes back all it's parts and overwrites it.
|
||
// NOTE: This implementation is in experimental development state.
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
type StandardApplier interface{ApplyStandard (_bcda *_ba .Document )error ;};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _eca .PdfObject ;NewWindow _eca .PdfObject ;T _eca .PdfObject ;};
|
||
|
||
// ReaderToWriterOpts options used to generate a PdfWriter.
|
||
type ReaderToWriterOpts struct{SkipAcroForm bool ;SkipInfo bool ;SkipNameDictionary bool ;SkipNamedDests bool ;SkipOCProperties bool ;SkipOutlines bool ;SkipPageLabels bool ;SkipRotation bool ;SkipMetadata bool ;PageProcessCallback PageProcessCallback ;
|
||
|
||
|
||
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
|
||
PageCallback PageCallback ;};func _acefd (_gaaca []byte )bool {if len (_gaaca )< 4{return true ;};for _gecec :=range _gaaca [:4]{_dcbbe :=rune (_gecec );if !_cb .Is (_cb .ASCII_Hex_Digit ,_dcbbe )&&!_cb .IsSpace (_dcbbe ){return true ;};};return false ;
|
||
};
|
||
|
||
// GetStandardApplier gets currently used StandardApplier..
|
||
func (_fcggc *PdfWriter )GetStandardApplier ()StandardApplier {return _fcggc ._bfgeb };func (_cgb *PdfReader )newPdfActionSubmitFormFromDict (_gff *_eca .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_dcgg ,_bggb :=_efe (_gff .Get ("\u0046"));if _bggb !=nil {return nil ,_bggb ;
|
||
};return &PdfActionSubmitForm {F :_dcgg ,Fields :_gff .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_gff .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_bbagga *PdfTransformParamsDocMDP )WriteString ()string {return _bbagga .ToPdfObject ().WriteString ();};func _cggae (_abbce *_bbg .ImageBase )(_egae Image ){_egae .Width =int64 (_abbce .Width );_egae .Height =int64 (_abbce .Height );_egae .BitsPerComponent =int64 (_abbce .BitsPerComponent );
|
||
_egae .ColorComponents =_abbce .ColorComponents ;_egae .Data =_abbce .Data ;_egae ._cfgaa =_abbce .Decode ;_egae ._gcgb =_abbce .Alpha ;return _egae ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_cddba *PdfSignatureReference )GetContainingPdfObject ()_eca .PdfObject {return _cddba ._fdgfa };
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_gegd *PdfColorspaceDeviceNAttributes )ToPdfObject ()_eca .PdfObject {_cagaf :=_eca .MakeDict ();if _gegd .Subtype !=nil {_cagaf .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_gegd .Subtype );};_cagaf .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_gegd .Colorants );
|
||
_cagaf .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_gegd .Process );_cagaf .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_gegd .MixingHints );if _gegd ._fedb !=nil {_gegd ._fedb .PdfObject =_cagaf ;return _gegd ._fedb ;
|
||
};return _cagaf ;};
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_ccbff *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ccbff .Base ==nil {return nil ,_da .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 _ccbff .Base .ColorToRGB (color );};func _ffdd (_aaefd *_eca .PdfObjectDictionary ,_dcba *fontCommon )(*pdfCIDFontType2 ,error ){if _dcba ._cfbe !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ccb .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",_dcba );
|
||
return nil ,_eca .ErrRangeError ;};_ebag :=_aedfa (_dcba );_adgcd ,_dcdcg :=_eca .GetDict (_aaefd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dcdcg {_ccb .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",_dcba );
|
||
return nil ,ErrRequiredAttributeMissing ;};_ebag .CIDSystemInfo =_adgcd ;_ebag .DW =_aaefd .Get ("\u0044\u0057");_ebag .W =_aaefd .Get ("\u0057");_ebag .DW2 =_aaefd .Get ("\u0044\u0057\u0032");_ebag .W2 =_aaefd .Get ("\u0057\u0032");_ebag .CIDToGIDMap =_aaefd .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_ebag ._bbcc =1000.0;if _cecfg ,_dgcc :=_eca .GetNumberAsFloat (_ebag .DW );_dgcc ==nil {_ebag ._bbcc =_cecfg ;};_aedb ,_caaf :=_dgfdb (_ebag .W );if _caaf !=nil {return nil ,_caaf ;};if _aedb ==nil {_aedb =map[_dbb .CharCode ]float64 {};};_ebag ._bdbc =_aedb ;
|
||
return _ebag ,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 ){_aaeea ,_gbbee :=_efg .Open (filePath );if _gbbee !=nil {_ccb .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",_gbbee );
|
||
return nil ,_gbbee ;};defer _aaeea .Close ();return NewPdfFontFromTTF (_aaeea );};func (_bdfac *PdfReader )loadAnnotations (_fffca _eca .PdfObject )([]*PdfAnnotation ,error ){_gbbfb ,_bccd :=_eca .GetArray (_fffca );if !_bccd {return nil ,_g .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _eegfg []*PdfAnnotation ;for _ ,_gbbfa :=range _gbbfb .Elements (){_gbbfa =_eca .ResolveReference (_gbbfa );if _ ,_afdee :=_gbbfa .(*_eca .PdfObjectNull );_afdee {continue ;};_febcg ,_efcg :=_gbbfa .(*_eca .PdfObjectDictionary );_fcafc ,_eeaf :=_gbbfa .(*_eca .PdfIndirectObject );
|
||
if _efcg {_fcafc =&_eca .PdfIndirectObject {};_fcafc .PdfObject =_febcg ;}else {if !_eeaf {return nil ,_g .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");
|
||
};};_ccdcc ,_fcad :=_bdfac .newPdfAnnotationFromIndirectObject (_fcafc );if _fcad !=nil {return nil ,_fcad ;};switch _cdcba :=_ccdcc .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_cbdbf :=range _bdfac .AcroForm .AllFields (){if _cbdbf ._geaa ==_cdcba .Parent {_cdcba ._ebc =_cbdbf ;
|
||
break ;};};};if _ccdcc !=nil {_eegfg =append (_eegfg ,_ccdcc );};};return _eegfg ,nil ;};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _eca .PdfObjectName ;};func _caebd (_bgece *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_bgece }};
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_fdefca *PdfPattern )GetContainingPdfObject ()_eca .PdfObject {return _fdefca ._cdfed };
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_gccba *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_cgfcf *PdfColorspaceLab )ToPdfObject ()_eca .PdfObject {_bgdd :=_eca .MakeArray ();_bgdd .Append (_eca .MakeName ("\u004c\u0061\u0062"));_ffbe :=_eca .MakeDict ();if _cgfcf .WhitePoint !=nil {_cbac :=_eca .MakeArray (_eca .MakeFloat (_cgfcf .WhitePoint [0]),_eca .MakeFloat (_cgfcf .WhitePoint [1]),_eca .MakeFloat (_cgfcf .WhitePoint [2]));
|
||
_ffbe .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cbac );}else {_ccb .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 _cgfcf .BlackPoint !=nil {_eggdf :=_eca .MakeArray (_eca .MakeFloat (_cgfcf .BlackPoint [0]),_eca .MakeFloat (_cgfcf .BlackPoint [1]),_eca .MakeFloat (_cgfcf .BlackPoint [2]));_ffbe .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eggdf );
|
||
};if _cgfcf .Range !=nil {_ddeg :=_eca .MakeArray (_eca .MakeFloat (_cgfcf .Range [0]),_eca .MakeFloat (_cgfcf .Range [1]),_eca .MakeFloat (_cgfcf .Range [2]),_eca .MakeFloat (_cgfcf .Range [3]));_ffbe .Set ("\u0052\u0061\u006eg\u0065",_ddeg );};_bgdd .Append (_ffbe );
|
||
if _cgfcf ._egcf !=nil {_cgfcf ._egcf .PdfObject =_bgdd ;return _cgfcf ._egcf ;};return _bgdd ;};
|
||
|
||
// String returns string value of output intent for given type
|
||
// ISO_19005-2 6.2.3: GTS_PDFA1 value should be used for PDF/A-1, A-2 and A-3 at least
|
||
func (_aecbd PdfOutputIntentType )String ()string {switch _aecbd {case PdfOutputIntentTypeA1 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA2 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeA3 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";
|
||
case PdfOutputIntentTypeA4 :return "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411";case PdfOutputIntentTypeX :return "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058";default:return "\u0055N\u0044\u0045\u0046\u0049\u004e\u0045D";};};
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_ccbd *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ccbd .Filter .UpdateParams (img .GetParamsDict ());_bcgbd ,_cdgaa :=_ccbd .Filter .EncodeBytes (img .Data );if _cdgaa !=nil {return _cdgaa ;};_ccbd .Stream =_bcgbd ;_afgdb :=img .Width ;
|
||
_ccbd .Width =&_afgdb ;_efagbb :=img .Height ;_ccbd .Height =&_efagbb ;_abfaf :=img .BitsPerComponent ;_ccbd .BitsPerComponent =&_abfaf ;if cs ==nil {if img .ColorComponents ==1{_ccbd .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ccbd .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_ccbd .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _da .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ccbd .ColorSpace =cs ;};return nil ;
|
||
};func (_fcccb *LTV )generateVRIKey (_aedbb *PdfSignature )(string ,error ){_gega ,_ddfce :=_dggdf (_aedbb .Contents .Bytes ());if _ddfce !=nil {return "",_ddfce ;};return _ec .ToUpper (_c .EncodeToString (_gega )),nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_gbdbgc *PdfPageResources )ToPdfObject ()_eca .PdfObject {_acea :=_gbdbgc ._gcbce ;_acea .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_gbdbgc .ExtGState );if _gbdbgc ._faccea !=nil {_gbdbgc .ColorSpace =_gbdbgc ._faccea .ToPdfObject ();
|
||
};_acea .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gbdbgc .ColorSpace );_acea .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_gbdbgc .Pattern );_acea .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_gbdbgc .Shading );
|
||
_acea .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_gbdbgc .XObject );_acea .SetIfNotNil ("\u0046\u006f\u006e\u0074",_gbdbgc .Font );_acea .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_gbdbgc .ProcSet );_acea .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_gbdbgc .Properties );
|
||
return _acea ;};
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_cdbc *XObjectForm )GetContainingPdfObject ()_eca .PdfObject {return _cdbc ._afddc };func _gfafd (_beccf _eca .PdfObject ){_ccb .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_beccf ,_beccf .String ());if _aecfbc ,_aadd :=_beccf .(*_eca .PdfObjectStream );
|
||
_aadd {_dbdf ,_dbda :=_eca .DecodeStream (_aecfbc );if _dbda !=nil {_ccb .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_dbda );return ;};_ccb .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_dbdf );}else if _fdebf ,_cdefb :=_beccf .(*_eca .PdfIndirectObject );
|
||
_cdefb {_ccb .Log .Debug ("\u0025\u0054\u0020%\u0076",_fdebf .PdfObject ,_fdebf .PdfObject );_ccb .Log .Debug ("\u0025\u0073",_fdebf .PdfObject .String ());};};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_fae *PdfAppender )Write (w _beg .Writer )error {if _fae ._beae {return _da .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");
|
||
};_eged :=NewPdfWriter ();_befc ,_eega :=_eca .GetDict (_eged ._bceddb );if !_eega {return _da .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");
|
||
};_ebde ,_eega :=_befc .Get ("\u004b\u0069\u0064\u0073").(*_eca .PdfObjectArray );if !_eega {return _da .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");
|
||
};_eccf ,_eega :=_befc .Get ("\u0043\u006f\u0075n\u0074").(*_eca .PdfObjectInteger );if !_eega {return _da .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");
|
||
};_efdda :=_fae ._badg ._ecfeba ;_dbde :=_efdda .GetTrailer ();if _dbde ==nil {return _da .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_acag ,_eega :=_eca .GetIndirect (_dbde .Get ("\u0052\u006f\u006f\u0074"));
|
||
if !_eega {return _da .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_bbbg ,_eega :=_eca .GetDict (_acag );if !_eega {_ccb .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",_acag ,*_dbde );
|
||
return _da .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_gdd :=range _bbbg .Keys (){if _eged ._eeggd .Get (_gdd )==nil {_adcgb :=_bbbg .Get (_gdd );_eged ._eeggd .Set (_gdd ,_adcgb );};};if _fae ._edcc !=nil {if _fae ._edcc ._eecff {if _aad :=_eca .TraceToDirectObject (_fae ._edcc .ToPdfObject ());
|
||
!_eca .IsNullObject (_aad ){_eged ._eeggd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aad );_fae .updateObjectsDeep (_aad ,nil );}else {_ccb .Log .Debug ("\u0055\u006e\u0061\u0062\u006c\u0065 \u0074\u006f\u0020t\u0072\u0061\u0063e\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u0020o\u0062\u006a\u0065\u0063\u0074, \u0066\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0061\u0064\u0064\u0020\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u002e");
|
||
};}else {_eged ._eeggd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fae ._edcc .ToPdfObject ());_fae .updateObjectsDeep (_fae ._edcc .ToPdfObject (),nil );};};if _fae ._adff !=nil {_fae .updateObjectsDeep (_fae ._adff .ToPdfObject (),nil );
|
||
_eged ._eeggd .Set ("\u0044\u0053\u0053",_fae ._adff .GetContainingPdfObject ());};if _fae ._faca !=nil {_eged ._eeggd .Set ("\u0050\u0065\u0072m\u0073",_fae ._faca .ToPdfObject ());_fae .updateObjectsDeep (_fae ._faca .ToPdfObject (),nil );};if _eged ._dgab .Major < 2{_eged .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
|
||
_eged .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _eebd ,_fcaf :=_eca .GetDict (_dbde .Get ("\u0049\u006e\u0066\u006f"));_fcaf {if _bgccb ,_cbcc :=_eca .GetDict (_eged ._fbegc );_cbcc {for _ ,_agc :=range _eebd .Keys (){if _bgccb .Get (_agc )==nil {_bgccb .Set (_agc ,_eebd .Get (_agc ));
|
||
};};};};if _fae ._gece !=nil {_eged ._fbegc =_eca .MakeIndirectObject (_fae ._gece .ToPdfObject ());};_fae .addNewObject (_eged ._fbegc );_fae .addNewObject (_eged ._bggab );_cbfg :=false ;if len (_fae ._badg .PageList )!=len (_fae ._fecc ){_cbfg =true ;
|
||
}else {for _gdfg :=range _fae ._badg .PageList {switch {case _fae ._fecc [_gdfg ]==_fae ._badg .PageList [_gdfg ]:case _fae ._fecc [_gdfg ]==_fae .Reader .PageList [_gdfg ]:default:_cbfg =true ;};if _cbfg {break ;};};};if _cbfg {_fae .updateObjectsDeep (_eged ._bceddb ,nil );
|
||
}else {_fae ._adaa [_eged ._bceddb ]=struct{}{};};_eged ._bceddb .ObjectNumber =_fae .Reader ._ebddg .ObjectNumber ;_fae ._ccbc [_eged ._bceddb ]=_fae .Reader ._ebddg .ObjectNumber ;_agad :=[]_eca .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 _ ,_cfc :=range _fae ._fecc {_decdg :=_cfc .ToPdfObject ();*_eccf =*_eccf +1;if _aacac ,_cdgf :=_decdg .(*_eca .PdfIndirectObject );_cdgf &&_aacac .GetParser ()==_fae ._badg ._ecfeba {_ebde .Append (&_aacac .PdfObjectReference );continue ;};if _ceba ,_edec :=_eca .GetDict (_decdg );
|
||
_edec {_gdgd ,_gdff :=_ceba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eca .PdfIndirectObject );for _gdff {_ccb .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gdgd );_fbbef ,_dfca :=_gdgd .PdfObject .(*_eca .PdfObjectDictionary );
|
||
if !_dfca {return _da .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_fgcg :=range _agad {_ccb .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_fgcg );if _ccg :=_ceba .Get (_fgcg );
|
||
_ccg !=nil {_ccb .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_cfc ._gbaec .Keys ())> 0&&!_cbfg {_gbcd :=_cfc ._gbaec ;if _efef :=_gbcd .Get (_fgcg );_efef !=nil {if _ccg !=_efef {_ccb .Log .Trace ("\u0049\u006e\u0068\u0065\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u006f\u0072\u0069\u0067i\u006ea\u006c\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073\u002c\u0020\u0025\u0054",_fgcg ,_efef );
|
||
_ceba .Set (_fgcg ,_efef );};};};continue ;};if _bffe :=_fbbef .Get (_fgcg );_bffe !=nil {_ccb .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_fgcg );_ceba .Set (_fgcg ,_bffe );};
|
||
};_gdgd ,_gdff =_fbbef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_eca .PdfIndirectObject );_ccb .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbbef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
};if _cbfg {_ceba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eged ._bceddb );};};_fae .updateObjectsDeep (_decdg ,nil );_ebde .Append (_decdg );};if _ ,_eac :=_fae ._ebca .Seek (0,_beg .SeekStart );_eac !=nil {return _eac ;};_fdbb :=make (map[SignatureHandler ]_beg .Writer );
|
||
_agdc :=_eca .MakeArray ();for _ ,_dcag :=range _fae ._afce {if _cbdbd ,_adca :=_eca .GetIndirect (_dcag );_adca {if _gdca ,_becf :=_cbdbd .PdfObject .(*pdfSignDictionary );_becf {_acce :=*_gdca ._ceaad ;var _gbeg error ;_fdbb [_acce ],_gbeg =_acce .NewDigest (_gdca ._eacaae );
|
||
if _gbeg !=nil {return _gbeg ;};_agdc .Append (_eca .MakeInteger (0xfffff),_eca .MakeInteger (0xfffff));};};};if _agdc .Len ()> 0{_agdc .Append (_eca .MakeInteger (0xfffff),_eca .MakeInteger (0xfffff));};for _ ,_dgac :=range _fae ._afce {if _dgee ,_daef :=_eca .GetIndirect (_dgac );
|
||
_daef {if _ceeb ,_badd :=_dgee .PdfObject .(*pdfSignDictionary );_badd {_ceeb .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_agdc );};};};_eefg :=len (_fdbb )> 0;var _dgg _beg .Reader =_fae ._ebca ;if _eefg {_acga :=make ([]_beg .Writer ,0,len (_fdbb ));
|
||
for _ ,_acbcd :=range _fdbb {_acga =append (_acga ,_acbcd );};_dgg =_beg .TeeReader (_fae ._ebca ,_beg .MultiWriter (_acga ...));};_decbf ,_gdaf :=_beg .Copy (w ,_dgg );if _gdaf !=nil {return _gdaf ;};if len (_fae ._afce )==0{return nil ;};_eged ._bggbc =_decbf ;
|
||
_eged .ObjNumOffset =_fae ._abd ;_eged ._ccdgb =true ;_eged ._acdbf =_fae ._dcbbb ;_eged ._dcggeb =_fae ._bef ;_eged ._ffeaf =_fae ._cbbd ;_eged ._dgab =_fae ._badg .PdfVersion ();_eged ._abfag =_fae ._ccbc ;_eged ._badga =_fae ._gegf .GetCrypter ();_eged ._fdgaf =_fae ._gegf .GetEncryptObj ();
|
||
_efeb :=_fae ._gegf .GetXrefType ();if _efeb !=nil {_eeaaf :=*_efeb ==_eca .XrefTypeObjectStream ;_eged ._edaga =&_eeaaf ;};_eged ._ceace =map[_eca .PdfObject ]struct{}{};_eged ._daecf =[]_eca .PdfObject {};for _ ,_dgbc :=range _fae ._afce {if _ ,_gafdc :=_fae ._adaa [_dgbc ];
|
||
_gafdc {continue ;};_eged .addObject (_dgbc );};_gbde :=w ;if _eefg {_gbde =_dd .NewBuffer (nil );};if _fae ._begc !=""&&_eged ._badga ==nil {_eged .Encrypt ([]byte (_fae ._begc ),[]byte (_fae ._begc ),_fae ._ffgb );};if _cagf :=_dbde .Get ("\u0049\u0044");
|
||
_cagf !=nil {if _edbc ,_bgga :=_eca .GetArray (_cagf );_bgga {_eged ._dadf =_edbc ;};};if _cdee :=_eged .Write (_gbde );_cdee !=nil {return _cdee ;};if _eefg {_bcafc :=_gbde .(*_dd .Buffer ).Bytes ();_agac :=_eca .MakeArray ();var _faf []*pdfSignDictionary ;
|
||
var _eeee int64 ;for _ ,_dfdd :=range _eged ._daecf {if _ace ,_baeb :=_eca .GetIndirect (_dfdd );_baeb {if _eaae ,_cdcd :=_ace .PdfObject .(*pdfSignDictionary );_cdcd {_faf =append (_faf ,_eaae );_dgefb :=_eaae ._fegcb +int64 (_eaae ._cbdga );_agac .Append (_eca .MakeInteger (_eeee ),_eca .MakeInteger (_dgefb -_eeee ));
|
||
_eeee =_eaae ._fegcb +int64 (_eaae ._aaead );};};};_agac .Append (_eca .MakeInteger (_eeee ),_eca .MakeInteger (_decbf +int64 (len (_bcafc ))-_eeee ));_gadc :=[]byte (_agac .WriteString ());for _ ,_egab :=range _faf {_gaaff :=int (_egab ._fegcb -_decbf );
|
||
for _gdgf :=_egab ._aagfc ;_gdgf < _egab ._fgbbb ;_gdgf ++{_bcafc [_gaaff +_gdgf ]=' ';};_fdde :=_bcafc [_gaaff +_egab ._aagfc :_gaaff +_egab ._fgbbb ];copy (_fdde ,_gadc );};var _ced int ;for _ ,_ddga :=range _faf {_cfeb :=int (_ddga ._fegcb -_decbf );
|
||
_cege :=_bcafc [_ced :_cfeb +_ddga ._cbdga ];_bfecb :=*_ddga ._ceaad ;_fdbb [_bfecb ].Write (_cege );_ced =_cfeb +_ddga ._aaead ;};for _ ,_gbca :=range _faf {_gbbe :=_bcafc [_ced :];_abga :=*_gbca ._ceaad ;_fdbb [_abga ].Write (_gbbe );};for _ ,_acad :=range _faf {_ecgb :=int (_acad ._fegcb -_decbf );
|
||
_feggd :=*_acad ._ceaad ;_dda :=_fdbb [_feggd ];if _ecea :=_feggd .Sign (_acad ._eacaae ,_dda );_ecea !=nil {return _ecea ;};_acad ._eacaae .ByteRange =_agac ;_ggbcd :=[]byte (_acad ._eacaae .Contents .WriteString ());for _bgb :=_acad ._aagfc ;_bgb < _acad ._fgbbb ;
|
||
_bgb ++{_bcafc [_ecgb +_bgb ]=' ';};for _ddgba :=_acad ._cbdga ;_ddgba < _acad ._aaead ;_ddgba ++{_bcafc [_ecgb +_ddgba ]=' ';};_fgdc :=_bcafc [_ecgb +_acad ._aagfc :_ecgb +_acad ._fgbbb ];copy (_fgdc ,_gadc );_fgdc =_bcafc [_ecgb +_acad ._cbdga :_ecgb +_acad ._aaead ];
|
||
copy (_fgdc ,_ggbcd );};_fdge :=_dd .NewBuffer (_bcafc );_ ,_gdaf =_beg .Copy (w ,_fdge );if _gdaf !=nil {return _gdaf ;};};_fae ._beae =true ;return nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_gdcg *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_geaa :_eca .MakeIndirectObject (_eca .MakeDict ())}};
|
||
|
||
// Val returns the value of the color.
|
||
func (_ggdd *PdfColorCalGray )Val ()float64 {return float64 (*_ggdd )};
|
||
|
||
// 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 []*_eca .PdfObjectStream ;OCSP []*_eca .PdfObjectStream ;CRL []*_eca .PdfObjectStream ;TU *_eca .PdfObjectString ;TS *_eca .PdfObjectString ;};type pdfCIDFontType2 struct{fontCommon ;_dcgd *_eca .PdfIndirectObject ;_gafg _dbb .TextEncoder ;
|
||
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_eca .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _eca .PdfObject ;W _eca .PdfObject ;DW2 _eca .PdfObject ;W2 _eca .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _eca .PdfObject ;_bdbc map[_dbb .CharCode ]float64 ;_bbcc float64 ;_dgdag map[rune ]int ;};func (_cafe *PdfPattern )getDict ()*_eca .PdfObjectDictionary {if _bggef ,_gcdfg :=_cafe ._cdfed .(*_eca .PdfIndirectObject );_gcdfg {_agee ,_eaacfa :=_bggef .PdfObject .(*_eca .PdfObjectDictionary );
|
||
if !_eaacfa {return nil ;};return _agee ;}else if _bbcce ,_gbag :=_cafe ._cdfed .(*_eca .PdfObjectStream );_gbag {return _bbcce .PdfObjectDictionary ;}else {_ccb .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",_cafe ._cdfed );
|
||
return nil ;};};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_bda *PdfColorspaceDeviceRGB )ToPdfObject ()_eca .PdfObject {return _eca .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
|
||
|
||
// 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 (_gacfa *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_afac :=_gacfa .fill (provider ,appGen );if _afac !=nil {return _afac ;};if _ ,_gdddb :=provider .(FieldImageProvider );_gdddb {_afac =_gacfa .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
|
||
};return _afac ;};func (_adffc *PdfAppender )addNewObject (_edfb _eca .PdfObject ){if _ ,_fgebg :=_adffc ._eeb [_edfb ];!_fgebg {_adffc ._afce =append (_adffc ._afce ,_edfb );_adffc ._eeb [_edfb ]=struct{}{};};};
|
||
|
||
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
|
||
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_eggd :=&PdfAppender {_ebca :reader ._eacag ,Reader :reader ,_gegf :reader ._ecfeba ,_bgefc :reader ._fgbbd };_egcg ,_bfef :=_eggd ._ebca .Seek (0,_beg .SeekEnd );
|
||
if _bfef !=nil {return nil ,_bfef ;};_eggd ._cbbd =_egcg ;if _ ,_bfef =_eggd ._ebca .Seek (0,_beg .SeekStart );_bfef !=nil {return nil ,_bfef ;};_eggd ._badg ,_bfef =NewPdfReaderWithOpts (_eggd ._ebca ,opts );if _bfef !=nil {return nil ,_bfef ;};for _ ,_eadg :=range _eggd .Reader .GetObjectNums (){if _eggd ._abd < _eadg {_eggd ._abd =_eadg ;
|
||
};};_eggd ._dcbbb =_eggd ._gegf .GetXrefTable ();_eggd ._bef =_eggd ._gegf .GetXrefOffset ();_eggd ._fecc =append (_eggd ._fecc ,_eggd ._badg .PageList ...);_eggd ._eeb =make (map[_eca .PdfObject ]struct{});_eggd ._ccbc =make (map[_eca .PdfObject ]int64 );
|
||
_eggd ._adaa =make (map[_eca .PdfObject ]struct{});_eggd ._edcc =_eggd ._badg .AcroForm ;_eggd ._adff =_eggd ._badg .DSS ;if opts !=nil {_eggd ._begc =opts .Password ;};if encryptOptions !=nil {_eggd ._ffgb =encryptOptions ;};return _eggd ,nil ;};func _gdde (_ggee _eca .PdfObject )(*PdfColorspaceCalRGB ,error ){_ebgc :=NewPdfColorspaceCalRGB ();
|
||
if _fgca ,_gcfe :=_ggee .(*_eca .PdfIndirectObject );_gcfe {_ebgc ._eceae =_fgca ;};_ggee =_eca .TraceToDirectObject (_ggee );_dbbb ,_eccc :=_ggee .(*_eca .PdfObjectArray );if !_eccc {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _dbbb .Len ()!=2{return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_ggee =_eca .TraceToDirectObject (_dbbb .Get (0));_abcge ,_eccc :=_ggee .(*_eca .PdfObjectName );
|
||
if !_eccc {return nil ,_g .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 *_abcge !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_g .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
|
||
};_ggee =_eca .TraceToDirectObject (_dbbb .Get (1));_cbfd ,_eccc :=_ggee .(*_eca .PdfObjectDictionary );if !_eccc {return nil ,_g .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");
|
||
};_ggee =_cbfd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_ggee =_eca .TraceToDirectObject (_ggee );_fdgg ,_eccc :=_ggee .(*_eca .PdfObjectArray );if !_eccc {return nil ,_g .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 _fdgg .Len ()!=3{return nil ,_g .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");};_eggc ,_adeaf :=_fdgg .GetAsFloat64Slice ();
|
||
if _adeaf !=nil {return nil ,_adeaf ;};_ebgc .WhitePoint =_eggc ;_ggee =_cbfd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _ggee !=nil {_ggee =_eca .TraceToDirectObject (_ggee );_ccgc ,_cfbd :=_ggee .(*_eca .PdfObjectArray );
|
||
if !_cfbd {return nil ,_g .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 _ccgc .Len ()!=3{return nil ,_g .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");
|
||
};_ffgba ,_fgccd :=_ccgc .GetAsFloat64Slice ();if _fgccd !=nil {return nil ,_fgccd ;};_ebgc .BlackPoint =_ffgba ;};_ggee =_cbfd .Get ("\u0047\u0061\u006dm\u0061");if _ggee !=nil {_ggee =_eca .TraceToDirectObject (_ggee );_edfbe ,_edgd :=_ggee .(*_eca .PdfObjectArray );
|
||
if !_edgd {return nil ,_g .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _edfbe .Len ()!=3{return nil ,_g .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
|
||
};_gdcb ,_ddgbae :=_edfbe .GetAsFloat64Slice ();if _ddgbae !=nil {return nil ,_ddgbae ;};_ebgc .Gamma =_gdcb ;};_ggee =_cbfd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _ggee !=nil {_ggee =_eca .TraceToDirectObject (_ggee );_eecb ,_baca :=_ggee .(*_eca .PdfObjectArray );
|
||
if !_baca {return nil ,_g .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _eecb .Len ()!=9{_ccb .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_eecb .String ());
|
||
return nil ,_g .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");};_bbeb ,_fcgc :=_eecb .GetAsFloat64Slice ();if _fcgc !=nil {return nil ,_fcgc ;
|
||
};_ebgc .Matrix =_bbeb ;};return _ebgc ,nil ;};
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_beaag *PdfPageResources )GetColorspaceByName (keyName _eca .PdfObjectName )(PdfColorspace ,bool ){_gcfc ,_adaf :=_beaag .GetColorspaces ();if _adaf !=nil {_ccb .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",_adaf );
|
||
return nil ,false ;};if _gcfc ==nil {return nil ,false ;};_faeeg ,_ecaa :=_gcfc .Colorspaces [string (keyName )];if !_ecaa {return nil ,false ;};return _faeeg ,true ;};func (_cbgeg *PdfReader )flattenFieldsWithOpts (_ffda bool ,_fage FieldAppearanceGenerator ,_dba *FieldFlattenOpts )error {if _dba ==nil {_dba =&FieldFlattenOpts {};
|
||
};var _fgbg bool ;_agfg :=map[*PdfAnnotation ]bool {};{var _aecge []*PdfField ;_gbabb :=_cbgeg .AcroForm ;if _gbabb !=nil {if _dba .FilterFunc !=nil {_aecge =_gbabb .filteredFields (_dba .FilterFunc ,true );_fgbg =_gbabb .Fields !=nil &&len (*_gbabb .Fields )> 0;
|
||
}else {_aecge =_gbabb .AllFields ();};};for _ ,_agedc :=range _aecge {if len (_agedc .Annotations )< 1{_ccb .Log .Debug ("\u004e\u006f\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006ed\u0020\u0066\u006f\u0072\u003a\u0020\u0025v\u002c\u0020\u006c\u006f\u006f\u006b\u0020\u0069\u006e\u0074\u006f \u004b\u0069\u0064\u0073\u0020\u004f\u0062\u006a\u0065\u0063\u0074",_agedc .PartialName ());
|
||
for _gabe ,_bebff :=range _agedc .Kids {for _ ,_adgc :=range _bebff .Annotations {_agfg [_adgc .PdfAnnotation ]=_agedc .V !=nil ;if _bebff .V ==nil {_bebff .V =_agedc .V ;};if _bebff .T ==nil {_bebff .T =_eca .MakeString (_g .Sprintf ("\u0025\u0073\u0023%\u0064",_agedc .PartialName (),_gabe ));
|
||
};if _fage !=nil {_cffbd ,_gdggg :=_fage .GenerateAppearanceDict (_gbabb ,_bebff ,_adgc );if _gdggg !=nil {return _gdggg ;};_adgc .AP =_cffbd ;};};};};for _ ,_afdd :=range _agedc .Annotations {_agfg [_afdd .PdfAnnotation ]=_agedc .V !=nil ;if _fage !=nil {_cfee ,_fgcbd :=_fage .GenerateAppearanceDict (_gbabb ,_agedc ,_afdd );
|
||
if _fgcbd !=nil {return _fgcbd ;};_afdd .AP =_cfee ;};};};};if _ffda {for _ ,_fdec :=range _cbgeg .PageList {_ddegg ,_afbfc :=_fdec .GetAnnotations ();if _afbfc !=nil {return _afbfc ;};for _ ,_dacb :=range _ddegg {_agfg [_dacb ]=true ;};};};for _ ,_bggd :=range _cbgeg .PageList {var _gcfb []*PdfAnnotation ;
|
||
if _fage !=nil {if _bbedc :=_fage .WrapContentStream (_bggd );_bbedc !=nil {return _bbedc ;};};_bfcfg ,_acbgf :=_bggd .GetAnnotations ();if _acbgf !=nil {return _acbgf ;};for _ ,_abgg :=range _bfcfg {_feeb ,_ebfg :=_agfg [_abgg ];if !_ebfg &&_dba .AnnotFilterFunc !=nil {if _ ,_ecbfad :=_abgg .GetContext ().(*PdfAnnotationWidget );
|
||
!_ecbfad {_ebfg =_dba .AnnotFilterFunc (_abgg );};};if !_ebfg {_gcfb =append (_gcfb ,_abgg );continue ;};switch _abgg .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
|
||
};_cadac ,_cbacg ,_ffged :=_eacc (_abgg );if _ffged !=nil {if !_feeb {_ccb .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 ;};_ccb .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",_ffged );
|
||
continue ;};if _cadac ==nil {continue ;};_abcfb :=_bggd .Resources .GenerateXObjectName ();_bggd .Resources .SetXObjectFormByName (_abcfb ,_cadac );_bbfd ,_bbebd ,_ffged :=_deaab (_cadac );if _ffged !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0061\u0070p\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u004d\u0061\u0074\u0072\u0069\u0078\u002c\u0020s\u006b\u0069\u0070\u0070\u0069\u006e\u0067\u0020\u0078\u0066\u006f\u0072\u006d\u0020\u0062\u0062\u006f\u0078\u0020\u0061\u0064\u006a\u0075\u0073t\u006d\u0065\u006e\u0074\u003a \u0025\u0076",_ffged );
|
||
}else {_fgff :=_gg .IdentityMatrix ();_fgff =_fgff .Translate (-_bbfd .Llx ,-_bbfd .Lly );if _bbebd {_aaee :=0.0;if _bbfd .Width ()> 0{_aaee =_cbacg .Width ()/_bbfd .Width ();};_aefb :=0.0;if _bbfd .Height ()> 0{_aefb =_cbacg .Height ()/_bbfd .Height ();
|
||
};_fgff =_fgff .Scale (_aaee ,_aefb );};_cbacg .Transform (_fgff );};_bced :=_de .Min (_cbacg .Llx ,_cbacg .Urx );_bfde :=_de .Min (_cbacg .Lly ,_cbacg .Ury );var _fcgbc []string ;_fcgbc =append (_fcgbc ,"\u0071");_fcgbc =append (_fcgbc ,_g .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,_bced ,_bfde ));
|
||
_fcgbc =append (_fcgbc ,_g .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_abcfb .String ()));_fcgbc =append (_fcgbc ,"\u0051");_dbbg :=_ec .Join (_fcgbc ,"\u000a");_ffged =_bggd .AppendContentStream (_dbbg );if _ffged !=nil {return _ffged ;};if _cadac .Resources !=nil {_bgba ,_dcce :=_eca .GetDict (_cadac .Resources .Font );
|
||
if _dcce {for _ ,_acfb :=range _bgba .Keys (){if !_bggd .Resources .HasFontByName (_acfb ){_bggd .Resources .SetFontByName (_acfb ,_bgba .Get (_acfb ));};};};};};if len (_gcfb )> 0{_bggd ._gabcd =_gcfb ;}else {_bggd ._gabcd =[]*PdfAnnotation {};};};if !_fgbg {_cbgeg .AcroForm =nil ;
|
||
};return nil ;};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_abc PdfModel ;Rect _eca .PdfObject ;Contents _eca .PdfObject ;P _eca .PdfObject ;NM _eca .PdfObject ;M _eca .PdfObject ;F _eca .PdfObject ;AP _eca .PdfObject ;AS _eca .PdfObject ;Border _eca .PdfObject ;C _eca .PdfObject ;StructParent _eca .PdfObject ;
|
||
OC _eca .PdfObject ;_cdc *_eca .PdfIndirectObject ;};
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_ccddc *PdfPageResourcesColorspaces )Set (key _eca .PdfObjectName ,val PdfColorspace ){if _ ,_gbcda :=_ccddc .Colorspaces [string (key )];!_gbcda {_ccddc .Names =append (_ccddc .Names ,string (key ));};_ccddc .Colorspaces [string (key )]=val ;};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};func (_bbfbb *PdfWriter )writeOutlines ()error {if _bbfbb ._ccgeg ==nil {return nil ;};_ccb .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_bbfbb ._ccgeg );
|
||
_ccag :=_bbfbb ._ccgeg .ToPdfObject ();_ccb .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_ccag ,_ccag ,_ccag );_bbfbb ._eeggd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_ccag );
|
||
_begba :=_bbfbb .addObjects (_ccag );if _begba !=nil {return _begba ;};return nil ;};var _ pdfFont =(*pdfFontSimple )(nil );func (_fcdb *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _fcdb ._ecfeba .GetCrypter ()!=nil &&!_fcdb ._ecfeba .IsAuthenticated (){return nil ,_g .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");
|
||
};_dbeece :=_fcdb ._affc ;_baggg :=_dbeece .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _baggg ==nil {return nil ,nil ;};_bbbfd ,_gfeadc :=_eca .GetIndirect (_baggg );_baggg =_eca .TraceToDirectObject (_baggg );if _eca .IsNullObject (_baggg ){_ccb .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 ;};_dabg ,_fceac :=_eca .GetDict (_baggg );if !_fceac {_ccb .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_baggg );_ccb .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_baggg );};_ccb .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_ccb .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 !_fcdb ._gggcg {_acba :=_fcdb .traverseObjectData (_dabg );
|
||
if _acba !=nil {_ccb .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",_acba );
|
||
return nil ,_acba ;};};_gfbca ,_fdfdd :=_fcdb .newPdfAcroFormFromDict (_bbbfd ,_dabg );if _fdfdd !=nil {return nil ,_fdfdd ;};_gfbca ._eecff =!_gfeadc ;return _gfbca ,nil ;};func (_aef *PdfAnnotationMarkup )appendToPdfDictionary (_fda *_eca .PdfObjectDictionary ){_fda .SetIfNotNil ("\u0054",_aef .T );
|
||
if _aef .Popup !=nil {_fda .Set ("\u0050\u006f\u0070u\u0070",_aef .Popup .ToPdfObject ());};_fda .SetIfNotNil ("\u0043\u0041",_aef .CA );_fda .SetIfNotNil ("\u0052\u0043",_aef .RC );_fda .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_aef .CreationDate );
|
||
_fda .SetIfNotNil ("\u0049\u0052\u0054",_aef .IRT );_fda .SetIfNotNil ("\u0053\u0075\u0062\u006a",_aef .Subj );_fda .SetIfNotNil ("\u0052\u0054",_aef .RT );_fda .SetIfNotNil ("\u0049\u0054",_aef .IT );_fda .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_aef .ExData );
|
||
};
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_egdd _eca .PdfObject ;};
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_cbdbad *PdfPage )GetXObjectByName (name _eca .PdfObjectName )(_eca .PdfObject ,bool ){_afadc ,_gbeb :=_cbdbad .Resources .XObject .(*_eca .PdfObjectDictionary );if !_gbeb {return nil ,false ;};if _cbeef :=_afadc .Get (name );_cbeef !=nil {return _cbeef ,true ;
|
||
};return nil ,false ;};func (_egcfd *Image )samplesAddPadding (_bfcag []uint32 )[]uint32 {_daegbf :=_bbg .BytesPerLine (int (_egcfd .Width ),int (_egcfd .BitsPerComponent ),_egcfd .ColorComponents )*(8/int (_egcfd .BitsPerComponent ));_gbgf :=_daegbf *int (_egcfd .Height );
|
||
if len (_bfcag )==_gbgf {return _bfcag ;};_bcfdf :=make ([]uint32 ,_gbgf );_fecad :=int (_egcfd .Width )*_egcfd .ColorComponents ;for _fdab :=0;_fdab < int (_egcfd .Height );_fdab ++{_gafdcf :=_fdab *int (_egcfd .Width );_gggb :=_fdab *_daegbf ;for _fbece :=0;
|
||
_fbece < _fecad ;_fbece ++{_bcfdf [_gggb +_fbece ]=_bfcag [_gafdcf +_fbece ];};};return _bcfdf ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_cbdba *PdfColorCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_bdfbc *PdfPage )GetContentStreams ()([]string ,error ){_eedd :=_bdfbc .GetContentStreamObjs ();var _agde []string ;for _ ,_acfgc :=range _eedd {_febfb ,_aacedd :=_bbeba (_acfgc );if _aacedd !=nil {return nil ,_aacedd ;};_agde =append (_agde ,_febfb );
|
||
};return _agde ,nil ;};
|
||
|
||
// NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the
|
||
// metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X.
|
||
// NOTE: This implementation is in experimental development state.
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
func NewCompliancePdfReader (rs _beg .ReadSeeker )(*CompliancePdfReader ,error ){const _edab ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_fbgff ,_acdbb :=_cfbdee (rs ,&ReaderOpts {ComplianceMode :true },false ,_edab );
|
||
if _acdbb !=nil {return nil ,_acdbb ;};return &CompliancePdfReader {PdfReader :_fbgff },nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_bddad *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=_bddad .GetNumComponents (){return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edfd ,_gfbc :=_eca .GetNumbersAsFloat (objects );
|
||
if _gfbc !=nil {return nil ,_gfbc ;};return _bddad .ColorFromFloats (_edfd );};
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_adcbc *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_bgcg :=range pages {_bgcg =_bgcg .Duplicate ();_dbed (_bgcg );_adcbc ._fecc =append (_adcbc ._fecc ,_bgcg );};};
|
||
|
||
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
|
||
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_cdde :=&PdfColorPatternType3 {};return _cdde };func (_bcabd *PdfReader )newPdfAnnotationRichMediaFromDict (_ddfe *_eca .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cafd :=&PdfAnnotationRichMedia {};
|
||
_cafd .RichMediaSettings =_ddfe .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_cafd .RichMediaContent =_ddfe .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
|
||
return _cafd ,nil ;};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_fecb *PdfFont )String ()string {_eced :="";if _fecb ._dbgb .Encoder ()!=nil {_eced =_fecb ._dbgb .Encoder ().String ();};return _g .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_fecb ._dbgb ,_fecb .baseFields ().coreString (),_eced );
|
||
};func (_ddbde fontCommon )fontFlags ()int {if _ddbde ._ccec ==nil {return 0;};return _ddbde ._ccec ._feaf ;};func (_ceac *PdfReader )newPdfFieldSignatureFromDict (_ccdfb *_eca .PdfObjectDictionary )(*PdfFieldSignature ,error ){_fcbb :=&PdfFieldSignature {};
|
||
_egac ,_bgec :=_eca .GetIndirect (_ccdfb .Get ("\u0056"));if _bgec {var _caeg error ;_fcbb .V ,_caeg =_ceac .newPdfSignatureFromIndirect (_egac );if _caeg !=nil {return nil ,_caeg ;};};_fcbb .Lock ,_ =_eca .GetIndirect (_ccdfb .Get ("\u004c\u006f\u0063\u006b"));
|
||
_fcbb .SV ,_ =_eca .GetIndirect (_ccdfb .Get ("\u0053\u0056"));return _fcbb ,nil ;};
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_bceeb *Image )ToJBIG2Image ()(*_eca .JBIG2Image ,error ){_cgfd ,_aecc :=_bceeb .ToGoImage ();if _aecc !=nil {return nil ,_aecc ;};return _eca .GoImageToJBIG2 (_cgfd ,_eca .JB2ImageAutoThreshold );};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_bcbe *PdfFieldButton )IsPush ()bool {return _bcbe .GetType ()==ButtonTypePush };
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_gddg *PdfFieldSignature )ToPdfObject ()_eca .PdfObject {if _gddg .PdfAnnotationWidget !=nil {_gddg .PdfAnnotationWidget .ToPdfObject ();};_gddg .PdfField .ToPdfObject ();_fdfb :=_gddg ._geaa ;_fcce :=_fdfb .PdfObject .(*_eca .PdfObjectDictionary );
|
||
_fcce .SetIfNotNil ("\u0046\u0054",_eca .MakeName ("\u0053\u0069\u0067"));_fcce .SetIfNotNil ("\u004c\u006f\u0063\u006b",_gddg .Lock );_fcce .SetIfNotNil ("\u0053\u0056",_gddg .SV );if _gddg .V !=nil {_fcce .SetIfNotNil ("\u0056",_gddg .V .ToPdfObject ());
|
||
};return _fdfb ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_gfbfe *PdfSignature )GetContainingPdfObject ()_eca .PdfObject {return _gfbfe ._bfebg };
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_efgd *PdfFont )ToPdfObject ()_eca .PdfObject {if _efgd ._dbgb ==nil {_ccb .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 _eca .MakeNull ();
|
||
};return _efgd ._dbgb .ToPdfObject ();};
|
||
|
||
// GetStructRoot gets the StructTreeRoot object
|
||
func (_abeb *PdfPage )GetStructTreeRoot ()(*_eca .PdfObject ,bool ){_ffffb ,_fcgfd :=_abeb ._cdgeb .GetCatalogStructTreeRoot ();return &_ffffb ,_fcgfd ;};func (_bafb *PdfReader )loadAction (_bcdb _eca .PdfObject )(*PdfAction ,error ){if _aecd ,_ddgb :=_eca .GetIndirect (_bcdb );
|
||
_ddgb {_bbdc ,_dcge :=_bafb .newPdfActionFromIndirectObject (_aecd );if _dcge !=nil {return nil ,_dcge ;};return _bbdc ,nil ;}else if !_eca .IsNullObject (_bcdb ){return nil ,_da .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};return nil ,nil ;};func _abdd (_faec ,_cbdbc string )string {if _ec .Contains (_faec ,"\u002b"){_caca :=_ec .Split (_faec ,"\u002b");if len (_caca )==2{_faec =_caca [1];};};return _cbdbc +"\u002b"+_faec ;};func _dgbd (_dagec map[_ffd .GID ]int ,_eebf uint16 )*_eca .PdfObjectArray {_gdfc :=&_eca .PdfObjectArray {};
|
||
_cgec :=_ffd .GID (_eebf );for _edbed :=_ffd .GID (0);_edbed < _cgec ;{_ffacf ,_bfece :=_dagec [_edbed ];if !_bfece {_edbed ++;continue ;};_ecfdf :=_edbed ;for _abace :=_ecfdf +1;_abace < _cgec ;_abace ++{if _cageg ,_ffba :=_dagec [_abace ];!_ffba ||_ffacf !=_cageg {break ;
|
||
};_ecfdf =_abace ;};_gdfc .Append (_eca .MakeInteger (int64 (_edbed )));_gdfc .Append (_eca .MakeInteger (int64 (_ecfdf )));_gdfc .Append (_eca .MakeInteger (int64 (_ffacf )));_edbed =_ecfdf +1;};return _gdfc ;};
|
||
|
||
// 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 _beg .ReadSeeker )(*PdfFont ,error ){_cadaf ,_efdc :=_dc .ReadAll (r );if _efdc !=nil {_ccb .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",_efdc );
|
||
return nil ,_efdc ;};_edgf ,_efdc :=_ffd .TtfParse (_dd .NewReader (_cadaf ));if _efdc !=nil {_ccb .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",_efdc );
|
||
return nil ,_efdc ;};_bfbfa :=&pdfCIDFontType2 {fontCommon :fontCommon {_cfbe :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_eca .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_edgf .Widths )<=0{return nil ,_da .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");
|
||
};_ecbfdc :=1000.0/float64 (_edgf .UnitsPerEm );_cagag :=_ecbfdc *float64 (_edgf .Widths [0]);_cfedec :=make (map[rune ]int );_gfffa :=make (map[_ffd .GID ]int );_abaaeg :=_ffd .GID (len (_edgf .Widths ));for _cbgd ,_cgedd :=range _edgf .Chars {if _cgedd > _abaaeg -1{continue ;
|
||
};_gbbbd :=int (_ecbfdc *float64 (_edgf .Widths [_cgedd ]));_cfedec [_cbgd ]=_gbbbd ;_gfffa [_cgedd ]=_gbbbd ;};_bfbfa ._dgdag =_cfedec ;_bfbfa .DW =_eca .MakeInteger (int64 (_cagag ));_caefd :=_dgbd (_gfffa ,uint16 (_abaaeg ));_bfbfa .W =_eca .MakeIndirectObject (_caefd );
|
||
_ccfa :=_eca .MakeDict ();_ccfa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_eca .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_ccfa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_eca .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_ccfa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_eca .MakeInteger (0));_bfbfa .CIDSystemInfo =_ccfa ;_cbfgb :=&PdfFontDescriptor {FontName :_eca .MakeName (_edgf .PostScriptName ),Ascent :_eca .MakeFloat (_ecbfdc *float64 (_edgf .TypoAscender )),Descent :_eca .MakeFloat (_ecbfdc *float64 (_edgf .TypoDescender )),CapHeight :_eca .MakeFloat (_ecbfdc *float64 (_edgf .CapHeight )),FontBBox :_eca .MakeArrayFromFloats ([]float64 {_ecbfdc *float64 (_edgf .Xmin ),_ecbfdc *float64 (_edgf .Ymin ),_ecbfdc *float64 (_edgf .Xmax ),_ecbfdc *float64 (_edgf .Ymax )}),ItalicAngle :_eca .MakeFloat (_edgf .ItalicAngle ),MissingWidth :_eca .MakeFloat (_cagag )};
|
||
_abfbf ,_efdc :=_eca .MakeStream (_cadaf ,_eca .NewFlateEncoder ());if _efdc !=nil {_ccb .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",_efdc );
|
||
return nil ,_efdc ;};_abfbf .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eca .MakeInteger (int64 (len (_cadaf ))));_cbfgb .FontFile2 =_abfbf ;if _edgf .Bold {_cbfgb .StemV =_eca .MakeInteger (120);}else {_cbfgb .StemV =_eca .MakeInteger (70);
|
||
};_gdgdf :=_afdga ;if _edgf .IsFixedPitch {_gdgdf |=_ebab ;};if _edgf .ItalicAngle !=0{_gdgdf |=_afdgf ;};_cbfgb .Flags =_eca .MakeInteger (int64 (_gdgdf ));_bfbfa ._daac =_edgf .PostScriptName ;_bfbfa ._ccec =_cbfgb ;_dffgd :=pdfFontType0 {fontCommon :fontCommon {_cfbe :"\u0054\u0079\u0070e\u0030",_daac :_edgf .PostScriptName },DescendantFont :&PdfFont {_dbgb :_bfbfa },Encoding :_eca .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_gdcea :_edgf .NewEncoder ()};
|
||
if len (_edgf .Chars )> 0{_dcef :=make (map[_ded .CharCode ]rune ,len (_edgf .Chars ));for _fbgd ,_acca :=range _edgf .Chars {_fbfca :=_ded .CharCode (_acca );if _bccbcd ,_becc :=_dcef [_fbfca ];!_becc ||(_becc &&_bccbcd > _fbgd ){_dcef [_fbfca ]=_fbgd ;
|
||
};};_dffgd ._gegfa =_ded .NewToUnicodeCMap (_dcef );};_decc :=PdfFont {_dbgb :&_dffgd };return &_decc ,nil ;};func _gdebg (_gggd []byte )(_bcabdc ,_dcgf string ,_gfad error ){_ccb .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_gggd ));
|
||
_fedg :=_aabdg .FindIndex (_gggd );if _fedg ==nil {_ccb .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 "","",_eca .ErrTypeError ;};_aaeb :=_fedg [1];_eddd :=_ec .Index (string (_gggd [_aaeb :]),_cagg );if _eddd < 0{_bcabdc =string (_gggd [_aaeb :]);return _bcabdc ,"",nil ;};_edfa :=_aaeb +_eddd ;_bcabdc =string (_gggd [_aaeb :_edfa ]);_efecg :=_edfa ;
|
||
_eddd =_ec .Index (string (_gggd [_efecg :]),_gefe );if _eddd < 0{_ccb .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",_gfad );
|
||
return "","",_eca .ErrTypeError ;};_ggcb :=_efecg +_eddd ;_dcgf =string (_gggd [_efecg :_ggcb ]);return _bcabdc ,_dcgf ,nil ;};
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_egef :=&PdfAppender {_ebca :reader ._eacag ,Reader :reader ,_gegf :reader ._ecfeba ,_bgefc :reader ._fgbbd };_cda ,_fbbc :=_egef ._ebca .Seek (0,_beg .SeekEnd );if _fbbc !=nil {return nil ,_fbbc ;
|
||
};_egef ._cbbd =_cda ;if _ ,_fbbc =_egef ._ebca .Seek (0,_beg .SeekStart );_fbbc !=nil {return nil ,_fbbc ;};_egef ._badg ,_fbbc =NewPdfReader (_egef ._ebca );if _fbbc !=nil {return nil ,_fbbc ;};for _ ,_dcec :=range _egef .Reader .GetObjectNums (){if _egef ._abd < _dcec {_egef ._abd =_dcec ;
|
||
};};_egef ._dcbbb =_egef ._gegf .GetXrefTable ();_egef ._bef =_egef ._gegf .GetXrefOffset ();_egef ._fecc =append (_egef ._fecc ,_egef ._badg .PageList ...);_egef ._eeb =make (map[_eca .PdfObject ]struct{});_egef ._ccbc =make (map[_eca .PdfObject ]int64 );
|
||
_egef ._adaa =make (map[_eca .PdfObject ]struct{});_egef ._edcc =_egef ._badg .AcroForm ;_egef ._adff =_egef ._badg .DSS ;return _egef ,nil ;};func _ecgc (_eabb _eca .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_acadf :=NewPdfColorspaceSpecialIndexed ();
|
||
if _cbbgg ,_cbbdc :=_eabb .(*_eca .PdfIndirectObject );_cbbdc {_acadf ._dbcc =_cbbgg ;};_eabb =_eca .TraceToDirectObject (_eabb );_cceeg ,_bdbf :=_eabb .(*_eca .PdfObjectArray );if !_bdbf {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _cceeg .Len ()!=4{return nil ,_g .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");};_eabb =_cceeg .Get (0);
|
||
_gdcd ,_bdbf :=_eabb .(*_eca .PdfObjectName );if !_bdbf {return nil ,_g .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_gdcd !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_g .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_eabb =_cceeg .Get (1);_dfgg ,_bfad :=DetermineColorspaceNameFromPdfObject (_eabb );if _bfad !=nil {return nil ,_bfad ;};if _dfgg =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_dfgg =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ccb .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",_dfgg );
|
||
return nil ,_abbe ;};_ddbf ,_bfad :=NewPdfColorspaceFromPdfObject (_eabb );if _bfad !=nil {return nil ,_bfad ;};_acadf .Base =_ddbf ;_eabb =_cceeg .Get (2);_bbaa ,_bfad :=_eca .GetNumberAsInt64 (_eabb );if _bfad !=nil {return nil ,_bfad ;};if _bbaa > 255{return nil ,_g .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_acadf .HiVal =int (_bbaa );_eabb =_cceeg .Get (3);_acadf .Lookup =_eabb ;_eabb =_eca .TraceToDirectObject (_eabb );var _edcf []byte ;if _agefb ,_dageb :=_eabb .(*_eca .PdfObjectString );_dageb {_edcf =_agefb .Bytes ();_ccb .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",_edcf );
|
||
}else if _fabad ,_afdcc :=_eabb .(*_eca .PdfObjectStream );_afdcc {_ccb .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_eabb .String ());_ccb .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_fabad .Stream ),_fabad .Stream );
|
||
_ffgab ,_gbfe :=_eca .DecodeStream (_fabad );if _gbfe !=nil {return nil ,_gbfe ;};_ccb .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ffgab ),_ffgab );_edcf =_ffgab ;}else {_ccb .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_eabb );
|
||
return nil ,_g .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 (_edcf )< _acadf .Base .GetNumComponents ()*(_acadf .HiVal +1){_ccb .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");
|
||
_ccb .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 (_edcf ),_acadf .Base .GetNumComponents (),_acadf .HiVal );
|
||
}else {_edcf =_edcf [:_acadf .Base .GetNumComponents ()*(_acadf .HiVal +1)];};_acadf ._eaea =_edcf ;return _acadf ,nil ;};
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_fddge *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_eca .StreamEncoder ,error ){_abbee ,_edgda :=_fddge ._cdfed .(*_eca .PdfObjectStream );if !_edgda {_ccb .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",_fddge ._cdfed );
|
||
return nil ,nil ,_eca .ErrTypeError ;};_ggbbaa ,_cbdeef :=_eca .DecodeStream (_abbee );if _cbdeef !=nil {_ccb .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",_cbdeef );
|
||
return nil ,nil ,_cbdeef ;};_afbdf ,_cbdeef :=_eca .NewEncoderFromStream (_abbee );if _cbdeef !=nil {_ccb .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",_cbdeef );
|
||
return nil ,nil ,_cbdeef ;};return _ggbbaa ,_afbdf ,nil ;};func _cadc (_gdccg string )(map[_dbb .CharCode ]_dbb .GlyphName ,error ){_gefeg :=_ec .Split (_gdccg ,"\u000a");_cccd :=make (map[_dbb .CharCode ]_dbb .GlyphName );for _ ,_fccdb :=range _gefeg {_bdde :=_efgc .FindStringSubmatch (_fccdb );
|
||
if _bdde ==nil {continue ;};_fade ,_bbbd :=_bdde [1],_bdde [2];_fbda ,_eadfd :=_ge .Atoi (_fade );if _eadfd !=nil {_ccb .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",_fccdb );
|
||
return nil ,_eca .ErrTypeError ;};_cccd [_dbb .CharCode (_fbda )]=_dbb .GlyphName (_bbbd );};_ccb .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",_cccd );
|
||
return _cccd ,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 *_ffg .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_ffg .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_ffg .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_deaee *PdfAppender ;_eebfab *DSS ;};
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_afceba *PdfFontDescriptor )ToPdfObject ()_eca .PdfObject {_dcbf :=_eca .MakeDict ();if _afceba ._acccb ==nil {_afceba ._acccb =&_eca .PdfIndirectObject {};};_afceba ._acccb .PdfObject =_dcbf ;_dcbf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _afceba .FontName !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_afceba .FontName );};if _afceba .FontFamily !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_afceba .FontFamily );};if _afceba .FontStretch !=nil {_dcbf .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_afceba .FontStretch );
|
||
};if _afceba .FontWeight !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_afceba .FontWeight );};if _afceba .Flags !=nil {_dcbf .Set ("\u0046\u006c\u0061g\u0073",_afceba .Flags );};if _afceba .FontBBox !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_afceba .FontBBox );
|
||
};if _afceba .ItalicAngle !=nil {_dcbf .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_afceba .ItalicAngle );};if _afceba .Ascent !=nil {_dcbf .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_afceba .Ascent );};if _afceba .Descent !=nil {_dcbf .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_afceba .Descent );
|
||
};if _afceba .Leading !=nil {_dcbf .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_afceba .Leading );};if _afceba .CapHeight !=nil {_dcbf .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_afceba .CapHeight );};if _afceba .XHeight !=nil {_dcbf .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_afceba .XHeight );
|
||
};if _afceba .StemV !=nil {_dcbf .Set ("\u0053\u0074\u0065m\u0056",_afceba .StemV );};if _afceba .StemH !=nil {_dcbf .Set ("\u0053\u0074\u0065m\u0048",_afceba .StemH );};if _afceba .AvgWidth !=nil {_dcbf .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_afceba .AvgWidth );
|
||
};if _afceba .MaxWidth !=nil {_dcbf .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_afceba .MaxWidth );};if _afceba .MissingWidth !=nil {_dcbf .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_afceba .MissingWidth );
|
||
};if _afceba .FontFile !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_afceba .FontFile );};if _afceba .FontFile2 !=nil {_dcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_afceba .FontFile2 );};if _afceba .FontFile3 !=nil {_dcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_afceba .FontFile3 );
|
||
};if _afceba .CharSet !=nil {_dcbf .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_afceba .CharSet );};if _afceba .Style !=nil {_dcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_afceba .FontName );};if _afceba .Lang !=nil {_dcbf .Set ("\u004c\u0061\u006e\u0067",_afceba .Lang );
|
||
};if _afceba .FD !=nil {_dcbf .Set ("\u0046\u0044",_afceba .FD );};if _afceba .CIDSet !=nil {_dcbf .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_afceba .CIDSet );};return _afceba ._acccb ;};
|
||
|
||
// 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 *_eca .PdfObjectArray ;ExtGState _eca .PdfObject ;};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_abcea *PdfInfo )AddCustomInfo (name string ,value string )error {if _abcea ._bcfd ==nil {_abcea ._bcfd =_eca .MakeDict ();};if _ ,_egdg :=_bafe [name ];_egdg {return _g .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 );
|
||
};_abcea ._bcfd .SetIfNotNil (*_eca .MakeName (name ),_eca .MakeString (value ));return nil ;};
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_eceg *PdfAnnotation )SetContext (ctx PdfModel ){_eceg ._abc =ctx };
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_gfdeb *PdfPage )GetContentStreamObjs ()[]_eca .PdfObject {if _gfdeb .Contents ==nil {return nil ;};_ggcdc :=_eca .TraceToDirectObject (_gfdeb .Contents );if _aebgd ,_ccadg :=_ggcdc .(*_eca .PdfObjectArray );_ccadg {return _aebgd .Elements ();};return []_eca .PdfObject {_ggcdc };
|
||
};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_egdfg *PdfPageResources )HasExtGState (keyName _eca .PdfObjectName )bool {_ ,_ggdae :=_egdfg .GetFontByName (keyName );return _ggdae ;};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_ccbac .Lock ();defer _ccbac .Unlock ();_aaaad =title };
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_gegdc *PdfOutlineTreeNode )GetContainingPdfObject ()_eca .PdfObject {return _gegdc .GetContext ().GetContainingPdfObject ();};func (_cfgc *pdfFontType3 )baseFields ()*fontCommon {return &_cfgc .fontCommon };
|
||
|
||
// SignatureValidationResult defines the response from the signature validation handler.
|
||
type SignatureValidationResult struct{
|
||
|
||
// List of errors when validating the signature.
|
||
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;DiffResults *_ecg .DiffResults ;IsCrlFound bool ;IsOcspFound bool ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _d .Time ;};
|
||
|
||
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
|
||
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorDeviceRGB [3]float64 ;func _agafe (_ggeab *_eca .PdfObjectDictionary )(*PdfTilingPattern ,error ){_dagcb :=&PdfTilingPattern {};_egdca :=_ggeab .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _egdca ==nil {_ccb .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_ggef ,_cadcf :=_egdca .(*_eca .PdfObjectInteger );if !_cadcf {_ccb .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",_egdca );
|
||
return nil ,_eca .ErrTypeError ;};_dagcb .PaintType =_ggef ;_egdca =_ggeab .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _egdca ==nil {_ccb .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_gddde ,_cadcf :=_egdca .(*_eca .PdfObjectInteger );if !_cadcf {_ccb .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",_egdca );
|
||
return nil ,_eca .ErrTypeError ;};_dagcb .TilingType =_gddde ;_egdca =_ggeab .Get ("\u0042\u0042\u006f\u0078");if _egdca ==nil {_ccb .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_egdca =_eca .TraceToDirectObject (_egdca );_bbccc ,_cadcf :=_egdca .(*_eca .PdfObjectArray );if !_cadcf {_ccb .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",_egdca );
|
||
return nil ,_eca .ErrTypeError ;};_gdbg ,_bgfbf :=NewPdfRectangle (*_bbccc );if _bgfbf !=nil {_ccb .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_bgfbf );return nil ,_bgfbf ;};_dagcb .BBox =_gdbg ;_egdca =_ggeab .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _egdca ==nil {_ccb .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_aabb ,_bgfbf :=_eca .GetNumberAsFloat (_egdca );if _bgfbf !=nil {_ccb .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",_aabb );
|
||
return nil ,_bgfbf ;};_dagcb .XStep =_eca .MakeFloat (_aabb );_egdca =_ggeab .Get ("\u0059\u0053\u0074e\u0070");if _egdca ==nil {_ccb .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_cccca ,_bgfbf :=_eca .GetNumberAsFloat (_egdca );if _bgfbf !=nil {_ccb .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",_cccca );
|
||
return nil ,_bgfbf ;};_dagcb .YStep =_eca .MakeFloat (_cccca );_egdca =_ggeab .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _egdca ==nil {_ccb .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_ggeab ,_cadcf =_eca .TraceToDirectObject (_egdca ).(*_eca .PdfObjectDictionary );if !_cadcf {return nil ,_g .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",_egdca );
|
||
};_dafff ,_bgfbf :=NewPdfPageResourcesFromDict (_ggeab );if _bgfbf !=nil {return nil ,_bgfbf ;};_dagcb .Resources =_dafff ;if _egadc :=_ggeab .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_egadc !=nil {_fabde ,_fgaad :=_egadc .(*_eca .PdfObjectArray );
|
||
if !_fgaad {_ccb .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",_egadc );return nil ,_eca .ErrTypeError ;};_dagcb .Matrix =_fabde ;};return _dagcb ,nil ;
|
||
};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_dagg :=&PdfSignature {Type :_eca .MakeName ("\u0053\u0069\u0067"),Handler :handler };_gfgdc :=&pdfSignDictionary {PdfObjectDictionary :_eca .MakeDict (),_ceaad :&handler ,_eacaae :_dagg };
|
||
_dagg ._bfebg =_eca .MakeIndirectObject (_gfgdc );return _dagg ;};
|
||
|
||
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
|
||
type PdfOutputIntentType int ;
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_ffacc int64 ;_gecba int64 ;_bcdea int64 ;_dcbgf int64 ;_agdad int64 ;_dccbf int64 ;_cgad byte ;_ffffbf int64 ;_caaa int64 ;};func (_aegd *PdfReader )newPdfAnnotationInkFromDict (_aebc *_eca .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_bcbg :=PdfAnnotationInk {};
|
||
_egbe ,_bbce :=_aegd .newPdfAnnotationMarkupFromDict (_aebc );if _bbce !=nil {return nil ,_bbce ;};_bcbg .PdfAnnotationMarkup =_egbe ;_bcbg .InkList =_aebc .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_bcbg .BS =_aebc .Get ("\u0042\u0053");return &_bcbg ,nil ;
|
||
};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_eeegg *PdfPage )HasExtGState (name _eca .PdfObjectName )bool {if _eeegg .Resources ==nil {return false ;};if _eeegg .Resources .ExtGState ==nil {return false ;};_gdace ,_eaga :=_eca .TraceToDirectObject (_eeegg .Resources .ExtGState ).(*_eca .PdfObjectDictionary );
|
||
if !_eaga {_ccb .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",_eca .TraceToDirectObject (_eeegg .Resources .ExtGState ));
|
||
return false ;};_afaga :=_gdace .Get (name );_fgdae :=_afaga !=nil ;return _fgdae ;};func (_fffgg Image )getBase ()_bbg .ImageBase {return _bbg .NewImageBase (int (_fffgg .Width ),int (_fffgg .Height ),int (_fffgg .BitsPerComponent ),_fffgg .ColorComponents ,_fffgg .Data ,_fffgg ._gcgb ,_fffgg ._cfgaa );
|
||
};
|
||
|
||
// 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 (_adcb *PdfAnnotationWidget )Field ()*PdfField {return _adcb ._ebc };
|
||
|
||
// 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 (_eddfc *PdfFieldButton )SetType (btype ButtonType ){_ceebg :=uint32 (0);if _eddfc .Ff !=nil {_ceebg =uint32 (*_eddfc .Ff );};switch btype {case ButtonTypePush :_ceebg |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_ceebg |=FieldFlagRadio .Mask ();
|
||
};_eddfc .Ff =_eca .MakeInteger (int64 (_ceebg ));};func (_ecac fontCommon )coreString ()string {_gbaf :="";if _ecac ._ccec !=nil {_gbaf =_ecac ._ccec .String ();};return _g .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",_ecac ._cfbe ,_ecac ._daac ,_ecac ._agdaa ,_ecac ._dccaa ,_ecac ._effb !=nil ,_ecac .fontFlags (),_gbaf );
|
||
};
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_bgde *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_cbgc :=pageNum -1;for _eefa :=range _bgde ._fecc {if _eefa ==_cbgc {_eae :=page .Duplicate ();_dbed (_eae );_bgde ._fecc [_eefa ]=_eae ;};};};func (_aacc *PdfReader )newPdfAnnotation3DFromDict (_cegd *_eca .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_egge :=PdfAnnotation3D {};
|
||
_egge .T3DD =_cegd .Get ("\u0033\u0044\u0044");_egge .T3DV =_cegd .Get ("\u0033\u0044\u0056");_egge .T3DA =_cegd .Get ("\u0033\u0044\u0041");_egge .T3DI =_cegd .Get ("\u0033\u0044\u0049");_egge .T3DB =_cegd .Get ("\u0033\u0044\u0042");return &_egge ,nil ;
|
||
};func (_bagce SignatureValidationResult )String ()string {var _fcaggg _dd .Buffer ;_fcaggg .WriteString (_g .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_bagce .Name ));if _bagce .Date ._ffacc > 0{_fcaggg .WriteString (_g .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_bagce .Date .ToGoTime ().String ()));
|
||
}else {_fcaggg .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bagce .Reason )> 0{_fcaggg .WriteString (_g .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bagce .Reason ));
|
||
}else {_fcaggg .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_bagce .Location )> 0{_fcaggg .WriteString (_g .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_bagce .Location ));
|
||
}else {_fcaggg .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_bagce .ContactInfo )> 0{_fcaggg .WriteString (_g .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_bagce .ContactInfo ));
|
||
}else {_fcaggg .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_fcaggg .WriteString (_g .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_bagce .Fields )));
|
||
if _bagce .IsSigned {_fcaggg .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 {_fcaggg .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");
|
||
};if _bagce .IsVerified {_fcaggg .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 {_fcaggg .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 _bagce .IsTrusted {_fcaggg .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 {_fcaggg .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 !_bagce .GeneralizedTime .IsZero (){_fcaggg .WriteString (_g .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_bagce .GeneralizedTime .String ()));};if _bagce .DiffResults !=nil {_fcaggg .WriteString (_g .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_bagce .DiffResults .IsPermitted ()));
|
||
if len (_bagce .DiffResults .Warnings )> 0{_fcaggg .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_adbda :=range _bagce .DiffResults .Warnings {_fcaggg .WriteString (_g .Sprintf ("\u0009\u0025\u0073\u000a",_adbda ));
|
||
};};if len (_bagce .DiffResults .Errors )> 0{_fcaggg .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_fgfagd :=range _bagce .DiffResults .Errors {_fcaggg .WriteString (_g .Sprintf ("\u0009\u0025\u0073\u000a",_fgfagd ));
|
||
};};};if _bagce .IsCrlFound {_fcaggg .WriteString ("R\u0065\u0076\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0061\u003a\u0020C\u0052\u004c\u0020f\u006fu\u006e\u0064\u000a");}else {_fcaggg .WriteString ("\u0052\u0065\u0076o\u0063\u0061\u0074\u0069o\u006e\u0020\u0064\u0061\u0074\u0061\u003a \u0043\u0052\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
|
||
};if _bagce .IsOcspFound {_fcaggg .WriteString ("\u0052\u0065\u0076\u006fc\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u0066\u006f\u0075n\u0064\u000a");}else {_fcaggg .WriteString ("\u0052\u0065\u0076\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
|
||
};return _fcaggg .String ();};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_cbdf :=PdfColorLab {l ,a ,b };return &_cbdf };
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};func _fegaf (_aafa string )map[string ]string {_ebgdb :=_fdcgf .Split (_aafa ,-1);_cfce :=map[string ]string {};for _ ,_bfbee :=range _ebgdb {_fgac :=_ceefb .FindStringSubmatch (_bfbee );if _fgac ==nil {continue ;};
|
||
_caagb ,_ggfcd :=_fgac [1],_fgac [2];_cfce [_caagb ]=_ggfcd ;};return _cfce ;};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_faedg *PdfSignature )SetLocation (location string ){_faedg .Location =_eca .MakeString (location )};
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _eca .PdfObject ;Name _eca .PdfObject ;};func (_fegec *PdfWriter )optimize ()error {if _fegec ._cgfccc ==nil {return nil ;};var _debdf error ;_fegec ._daecf ,_debdf =_fegec ._cgfccc .Optimize (_fegec ._daecf );
|
||
if _debdf !=nil {return _debdf ;};_aced :=make (map[_eca .PdfObject ]struct{},len (_fegec ._daecf ));for _ ,_bafgc :=range _fegec ._daecf {_aced [_bafgc ]=struct{}{};};_fegec ._ceace =_aced ;return nil ;};
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _d .Time )(PdfDate ,error ){_eefd :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_cfbab ,_ :=_ge .ParseInt (_eefd [1:3],10,32);_cfgeed ,_ :=_ge .ParseInt (_eefd [4:6],10,32);return PdfDate {_ffacc :int64 (timeObj .Year ()),_gecba :int64 (timeObj .Month ()),_bcdea :int64 (timeObj .Day ()),_dcbgf :int64 (timeObj .Hour ()),_agdad :int64 (timeObj .Minute ()),_dccbf :int64 (timeObj .Second ()),_cgad :_eefd [0],_ffffbf :_cfbab ,_caaa :_cfgeed },nil ;
|
||
};
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_fddc *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_fddc .HiVal )};};
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_cbec *PdfColorspaceDeviceN )GetNumComponents ()int {return _cbec .ColorantNames .Len ()};func (_abdf *PdfShading )getShadingDict ()(*_eca .PdfObjectDictionary ,error ){_dbcaa :=_abdf ._dcbe ;if _ebdee ,_gdfce :=_dbcaa .(*_eca .PdfIndirectObject );
|
||
_gdfce {_bbcf ,_acebe :=_ebdee .PdfObject .(*_eca .PdfObjectDictionary );if !_acebe {return nil ,_eca .ErrTypeError ;};return _bbcf ,nil ;}else if _aaaga ,_ccabb :=_dbcaa .(*_eca .PdfObjectStream );_ccabb {return _aaaga .PdfObjectDictionary ,nil ;}else if _fcbee ,_ceecf :=_dbcaa .(*_eca .PdfObjectDictionary );
|
||
_ceecf {return _fcbee ,nil ;}else {_ccb .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 ,_eca .ErrTypeError ;
|
||
};};
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_dbfe *Image )AlphaMap (mapFunc AlphaMapFunc ){for _fadd ,_cabe :=range _dbfe ._gcgb {_dbfe ._gcgb [_fadd ]=mapFunc (_cabe );};};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_fbbe :=NewPdfAnnotation ();_cdeg :=&PdfAnnotationWidget {};_cdeg .PdfAnnotation =_fbbe ;_fbbe .SetContext (_cdeg );return _cdeg ;};
|
||
|
||
// HasShadingByName checks whether a shading is defined by the specified keyName.
|
||
func (_gbcbc *PdfPageResources )HasShadingByName (keyName _eca .PdfObjectName )bool {_ ,_gecaa :=_gbcbc .GetShadingByName (keyName );return _gecaa ;};func (_aggef *PdfReader )buildNameNodes (_ffacd *_eca .PdfIndirectObject ,_cbgbf map[_eca .PdfObject ]struct{})error {if _ffacd ==nil {return nil ;
|
||
};if _ ,_efeg :=_cbgbf [_ffacd ];_efeg {_ccb .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",_ffacd .ObjectNumber );
|
||
return nil ;};_cbgbf [_ffacd ]=struct{}{};_bdfbde ,_egcga :=_ffacd .PdfObject .(*_eca .PdfObjectDictionary );if !_egcga {return _da .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _dcfc ,_gdcf :=_eca .GetDict (_bdfbde .Get ("\u0044\u0065\u0073t\u0073"));
|
||
_gdcf {_cdff ,_baggb :=_eca .GetArray (_dcfc .Get ("\u004b\u0069\u0064\u0073"));if !_baggb {return _da .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ccb .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_cdff );
|
||
for _dfcad ,_bebef :=range _cdff .Elements (){_efagg ,_eccdc :=_eca .GetIndirect (_bebef );if !_eccdc {_ccb .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u0068\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006e\u0064i\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u002d \u0028\u0025\u0073\u0029",_efagg );
|
||
return _da .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_cdff .Set (_dfcad ,_efagg );_efdg :=_aggef .buildNameNodes (_efagg ,_cbgbf );if _efdg !=nil {return _efdg ;};
|
||
};};if _aabgf ,_dabdc :=_eca .GetDict (_bdfbde );_dabdc {if !_eca .IsNullObject (_aabgf .Get ("\u004b\u0069\u0064\u0073")){if _agfee ,_afgcc :=_eca .GetArray (_aabgf .Get ("\u004b\u0069\u0064\u0073"));_afgcc {for _gecgc ,_fffdb :=range _agfee .Elements (){if _dcedb ,_efgbc :=_eca .GetIndirect (_fffdb );
|
||
_efgbc {_agfee .Set (_gecgc ,_dcedb );_abcfg :=_aggef .buildNameNodes (_dcedb ,_cbgbf );if _abcfg !=nil {return _abcfg ;};};};};};};return nil ;};
|
||
|
||
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
|
||
func NewPdfOutputIntentFromPdfObject (object _eca .PdfObject )(*PdfOutputIntent ,error ){_bgfge :=&PdfOutputIntent {};if _bebad :=_bgfge .ParsePdfObject (object );_bebad !=nil {return nil ,_bebad ;};return _bgfge ,nil ;};func (_ebfd *PdfReader )newPdfActionThreadFromDict (_fbb *_eca .PdfObjectDictionary )(*PdfActionThread ,error ){_bggc ,_ffgf :=_efe (_fbb .Get ("\u0046"));
|
||
if _ffgf !=nil {return nil ,_ffgf ;};return &PdfActionThread {D :_fbb .Get ("\u0044"),B :_fbb .Get ("\u0042"),F :_bggc },nil ;};
|
||
|
||
// FontDescriptor returns font's PdfFontDescriptor. This may be a builtin descriptor for standard 14
|
||
// fonts but must be an explicit descriptor for other fonts.
|
||
func (_cgfg *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _cgfg .baseFields ()._ccec !=nil {return _cgfg .baseFields ()._ccec ;};if _gfcb :=_cgfg ._dbgb .getFontDescriptor ();_gfcb !=nil {return _gfcb ;};_ccb .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",_cgfg );
|
||
return nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bdea *Permissions )GetContainingPdfObject ()_eca .PdfObject {return _bdea ._bffgb };
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eca .PdfObject ;LE _eca .PdfObject ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;IT _eca .PdfObject ;Measure _eca .PdfObject ;};
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_dgfg :=NewPdfAnnotation ();_bafd :=&PdfAnnotationSound {};_bafd .PdfAnnotation =_dgfg ;_bafd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgfg .SetContext (_bafd );return _bafd ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_ceaf *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_geef *PdfTilingPattern )IsColored ()bool {if _geef .PaintType !=nil &&*_geef .PaintType ==1{return true ;};return false ;};
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _eca .PdfObject ;Flags _eca .PdfObject ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_edbef pdfFontType0 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _edbef .DescendantFont ==nil {_ccb .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",_edbef );
|
||
return _ffd .CharMetrics {},false ;};return _edbef .DescendantFont .GetCharMetrics (code );};func (_ece *PdfReader )newPdfActionRenditionFromDict (_agb *_eca .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_agb .Get ("\u0052"),AN :_agb .Get ("\u0041\u004e"),OP :_agb .Get ("\u004f\u0050"),JS :_agb .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_gagd *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ccb .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 ,_da .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");};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_fdadg :=&PdfColorspaceSpecialSeparation {};return _fdadg ;};
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_dfcd :=NewPdfAnnotation ();_cgeg :=&PdfAnnotationCircle {};_cgeg .PdfAnnotation =_dfcd ;_cgeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfcd .SetContext (_cgeg );return _cgeg ;};
|
||
|
||
// Transform rectangle with the supplied matrix.
|
||
func (_fffggc *PdfRectangle )Transform (transformMatrix _gg .Matrix ){_fffggc .Llx ,_fffggc .Lly =transformMatrix .Transform (_fffggc .Llx ,_fffggc .Lly );_fffggc .Urx ,_fffggc .Ury =transformMatrix .Transform (_fffggc .Urx ,_fffggc .Ury );_fffggc .Normalize ();
|
||
};
|
||
|
||
// 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 (_cbdef *LTV )EnableByName (name string ,extraCerts []*_ad .Certificate )error {_cdbfg :=_cbdef ._deaee ._badg .AcroForm ;for _ ,_ccccg :=range _cdbfg .AllFields (){_bdbd ,_ :=_ccccg .GetContext ().(*PdfFieldSignature );if _bdbd ==nil {continue ;};
|
||
if _bcgea :=_bdbd .PartialName ();_bcgea !=name {continue ;};return _cbdef .Enable (_bdbd .V ,extraCerts );};return nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_fgdca pdfCIDFontType0 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){return _ffd .CharMetrics {Wx :_fgdca ._eegbc },true ;};
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_cfda *PdfPage )Duplicate ()*PdfPage {_dccea :=*_cfda ;_dccea ._agaea =_eca .MakeDict ();_dccea ._aedef =_eca .MakeIndirectObject (_dccea ._agaea );_dccea ._gbaec =*_dccea ._agaea ;return &_dccea ;};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_badb :=&PdfColorspaceDeviceN {};return _badb };
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_eaac *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bdb *PdfAnnotationHighlight )ToPdfObject ()_eca .PdfObject {_bdb .PdfAnnotation .ToPdfObject ();_aega :=_bdb ._cdc ;_aeafd :=_aega .PdfObject .(*_eca .PdfObjectDictionary );_bdb .PdfAnnotationMarkup .appendToPdfDictionary (_aeafd );_aeafd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_aeafd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdb .QuadPoints );return _aega ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_fgbea *pdfCIDFontType0 )ToPdfObject ()_eca .PdfObject {return _eca .MakeNull ()};
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_gfbb *PdfPage )GetPageDict ()*_eca .PdfObjectDictionary {_cgfdf :=_gfbb ._agaea ;_cgfdf .Clear ();_cgfdf .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050\u0061\u0067\u0065"));_cgfdf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gfbb .Parent );
|
||
if _gfbb .LastModified !=nil {_cgfdf .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_gfbb .LastModified .ToPdfObject ());};if _gfbb .Resources !=nil {_cgfdf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gfbb .Resources .ToPdfObject ());
|
||
};if _gfbb .CropBox !=nil {_cgfdf .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_gfbb .CropBox .ToPdfObject ());};if _gfbb .MediaBox !=nil {_cgfdf .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_gfbb .MediaBox .ToPdfObject ());};if _gfbb .BleedBox !=nil {_cgfdf .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_gfbb .BleedBox .ToPdfObject ());
|
||
};if _gfbb .TrimBox !=nil {_cgfdf .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_gfbb .TrimBox .ToPdfObject ());};if _gfbb .ArtBox !=nil {_cgfdf .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_gfbb .ArtBox .ToPdfObject ());};_cgfdf .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_gfbb .BoxColorInfo );
|
||
_cgfdf .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gfbb .Contents );if _gfbb .Rotate !=nil {_cgfdf .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eca .MakeInteger (*_gfbb .Rotate ));};_cgfdf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_gfbb .Group );
|
||
_cgfdf .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_gfbb .Thumb );_cgfdf .SetIfNotNil ("\u0042",_gfbb .B );_cgfdf .SetIfNotNil ("\u0044\u0075\u0072",_gfbb .Dur );_cgfdf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_gfbb .Trans );_cgfdf .SetIfNotNil ("\u0041\u0041",_gfbb .AA );
|
||
_cgfdf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gfbb .Metadata );_cgfdf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_gfbb .PieceInfo );_cgfdf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gfbb .StructParents );
|
||
_cgfdf .SetIfNotNil ("\u0049\u0044",_gfbb .ID );_cgfdf .SetIfNotNil ("\u0050\u005a",_gfbb .PZ );_cgfdf .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_gfbb .SeparationInfo );_cgfdf .SetIfNotNil ("\u0054\u0061\u0062\u0073",_gfbb .Tabs );
|
||
_cgfdf .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_gfbb .TemplateInstantiated );_cgfdf .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_gfbb .PresSteps );_cgfdf .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_gfbb .UserUnit );
|
||
_cgfdf .SetIfNotNil ("\u0056\u0050",_gfbb .VP );if _gfbb ._gabcd !=nil {_bdedb :=_eca .MakeArray ();for _ ,_cegeb :=range _gfbb ._gabcd {if _dbcbe :=_cegeb .GetContext ();_dbcbe !=nil {_bdedb .Append (_dbcbe .ToPdfObject ());}else {_bdedb .Append (_cegeb .ToPdfObject ());
|
||
};};if _bdedb .Len ()> 0{_cgfdf .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_bdedb );};}else if _gfbb .Annots !=nil {_cgfdf .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_gfbb .Annots );};return _cgfdf ;};
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _d .Time ){_ccbac .Lock ();defer _ccbac .Unlock ();_fcacce =creationDate ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dcd *PdfActionNamed )ToPdfObject ()_eca .PdfObject {_dcd .PdfAction .ToPdfObject ();_cfb :=_dcd ._bee ;_acf :=_cfb .PdfObject .(*_eca .PdfObjectDictionary );_acf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeNamed )));_acf .SetIfNotNil ("\u004e",_dcd .N );
|
||
return _cfb ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_bcac *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffae ,_fagb :=_eca .GetNumbersAsFloat (objects );
|
||
if _fagb !=nil {return nil ,_fagb ;};return _bcac .ColorFromFloats (_ffae );};
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_ccbac .Lock ();defer _ccbac .Unlock ();_dgebb =author };
|
||
|
||
// 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 *_eca .PdfObjectInteger ;TilingType *_eca .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_eca .PdfObjectFloat ;YStep *_eca .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_eca .PdfObjectArray ;};
|
||
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_dbaaa *PdfShadingType3 )ToPdfObject ()_eca .PdfObject {_dbaaa .PdfShading .ToPdfObject ();_ebff ,_cbce :=_dbaaa .getShadingDict ();if _cbce !=nil {_ccb .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 _dbaaa .Coords !=nil {_ebff .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dbaaa .Coords );};if _dbaaa .Domain !=nil {_ebff .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dbaaa .Domain );};if _dbaaa .Function !=nil {if len (_dbaaa .Function )==1{_ebff .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbaaa .Function [0].ToPdfObject ());
|
||
}else {_bgbgbc :=_eca .MakeArray ();for _ ,_cbfe :=range _dbaaa .Function {_bgbgbc .Append (_cbfe .ToPdfObject ());};_ebff .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgbgbc );};};if _dbaaa .Extend !=nil {_ebff .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dbaaa .Extend );
|
||
};return _dbaaa ._dcbe ;};func (_bbgfae *pdfFontSimple )addEncoding ()error {var (_gefdd string ;_cdcb map[_dbb .CharCode ]_dbb .GlyphName ;_abdcc _dbb .SimpleEncoder ;);if _bbgfae .Encoder ()!=nil {_cecd ,_fadad :=_bbgfae .Encoder ().(_dbb .SimpleEncoder );
|
||
if _fadad &&_cecd !=nil {_gefdd =_cecd .BaseName ();};};if _bbgfae .Encoding !=nil {_bdaaa ,_beabb ,_dedfd :=_bbgfae .getFontEncoding ();if _dedfd !=nil {_ccb .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",_bbgfae ._daac ,_bbgfae ._cfbe ,_bbgfae .Encoding ,_bbgfae .Encoding ,_dedfd );
|
||
return _dedfd ;};if _bdaaa !=""{_gefdd =_bdaaa ;};_cdcb =_beabb ;_abdcc ,_dedfd =_dbb .NewSimpleTextEncoder (_gefdd ,_cdcb );if _dedfd !=nil {return _dedfd ;};};if _abdcc ==nil {_bfgfa :=_bbgfae ._ccec ;if _bfgfa !=nil {switch _bbgfae ._cfbe {case "\u0054\u0079\u0070e\u0031":if _bfgfa .fontFile !=nil &&_bfgfa .fontFile ._eggeg !=nil {_ccb .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_abdcc =_bfgfa .fontFile ._eggeg ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _bfgfa ._aacg !=nil {_ccb .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_dgeec ,_egfeg :=_bfgfa ._aacg .MakeEncoder ();
|
||
if _egfeg ==nil {_abdcc =_dgeec ;};if _bbgfae ._gegfa ==nil {_bbgfae ._gegfa =_bfgfa ._aacg .MakeToUnicode ();};};};};};if _abdcc !=nil {if _cdcb !=nil {_ccb .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cdcb ,_bbgfae .baseFields ());
|
||
_abdcc =_dbb .ApplyDifferences (_abdcc ,_cdcb );};_bbgfae .SetEncoder (_abdcc );};return nil ;};
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_gb :=NewPdfAction ();_ebd :=&PdfActionSubmitForm {};_ebd .PdfAction =_gb ;_gb .SetContext (_ebd );return _ebd ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_fbecd *pdfFontType0 )ToPdfObject ()_eca .PdfObject {if _fbecd ._cgaae ==nil {_fbecd ._cgaae =&_eca .PdfIndirectObject {};};_ddeadg :=_fbecd .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_fbecd ._cgaae .PdfObject =_ddeadg ;if _fbecd .Encoding !=nil {_ddeadg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fbecd .Encoding );
|
||
}else if _fbecd ._gdcea !=nil {_ddeadg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fbecd ._gdcea .ToPdfObject ());};if _fbecd .DescendantFont !=nil {_ddeadg .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_eca .MakeArray (_fbecd .DescendantFont .ToPdfObject ()));
|
||
};return _fbecd ._cgaae ;};
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;RD _eca .PdfObject ;};
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_ccbac .Lock ();defer _ccbac .Unlock ();_bdaae =producer };func (_egg *PdfReader )newPdfActionSetOCGStateFromDict (_cbed *_eca .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_cbed .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_cbed .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_fgcdb :=&XObjectForm {};_ebfaf :=&_eca .PdfObjectStream {};_ebfaf .PdfObjectDictionary =_eca .MakeDict ();_fgcdb ._afddc =_ebfaf ;return _fgcdb ;};func (_gdge *PdfReader )newPdfAnnotationTextFromDict (_ecf *_eca .PdfObjectDictionary )(*PdfAnnotationText ,error ){_fecd :=PdfAnnotationText {};
|
||
_dgca ,_dcggc :=_gdge .newPdfAnnotationMarkupFromDict (_ecf );if _dcggc !=nil {return nil ,_dcggc ;};_fecd .PdfAnnotationMarkup =_dgca ;_fecd .Open =_ecf .Get ("\u004f\u0070\u0065\u006e");_fecd .Name =_ecf .Get ("\u004e\u0061\u006d\u0065");_fecd .State =_ecf .Get ("\u0053\u0074\u0061t\u0065");
|
||
_fecd .StateModel =_ecf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_fecd ,nil ;};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_cfeeaa *PdfReader )IsEncrypted ()(bool ,error ){return _cfeeaa ._ecfeba .IsEncrypted ()};
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_dbbe *PdfWriter )WriteToFile (outputFilePath string )error {_cffe ,_gacfbf :=_efg .Create (outputFilePath );if _gacfbf !=nil {return _gacfbf ;};defer _cffe .Close ();return _dbbe .Write (_cffe );};
|
||
|
||
// SetOpenAction sets the OpenAction in the PDF catalog.
|
||
// The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008),
|
||
// or an action dictionary representing an action (12.6 "Actions" PDF32000_2008).
|
||
func (_eadaf *PdfWriter )SetOpenAction (dest _eca .PdfObject )error {if dest ==nil ||_eca .IsNullObject (dest ){return nil ;};_eadaf ._eeggd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _eadaf .addObjects (dest );};
|
||
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_dbcb *PdfColorLab )L ()float64 {return _dbcb [0]};func (_efafeb *PdfReader )newPdfSignatureReferenceFromDict (_dead *_eca .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _dabe ,_bcfdb :=_efafeb ._dcddd .GetModelFromPrimitive (_dead ).(*PdfSignatureReference );
|
||
_bcfdb {return _dabe ,nil ;};_afeac :=&PdfSignatureReference {_fdgfa :_dead ,Data :_dead .Get ("\u0044\u0061\u0074\u0061")};var _cccda bool ;_afeac .Type ,_ =_eca .GetName (_dead .Get ("\u0054\u0079\u0070\u0065"));_afeac .TransformMethod ,_cccda =_eca .GetName (_dead .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
if !_cccda {_ccb .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0053\u0069g\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0052\u0065\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0020\u0054\u0072\u0061\u006e\u0073\u0066o\u0072\u006dM\u0065\u0074h\u006f\u0064\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020in\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0072\u0020m\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrInvalidAttribute ;};_afeac .TransformParams ,_ =_eca .GetDict (_dead .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_afeac .DigestMethod ,_ =_eca .GetName (_dead .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
return _afeac ,nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_ccf *PdfAnnotation )GetContainingPdfObject ()_eca .PdfObject {return _ccf ._cdc };
|
||
|
||
// GetXHeight returns the XHeight of the font `descriptor`.
|
||
func (_dbaa *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _eca .GetNumberAsFloat (_dbaa .XHeight );};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_bccg *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_bccg ._gabcd =annotations };
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bgcc :=NewPdfAnnotation ();_cabb :=&PdfAnnotationScreen {};_cabb .PdfAnnotation =_bgcc ;_bgcc .SetContext (_cabb );return _cabb ;};
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_cab *PdfAnnotation )GetContext ()PdfModel {if _cab ==nil {return nil ;};return _cab ._abc ;};func (_ccac *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
|
||
|
||
// 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 (_cgac PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_eca .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_cfdc []_eca .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_dcfe []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_ddfac *PdfShadingPatternType3 )ToPdfObject ()_eca .PdfObject {_ddfac .PdfPattern .ToPdfObject ();_aacd :=_ddfac .getDict ();if _ddfac .Shading !=nil {_aacd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ddfac .Shading .ToPdfObject ());};if _ddfac .Matrix !=nil {_aacd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ddfac .Matrix );
|
||
};if _ddfac .ExtGState !=nil {_aacd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ddfac .ExtGState );};return _ddfac ._cdfed ;};
|
||
|
||
// 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 (_cacd *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _cacd .flattenFieldsWithOpts (false ,appgen ,opts );};
|
||
|
||
// Write writes out the PDF.
|
||
func (_bbccf *PdfWriter )Write (writer _beg .Writer )error {_ccb .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_aaec :=_bbccf .checkLicense ();if _aaec !=nil {return _aaec ;};if _aaec =_bbccf .writeOutlines ();_aaec !=nil {return _aaec ;};if _aaec =_bbccf .writeAcroFormFields ();
|
||
_aaec !=nil {return _aaec ;};_bbccf .checkPendingObjects ();if _aaec =_bbccf .writeOutputIntents ();_aaec !=nil {return _aaec ;};_bbccf .setCatalogVersion ();_bbccf .copyObjects ();if _aaec =_bbccf .optimize ();_aaec !=nil {return _aaec ;};if _aaec =_bbccf .optimizeDocument ();
|
||
_aaec !=nil {return _aaec ;};var _cddafg _f .Hash ;if _bbccf ._dagbd {_cddafg =_ca .New ();writer =_beg .MultiWriter (_cddafg ,writer );};_bbccf .setWriter (writer );_ggbbg :=_bbccf .checkCrossReferenceStream ();_bffca ,_ggbbg :=_bbccf .mapObjectStreams (_ggbbg );
|
||
_bbccf .adjustXRefAffectedVersion (_ggbbg );_bbccf .writeDocumentVersion ();_bbccf .updateObjectNumbers ();_bbccf .writeObjects ();if _aaec =_bbccf .writeObjectsInStreams (_bffca );_aaec !=nil {return _aaec ;};_ggaceb :=_bbccf ._eggaf ;var _faggff int ;
|
||
for _gdgec :=range _bbccf ._eaad {if _gdgec > _faggff {_faggff =_gdgec ;};};if _bbccf ._dagbd {if _aaec =_bbccf .setHashIDs (_cddafg );_aaec !=nil {return _aaec ;};};if _ggbbg {if _aaec =_bbccf .writeXRefStreams (_faggff ,_ggaceb );_aaec !=nil {return _aaec ;
|
||
};}else {_bbccf .writeTrailer (_faggff );};_bbccf .makeOffSetReference (_ggaceb );if _aaec =_bbccf .flushWriter ();_aaec !=nil {return _aaec ;};return nil ;};func (_dfce *PdfReader )newPdfActionURIFromDict (_bag *_eca .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bag .Get ("\u0055\u0052\u0049"),IsMap :_bag .Get ("\u0049\u0073\u004da\u0070")},nil ;
|
||
};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);
|
||
FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<26);
|
||
FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_gabc *PdfColorspaceCalGray )ToPdfObject ()_eca .PdfObject {_bdca :=&_eca .PdfObjectArray {};_bdca .Append (_eca .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_abge :=_eca .MakeDict ();if _gabc .WhitePoint !=nil {_abge .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_eca .MakeArray (_eca .MakeFloat (_gabc .WhitePoint [0]),_eca .MakeFloat (_gabc .WhitePoint [1]),_eca .MakeFloat (_gabc .WhitePoint [2])));
|
||
}else {_ccb .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 _gabc .BlackPoint !=nil {_abge .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eca .MakeArray (_eca .MakeFloat (_gabc .BlackPoint [0]),_eca .MakeFloat (_gabc .BlackPoint [1]),_eca .MakeFloat (_gabc .BlackPoint [2])));
|
||
};_abge .Set ("\u0047\u0061\u006dm\u0061",_eca .MakeFloat (_gabc .Gamma ));_bdca .Append (_abge );if _gabc ._aaba !=nil {_gabc ._aaba .PdfObject =_bdca ;return _gabc ._aaba ;};return _bdca ;};func (_ecca *PdfReader )newPdfAnnotationPrinterMarkFromDict (_dffg *_eca .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_eabe :=PdfAnnotationPrinterMark {};
|
||
_eabe .MN =_dffg .Get ("\u004d\u004e");return &_eabe ,nil ;};type fontFile struct{_gfafb string ;_dcgda string ;_eggeg _dbb .SimpleEncoder ;};func (_gda *PdfReader )newPdfAnnotationUnderlineFromDict (_cga *_eca .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ecae :=PdfAnnotationUnderline {};
|
||
_dgd ,_bdgg :=_gda .newPdfAnnotationMarkupFromDict (_cga );if _bdgg !=nil {return nil ,_bdgg ;};_ecae .PdfAnnotationMarkup =_dgd ;_ecae .QuadPoints =_cga .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ecae ,nil ;};
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_cgcaf *Image )SetAlpha (alpha []byte ){_cgcaf ._gcgb =alpha };
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_cdcc *PdfField )FullName ()(string ,error ){var _aefe _dd .Buffer ;_cgba :=[]string {};if _cdcc .T !=nil {_cgba =append (_cgba ,_cdcc .T .Decoded ());};_ffbd :=map[*PdfField ]bool {};_ffbd [_cdcc ]=true ;_ccbg :=_cdcc .Parent ;for _ccbg !=nil {if _ ,_cfab :=_ffbd [_ccbg ];
|
||
_cfab {return _aefe .String (),_da .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _ccbg .T ==nil {return _aefe .String (),_da .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");
|
||
};_cgba =append (_cgba ,_ccbg .T .Decoded ());_ffbd [_ccbg ]=true ;_ccbg =_ccbg .Parent ;};for _acfcg :=len (_cgba )-1;_acfcg >=0;_acfcg --{_aefe .WriteString (_cgba [_acfcg ]);if _acfcg > 0{_aefe .WriteString ("\u002e");};};return _aefe .String (),nil ;
|
||
};
|
||
|
||
// 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 ;_faddg *_eca .PdfIndirectObject ;};
|
||
|
||
// 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 _beg .ReadSeeker )(*PdfReader ,error ){const _bdddc ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _cfbdee (rs ,&ReaderOpts {LazyLoad :true },false ,_bdddc );
|
||
};
|
||
|
||
// 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 (_ddbfc DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
|
||
|
||
// FlattenFields flattens the form fields and annotations for the PDF loaded in `pdf` and makes
|
||
// non-editable.
|
||
// Looks up all widget annotations corresponding to form fields and flattens them by drawing the content
|
||
// through the content stream rather than annotations.
|
||
// References to flattened annotations will be removed from Page Annots array. For fields the AcroForm entry
|
||
// will be emptied.
|
||
// When `allannots` is true, all annotations will be flattened. Keep false if want to keep non-form related
|
||
// annotations intact.
|
||
// When `appgen` is not nil, it will be used to generate appearance streams for the field annotations.
|
||
func (_gadbe *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gadbe .flattenFieldsWithOpts (allannots ,appgen ,nil );};
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};func (_bdad *PdfFont )baseFields ()*fontCommon {if _bdad ._dbgb ==nil {_ccb .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 _bdad ._dbgb .baseFields ();};func (_cbfa *pdfFontSimple )getFontEncoding ()(_cedga string ,_cgda map[_dbb .CharCode ]_dbb .GlyphName ,_bbaba error ){_cedga ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
|
||
if _eggb ,_aebaa :=_afag [_cbfa ._daac ];_aebaa {_cedga =_eggb ;}else if _cbfa .fontFlags ()&_afdga !=0{for _beef ,_bcegf :=range _afag {if _ec .Contains (_cbfa ._daac ,_beef ){_cedga =_bcegf ;break ;};};};if _cbfa .Encoding ==nil {return _cedga ,nil ,nil ;
|
||
};switch _caab :=_cbfa .Encoding .(type ){case *_eca .PdfObjectName :return string (*_caab ),nil ,nil ;case *_eca .PdfObjectDictionary :_dfcdc ,_gdcga :=_eca .GetName (_caab .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
if _gdcga {_cedga =_dfcdc .String ();};if _ggdf :=_caab .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_ggdf !=nil {_geae ,_gcfdb :=_eca .GetArray (_ggdf );if !_gcfdb {_ccb .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",_caab ,_caab .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_eca .ErrTypeError ;};_cgda ,_bbaba =_dbb .FromFontDifferences (_geae );};return _cedga ,_cgda ,_bbaba ;default:_ccb .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",_cbfa .Encoding ,_cbfa .Encoding );
|
||
return "",nil ,_eca .ErrTypeError ;};};
|
||
|
||
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
|
||
func (_faeg *PdfPageResources )HasPatternByName (keyName _eca .PdfObjectName )bool {_ ,_cacdg :=_faeg .GetPatternByName (keyName );return _cacdg ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_aaaa *PdfOutlineItem )GetContainingPdfObject ()_eca .PdfObject {return _aaaa ._becge };
|
||
|
||
// 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 (_cfgb *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dffd :=vals [0];if _dffd < 0.0||_dffd > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dffd );
|
||
return nil ,ErrColorOutOfRange ;};_cccf :=NewPdfColorCalGray (_dffd );return _cccf ,nil ;};
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_fegf :=&PdfFilespec {};_fegf ._ggdg =_eca .MakeIndirectObject (_eca .MakeDict ());return _fegf ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_cedf *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_bcdc :=func (_efgf float64 )float64 {if _efgf >=6.0/29{return _efgf *_efgf *_efgf ;};return 108.0/841*(_efgf -4.0/29.0);};_fadff :=img ._cfgaa ;if len (_fadff )!=6{_ccb .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");
|
||
_fadff =_cedf .DecodeArray ();};_efbf :=_bf .NewReader (img .getBase ());_addc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._gcgb ,img ._cfgaa );_affeg :=_bf .NewWriter (_addc );_eceb :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_ddbd :=make ([]uint32 ,3);var (_daebd error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_gafc ,_deffe ,_gagba float64 ;);for {_daebd =_efbf .ReadSamples (_ddbd );if _daebd ==_beg .EOF {break ;}else if _daebd !=nil {return img ,_daebd ;};Ls =float64 (_ddbd [0])/_eceb ;
|
||
As =float64 (_ddbd [1])/_eceb ;Bs =float64 (_ddbd [2])/_eceb ;Ls =_bbg .LinearInterpolate (Ls ,0.0,1.0,_fadff [0],_fadff [1]);As =_bbg .LinearInterpolate (As ,0.0,1.0,_fadff [2],_fadff [3]);Bs =_bbg .LinearInterpolate (Bs ,0.0,1.0,_fadff [4],_fadff [5]);
|
||
L =(Ls +16)/116+As /500;M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_cedf .WhitePoint [0]*_bcdc (L );Y =_cedf .WhitePoint [1]*_bcdc (M );Z =_cedf .WhitePoint [2]*_bcdc (N );_gafc =3.240479*X +-1.537150*Y +-0.498535*Z ;_deffe =-0.969256*X +1.875992*Y +0.041556*Z ;
|
||
_gagba =0.055648*X +-0.204043*Y +1.057311*Z ;_gafc =_de .Min (_de .Max (_gafc ,0),1.0);_deffe =_de .Min (_de .Max (_deffe ,0),1.0);_gagba =_de .Min (_de .Max (_gagba ,0),1.0);_ddbd [0]=uint32 (_gafc *_eceb );_ddbd [1]=uint32 (_deffe *_eceb );_ddbd [2]=uint32 (_gagba *_eceb );
|
||
if _daebd =_affeg .WriteSamples (_ddbd );_daebd !=nil {return img ,_daebd ;};};return _cggae (&_addc ),nil ;};func (_dccfd *PdfReader )newPdfActionJavaScriptFromDict (_bfa *_eca .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bfa .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// ParserMetadata gets the parser metadata.
|
||
func (_afaf *CompliancePdfReader )ParserMetadata ()_eca .ParserMetadata {if _afaf ._cbbce ==(_eca .ParserMetadata {}){_afaf ._cbbce ,_ =_afaf ._ecfeba .ParserMetadata ();};return _afaf ._cbbce ;};
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_edabg *PdfPageResources )GetShadingByName (keyName _eca .PdfObjectName )(*PdfShading ,bool ){if _edabg .Shading ==nil {return nil ,false ;};_ggffg ,_bcbcc :=_eca .TraceToDirectObject (_edabg .Shading ).(*_eca .PdfObjectDictionary );if !_bcbcc {_ccb .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",_edabg .Shading );
|
||
return nil ,false ;};if _dega :=_ggffg .Get (keyName );_dega !=nil {_bebfg ,_gaebf :=_ecaad (_dega );if _gaebf !=nil {_ccb .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",_gaebf );
|
||
return nil ,false ;};return _bebfg ,true ;};return nil ,false ;};type modelManager struct{_dccab map[PdfModel ]_eca .PdfObject ;_gddea map[_eca .PdfObject ]PdfModel ;};func _ebcdg (_ffcg *PdfField ,_cebed _eca .PdfObject ){for _ ,_edcgd :=range _ffcg .Annotations {_edcgd .AS =_cebed ;
|
||
_edcgd .ToPdfObject ();};};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_acgfe *PdfPageResources )SetXObjectByName (keyName _eca .PdfObjectName ,stream *_eca .PdfObjectStream )error {if _acgfe .XObject ==nil {_acgfe .XObject =_eca .MakeDict ();};_cbdfe :=_eca .TraceToDirectObject (_acgfe .XObject );_eeafb ,_dbccg :=_cbdfe .(*_eca .PdfObjectDictionary );
|
||
if !_dbccg {_ccb .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",_acgfe .XObject ,_cbdfe );return _da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_eeafb .Set (keyName ,stream );return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gd *PdfActionGoTo3DView )ToPdfObject ()_eca .PdfObject {_gd .PdfAction .ToPdfObject ();_gde :=_gd ._bee ;_cde :=_gde .PdfObject .(*_eca .PdfObjectDictionary );_cde .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoTo3DView )));_cde .SetIfNotNil ("\u0054\u0041",_gd .TA );
|
||
_cde .SetIfNotNil ("\u0056",_gd .V );return _gde ;};
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_eaaed DefaultImageHandler )NewImageFromGoImage (goimg _cc .Image )(*Image ,error ){_feaa ,_dgbfa :=_bbg .FromGoImage (goimg );if _dgbfa !=nil {return nil ,_dgbfa ;};_abbd :=_cggae (_feaa .Base ());return &_abbd ,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 (_feeg *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eacd :=vals [0];if _eacd < 0.0||_eacd > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eacd );
|
||
return nil ,ErrColorOutOfRange ;};_eeae :=vals [1];if _eeae < 0.0||_eeae > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eeae );return nil ,ErrColorOutOfRange ;
|
||
};_fcdf :=vals [2];if _fcdf < 0.0||_fcdf > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcdf );return nil ,ErrColorOutOfRange ;};_ddfd :=NewPdfColorCalRGB (_eacd ,_eeae ,_fcdf );
|
||
return _ddfd ,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 ){_bdcebc ,_cdef :=_dbecc (basefont );if _cdef !=nil {return nil ,_cdef ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_bdcebc ._daddc =_dbb .NewWinAnsiEncoder ();};return &PdfFont {_dbgb :&_bdcebc },nil ;
|
||
};
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_bcaed *PdfWriter )SetForms (form *PdfAcroForm )error {_bcaed ._bebb =form ;return nil };
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_aaae *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _aaae .Alternate ==nil {if _aaae .N ==1{_edece :=NewPdfColorspaceDeviceGray ();return _edece .ColorFromFloats (vals );}else if _aaae .N ==3{_bbagg :=NewPdfColorspaceDeviceRGB ();
|
||
return _bbagg .ColorFromFloats (vals );}else if _aaae .N ==4{_eegd :=NewPdfColorspaceDeviceCMYK ();return _eegd .ColorFromFloats (vals );}else {return nil ,_da .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 _aaae .Alternate .ColorFromFloats (vals );};
|
||
|
||
// AddOCSPs adds OCSPs to DSS.
|
||
func (_badf *DSS )AddOCSPs (ocsps [][]byte )([]*_eca .PdfObjectStream ,error ){return _badf .add (&_badf .OCSPs ,_badf ._defag ,ocsps );};
|
||
|
||
// 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 (_cabc *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _da .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");
|
||
};_gdce :=field .V ;if _gdce ==nil {return _da .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");};_bgae :=pageNum -1;
|
||
if _bgae < 0||_bgae > len (_cabc ._fecc )-1{return _g .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_gbga :=_cabc .Reader .PageList [_bgae ];field .P =_gbga .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_eca .MakeString (_g .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
|
||
};_gbga .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _cabc ._edcc ==_cabc ._badg .AcroForm {_cabc ._edcc =_cabc .Reader .AcroForm ;};_gaac :=_cabc ._edcc ;if _gaac ==nil {_gaac =NewPdfAcroForm ();};_gaac .SigFlags =_eca .MakeInteger (3);
|
||
if _gaac .NeedAppearances !=nil {_gaac .NeedAppearances =nil ;};_abac :=append (_gaac .AllFields (),field .PdfField );_gaac .Fields =&_abac ;_cabc .ReplaceAcroForm (_gaac );_cabc .UpdatePage (_gbga );_cabc ._fecc [_bgae ]=_gbga ;if _ ,_beed :=field .V .GetDocMDPPermission ();
|
||
_beed {_cabc ._faca =NewPermissions (field .V );};return nil ;};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _eca .PdfObject ;LE _eca .PdfObject ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;IT _eca .PdfObject ;Measure _eca .PdfObject ;};
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_fff :=NewPdfAction ();_ceb :=&PdfActionTrans {};_ceb .PdfAction =_fff ;_fff .SetContext (_ceb );return _ceb ;};func _fgcd (_gged _ffd .StdFont )pdfFontSimple {_gdddf :=_gged .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_cfbe :"\u0054\u0079\u0070e\u0031",_daac :_gged .Name ()},_cedde :_gged .GetMetricsTable (),_bggag :&PdfFontDescriptor {FontName :_eca .MakeName (string (_gdddf .Name )),FontFamily :_eca .MakeName (_gdddf .Family ),FontWeight :_eca .MakeFloat (float64 (_gdddf .Weight )),Flags :_eca .MakeInteger (int64 (_gdddf .Flags )),FontBBox :_eca .MakeArrayFromFloats (_gdddf .BBox [:]),ItalicAngle :_eca .MakeFloat (_gdddf .ItalicAngle ),Ascent :_eca .MakeFloat (_gdddf .Ascent ),Descent :_eca .MakeFloat (_gdddf .Descent ),CapHeight :_eca .MakeFloat (_gdddf .CapHeight ),XHeight :_eca .MakeFloat (_gdddf .XHeight ),StemV :_eca .MakeFloat (_gdddf .StemV ),StemH :_eca .MakeFloat (_gdddf .StemH )},_aaggg :_gged .Encoder ()};
|
||
};func (_deeg *PdfWriter )optimizeDocument ()error {if _deeg ._bfgeb ==nil {return nil ;};_dcfba ,_cedfe :=_eca .GetDict (_deeg ._fbegc );if !_cedfe {return _da .New ("\u0061\u006e\u0020in\u0066\u006f\u0020\u006f\u0062\u006a\u0065\u0063\u0074 \u0069s\u0020n\u006ft\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_fcafg :=_ba .Document {ID :[2]string {_deeg ._aadc ,_deeg ._fcbcc },Version :_deeg ._dgab ,Objects :_deeg ._daecf ,Info :_dcfba ,Crypt :_deeg ._badga ,UseHashBasedID :_deeg ._dagbd };if _ggdad :=_deeg ._bfgeb .ApplyStandard (&_fcafg );_ggdad !=nil {return _ggdad ;
|
||
};_deeg ._aadc ,_deeg ._fcbcc =_fcafg .ID [0],_fcafg .ID [1];_deeg ._dgab =_fcafg .Version ;_deeg ._daecf =_fcafg .Objects ;_deeg ._fbegc .PdfObject =_fcafg .Info ;_deeg ._dagbd =_fcafg .UseHashBasedID ;_deeg ._badga =_fcafg .Crypt ;_dfbd :=make (map[_eca .PdfObject ]struct{},len (_deeg ._daecf ));
|
||
for _ ,_gebcf :=range _deeg ._daecf {_dfbd [_gebcf ]=struct{}{};};_deeg ._ceace =_dfbd ;return nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_cce *PdfAction )GetContainingPdfObject ()_eca .PdfObject {return _cce ._bee };
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_fcacd *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fcacd .AlternateSpace ==nil {return nil ,_da .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 _fcacd .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cfd *PdfActionThread )ToPdfObject ()_eca .PdfObject {_cfd .PdfAction .ToPdfObject ();_feg :=_cfd ._bee ;_bgd :=_feg .PdfObject .(*_eca .PdfObjectDictionary );_bgd .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeThread )));if _cfd .F !=nil {_bgd .Set ("\u0046",_cfd .F .ToPdfObject ());
|
||
};_bgd .SetIfNotNil ("\u0044",_cfd .D );_bgd .SetIfNotNil ("\u0042",_cfd .B );return _feg ;};func _fgaf (_bedf *_eca .PdfObjectDictionary )bool {for _ ,_bbaf :=range _bedf .Keys (){if _ ,_gaee :=_ddead [_bbaf .String ()];_gaee {return true ;};};return false ;
|
||
};
|
||
|
||
// 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 (_cgafa *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_bgadd :=_cgafa .GetContentStreamObjs ();wrapContents =wrapContents &&len (_bgadd )> 0;_bccgc :=_eca .NewFlateEncoder ();_cebga :=_eca .MakeArray ();if wrapContents {_dfcdfa ,_agadd :=_eca .MakeStream ([]byte ("\u0071\u000a"),_bccgc );
|
||
if _agadd !=nil {return _agadd ;};_cebga .Append (_dfcdfa );};_cebga .Append (_bgadd ...);if wrapContents {_dcdad ,_cecb :=_eca .MakeStream ([]byte ("\u000a\u0051\u000a"),_bccgc );if _cecb !=nil {return _cecb ;};_cebga .Append (_dcdad );};_fddec ,_faeee :=_eca .MakeStream (cs ,_bccgc );
|
||
if _faeee !=nil {return _faeee ;};_cebga .Append (_fddec );_cgafa .Contents =_cebga ;return nil ;};
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _eca .PdfObject ;};
|
||
|
||
// 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 *_eca .PdfObjectStream )(*XObjectImage ,error ){_dceage :=&XObjectImage {};_dceage ._gddeaa =stream ;_gbaaf :=*(stream .PdfObjectDictionary );_cdag ,_febef :=_eca .NewEncoderFromStream (stream );if _febef !=nil {return nil ,_febef ;
|
||
};_dceage .Filter =_cdag ;if _cdfda :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0057\u0069\u0064t\u0068"));_cdfda !=nil {_eecfe ,_cfdccd :=_cdfda .(*_eca .PdfObjectInteger );if !_cfdccd {return nil ,_da .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");
|
||
};_eeddbg :=int64 (*_eecfe );_dceage .Width =&_eeddbg ;}else {return nil ,_da .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _bceab :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_bceab !=nil {_efafg ,_eefgc :=_bceab .(*_eca .PdfObjectInteger );if !_eefgc {return nil ,_da .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_deca :=int64 (*_efafg );
|
||
_dceage .Height =&_deca ;}else {return nil ,_da .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _cabcf :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_cabcf !=nil {_ecaaf ,_baffc :=NewPdfColorspaceFromPdfObject (_cabcf );if _baffc !=nil {return nil ,_baffc ;};_dceage .ColorSpace =_ecaaf ;}else {_ccb .Log .Debug ("\u0058O\u0062\u006a\u0065c\u0074\u0020\u0049m\u0061ge\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u0020\u002d\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067 1\u0020c\u006f\u006c\u006f\u0072\u0020\u0063o\u006d\u0070\u006f\u006e\u0065n\u0074\u0020\u002d\u0020\u0044\u0065\u0076\u0069\u0063\u0065\u0047r\u0061\u0079");
|
||
_dceage .ColorSpace =NewPdfColorspaceDeviceGray ();};if _gcdcdb :=_eca .TraceToDirectObject (_gbaaf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_gcdcdb !=nil {_ccegc ,_dfgbg :=_gcdcdb .(*_eca .PdfObjectInteger );
|
||
if !_dfgbg {return nil ,_da .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_aadae :=int64 (*_ccegc );_dceage .BitsPerComponent =&_aadae ;};_dceage .Intent =_gbaaf .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_dceage .ImageMask =_gbaaf .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_dceage .Mask =_gbaaf .Get ("\u004d\u0061\u0073\u006b");_dceage .Decode =_gbaaf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_dceage .Interpolate =_gbaaf .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_dceage .Alternatives =_gbaaf .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_dceage .SMask =_gbaaf .Get ("\u0053\u004d\u0061s\u006b");_dceage .SMaskInData =_gbaaf .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_dceage .Matte =_gbaaf .Get ("\u004d\u0061\u0074t\u0065");_dceage .Name =_gbaaf .Get ("\u004e\u0061\u006d\u0065");_dceage .StructParent =_gbaaf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dceage .ID =_gbaaf .Get ("\u0049\u0044");
|
||
_dceage .OPI =_gbaaf .Get ("\u004f\u0050\u0049");_dceage .Metadata =_gbaaf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dceage .OC =_gbaaf .Get ("\u004f\u0043");_dceage .Stream =stream .Stream ;return _dceage ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_fcdec *PdfShadingPattern )ToPdfObject ()_eca .PdfObject {_fcdec .PdfPattern .ToPdfObject ();_ccada :=_fcdec .getDict ();if _fcdec .Shading !=nil {_ccada .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fcdec .Shading .ToPdfObject ());};if _fcdec .Matrix !=nil {_ccada .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fcdec .Matrix );
|
||
};if _fcdec .ExtGState !=nil {_ccada .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fcdec .ExtGState );};return _fcdec ._cdfed ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_bagbb *OutlineItem )ToPdfObject ()_eca .PdfObject {_cagge ,_ :=_bagbb .ToPdfOutlineItem ();return _cagge .ToPdfObject ();};func (_gbd *PdfReader )newPdfAnnotationFreeTextFromDict (_fcf *_eca .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_dfcb :=PdfAnnotationFreeText {};
|
||
_abe ,_adag :=_gbd .newPdfAnnotationMarkupFromDict (_fcf );if _adag !=nil {return nil ,_adag ;};_dfcb .PdfAnnotationMarkup =_abe ;_dfcb .DA =_fcf .Get ("\u0044\u0041");_dfcb .Q =_fcf .Get ("\u0051");_dfcb .RC =_fcf .Get ("\u0052\u0043");_dfcb .DS =_fcf .Get ("\u0044\u0053");
|
||
_dfcb .CL =_fcf .Get ("\u0043\u004c");_dfcb .IT =_fcf .Get ("\u0049\u0054");_dfcb .BE =_fcf .Get ("\u0042\u0045");_dfcb .RD =_fcf .Get ("\u0052\u0044");_dfcb .BS =_fcf .Get ("\u0042\u0053");_dfcb .LE =_fcf .Get ("\u004c\u0045");return &_dfcb ,nil ;};func (_gbedd *PdfWriter )getPdfVersion ()string {return _g .Sprintf ("\u0025\u0064\u002e%\u0064",_gbedd ._dgab .Major ,_gbedd ._dgab .Minor );
|
||
};
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_ccae *PdfFieldButton )IsRadio ()bool {return _ccae .GetType ()==ButtonTypeRadio };
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_bdec *VRI )ToPdfObject ()*_eca .PdfObjectDictionary {_cbcfa :=_eca .MakeDict ();_cbcfa .SetIfNotNil (_eca .PdfObjectName ("\u0043\u0065\u0072\u0074"),_gaged (_bdec .Cert ));_cbcfa .SetIfNotNil (_eca .PdfObjectName ("\u004f\u0043\u0053\u0050"),_gaged (_bdec .OCSP ));
|
||
_cbcfa .SetIfNotNil (_eca .PdfObjectName ("\u0043\u0052\u004c"),_gaged (_bdec .CRL ));_cbcfa .SetIfNotNil ("\u0054\u0055",_bdec .TU );_cbcfa .SetIfNotNil ("\u0054\u0053",_bdec .TS );return _cbcfa ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_gfff *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};var _ pdfFont =(*pdfFontType3 )(nil );
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_ffd .CharMetrics ;
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_gbgc *PdfPage )GetContainingPdfObject ()_eca .PdfObject {return _gbgc ._aedef };
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_acadd *PdfPage )AddFont (name _eca .PdfObjectName ,font _eca .PdfObject )error {if _acadd .Resources ==nil {_acadd .Resources =NewPdfPageResources ();};if _acadd .Resources .Font ==nil {_acadd .Resources .Font =_eca .MakeDict ();};_cbcb ,_aaebb :=_eca .TraceToDirectObject (_acadd .Resources .Font ).(*_eca .PdfObjectDictionary );
|
||
if !_aaebb {_ccb .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",_eca .TraceToDirectObject (_acadd .Resources .Font ));
|
||
return _da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbcb .Set (name ,font );return nil ;};
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_afc :=NewPdfAction ();_adc :=&PdfActionGoToE {};_adc .PdfAction =_afc ;_afc .SetContext (_adc );return _adc ;};func (_ebbf *PdfReader )newPdfAnnotationMarkupFromDict (_bcb *_eca .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_bacg :=&PdfAnnotationMarkup {};
|
||
if _dag :=_bcb .Get ("\u0054");_dag !=nil {_bacg .T =_dag ;};if _dacc :=_bcb .Get ("\u0050\u006f\u0070u\u0070");_dacc !=nil {_cbedg ,_gcd :=_dacc .(*_eca .PdfIndirectObject );if !_gcd {if _ ,_abce :=_dacc .(*_eca .PdfObjectNull );!_abce {return nil ,_da .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 {_bdfb ,_affe :=_ebbf .newPdfAnnotationFromIndirectObject (_cbedg );if _affe !=nil {return nil ,_affe ;};if _bdfb !=nil {_caef ,_fffd :=_bdfb ._abc .(*PdfAnnotationPopup );if !_fffd {return nil ,_da .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");
|
||
};_bacg .Popup =_caef ;};};};if _eggg :=_bcb .Get ("\u0043\u0041");_eggg !=nil {_bacg .CA =_eggg ;};if _daeb :=_bcb .Get ("\u0052\u0043");_daeb !=nil {_bacg .RC =_daeb ;};if _ddb :=_bcb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_ddb !=nil {_bacg .CreationDate =_ddb ;};if _deab :=_bcb .Get ("\u0049\u0052\u0054");_deab !=nil {_bacg .IRT =_deab ;};if _baa :=_bcb .Get ("\u0053\u0075\u0062\u006a");_baa !=nil {_bacg .Subj =_baa ;};if _edc :=_bcb .Get ("\u0052\u0054");_edc !=nil {_bacg .RT =_edc ;
|
||
};if _ebbg :=_bcb .Get ("\u0049\u0054");_ebbg !=nil {_bacg .IT =_ebbg ;};if _egdc :=_bcb .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_egdc !=nil {_bacg .ExData =_egdc ;};return _bacg ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_aaccfa *PdfShadingType7 )ToPdfObject ()_eca .PdfObject {_aaccfa .PdfShading .ToPdfObject ();_egdgg ,_bagea :=_aaccfa .getShadingDict ();if _bagea !=nil {_ccb .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 _aaccfa .BitsPerCoordinate !=nil {_egdgg .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aaccfa .BitsPerCoordinate );};if _aaccfa .BitsPerComponent !=nil {_egdgg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aaccfa .BitsPerComponent );
|
||
};if _aaccfa .BitsPerFlag !=nil {_egdgg .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aaccfa .BitsPerFlag );};if _aaccfa .Decode !=nil {_egdgg .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aaccfa .Decode );};if _aaccfa .Function !=nil {if len (_aaccfa .Function )==1{_egdgg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aaccfa .Function [0].ToPdfObject ());
|
||
}else {_edgc :=_eca .MakeArray ();for _ ,_dddg :=range _aaccfa .Function {_edgc .Append (_dddg .ToPdfObject ());};_egdgg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edgc );};};return _aaccfa ._dcbe ;};
|
||
|
||
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
|
||
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_cdfaa :=&PdfShadingPatternType3 {};_cdfaa .Matrix =_eca .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_cdfaa .PdfPattern =&PdfPattern {};_cdfaa .PdfPattern .PatternType =int64 (*_eca .MakeInteger (2));
|
||
_cdfaa .PdfPattern ._cegb =_cdfaa ;_cdfaa .PdfPattern ._cdfed =_eca .MakeIndirectObject (_eca .MakeDict ());return _cdfaa ;};
|
||
|
||
// 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 (_ecgcaa *Image )SetSamples (samples []uint32 ){if _ecgcaa .BitsPerComponent < 8{samples =_ecgcaa .samplesAddPadding (samples );};_bgfg :=_bf .ResampleUint32 (samples ,int (_ecgcaa .BitsPerComponent ),8);_gbefg :=make ([]byte ,len (_bgfg ));for _edcff ,_dgfb :=range _bgfg {_gbefg [_edcff ]=byte (_dgfb );
|
||
};_ecgcaa .Data =_gbefg ;};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_eca .PdfObjectArray ;Domain *_eca .PdfObjectArray ;Function []PdfFunction ;Extend *_eca .PdfObjectArray ;};
|
||
|
||
// 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 (_effcf int ,_efafe *PdfPage )error ;
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_geed *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_gffb :=pageNum -1;var _dccb *PdfPage ;for _cdbg ,_ffdce :=range _geed ._fecc {if _cdbg ==_gffb {_dccb =_ffdce ;};};if _dccb ==nil {return _g .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 _dccb ._aedef !=nil &&_dccb ._aedef .GetParser ()==_geed ._badg ._ecfeba {_dccb =_dccb .Duplicate ();_geed ._fecc [_gffb ]=_dccb ;};page =page .Duplicate ();_dbed (page );_bgac :=_daad (_dccb );_eeaa :=_daad (page );_bfbd :=make (map[_eca .PdfObjectName ]_eca .PdfObjectName );
|
||
for _bdgb :=range _eeaa {if _ ,_ebaf :=_bgac [_bdgb ];_ebaf {for _gcab :=1;true ;_gcab ++{_dadd :=_eca .PdfObjectName (string (_bdgb )+_ge .Itoa (_gcab ));if _ ,_bfafg :=_bgac [_dadd ];!_bfafg {_bfbd [_bdgb ]=_dadd ;break ;};};};};_cfga ,_ggba :=page .GetContentStreams ();
|
||
if _ggba !=nil {return _ggba ;};_fcac ,_ggba :=_dccb .GetContentStreams ();if _ggba !=nil {return _ggba ;};for _fbag ,_fbbeb :=range _cfga {for _eegc ,_ceef :=range _bfbd {_fbbeb =_ec .Replace (_fbbeb ,"\u002f"+string (_eegc ),"\u002f"+string (_ceef ),-1);
|
||
};_cfga [_fbag ]=_fbbeb ;};_fcac =append (_fcac ,_cfga ...);if _ebba :=_dccb .SetContentStreams (_fcac ,_eca .NewFlateEncoder ());_ebba !=nil {return _ebba ;};_dccb ._gabcd =append (_dccb ._gabcd ,page ._gabcd ...);if _dccb .Resources ==nil {_dccb .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_dccb .Resources .Font =_geed .mergeResources (_dccb .Resources .Font ,page .Resources .Font ,_bfbd );_dccb .Resources .XObject =_geed .mergeResources (_dccb .Resources .XObject ,page .Resources .XObject ,_bfbd );_dccb .Resources .Properties =_geed .mergeResources (_dccb .Resources .Properties ,page .Resources .Properties ,_bfbd );
|
||
if _dccb .Resources .ProcSet ==nil {_dccb .Resources .ProcSet =page .Resources .ProcSet ;};_dccb .Resources .Shading =_geed .mergeResources (_dccb .Resources .Shading ,page .Resources .Shading ,_bfbd );_dccb .Resources .ExtGState =_geed .mergeResources (_dccb .Resources .ExtGState ,page .Resources .ExtGState ,_bfbd );
|
||
};_decb ,_ggba :=_dccb .GetMediaBox ();if _ggba !=nil {return _ggba ;};_edaf ,_ggba :=page .GetMediaBox ();if _ggba !=nil {return _ggba ;};var _cafg bool ;if _decb .Llx > _edaf .Llx {_decb .Llx =_edaf .Llx ;_cafg =true ;};if _decb .Lly > _edaf .Lly {_decb .Lly =_edaf .Lly ;
|
||
_cafg =true ;};if _decb .Urx < _edaf .Urx {_decb .Urx =_edaf .Urx ;_cafg =true ;};if _decb .Ury < _edaf .Ury {_decb .Ury =_edaf .Ury ;_cafg =true ;};if _cafg {_dccb .MediaBox =_decb ;};return nil ;};
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_egcf *_eca .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebe *PdfActionSubmitForm )ToPdfObject ()_eca .PdfObject {_ebe .PdfAction .ToPdfObject ();_fegc :=_ebe ._bee ;_dccf :=_fegc .PdfObject .(*_eca .PdfObjectDictionary );_dccf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeSubmitForm )));if _ebe .F !=nil {_dccf .Set ("\u0046",_ebe .F .ToPdfObject ());
|
||
};_dccf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ebe .Fields );_dccf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ebe .Flags );return _fegc ;};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_dged *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _eca .PdfObject ;V _eca .PdfObject ;};
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_gedd *PdfFieldChoice )ToPdfObject ()_eca .PdfObject {_gedd .PdfField .ToPdfObject ();_acgdc :=_gedd ._geaa ;_gffe :=_acgdc .PdfObject .(*_eca .PdfObjectDictionary );_gffe .Set ("\u0046\u0054",_eca .MakeName ("\u0043\u0068"));if _gedd .Opt !=nil {_gffe .Set ("\u004f\u0070\u0074",_gedd .Opt );
|
||
};if _gedd .TI !=nil {_gffe .Set ("\u0054\u0049",_gedd .TI );};if _gedd .I !=nil {_gffe .Set ("\u0049",_gedd .I );};return _acgdc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_daafg *PdfSignature )ToPdfObject ()_eca .PdfObject {_ecacc :=_daafg ._bfebg ;var _fgddc *_eca .PdfObjectDictionary ;if _aaebbg ,_gbebd :=_ecacc .PdfObject .(*pdfSignDictionary );_gbebd {_fgddc =_aaebbg .PdfObjectDictionary ;}else {_fgddc =_ecacc .PdfObject .(*_eca .PdfObjectDictionary );
|
||
};_fgddc .SetIfNotNil ("\u0054\u0079\u0070\u0065",_daafg .Type );_fgddc .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_daafg .Filter );_fgddc .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_daafg .SubFilter );_fgddc .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_daafg .ByteRange );
|
||
_fgddc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_daafg .Contents );_fgddc .SetIfNotNil ("\u0043\u0065\u0072\u0074",_daafg .Cert );_fgddc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_daafg .Name );_fgddc .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_daafg .Reason );
|
||
_fgddc .SetIfNotNil ("\u004d",_daafg .M );_fgddc .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_daafg .Reference );_fgddc .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_daafg .Changes );_fgddc .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_daafg .ContactInfo );
|
||
return _ecacc ;};var ImageHandling ImageHandler =DefaultImageHandler {};
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_bbcbf :=PdfPage {};_bbcbf ._agaea =_eca .MakeDict ();_bbcbf .Resources =NewPdfPageResources ();_fdac :=_eca .PdfIndirectObject {};_fdac .PdfObject =_bbcbf ._agaea ;_bbcbf ._aedef =&_fdac ;_bbcbf ._gbaec =*_bbcbf ._agaea ;return &_bbcbf ;
|
||
};
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_gfec *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_bfag :=_bf .NewReader (img .getBase ());_bccc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._gcgb ,img ._cfgaa );
|
||
_dafge :=_bf .NewWriter (_bccc );_cbbb :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_gbdb :=_gfec .GetNumComponents ();_bfga :=make ([]uint32 ,_gbdb );_affa :=make ([]float64 ,_gbdb );for {_geeda :=_bfag .ReadSamples (_bfga );if _geeda ==_beg .EOF {break ;
|
||
}else if _geeda !=nil {return img ,_geeda ;};for _cdgfa :=0;_cdgfa < _gbdb ;_cdgfa ++{_fcca :=float64 (_bfga [_cdgfa ])/_cbbb ;_affa [_cdgfa ]=_fcca ;};_bdgge ,_geeda :=_gfec .TintTransform .Evaluate (_affa );if _geeda !=nil {return img ,_geeda ;};for _ ,_bdgc :=range _bdgge {_bdgc =_de .Min (_de .Max (0,_bdgc ),1.0);
|
||
if _geeda =_dafge .WriteSample (uint32 (_bdgc *_cbbb ));_geeda !=nil {return img ,_geeda ;};};};return _gfec .AlternateSpace .ImageToRGB (_cggae (&_bccc ));};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_eegbg *PdfPageResources )GetXObjectFormByName (keyName _eca .PdfObjectName )(*XObjectForm ,error ){_gfgbda ,_eegdbf :=_eegbg .GetXObjectByName (keyName );if _gfgbda ==nil {return nil ,nil ;};if _eegdbf !=XObjectTypeForm {return nil ,_da .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_effbda ,_bbefc :=NewXObjectFormFromStream (_gfgbda );if _bbefc !=nil {return nil ,_bbefc ;};return _effbda ,nil ;};
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_afgbd :=PdfColorDeviceGray (grayVal );return &_afgbd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfgf *PdfBorderStyle )ToPdfObject ()_eca .PdfObject {_fead :=_eca .MakeDict ();if _dfgf ._egdd !=nil {if _bbbf ,_dddf :=_dfgf ._egdd .(*_eca .PdfIndirectObject );_dddf {_bbbf .PdfObject =_fead ;};};_fead .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _dfgf .W !=nil {_fead .Set ("\u0057",_eca .MakeFloat (*_dfgf .W ));};if _dfgf .S !=nil {_fead .Set ("\u0053",_eca .MakeName (_dfgf .S .GetPdfName ()));};if _dfgf .D !=nil {_fead .Set ("\u0044",_eca .MakeArrayFromIntegers (*_dfgf .D ));};if _dfgf ._egdd !=nil {return _dfgf ._egdd ;
|
||
};return _fead ;};
|
||
|
||
// 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 *_eca .PdfObjectName ;Colorants _eca .PdfObject ;Process _eca .PdfObject ;MixingHints _eca .PdfObject ;_fedb *_eca .PdfIndirectObject ;};
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_cfabg *PdfReader )Decrypt (password []byte )(bool ,error ){_bcedf ,_efeab :=_cfabg ._ecfeba .Decrypt (password );if _efeab !=nil {return false ,_efeab ;};if !_bcedf {return false ,nil ;};_efeab =_cfabg .loadStructure ();if _efeab !=nil {_ccb .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",_efeab );
|
||
return false ,_efeab ;};return true ,nil ;};func _daad (_cfe *PdfPage )map[_eca .PdfObjectName ]_eca .PdfObject {_bfbg :=make (map[_eca .PdfObjectName ]_eca .PdfObject );if _cfe .Resources ==nil {return _bfbg ;};if _cfe .Resources .Font !=nil {if _fgeb ,_gada :=_eca .GetDict (_cfe .Resources .Font );
|
||
_gada {for _ ,_gbdd :=range _fgeb .Keys (){_bfbg [_gbdd ]=_fgeb .Get (_gbdd );};};};if _cfe .Resources .ExtGState !=nil {if _ddef ,_beb :=_eca .GetDict (_cfe .Resources .ExtGState );_beb {for _ ,_ebcaf :=range _ddef .Keys (){_bfbg [_ebcaf ]=_ddef .Get (_ebcaf );
|
||
};};};if _cfe .Resources .XObject !=nil {if _bged ,_acac :=_eca .GetDict (_cfe .Resources .XObject );_acac {for _ ,_faac :=range _bged .Keys (){_bfbg [_faac ]=_bged .Get (_faac );};};};if _cfe .Resources .Pattern !=nil {if _cbba ,_bbea :=_eca .GetDict (_cfe .Resources .Pattern );
|
||
_bbea {for _ ,_cged :=range _cbba .Keys (){_bfbg [_cged ]=_cbba .Get (_cged );};};};if _cfe .Resources .Shading !=nil {if _bgca ,_cfdg :=_eca .GetDict (_cfe .Resources .Shading );_cfdg {for _ ,_eee :=range _bgca .Keys (){_bfbg [_eee ]=_bgca .Get (_eee );
|
||
};};};if _cfe .Resources .ProcSet !=nil {if _cggf ,_bafg :=_eca .GetDict (_cfe .Resources .ProcSet );_bafg {for _ ,_cafdf :=range _cggf .Keys (){_bfbg [_cafdf ]=_cggf .Get (_cafdf );};};};if _cfe .Resources .Properties !=nil {if _bbbc ,_afgf :=_eca .GetDict (_cfe .Resources .Properties );
|
||
_afgf {for _ ,_fab :=range _bbbc .Keys (){_bfbg [_fab ]=_bbbc .Get (_fab );};};};return _bfbg ;};func _gccfg (_febb *_eca .PdfObjectDictionary )(*PdfShadingType3 ,error ){_cbda :=PdfShadingType3 {};_bfeb :=_febb .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
|
||
if _bfeb ==nil {_ccb .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 ;
|
||
};_bfgdf ,_beecaf :=_bfeb .(*_eca .PdfObjectArray );if !_beecaf {_ccb .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",_bfeb );return nil ,_eca .ErrTypeError ;
|
||
};if _bfgdf .Len ()!=6{_ccb .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",_bfgdf .Len ());return nil ,ErrInvalidAttribute ;};_cbda .Coords =_bfgdf ;
|
||
if _afafa :=_febb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_afafa !=nil {_afafa =_eca .TraceToDirectObject (_afafa );_eabbdg ,_gbefbg :=_afafa .(*_eca .PdfObjectArray );if !_gbefbg {_ccb .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",_afafa );
|
||
return nil ,_eca .ErrTypeError ;};_cbda .Domain =_eabbdg ;};_bfeb =_febb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bfeb ==nil {_ccb .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 ;};_cbda .Function =[]PdfFunction {};if _fbcef ,_aafb :=_bfeb .(*_eca .PdfObjectArray );_aafb {for _ ,_eecda :=range _fbcef .Elements (){_adgee ,_cbcfg :=_febaf (_eecda );if _cbcfg !=nil {_ccb .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",_cbcfg );
|
||
return nil ,_cbcfg ;};_cbda .Function =append (_cbda .Function ,_adgee );};}else {_cdega ,_eadece :=_febaf (_bfeb );if _eadece !=nil {_ccb .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",_eadece );
|
||
return nil ,_eadece ;};_cbda .Function =append (_cbda .Function ,_cdega );};if _bgfee :=_febb .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bgfee !=nil {_bgfee =_eca .TraceToDirectObject (_bgfee );_eedf ,_gcfg :=_bgfee .(*_eca .PdfObjectArray );if !_gcfg {_ccb .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",_bgfee );
|
||
return nil ,_eca .ErrTypeError ;};if _eedf .Len ()!=2{_ccb .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",_eedf .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_cbda .Extend =_eedf ;};return &_cbda ,nil ;};
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_ebga *PdfPattern )IsShading ()bool {return _ebga .PatternType ==2};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_fbcga *XObjectForm )GetContentStream ()([]byte ,error ){_gbff ,_acggb :=_eca .DecodeStream (_fbcga ._afddc );if _acggb !=nil {return nil ,_acggb ;};return _gbff ,nil ;};func (_fdcb *DSS )generateHashMap (_gfeade []*_eca .PdfObjectStream )(map[string ]*_eca .PdfObjectStream ,error ){_bdaa :=map[string ]*_eca .PdfObjectStream {};
|
||
for _ ,_feda :=range _gfeade {_cfaf ,_cdf :=_eca .DecodeStream (_feda );if _cdf !=nil {return nil ,_cdf ;};_fabb ,_cdf :=_dggdf (_cfaf );if _cdf !=nil {return nil ,_cdf ;};_bdaa [string (_fabb )]=_feda ;};return _bdaa ,nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_dcff pdfFontType0 )Encoder ()_dbb .TextEncoder {return _dcff ._gdcea };
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_abfeb *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _abfeb ._gabcd ==nil {_abfeb .GetAnnotations ();};_abfeb ._gabcd =append (_abfeb ._gabcd ,annot );};
|
||
|
||
// AddCRLs adds CRLs to DSS.
|
||
func (_gacfb *DSS )AddCRLs (crls [][]byte )([]*_eca .PdfObjectStream ,error ){return _gacfb .add (&_gacfb .CRLs ,_gacfb ._ccgf ,crls );};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_gaafb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_gdag :=0.3*_gaafb .R ()+0.59*_gaafb .G ()+0.11*_gaafb .B ();_gdag =_de .Min (_de .Max (_gdag ,0.0),1.0);return NewPdfColorDeviceGray (_gdag );};
|
||
|
||
// SignatureHandlerDocMDP extends SignatureHandler with the ValidateWithOpts method for checking the DocMDP policy.
|
||
type SignatureHandlerDocMDP interface{SignatureHandler ;
|
||
|
||
// ValidateWithOpts validates a PDF signature by checking PdfReader or PdfParser
|
||
// ValidateWithOpts shall contain Validate call
|
||
ValidateWithOpts (_cfgdc *PdfSignature ,_bbbde Hasher ,_cede SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_cgfgg *PdfOutlineTreeNode )ToPdfObject ()_eca .PdfObject {return _cgfgg .GetContext ().ToPdfObject ();};func (_abbg *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _abbg ._ccec };func (_afg *PdfReader )newPdfActionHideFromDict (_aae *_eca .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_aae .Get ("\u0054"),H :_aae .Get ("\u0048")},nil ;
|
||
};
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_ffd .StdFontName ;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";);
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_affbb *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _affbb ._ecfeba .GetCrypter ()!=nil &&!_affbb ._ecfeba .IsAuthenticated (){return nil ,_g .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 (_affbb ._gfabb )< pageNumber {return nil ,_da .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");
|
||
};_gfcdc :=pageNumber -1;if _gfcdc < 0{return nil ,_g .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");};_ffde :=_affbb .PageList [_gfcdc ];
|
||
return _ffde ,nil ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_cddad *pdfSignDictionary )WriteString ()string {_cddad ._cbdga =0;_cddad ._aaead =0;_cddad ._aagfc =0;_cddad ._fgbbb =0;_gfafg :=_dd .NewBuffer (nil );_gfafg .WriteString ("\u003c\u003c");for _ ,_acaec :=range _cddad .Keys (){_gbfgd :=_cddad .Get (_acaec );
|
||
switch _acaec {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_gfafg .WriteString (_acaec .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._aagfc =_gfafg .Len ();_gfafg .WriteString (_gbfgd .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._fgbbb =_gfafg .Len ()-1;
|
||
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_gfafg .WriteString (_acaec .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._cbdga =_gfafg .Len ();_gfafg .WriteString (_gbfgd .WriteString ());_gfafg .WriteString ("\u0020");_cddad ._aaead =_gfafg .Len ()-1;
|
||
default:_gfafg .WriteString (_acaec .WriteString ());_gfafg .WriteString ("\u0020");_gfafg .WriteString (_gbfgd .WriteString ());};};_gfafg .WriteString ("\u003e\u003e");return _gfafg .String ();};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgfe *PdfAnnotationMovie )ToPdfObject ()_eca .PdfObject {_bgfe .PdfAnnotation .ToPdfObject ();_bccf :=_bgfe ._cdc ;_fedf :=_bccf .PdfObject .(*_eca .PdfObjectDictionary );_fedf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_fedf .SetIfNotNil ("\u0054",_bgfe .T );_fedf .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bgfe .Movie );_fedf .SetIfNotNil ("\u0041",_bgfe .A );return _bccf ;};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_gcce :=NewPdfAnnotation ();_egfe :=&PdfAnnotationRedact {};_egfe .PdfAnnotation =_gcce ;_egfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gcce .SetContext (_egfe );return _egfe ;};
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_edccb :=appender .Reader .DSS ;if _edccb ==nil {_edccb =NewDSS ();};if _bfcbg :=_edccb .GenerateHashMaps ();_bfcbg !=nil {return nil ,_bfcbg ;};return <V {CertClient :_ffg .NewCertClient (),OCSPClient :_ffg .NewOCSPClient (),CRLClient :_ffg .NewCRLClient (),SkipExisting :true ,_deaee :appender ,_eebfab :_edccb },nil ;
|
||
};func _bbeba (_fadg _eca .PdfObject )(string ,error ){_fadg =_eca .TraceToDirectObject (_fadg );switch _deaeb :=_fadg .(type ){case *_eca .PdfObjectString :return _deaeb .Str (),nil ;case *_eca .PdfObjectStream :_dcaaf ,_ggfgf :=_eca .DecodeStream (_deaeb );
|
||
if _ggfgf !=nil {return "",_ggfgf ;};return string (_dcaaf ),nil ;};return "",_g .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",_fadg );
|
||
};func _fccf (_fbcge *PdfField )[]*PdfField {_fcecd :=[]*PdfField {_fbcge };for _ ,_ecdb :=range _fbcge .Kids {_fcecd =append (_fcecd ,_fccf (_ecdb )...);};return _fcecd ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_fbbd *PdfColorspaceDeviceGray )ToPdfObject ()_eca .PdfObject {return _eca .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;};
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_bagga *PdfSignature )SetDate (date _d .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";};_bagga .M =_eca .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// 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 (_dcfb *PdfFont )CharcodesToUnicodeWithStats (charcodes []_dbb .CharCode )(_dfga []rune ,_ecdca ,_dgbgb int ){_ffdb ,_ecdca ,_dgbgb :=_dcfb .CharcodesToStrings (charcodes );return []rune (_ec .Join (_ffdb ,"")),_ecdca ,_dgbgb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgae *PdfAnnotationLink )ToPdfObject ()_eca .PdfObject {_dgae .PdfAnnotation .ToPdfObject ();_aeed :=_dgae ._cdc ;_bfaf :=_aeed .PdfObject .(*_eca .PdfObjectDictionary );_bfaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _dgae ._egc !=nil &&_dgae ._egc ._cd !=nil {_bfaf .Set ("\u0041",_dgae ._egc ._cd .ToPdfObject ());}else if _dgae .A !=nil {_bfaf .Set ("\u0041",_dgae .A );};_bfaf .SetIfNotNil ("\u0044\u0065\u0073\u0074",_dgae .Dest );_bfaf .SetIfNotNil ("\u0048",_dgae .H );
|
||
_bfaf .SetIfNotNil ("\u0050\u0041",_dgae .PA );_bfaf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dgae .QuadPoints );_bfaf .SetIfNotNil ("\u0042\u0053",_dgae .BS );return _aeed ;};func _fcgf (_ebgde *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_ebgde }};
|
||
|
||
|
||
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
|
||
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _eca .PdfObjectName ;};func _dgfdb (_cacc _eca .PdfObject )(map[_dbb .CharCode ]float64 ,error ){if _cacc ==nil {return nil ,nil ;};_dgdgd ,_bcbgfb :=_eca .GetArray (_cacc );if !_bcbgfb {return nil ,nil ;
|
||
};_feafd :=map[_dbb .CharCode ]float64 {};_bcde :=_dgdgd .Len ();for _cfeac :=0;_cfeac < _bcde -1;_cfeac ++{_gbfee :=_eca .TraceToDirectObject (_dgdgd .Get (_cfeac ));_adfa ,_debf :=_eca .GetIntVal (_gbfee );if !_debf {return nil ,_g .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_cfeac ,_gbfee );
|
||
};_cfeac ++;if _cfeac > _bcde -1{return nil ,_g .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",_dgdgd );};_geedcb :=_eca .TraceToDirectObject (_dgdgd .Get (_cfeac ));
|
||
switch _geedcb .(type ){case *_eca .PdfObjectArray :_bebg ,_ :=_eca .GetArray (_geedcb );if _dbfgg ,_eadad :=_bebg .ToFloat64Array ();_eadad ==nil {for _ebdf :=0;_ebdf < len (_dbfgg );_ebdf ++{_feafd [_dbb .CharCode (_adfa +_ebdf )]=_dbfgg [_ebdf ];};}else {return nil ,_g .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",_cfeac ,_geedcb );
|
||
};case *_eca .PdfObjectInteger :_eacb ,_cfeea :=_eca .GetIntVal (_geedcb );if !_cfeea {return nil ,_g .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",_cfeac ,_geedcb );
|
||
};_cfeac ++;if _cfeac > _bcde -1{return nil ,_g .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",_dgdgd );};_fbbg :=_dgdgd .Get (_cfeac );_acbf ,_afdag :=_eca .GetNumberAsFloat (_fbbg );
|
||
if _afdag !=nil {return nil ,_g .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",_cfeac ,_fbbg );};for _dgff :=_adfa ;_dgff <=_eacb ;
|
||
_dgff ++{_feafd [_dbb .CharCode (_dgff )]=_acbf ;};default:return nil ,_g .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",_cfeac ,_geedcb );
|
||
};};return _feafd ,nil ;};func _fgef (_agea _eca .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_bagf :=&PdfColorspaceDeviceNAttributes {};var _ddea *_eca .PdfObjectDictionary ;switch _abeg :=_agea .(type ){case *_eca .PdfIndirectObject :_bagf ._fedb =_abeg ;
|
||
var _fgag bool ;_ddea ,_fgag =_abeg .PdfObject .(*_eca .PdfObjectDictionary );if !_fgag {_ccb .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 ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_eca .PdfObjectDictionary :_ddea =_abeg ;case *_eca .PdfObjectReference :_aafe :=_abeg .Resolve ();return _fgef (_aafe );default:_ccb .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 ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cbab :=_ddea .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cbab !=nil {_bdedf ,_dcede :=_eca .TraceToDirectObject (_cbab ).(*_eca .PdfObjectName );if !_dcede {_ccb .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 ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_bagf .Subtype =_bdedf ;};if _aaad :=_ddea .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_aaad !=nil {_bagf .Colorants =_aaad ;};if _abceg :=_ddea .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_abceg !=nil {_bagf .Process =_abceg ;};if _ggcg :=_ddea .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_ggcg !=nil {_bagf .MixingHints =_ggcg ;};return _bagf ,nil ;};
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _eca .PdfObject )(*PdfFilespec ,error ){_egea :=&PdfFilespec {};var _cfbb *_eca .PdfObjectDictionary ;if _fdeec ,_debc :=_eca .GetIndirect (obj );_debc {_egea ._ggdg =_fdeec ;_aegfb ,_ceebf :=_eca .GetDict (_fdeec .PdfObject );
|
||
if !_ceebf {_ccb .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 ,_eca .ErrTypeError ;};_cfbb =_aegfb ;}else if _ccgcag ,_gdffg :=_eca .GetDict (obj );
|
||
_gdffg {_egea ._ggdg =_ccgcag ;_cfbb =_ccgcag ;}else {_ccb .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 ,_eca .ErrTypeError ;};
|
||
if _cfbb ==nil {_ccb .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_da .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _cgccf :=_cfbb .Get ("\u0054\u0079\u0070\u0065");
|
||
_cgccf !=nil {_gcbaf ,_aaacg :=_cgccf .(*_eca .PdfObjectName );if !_aaacg {_ccb .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",_cgccf );
|
||
}else {if *_gcbaf !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ccb .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",*_gcbaf );
|
||
};};};if _cgbf :=_cfbb .Get ("\u0046\u0053");_cgbf !=nil {_egea .FS =_cgbf ;};if _ebbe :=_cfbb .Get ("\u0046");_ebbe !=nil {_egea .F =_ebbe ;};if _cbee :=_cfbb .Get ("\u0055\u0046");_cbee !=nil {_egea .UF =_cbee ;};if _cbea :=_cfbb .Get ("\u0044\u004f\u0053");
|
||
_cbea !=nil {_egea .DOS =_cbea ;};if _agff :=_cfbb .Get ("\u004d\u0061\u0063");_agff !=nil {_egea .Mac =_agff ;};if _bebd :=_cfbb .Get ("\u0055\u006e\u0069\u0078");_bebd !=nil {_egea .Unix =_bebd ;};if _deabc :=_cfbb .Get ("\u0049\u0044");_deabc !=nil {_egea .ID =_deabc ;
|
||
};if _fabe :=_cfbb .Get ("\u0056");_fabe !=nil {_egea .V =_fabe ;};if _fcbce :=_cfbb .Get ("\u0045\u0046");_fcbce !=nil {_egea .EF =_fcbce ;};if _cbdg :=_cfbb .Get ("\u0052\u0046");_cbdg !=nil {_egea .RF =_cbdg ;};if _cfbbc :=_cfbb .Get ("\u0044\u0065\u0073\u0063");
|
||
_cfbbc !=nil {_egea .Desc =_cfbbc ;};if _egdfb :=_cfbb .Get ("\u0043\u0049");_egdfb !=nil {_egea .CI =_egdfb ;};return _egea ,nil ;};func (_fba *PdfReader )newPdfActionMovieFromDict (_cbdb *_eca .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cbdb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cbdb .Get ("\u0054"),Operation :_cbdb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};func _defb (_daaa _eca .PdfObject )(*PdfBorderStyle ,error ){_ccc :=&PdfBorderStyle {};_ccc ._egdd =_daaa ;var _cea *_eca .PdfObjectDictionary ;_daaa =_eca .TraceToDirectObject (_daaa );_cea ,_fbc :=_daaa .(*_eca .PdfObjectDictionary );if !_fbc {return nil ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};if _dfg :=_cea .Get ("\u0054\u0079\u0070\u0065");_dfg !=nil {_bgdg ,_abef :=_dfg .(*_eca .PdfObjectName );if !_abef {_ccb .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",_dfg );
|
||
}else {if *_bgdg !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ccb .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",*_bgdg );};};};if _fggc :=_cea .Get ("\u0057");
|
||
_fggc !=nil {_aegaf ,_ecbfd :=_eca .GetNumberAsFloat (_fggc );if _ecbfd !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_ecbfd );return nil ,_ecbfd ;};_ccc .W =&_aegaf ;
|
||
};if _dabc :=_cea .Get ("\u0053");_dabc !=nil {_dgda ,_eaa :=_dabc .(*_eca .PdfObjectName );if !_eaa {return nil ,_da .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 _ecdd BorderStyle ;switch *_dgda {case "\u0053":_ecdd =BorderStyleSolid ;case "\u0044":_ecdd =BorderStyleDashed ;case "\u0042":_ecdd =BorderStyleBeveled ;case "\u0049":_ecdd =BorderStyleInset ;case "\u0055":_ecdd =BorderStyleUnderline ;default:_ccb .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_dgda );
|
||
return nil ,_da .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_ccc .S =&_ecdd ;};if _fga :=_cea .Get ("\u0044");_fga !=nil {_cdb ,_agef :=_fga .(*_eca .PdfObjectArray );
|
||
if !_agef {_ccb .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",_fga );return nil ,_da .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_ddcb ,_bbb :=_cdb .ToIntegerArray ();if _bbb !=nil {_ccb .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",_bbb );
|
||
return nil ,_bbb ;};_ccc .D =&_ddcb ;};return _ccc ,nil ;};func _dfacd (_eaafg *_eca .PdfObjectDictionary )(*PdfShadingPattern ,error ){_aegcg :=&PdfShadingPattern {};_aagde :=_eaafg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _aagde ==nil {_ccb .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_dfffc ,_bcdbf :=_ecaad (_aagde );if _bcdbf !=nil {_ccb .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bcdbf );return nil ,_bcdbf ;
|
||
};_aegcg .Shading =_dfffc ;if _ecagb :=_eaafg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ecagb !=nil {_bdedfe ,_feaab :=_ecagb .(*_eca .PdfObjectArray );if !_feaab {_ccb .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",_ecagb );
|
||
return nil ,_eca .ErrTypeError ;};_aegcg .Matrix =_bdedfe ;};if _cegcg :=_eaafg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_cegcg !=nil {_aegcg .ExtGState =_cegcg ;};return _aegcg ,nil ;};type pdfFontType0 struct{fontCommon ;_cgaae *_eca .PdfIndirectObject ;
|
||
_gdcea _dbb .TextEncoder ;Encoding _eca .PdfObject ;DescendantFont *PdfFont ;_bfefe *_ded .CMap ;};func _cgeed (_ggacd *[]*PdfField ,_baebg FieldFilterFunc ,_bbebf bool )[]*PdfField {if _ggacd ==nil {return nil ;};_ffgfd :=*_ggacd ;if len (*_ggacd )==0{return nil ;
|
||
};_fccca :=_ffgfd [:0];if _baebg ==nil {_baebg =func (*PdfField )bool {return true };};var _dbeee []*PdfField ;for _ ,_gbbeg :=range _ffgfd {_daegb :=_baebg (_gbbeg );if _daegb {_dbeee =append (_dbeee ,_gbbeg );if len (_gbbeg .Kids )> 0{_dbeee =append (_dbeee ,_cgeed (&_gbbeg .Kids ,_baebg ,_bbebf )...);
|
||
};};if !_bbebf ||!_daegb ||len (_gbbeg .Kids )> 0{_fccca =append (_fccca ,_gbbeg );};};*_ggacd =_fccca ;return _dbeee ;};func (_dffb *PdfReader )newPdfAnnotationWidgetFromDict (_decd *_eca .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_afd :=PdfAnnotationWidget {};
|
||
_afd .H =_decd .Get ("\u0048");_afd .MK =_decd .Get ("\u004d\u004b");_afd .A =_decd .Get ("\u0041");_afd .AA =_decd .Get ("\u0041\u0041");_afd .BS =_decd .Get ("\u0042\u0053");_afd .Parent =_decd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_afd ,nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dec *PdfActionURI )ToPdfObject ()_eca .PdfObject {_dec .PdfAction .ToPdfObject ();_fa :=_dec ._bee ;_ea :=_fa .PdfObject .(*_eca .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeURI )));_ea .SetIfNotNil ("\u0055\u0052\u0049",_dec .URI );
|
||
_ea .SetIfNotNil ("\u0049\u0073\u004da\u0070",_dec .IsMap );return _fa ;};
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_ggeaf :=&PdfBorderStyle {};return _ggeaf };
|
||
|
||
// Items returns all children outline items.
|
||
func (_dcfg *Outline )Items ()[]*OutlineItem {return _dcfg .Entries };
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_dfead *PdfShadingType2 )ToPdfObject ()_eca .PdfObject {_dfead .PdfShading .ToPdfObject ();_agcef ,_cagba :=_dfead .getShadingDict ();if _cagba !=nil {_ccb .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 _agcef ==nil {_ccb .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _dfead .Coords !=nil {_agcef .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_dfead .Coords );
|
||
};if _dfead .Domain !=nil {_agcef .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dfead .Domain );};if _dfead .Function !=nil {if len (_dfead .Function )==1{_agcef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dfead .Function [0].ToPdfObject ());
|
||
}else {_cffad :=_eca .MakeArray ();for _ ,_bcbgfc :=range _dfead .Function {_cffad .Append (_bcbgfc .ToPdfObject ());};_agcef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cffad );};};if _dfead .Extend !=nil {_agcef .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_dfead .Extend );
|
||
};return _dfead ._dcbe ;};
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_bebde *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _eca .GetNumberAsFloat (_bebde .Ascent );};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_efa :=NewPdfAnnotation ();_cbf :=&PdfAnnotationPopup {};_cbf .PdfAnnotation =_efa ;_efa .SetContext (_cbf );return _cbf ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_ceaed *PdfShadingType1 )ToPdfObject ()_eca .PdfObject {_ceaed .PdfShading .ToPdfObject ();_edcgf ,_bgadb :=_ceaed .getShadingDict ();if _bgadb !=nil {_ccb .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 _ceaed .Domain !=nil {_edcgf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ceaed .Domain );};if _ceaed .Matrix !=nil {_edcgf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ceaed .Matrix );};if _ceaed .Function !=nil {if len (_ceaed .Function )==1{_edcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ceaed .Function [0].ToPdfObject ());
|
||
}else {_gdfge :=_eca .MakeArray ();for _ ,_deaff :=range _ceaed .Function {_gdfge .Append (_deaff .ToPdfObject ());};_edcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdfge );};};return _ceaed ._dcbe ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_edfce *PdfTilingPattern )ToPdfObject ()_eca .PdfObject {_edfce .PdfPattern .ToPdfObject ();_adega :=_edfce .getDict ();if _edfce .PaintType !=nil {_adega .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_edfce .PaintType );};if _edfce .TilingType !=nil {_adega .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_edfce .TilingType );
|
||
};if _edfce .BBox !=nil {_adega .Set ("\u0042\u0042\u006f\u0078",_edfce .BBox .ToPdfObject ());};if _edfce .XStep !=nil {_adega .Set ("\u0058\u0053\u0074e\u0070",_edfce .XStep );};if _edfce .YStep !=nil {_adega .Set ("\u0059\u0053\u0074e\u0070",_edfce .YStep );
|
||
};if _edfce .Resources !=nil {_adega .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_edfce .Resources .ToPdfObject ());};if _edfce .Matrix !=nil {_adega .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_edfce .Matrix );};return _edfce ._cdfed ;};
|
||
|
||
// String returns a string representation of the field.
|
||
func (_baddb *PdfField )String ()string {if _bede ,_cefge :=_baddb .ToPdfObject ().(*_eca .PdfIndirectObject );_cefge {return _g .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_baddb ._fbgb ,_bede .PdfObject .String ());};return "";};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_cba *PdfColorLab )ToInteger (bits int )[3]uint32 {_bbef :=_de .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_bbef *_cba .L ()),uint32 (_bbef *_cba .A ()),uint32 (_bbef *_cba .B ())};};
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_ffbaa *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _ffbaa ._abab ==nil {_ffbaa ._abab =_dad .NewPSExecutor (_ffbaa .Program );};var _dcaa []_dad .PSObject ;for _ ,_bbcab :=range xVec {_dcaa =append (_dcaa ,_dad .MakeReal (_bbcab ));
|
||
};_fdbd ,_afaca :=_ffbaa ._abab .Execute (_dcaa );if _afaca !=nil {return nil ,_afaca ;};_gbdc ,_afaca :=_dad .PSObjectArrayToFloat64Array (_fdbd );if _afaca !=nil {return nil ,_afaca ;};return _gbdc ,nil ;};
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_ae :=NewPdfAction ();_ddd :=&PdfActionMovie {};_ddd .PdfAction =_ae ;_ae .SetContext (_ddd );return _ddd ;};func (_bedbg *Image )samplesTrimPadding (_eefgd []uint32 )[]uint32 {_gdgb :=_bedbg .ColorComponents *int (_bedbg .Width )*int (_bedbg .Height );
|
||
if len (_eefgd )==_gdgb {return _eefgd ;};_faabd :=make ([]uint32 ,_gdgb );_dffe :=int (_bedbg .Width )*_bedbg .ColorComponents ;var _fddg ,_faff ,_eadfe ,_gbbfc int ;_dccdb :=_bbg .BytesPerLine (int (_bedbg .Width ),int (_bedbg .BitsPerComponent ),_bedbg .ColorComponents );
|
||
for _fddg =0;_fddg < int (_bedbg .Height );_fddg ++{_faff =_fddg *int (_bedbg .Width );_eadfe =_fddg *_dccdb ;for _gbbfc =0;_gbbfc < _dffe ;_gbbfc ++{_faabd [_faff +_gbbfc ]=_eefgd [_eadfe +_gbbfc ];};};return _faabd ;};func (_eef *PdfReader )newPdfActionGotoEFromDict (_baec *_eca .PdfObjectDictionary )(*PdfActionGoToE ,error ){_dddb ,_cbef :=_efe (_baec .Get ("\u0046"));
|
||
if _cbef !=nil {return nil ,_cbef ;};return &PdfActionGoToE {D :_baec .Get ("\u0044"),NewWindow :_baec .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_baec .Get ("\u0054"),F :_dddb },nil ;};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_afcg *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _afcg .MediaBox !=nil {return _afcg .MediaBox ,nil ;};_aabga :=_afcg .Parent ;for _aabga !=nil {_dcggee ,_dcae :=_eca .GetDict (_aabga );if !_dcae {return nil ,_da .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 _bcgfda :=_dcggee .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_bcgfda !=nil {_bedfe ,_cfgee :=_eca .GetArray (_bcgfda );if !_cfgee {return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_eecc ,_cfgd :=NewPdfRectangle (*_bedfe );if _cfgd !=nil {return nil ,_cfgd ;};return _eecc ,nil ;};_aabga =_dcggee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_da .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};func _eacc (_bfae *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_bega ,_gffbga :=_eca .GetDict (_bfae .AP );if !_gffbga {return nil ,nil ,_da .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 _bega ==nil {return nil ,nil ,nil ;};_gfcf ,_gffbga :=_eca .GetArray (_bfae .Rect );if !_gffbga ||_gfcf .Len ()!=4{return nil ,nil ,_da .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_abfc ,_aebb :=NewPdfRectangle (*_gfcf );
|
||
if _aebb !=nil {return nil ,nil ,_aebb ;};_gdeda :=_eca .TraceToDirectObject (_bega .Get ("\u004e"));switch _bccfa :=_gdeda .(type ){case *_eca .PdfObjectStream :_cgega :=_bccfa ;_egag ,_eeda :=NewXObjectFormFromStream (_cgega );return _egag ,_abfc ,_eeda ;
|
||
case *_eca .PdfObjectDictionary :_geedc :=_bccfa ;_fdgb ,_ffgac :=_eca .GetName (_bfae .AS );if !_ffgac {return nil ,nil ,nil ;};if _geedc .Get (*_fdgb )==nil {_ccb .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 ;};_cbeca ,_ffgac :=_eca .GetStream (_geedc .Get (*_fdgb ));if !_ffgac {_ccb .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",_fdgb );
|
||
return nil ,nil ,_da .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_cgcb ,_cgcd :=NewXObjectFormFromStream (_cbeca );return _cgcb ,_abfc ,_cgcd ;};_ccb .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_gdeda );
|
||
return nil ,nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};func _egdb ()string {_ccbac .Lock ();defer _ccbac .Unlock ();_bbddd :=_aag .GetLicenseKey ();if len (_bdaae )> 0&&(_bbddd .IsLicensed ()||_gccefc ){return _bdaae ;
|
||
};return _g .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",_egbf (),_bbddd .TypeToString ());};
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_ebca _beg .ReadSeeker ;_gegf *_eca .PdfParser ;_badg *PdfReader ;Reader *PdfReader ;_fecc []*PdfPage ;_edcc *PdfAcroForm ;_adff *DSS ;_faca *Permissions ;_dcbbb _eca .XrefTable ;_bef int64 ;_abd int ;_afce []_eca .PdfObject ;_eeb map[_eca .PdfObject ]struct{};
|
||
_ccbc map[_eca .PdfObject ]int64 ;_adaa map[_eca .PdfObject ]struct{};_bgefc map[_eca .PdfObject ]struct{};_cbbd int64 ;_beae bool ;_begc string ;_ffgb *EncryptOptions ;_gece *PdfInfo ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_egda *Outline )ToPdfObject ()_eca .PdfObject {return _egda .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
|
||
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_gbgd :=&PdfShadingPatternType2 {};_gbgd .Matrix =_eca .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_gbgd .PdfPattern =&PdfPattern {};_gbgd .PdfPattern .PatternType =int64 (*_eca .MakeInteger (2));
|
||
_gbgd .PdfPattern ._cegb =_gbgd ;_gbgd .PdfPattern ._cdfed =_eca .MakeIndirectObject (_eca .MakeDict ());return _gbgd ;};func _egfde (_fdfc _eca .PdfObject )(*PdfFontDescriptor ,error ){_faef :=&PdfFontDescriptor {};_fdfc =_eca .ResolveReference (_fdfc );
|
||
if _ggeeg ,_acgga :=_fdfc .(*_eca .PdfIndirectObject );_acgga {_faef ._acccb =_ggeeg ;_fdfc =_ggeeg .PdfObject ;};_acccd ,_dbeb :=_eca .GetDict (_fdfc );if !_dbeb {_ccb .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",_fdfc );
|
||
return nil ,_eca .ErrTypeError ;};if _ebabb :=_acccd .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_ebabb !=nil {_faef .FontName =_ebabb ;}else {_ccb .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");
|
||
};_gddf ,_ :=_eca .GetName (_faef .FontName );if _baff :=_acccd .Get ("\u0054\u0079\u0070\u0065");_baff !=nil {_bebdb ,_afeag :=_baff .(*_eca .PdfObjectName );if !_afeag ||string (*_bebdb )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ccb .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",_baff ,_gddf ,_faef .FontName );
|
||
};}else {_ccb .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",_gddf ,_faef .FontName );
|
||
};_faef .FontFamily =_acccd .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_faef .FontStretch =_acccd .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_faef .FontWeight =_acccd .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_faef .Flags =_acccd .Get ("\u0046\u006c\u0061g\u0073");_faef .FontBBox =_acccd .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_faef .ItalicAngle =_acccd .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_faef .Ascent =_acccd .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_faef .Descent =_acccd .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_faef .Leading =_acccd .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_faef .CapHeight =_acccd .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_faef .XHeight =_acccd .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_faef .StemV =_acccd .Get ("\u0053\u0074\u0065m\u0056");_faef .StemH =_acccd .Get ("\u0053\u0074\u0065m\u0048");_faef .AvgWidth =_acccd .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_faef .MaxWidth =_acccd .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_faef .MissingWidth =_acccd .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_faef .FontFile =_acccd .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_faef .FontFile2 =_acccd .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_faef .FontFile3 =_acccd .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_faef .CharSet =_acccd .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_faef .Style =_acccd .Get ("\u0053\u0074\u0079l\u0065");_faef .Lang =_acccd .Get ("\u004c\u0061\u006e\u0067");
|
||
_faef .FD =_acccd .Get ("\u0046\u0044");_faef .CIDSet =_acccd .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _faef .Flags !=nil {if _ddac ,_fecde :=_eca .GetIntVal (_faef .Flags );_fecde {_faef ._feaf =_ddac ;};};if _faef .MissingWidth !=nil {if _bece ,_gcggg :=_eca .GetNumberAsFloat (_faef .MissingWidth );
|
||
_gcggg ==nil {_faef ._fdadf =_bece ;};};if _faef .FontFile !=nil {_fdafe ,_gagaa :=_decbc (_faef .FontFile );if _gagaa !=nil {return _faef ,_gagaa ;};_ccb .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_fdafe );_faef .fontFile =_fdafe ;
|
||
};if _faef .FontFile2 !=nil {_ecafg ,_dfgbb :=_ffd .NewFontFile2FromPdfObject (_faef .FontFile2 );if _dfgbb !=nil {return _faef ,_dfgbb ;};_ccb .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_ecafg .String ());_faef ._aacg =&_ecafg ;
|
||
};return _faef ,nil ;};func (_ddc *PdfReader )newPdfAnnotationPolygonFromDict (_aga *_eca .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gafd :=PdfAnnotationPolygon {};_bcab ,_fdc :=_ddc .newPdfAnnotationMarkupFromDict (_aga );if _fdc !=nil {return nil ,_fdc ;
|
||
};_gafd .PdfAnnotationMarkup =_bcab ;_gafd .Vertices =_aga .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gafd .LE =_aga .Get ("\u004c\u0045");_gafd .BS =_aga .Get ("\u0042\u0053");_gafd .IC =_aga .Get ("\u0049\u0043");_gafd .BE =_aga .Get ("\u0042\u0045");
|
||
_gafd .IT =_aga .Get ("\u0049\u0054");_gafd .Measure =_aga .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gafd ,nil ;};func _dddac ()string {_ccbac .Lock ();defer _ccbac .Unlock ();return _aacgb };
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _eca .PdfObject ;Q _eca .PdfObject ;RC _eca .PdfObject ;DS _eca .PdfObject ;CL _eca .PdfObject ;IT _eca .PdfObject ;BE _eca .PdfObject ;RD _eca .PdfObject ;BS _eca .PdfObject ;LE _eca .PdfObject ;
|
||
};var (_ccbac _a .Mutex ;_dgebb ="";_fcacce _d .Time ;_dceag ="";_gfcfa ="";_bddc _d .Time ;_bdaae ="";_aacgb ="";_aaaad ="";);func (_ebccf *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_gaga :=NewPdfAction ();_bc :=&PdfActionSetOCGState {};_bc .PdfAction =_gaga ;_gaga .SetContext (_bc );return _bc ;};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_aecde *PdfBorderStyle )SetBorderWidth (width float64 ){_aecde .W =&width };
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_egdf :=NewPdfAnnotation ();_bace :=&PdfAnnotation3D {};_bace .PdfAnnotation =_egdf ;_egdf .SetContext (_bace );return _bace ;};
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_dbfga *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_dbfga ._faccea =colorspace ;};
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_egeae *PdfFont )BytesToCharcodes (data []byte )[]_dbb .CharCode {_ccb .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 _bbebg ,_cgag :=_egeae ._dbgb .(*pdfFontType0 );_cgag &&_bbebg ._bfefe !=nil {if _abgd ,_gbfga :=_bbebg .bytesToCharcodes (data );_gbfga {return _abgd ;};};var (_gfba =make ([]_dbb .CharCode ,0,len (data )+len (data )%2);_afdg =_egeae .baseFields ();
|
||
);if _afdg ._gegfa !=nil {if _afba ,_efbb :=_afdg ._gegfa .BytesToCharcodes (data );_efbb {for _ ,_gceg :=range _afba {_gfba =append (_gfba ,_dbb .CharCode (_gceg ));};return _gfba ;};};if _afdg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
|
||
};if len (data )%2!=0{_ccb .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 _bgdae :=0;_bgdae < len (data );_bgdae +=2{_acfa :=uint16 (data [_bgdae ])<<8|uint16 (data [_bgdae +1]);_gfba =append (_gfba ,_dbb .CharCode (_acfa ));};}else {for _ ,_aead :=range data {_gfba =append (_gfba ,_dbb .CharCode (_aead ));
|
||
};};return _gfba ;};
|
||
|
||
// 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 _eca .StreamEncoder )(*XObjectImage ,error ){_efdbd :=NewXObjectImage ();return UpdateXObjectImageFromImage (_efdbd ,img ,cs ,encoder );};
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _eca .PdfObject ;H _eca .PdfObject ;};func _ddfbd ()string {_ccbac .Lock ();defer _ccbac .Unlock ();if len (_dceag )> 0{return _dceag ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
|
||
};
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_adgg *PdfField )GetContainingPdfObject ()_eca .PdfObject {return _adgg ._geaa };func _cedfg (_afbd *_eca .PdfObjectDictionary )(*PdfFieldChoice ,error ){_ddec :=&PdfFieldChoice {};_ddec .Opt ,_ =_eca .GetArray (_afbd .Get ("\u004f\u0070\u0074"));
|
||
_ddec .TI ,_ =_eca .GetInt (_afbd .Get ("\u0054\u0049"));_ddec .I ,_ =_eca .GetArray (_afbd .Get ("\u0049"));return _ddec ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_afcd *PdfActionGoTo )ToPdfObject ()_eca .PdfObject {_afcd .PdfAction .ToPdfObject ();_cfg :=_afcd ._bee ;_bbd :=_cfg .PdfObject .(*_eca .PdfObjectDictionary );_bbd .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoTo )));_bbd .SetIfNotNil ("\u0044",_afcd .D );
|
||
return _cfg ;};
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_edd :=NewPdfAnnotation ();_cdgd :=&PdfAnnotationTrapNet {};_cdgd .PdfAnnotation =_edd ;_edd .SetContext (_cdgd );return _cdgd ;};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_dbgb pdfFont };func (_degb *PdfWriter )setHashIDs (_ffcbaf _f .Hash )error {_facab :=_ffcbaf .Sum (nil );if _degb ._aadc ==""{_degb ._aadc =_c .EncodeToString (_facab [:8]);};_degb .setDocumentIDs (_degb ._aadc ,_c .EncodeToString (_facab [8:]));
|
||
return nil ;};
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_eacbg *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_ggccbe ,_edgbf :=_eacbg .GetMediaBox ();if _edgbf !=nil {return _edgbf ;};_bcfac :=_ggccbe .Urx -_ggccbe .Llx ;_gdebc :=_ggccbe .Ury -_ggccbe .Lly ;_cgaf :=float64 (*ximg .Width );
|
||
_ffgbd :=(_bcfac -_cgaf )/2;if opt .FitToWidth {_cgaf =_bcfac ;_ffgbd =0;};_efee :=_gdebc ;_fgdde :=float64 (0);if opt .PreserveAspectRatio {_efee =_cgaf *float64 (*ximg .Height )/float64 (*ximg .Width );_fgdde =(_gdebc -_efee )/2;};if _eacbg .Resources ==nil {_eacbg .Resources =NewPdfPageResources ();
|
||
};_bbced :=0;_bfdf :=_eca .PdfObjectName (_g .Sprintf ("\u0049\u006d\u0077%\u0064",_bbced ));for _eacbg .Resources .HasXObjectByName (_bfdf ){_bbced ++;_bfdf =_eca .PdfObjectName (_g .Sprintf ("\u0049\u006d\u0077%\u0064",_bbced ));};_edgbf =_eacbg .AddImageResource (_bfdf ,ximg );
|
||
if _edgbf !=nil {return _edgbf ;};_bbced =0;_dfdgf :=_eca .PdfObjectName (_g .Sprintf ("\u0047\u0053\u0025\u0064",_bbced ));for _eacbg .HasExtGState (_dfdgf ){_bbced ++;_dfdgf =_eca .PdfObjectName (_g .Sprintf ("\u0047\u0053\u0025\u0064",_bbced ));};_eabbag :=_eca .MakeDict ();
|
||
_eabbag .Set ("\u0042\u004d",_eca .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_eabbag .Set ("\u0043\u0041",_eca .MakeFloat (opt .Alpha ));_eabbag .Set ("\u0063\u0061",_eca .MakeFloat (opt .Alpha ));_edgbf =_eacbg .AddExtGState (_dfdgf ,_eabbag );
|
||
if _edgbf !=nil {return _edgbf ;};_bedgg :=_g .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",_dfdgf ,_cgaf ,_efee ,_ffgbd ,_fgdde ,_bfdf );
|
||
_eacbg .AddContentStreamByString (_bedgg );return 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 _eca .StreamEncoder ;Intent _eca .PdfObject ;ImageMask _eca .PdfObject ;Mask _eca .PdfObject ;Matte _eca .PdfObject ;Decode _eca .PdfObject ;Interpolate _eca .PdfObject ;
|
||
Alternatives _eca .PdfObject ;SMask _eca .PdfObject ;SMaskInData _eca .PdfObject ;Name _eca .PdfObject ;StructParent _eca .PdfObject ;ID _eca .PdfObject ;OPI _eca .PdfObject ;Metadata _eca .PdfObject ;OC _eca .PdfObject ;Stream []byte ;_gddeaa *_eca .PdfObjectStream ;
|
||
};
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;VerticesPerRow *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;};func (_beeb *PdfAppender )mergeResources (_afed ,_eeadb _eca .PdfObject ,_gbda map[_eca .PdfObjectName ]_eca .PdfObjectName )_eca .PdfObject {if _eeadb ==nil &&_afed ==nil {return nil ;
|
||
};if _eeadb ==nil {return _afed ;};_edeg ,_efac :=_eca .GetDict (_eeadb );if !_efac {return _afed ;};if _afed ==nil {_aebd :=_eca .MakeDict ();_aebd .Merge (_edeg );return _eeadb ;};_gffad ,_efac :=_eca .GetDict (_afed );if !_efac {_ccb .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");
|
||
_gffad =_eca .MakeDict ();};for _ ,_efddc :=range _edeg .Keys (){if _efec ,_aegc :=_gbda [_efddc ];_aegc {_gffad .Set (_efec ,_edeg .Get (_efddc ));}else {_gffad .Set (_efddc ,_edeg .Get (_efddc ));};};return _gffad ;};func _aabge ()string {_ccbac .Lock ();
|
||
defer _ccbac .Unlock ();return _dgebb };
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_cfaa *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_da .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");
|
||
};_bbfe ,_ggbdg :=_bbg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gcgb ,img ._cfgaa );if _ggbdg !=nil {return img ,_ggbdg ;};_ecaf ,_ggbdg :=_bbg .NRGBAConverter .Convert (_bbfe );
|
||
if _ggbdg !=nil {return img ,_ggbdg ;};_ddgdf :=_cggae (_ecaf .Base ());_ccb .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ccb .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );
|
||
_ccb .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_ddgdf .Data );_ccb .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_ddgdf );return _ddgdf ,nil ;};
|
||
|
||
// 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 ;
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_gadd FieldFlag )Mask ()uint32 {return uint32 (_gadd )};func (_gfdc fontCommon )asPdfObjectDictionary (_gfbg string )*_eca .PdfObjectDictionary {if _gfbg !=""&&_gfdc ._cfbe !=""&&_gfbg !=_gfdc ._cfbe {_ccb .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",_gfbg ,_gfdc );
|
||
}else if _gfbg ==""&&_gfdc ._cfbe ==""{_ccb .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",_gfdc );
|
||
}else if _gfdc ._cfbe ==""{_gfdc ._cfbe =_gfbg ;};_bccee :=_eca .MakeDict ();_bccee .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0046\u006f\u006e\u0074"));_bccee .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_eca .MakeName (_gfdc ._daac ));
|
||
_bccee .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName (_gfdc ._cfbe ));if _gfdc ._ccec !=nil {_bccee .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_gfdc ._ccec .ToPdfObject ());};if _gfdc ._effb !=nil {_bccee .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gfdc ._effb );
|
||
}else if _gfdc ._gegfa !=nil {_eebb ,_bbfcd :=_gfdc ._gegfa .Stream ();if _bbfcd !=nil {_ccb .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",_bbfcd );
|
||
}else {_bccee .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_eebb );};};return _bccee ;};
|
||
|
||
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
|
||
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_eca .PdfObjectArray ;ExtGState _eca .PdfObject ;};
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _eca .PdfObject ;Open _eca .PdfObject ;};func _gbdag (_abaef _eca .PdfObject )(*PdfPattern ,error ){_caaba :=&PdfPattern {};var _beefe *_eca .PdfObjectDictionary ;if _abdae ,_eagb :=_eca .GetIndirect (_abaef );
|
||
_eagb {_caaba ._cdfed =_abdae ;_ccdg ,_adced :=_abdae .PdfObject .(*_eca .PdfObjectDictionary );if !_adced {_ccb .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",_abdae .PdfObject );
|
||
return nil ,_eca .ErrTypeError ;};_beefe =_ccdg ;}else if _gagdd ,_deaeed :=_eca .GetStream (_abaef );_deaeed {_caaba ._cdfed =_gagdd ;_beefe =_gagdd .PdfObjectDictionary ;}else {_ccb .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",_abaef );
|
||
return nil ,_eca .ErrTypeError ;};_efge :=_beefe .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _efge ==nil {_ccb .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 ;};_cfdcc ,_becdb :=_efge .(*_eca .PdfObjectInteger );if !_becdb {_ccb .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",_efge );
|
||
return nil ,_eca .ErrTypeError ;};if *_cfdcc !=1&&*_cfdcc !=2{_ccb .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",*_cfdcc );return nil ,_eca .ErrRangeError ;
|
||
};_caaba .PatternType =int64 (*_cfdcc );switch *_cfdcc {case 1:_gebd ,_cfffa :=_agafe (_beefe );if _cfffa !=nil {return nil ,_cfffa ;};_gebd .PdfPattern =_caaba ;_caaba ._cegb =_gebd ;return _caaba ,nil ;case 2:_gcag ,_eabf :=_dfacd (_beefe );if _eabf !=nil {return nil ,_eabf ;
|
||
};_gcag .PdfPattern =_caaba ;_caaba ._cegb =_gcag ;return _caaba ,nil ;};return nil ,_da .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
|
||
|
||
// 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 (_bdfae *PdfFieldButton )GetType ()ButtonType {_cbbbe :=ButtonTypeCheckbox ;if _bdfae .Ff !=nil {if (uint32 (*_bdfae .Ff )&FieldFlagPushbutton .Mask ())> 0{_cbbbe =ButtonTypePush ;}else if (uint32 (*_bdfae .Ff )&FieldFlagRadio .Mask ())> 0{_cbbbe =ButtonTypeRadio ;
|
||
};};return _cbbbe ;};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_befbf *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _befbf ._cegb .(*PdfTilingPattern );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_deg *PdfActionResetForm )ToPdfObject ()_eca .PdfObject {_deg .PdfAction .ToPdfObject ();_cae :=_deg ._bee ;_egb :=_cae .PdfObject .(*_eca .PdfObjectDictionary );_egb .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeResetForm )));_egb .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_deg .Fields );
|
||
_egb .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_deg .Flags );return _cae ;};func (_caac *PdfWriter )copyObjects (){_daggd :=make (map[_eca .PdfObject ]_eca .PdfObject );_bfcc :=make ([]_eca .PdfObject ,0,len (_caac ._daecf ));_bgdac :=make (map[_eca .PdfObject ]struct{},len (_caac ._daecf ));
|
||
_baga :=make (map[_eca .PdfObject ]struct{});for _ ,_edfbf :=range _caac ._daecf {_aeaab :=_caac .copyObject (_edfbf ,_daggd ,_baga ,false );if _ ,_ggeff :=_baga [_edfbf ];_ggeff {continue ;};_bfcc =append (_bfcc ,_aeaab );_bgdac [_aeaab ]=struct{}{};};
|
||
_caac ._daecf =_bfcc ;_caac ._ceace =_bgdac ;_caac ._fbegc =_caac .copyObject (_caac ._fbegc ,_daggd ,nil ,false ).(*_eca .PdfIndirectObject );_caac ._bggab =_caac .copyObject (_caac ._bggab ,_daggd ,nil ,false ).(*_eca .PdfIndirectObject );if _caac ._fdgaf !=nil {_caac ._fdgaf =_caac .copyObject (_caac ._fdgaf ,_daggd ,nil ,false ).(*_eca .PdfIndirectObject );
|
||
};if _caac ._ccdgb {_dfege :=make (map[_eca .PdfObject ]int64 );for _dccfg ,_fbcf :=range _caac ._abfag {if _bfccc ,_eacef :=_daggd [_dccfg ];_eacef {_dfege [_bfccc ]=_fbcf ;}else {_ccb .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");
|
||
};};_caac ._abfag =_dfege ;};};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_fdbfg *PdfFunctionType2 )ToPdfObject ()_eca .PdfObject {_accbf :=_eca .MakeDict ();_accbf .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (2));_egad :=&_eca .PdfObjectArray {};for _ ,_bbaac :=range _fdbfg .Domain {_egad .Append (_eca .MakeFloat (_bbaac ));
|
||
};_accbf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_egad );if _fdbfg .Range !=nil {_fecdc :=&_eca .PdfObjectArray {};for _ ,_aafcc :=range _fdbfg .Range {_fecdc .Append (_eca .MakeFloat (_aafcc ));};_accbf .Set ("\u0052\u0061\u006eg\u0065",_fecdc );
|
||
};if _fdbfg .C0 !=nil {_ebdeb :=&_eca .PdfObjectArray {};for _ ,_dgge :=range _fdbfg .C0 {_ebdeb .Append (_eca .MakeFloat (_dgge ));};_accbf .Set ("\u0043\u0030",_ebdeb );};if _fdbfg .C1 !=nil {_eefaf :=&_eca .PdfObjectArray {};for _ ,_cdga :=range _fdbfg .C1 {_eefaf .Append (_eca .MakeFloat (_cdga ));
|
||
};_accbf .Set ("\u0043\u0031",_eefaf );};_accbf .Set ("\u004e",_eca .MakeFloat (_fdbfg .N ));if _fdbfg ._agcab !=nil {_fdbfg ._agcab .PdfObject =_accbf ;return _fdbfg ._agcab ;};return _accbf ;};func (_aeaa *fontFile )loadFromSegments (_gecg ,_aafc []byte )error {_ccb .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_gecg ),len (_aafc ));
|
||
_bgdcg :=_aeaa .parseASCIIPart (_gecg );if _bgdcg !=nil {return _bgdcg ;};_ccb .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aeaa );if len (_aafc )==0{return nil ;};_ccb .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aeaa );
|
||
return nil ;};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};func (_agebcg *pdfFontSimple )baseFields ()*fontCommon {return &_agebcg .fontCommon };
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _eca .PdfObject ;MK _eca .PdfObject ;A _eca .PdfObject ;AA _eca .PdfObject ;BS _eca .PdfObject ;Parent _eca .PdfObject ;_ebc *PdfField ;_bbed bool ;};func (_bedg *pdfCIDFontType0 )baseFields ()*fontCommon {return &_bedg .fontCommon };
|
||
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_bagd *PdfPattern )ToPdfObject ()_eca .PdfObject {_ceeab :=_bagd .getDict ();_ceeab .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_ceeab .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (_bagd .PatternType ));
|
||
return _bagd ._cdfed ;};var (CourierName =_ffd .CourierName ;CourierBoldName =_ffd .CourierBoldName ;CourierObliqueName =_ffd .CourierObliqueName ;CourierBoldObliqueName =_ffd .CourierBoldObliqueName ;HelveticaName =_ffd .HelveticaName ;HelveticaBoldName =_ffd .HelveticaBoldName ;
|
||
HelveticaObliqueName =_ffd .HelveticaObliqueName ;HelveticaBoldObliqueName =_ffd .HelveticaBoldObliqueName ;SymbolName =_ffd .SymbolName ;ZapfDingbatsName =_ffd .ZapfDingbatsName ;TimesRomanName =_ffd .TimesRomanName ;TimesBoldName =_ffd .TimesBoldName ;
|
||
TimesItalicName =_ffd .TimesItalicName ;TimesBoldItalicName =_ffd .TimesBoldItalicName ;);
|
||
|
||
// 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 (_edfg *PdfPage )Size ()(float64 ,float64 ,error ){_gbfbd ,_cegea :=_edfg .GetMediaBox ();if _cegea !=nil {return 0,0,_cegea ;};_gcbb ,_bbfb :=_gbfbd .Width (),_gbfbd .Height ();_eaaf ,_cegea :=_edfg .GetRotate ();if _cegea !=nil {_ccb .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0025\u0073\u0020\u002d\u0020\u0069\u0067\u006e\u006f\u0072\u0069\u006e\u0067\u0020\u0061\u006e\u0064\u0020\u0061\u0073\u0073\u0075\u006d\u0069\u006e\u0067\u0020\u006e\u006f\u0020\u0072\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u000a",_cegea .Error ());
|
||
};if _befa :=_eaaf ;_befa %360!=0&&_befa %90==0{if _efgbe :=(360+_befa %360)%360;_efgbe ==90||_efgbe ==270{_gcbb ,_bbfb =_bbfb ,_gcbb ;};};return _gcbb ,_bbfb ,nil ;};
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _eca .PdfObject ;};
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _eca .PdfObject ;IsMap _eca .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gbdg *PdfAnnotationCaret )ToPdfObject ()_eca .PdfObject {_gbdg .PdfAnnotation .ToPdfObject ();_egeb :=_gbdg ._cdc ;_fbf :=_egeb .PdfObject .(*_eca .PdfObjectDictionary );_gbdg .PdfAnnotationMarkup .appendToPdfDictionary (_fbf );_fbf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_fbf .SetIfNotNil ("\u0052\u0044",_gbdg .RD );_fbf .SetIfNotNil ("\u0053\u0079",_gbdg .Sy );return _egeb ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_bgaa *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_bedd *PdfAppender )UpdatePage (page *PdfPage ){_bedd .updateObjectsDeep (page .ToPdfObject (),nil )};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_bcgf *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_aede :=_de .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_aede *_bcgf .C ()),uint32 (_aede *_bcgf .M ()),uint32 (_aede *_bcgf .Y ()),uint32 (_aede *_bcgf .K ())};};func (_dcdd *PdfReader )newPdfAnnotationPolyLineFromDict (_bfbf *_eca .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bdc :=PdfAnnotationPolyLine {};
|
||
_dbfg ,_bcaf :=_dcdd .newPdfAnnotationMarkupFromDict (_bfbf );if _bcaf !=nil {return nil ,_bcaf ;};_bdc .PdfAnnotationMarkup =_dbfg ;_bdc .Vertices =_bfbf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bdc .LE =_bfbf .Get ("\u004c\u0045");_bdc .BS =_bfbf .Get ("\u0042\u0053");
|
||
_bdc .IC =_bfbf .Get ("\u0049\u0043");_bdc .BE =_bfbf .Get ("\u0042\u0045");_bdc .IT =_bfbf .Get ("\u0049\u0054");_bdc .Measure =_bfbf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bdc ,nil ;};
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_fffff *Image )GetParamsDict ()*_eca .PdfObjectDictionary {_dffc :=_eca .MakeDict ();_dffc .Set ("\u0057\u0069\u0064t\u0068",_eca .MakeInteger (_fffff .Width ));_dffc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eca .MakeInteger (_fffff .Height ));
|
||
_dffc .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eca .MakeInteger (int64 (_fffff .ColorComponents )));_dffc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eca .MakeInteger (_fffff .BitsPerComponent ));
|
||
return _dffc ;};
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_dedf *PdfColorspaceLab )DecodeArray ()[]float64 {_bagc :=[]float64 {0,100};if _dedf .Range !=nil &&len (_dedf .Range )==4{_bagc =append (_bagc ,_dedf .Range ...);}else {_bagc =append (_bagc ,-100,100,-100,100);};return _bagc ;};
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eecf *PdfAnnotationProjection )ToPdfObject ()_eca .PdfObject {_eecf .PdfAnnotation .ToPdfObject ();_accg :=_eecf ._cdc ;_cdge :=_accg .PdfObject .(*_eca .PdfObjectDictionary );_eecf .PdfAnnotationMarkup .appendToPdfDictionary (_cdge );return _accg ;
|
||
};
|
||
|
||
// GetRotate gets the inheritable rotate value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_fefa *PdfPage )GetRotate ()(int64 ,error ){if _fefa .Rotate !=nil {return *_fefa .Rotate ,nil ;};_abbcb :=_fefa .Parent ;for _abbcb !=nil {_afegbb ,_ggebf :=_eca .GetDict (_abbcb );if !_ggebf {return 0,_da .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 _dabca :=_afegbb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dabca !=nil {_dcgcc ,_geedf :=_eca .GetInt (_dabca );if !_geedf {return 0,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");
|
||
};if _dcgcc !=nil {return int64 (*_dcgcc ),nil ;};return 0,_da .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_abbcb =_afegbb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_da .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgcfe *PdfAnnotationText )ToPdfObject ()_eca .PdfObject {_fgcfe .PdfAnnotation .ToPdfObject ();_gbcf :=_fgcfe ._cdc ;_babb :=_gbcf .PdfObject .(*_eca .PdfObjectDictionary );if _fgcfe .PdfAnnotationMarkup !=nil {_fgcfe .PdfAnnotationMarkup .appendToPdfDictionary (_babb );
|
||
};_babb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0054\u0065\u0078\u0074"));_babb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_fgcfe .Open );_babb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgcfe .Name );_babb .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fgcfe .State );
|
||
_babb .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_fgcfe .StateModel );return _gbcf ;};
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_abf :=NewPdfAnnotation ();_fec :=&PdfAnnotationFileAttachment {};_fec .PdfAnnotation =_abf ;_fec .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_abf .SetContext (_fec );return _fec ;};
|
||
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_gfd :=NewPdfAnnotation ();_dcbg :=&PdfAnnotationLine {};_dcbg .PdfAnnotation =_gfd ;_dcbg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gfd .SetContext (_dcbg );return _dcbg ;};func _ecaad (_efaef _eca .PdfObject )(*PdfShading ,error ){_ffgacb :=&PdfShading {};
|
||
var _degdb *_eca .PdfObjectDictionary ;if _edace ,_fgad :=_eca .GetIndirect (_efaef );_fgad {_ffgacb ._dcbe =_edace ;_bbbcb ,_afbab :=_edace .PdfObject .(*_eca .PdfObjectDictionary );if !_afbab {_ccb .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 ,_eca .ErrTypeError ;};_degdb =_bbbcb ;}else if _cabd ,_gcbbb :=_eca .GetStream (_efaef );_gcbbb {_ffgacb ._dcbe =_cabd ;_degdb =_cabd .PdfObjectDictionary ;}else if _cdcgc ,_decg :=_eca .GetDict (_efaef );_decg {_ffgacb ._dcbe =_cdcgc ;_degdb =_cdcgc ;
|
||
}else {_ccb .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",_efaef );return nil ,_eca .ErrTypeError ;};if _degdb ==nil {_ccb .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,_da .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_efaef =_degdb .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _efaef ==nil {_ccb .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 ;};_efaef =_eca .TraceToDirectObject (_efaef );_bdddd ,_fgbf :=_efaef .(*_eca .PdfObjectInteger );if !_fgbf {_ccb .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",_efaef );
|
||
return nil ,_eca .ErrTypeError ;};if *_bdddd < 1||*_bdddd > 7{_ccb .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",*_bdddd );
|
||
return nil ,_eca .ErrTypeError ;};_ffgacb .ShadingType =_bdddd ;_efaef =_degdb .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _efaef ==nil {_ccb .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 ;};_bcea ,_gcaf :=NewPdfColorspaceFromPdfObject (_efaef );if _gcaf !=nil {_ccb .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",_gcaf );
|
||
return nil ,_gcaf ;};_ffgacb .ColorSpace =_bcea ;_efaef =_degdb .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _efaef !=nil {_efaef =_eca .TraceToDirectObject (_efaef );_dffcd ,_dgfgag :=_efaef .(*_eca .PdfObjectArray );if !_dgfgag {_ccb .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)",_efaef );
|
||
return nil ,_eca .ErrTypeError ;};_ffgacb .Background =_dffcd ;};_efaef =_degdb .Get ("\u0042\u0042\u006f\u0078");if _efaef !=nil {_efaef =_eca .TraceToDirectObject (_efaef );_cbcce ,_cafdd :=_efaef .(*_eca .PdfObjectArray );if !_cafdd {_ccb .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)",_efaef );
|
||
return nil ,_eca .ErrTypeError ;};_adedd ,_bgbgc :=NewPdfRectangle (*_cbcce );if _bgbgc !=nil {_ccb .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_bgbgc );return nil ,_bgbgc ;};_ffgacb .BBox =_adedd ;};_efaef =_degdb .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _efaef !=nil {_efaef =_eca .TraceToDirectObject (_efaef );_bbbdg ,_abfa :=_efaef .(*_eca .PdfObjectBool );if !_abfa {_ccb .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",_efaef );
|
||
return nil ,_eca .ErrTypeError ;};_ffgacb .AntiAlias =_bbbdg ;};switch *_bdddd {case 1:_dgdff ,_edcca :=_dcfeb (_degdb );if _edcca !=nil {return nil ,_edcca ;};_dgdff .PdfShading =_ffgacb ;_ffgacb ._abefa =_dgdff ;return _ffgacb ,nil ;case 2:_geeg ,_gacad :=_fbeb (_degdb );
|
||
if _gacad !=nil {return nil ,_gacad ;};_geeg .PdfShading =_ffgacb ;_ffgacb ._abefa =_geeg ;return _ffgacb ,nil ;case 3:_fadga ,_dccebc :=_gccfg (_degdb );if _dccebc !=nil {return nil ,_dccebc ;};_fadga .PdfShading =_ffgacb ;_ffgacb ._abefa =_fadga ;return _ffgacb ,nil ;
|
||
case 4:_geeb ,_fdffa :=_gfga (_degdb );if _fdffa !=nil {return nil ,_fdffa ;};_geeb .PdfShading =_ffgacb ;_ffgacb ._abefa =_geeb ;return _ffgacb ,nil ;case 5:_abgcb ,_agbg :=_aada (_degdb );if _agbg !=nil {return nil ,_agbg ;};_abgcb .PdfShading =_ffgacb ;
|
||
_ffgacb ._abefa =_abgcb ;return _ffgacb ,nil ;case 6:_dcdddg ,_gfcg :=_gfgce (_degdb );if _gfcg !=nil {return nil ,_gfcg ;};_dcdddg .PdfShading =_ffgacb ;_ffgacb ._abefa =_dcdddg ;return _ffgacb ,nil ;case 7:_abebf ,_dcedd :=_ffgea (_degdb );if _dcedd !=nil {return nil ,_dcedd ;
|
||
};_abebf .PdfShading =_ffgacb ;_ffgacb ._abefa =_abebf ;return _ffgacb ,nil ;};return nil ,_da .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};func (_aabcd *PdfReader )newPdfOutlineItemFromIndirectObject (_fafec *_eca .PdfIndirectObject )(*PdfOutlineItem ,error ){_bdedfaf ,_fdgea :=_fafec .PdfObject .(*_eca .PdfObjectDictionary );
|
||
if !_fdgea {return nil ,_g .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");};_edacb :=NewPdfOutlineItem ();_dccgd :=_bdedfaf .Get ("\u0054\u0069\u0074l\u0065");
|
||
if _dccgd ==nil {return nil ,_g .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");
|
||
};_cbgfe ,_beecb :=_eca .GetString (_dccgd );if !_beecb {return nil ,_g .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dccgd );};_edacb .Title =_cbgfe ;if _baacd :=_bdedfaf .Get ("\u0043\u006f\u0075n\u0074");
|
||
_baacd !=nil {_fcgg ,_eegad :=_baacd .(*_eca .PdfObjectInteger );if !_eegad {return nil ,_g .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_baacd );};_fdadfd :=int64 (*_fcgg );
|
||
_edacb .Count =&_fdadfd ;};if _fdeg :=_bdedfaf .Get ("\u0044\u0065\u0073\u0074");_fdeg !=nil {_edacb .Dest =_eca .ResolveReference (_fdeg );if !_aabcd ._gggcg {_ggddb :=_aabcd .traverseObjectData (_edacb .Dest );if _ggddb !=nil {return nil ,_ggddb ;};};
|
||
};if _fcceg :=_bdedfaf .Get ("\u0041");_fcceg !=nil {_edacb .A =_eca .ResolveReference (_fcceg );if !_aabcd ._gggcg {_dfbe :=_aabcd .traverseObjectData (_edacb .A );if _dfbe !=nil {return nil ,_dfbe ;};};};if _acegg :=_bdedfaf .Get ("\u0053\u0045");_acegg !=nil {_edacb .SE =nil ;
|
||
};if _daadc :=_bdedfaf .Get ("\u0043");_daadc !=nil {_edacb .C =_eca .ResolveReference (_daadc );};if _faad :=_bdedfaf .Get ("\u0046");_faad !=nil {_edacb .F =_eca .ResolveReference (_faad );};return _edacb ,nil ;};
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_add *PdfBorderStyle )GetBorderWidth ()float64 {if _add .W ==nil {return 1;};return *_add .W ;};func (_agefd *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _agefd ._ccec };func (_gcea *PdfWriter )writeObject (_beggd int ,_befaca _eca .PdfObject ){_ccb .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_beggd );
|
||
if _fcfbb ,_aaab :=_befaca .(*_eca .PdfIndirectObject );_aaab {_gcea ._eaad [_beggd ]=crossReference {Type :1,Offset :_gcea ._eggaf ,Generation :_fcfbb .GenerationNumber };_gcbcg :=_g .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_beggd );if _agcg ,_ccef :=_fcfbb .PdfObject .(*pdfSignDictionary );
|
||
_ccef {_agcg ._fegcb =_gcea ._eggaf +int64 (len (_gcbcg ));};if _fcfbb .PdfObject ==nil {_ccb .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");
|
||
_fcfbb .PdfObject =_eca .MakeNull ();};_gcbcg +=_fcfbb .PdfObject .WriteString ();_gcbcg +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_gcea .writeString (_gcbcg );return ;};if _gagea ,_bgbb :=_befaca .(*_eca .PdfObjectStream );_bgbb {_gcea ._eaad [_beggd ]=crossReference {Type :1,Offset :_gcea ._eggaf ,Generation :_gagea .GenerationNumber };
|
||
_ffbff :=_g .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_beggd );_ffbff +=_gagea .PdfObjectDictionary .WriteString ();_ffbff +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_gcea .writeString (_ffbff );_gcea .writeBytes (_gagea .Stream );
|
||
_gcea .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _fedd ,_abbcf :=_befaca .(*_eca .PdfObjectStreams );_abbcf {_gcea ._eaad [_beggd ]=crossReference {Type :1,Offset :_gcea ._eggaf ,Generation :_fedd .GenerationNumber };
|
||
_fadeg :=_g .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_beggd );var _cfaad []string ;var _gfeb string ;var _bdebc int64 ;for _adbf ,_aebff :=range _fedd .Elements (){_efaba ,_cdcdd :=_aebff .(*_eca .PdfIndirectObject );if !_cdcdd {_ccb .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",_beggd ,_aebff );
|
||
continue ;};_dgcfe :=_efaba .PdfObject .WriteString ()+"\u0020";_gfeb =_gfeb +_dgcfe ;_cfaad =append (_cfaad ,_g .Sprintf ("\u0025\u0064\u0020%\u0064",_efaba .ObjectNumber ,_bdebc ));_gcea ._eaad [int (_efaba .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_beggd ,Index :_adbf };
|
||
_bdebc =_bdebc +int64 (len ([]byte (_dgcfe )));};_deedd :=_ec .Join (_cfaad ,"\u0020")+"\u0020";_eagfa :=_eca .NewFlateEncoder ();_ffdga :=_eagfa .MakeStreamDict ();_ffdga .Set (_eca .PdfObjectName ("\u0054\u0079\u0070\u0065"),_eca .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_eeddb :=int64 (_fedd .Len ());_ffdga .Set (_eca .PdfObjectName ("\u004e"),_eca .MakeInteger (_eeddb ));_dgfcf :=int64 (len (_deedd ));_ffdga .Set (_eca .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_eca .MakeInteger (_dgfcf ));_gadbed ,_ :=_eagfa .EncodeBytes ([]byte (_deedd +_gfeb ));
|
||
_eeaac :=int64 (len (_gadbed ));_ffdga .Set (_eca .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_eca .MakeInteger (_eeaac ));_fadeg +=_ffdga .WriteString ();_fadeg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_gcea .writeString (_fadeg );
|
||
_gcea .writeBytes (_gadbed );_gcea .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_gcea .writeString (_befaca .WriteString ());};func (_feae *PdfReader )newPdfActionGotoRFromDict (_cee *_eca .PdfObjectDictionary )(*PdfActionGoToR ,error ){_acc ,_gbae :=_efe (_cee .Get ("\u0046"));
|
||
if _gbae !=nil {return nil ,_gbae ;};return &PdfActionGoToR {D :_cee .Get ("\u0044"),NewWindow :_cee .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_acc },nil ;};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_ebeb *PdfColorLab )A ()float64 {return _ebeb [1]};
|
||
|
||
// SignatureHandlerDocMDPParams describe the specific parameters for the SignatureHandlerEx
|
||
// These parameters describe how to check the difference between revisions.
|
||
// Revisions of the document get from the PdfParser.
|
||
type SignatureHandlerDocMDPParams struct{Parser *_eca .PdfParser ;DiffPolicy _ecg .DiffPolicy ;};func _bbba (_cedda *PdfField ,_fgcba _eca .PdfObject )error {switch _cedda .GetContext ().(type ){case *PdfFieldText :switch _acgge :=_fgcba .(type ){case *_eca .PdfObjectName :_agaab :=_acgge ;
|
||
_ccb .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",_agaab .String ());
|
||
_cedda .V =_eca .MakeEncodedString (_acgge .String (),true );case *_eca .PdfObjectString :_cedda .V =_eca .MakeEncodedString (_acgge .String (),true );default:_ccb .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",_acgge ,_acgge );
|
||
};case *PdfFieldButton :switch _fgcba .(type ){case *_eca .PdfObjectName :if len (_fgcba .String ())> 0{_cedda .V =_fgcba ;_ebcdg (_cedda ,_fgcba );};case *_eca .PdfObjectString :if len (_fgcba .String ())> 0{_cedda .V =_eca .MakeName (_fgcba .String ());
|
||
_ebcdg (_cedda ,_cedda .V );};default:_ccb .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",_cedda .PartialName (),_fgcba );_cedda .V =_fgcba ;
|
||
};case *PdfFieldChoice :switch _fgcba .(type ){case *_eca .PdfObjectName :if len (_fgcba .String ())> 0{_cedda .V =_eca .MakeString (_fgcba .String ());_ebcdg (_cedda ,_fgcba );};case *_eca .PdfObjectString :if len (_fgcba .String ())> 0{_cedda .V =_fgcba ;
|
||
_ebcdg (_cedda ,_eca .MakeName (_fgcba .String ()));};default:_ccb .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",_cedda .PartialName (),_fgcba );
|
||
_cedda .V =_fgcba ;};case *PdfFieldSignature :_ccb .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",_cedda .PartialName (),_fgcba );
|
||
};return nil ;};
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_dggfc *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_bbdd :=NewPdfOutlineItem ();_bbdd .Title =_eca .MakeEncodedString (_dggfc .Title ,true );_bbdd .Dest =_dggfc .Dest .ToPdfObject ();var _edcfa []*PdfOutlineItem ;var _gddgd int64 ;
|
||
var _cdcbb *PdfOutlineItem ;for _ ,_abaag :=range _dggfc .Entries {_dffab ,_bafgd :=_abaag .ToPdfOutlineItem ();_dffab .Parent =&_bbdd .PdfOutlineTreeNode ;if _cdcbb !=nil {_cdcbb .Next =&_dffab .PdfOutlineTreeNode ;_dffab .Prev =&_cdcbb .PdfOutlineTreeNode ;
|
||
};_edcfa =append (_edcfa ,_dffab );_gddgd +=_bafgd ;_cdcbb =_dffab ;};_fcega :=len (_edcfa );_gddgd +=int64 (_fcega );if _fcega > 0{_bbdd .First =&_edcfa [0].PdfOutlineTreeNode ;_bbdd .Last =&_edcfa [_fcega -1].PdfOutlineTreeNode ;_bbdd .Count =&_gddgd ;
|
||
};return _bbdd ,_gddgd ;};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cac *PdfColorspaceSpecialSeparation )ToPdfObject ()_eca .PdfObject {_dded :=_eca .MakeArray (_eca .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_dded .Append (_cac .ColorantName );_dded .Append (_cac .AlternateSpace .ToPdfObject ());
|
||
_dded .Append (_cac .TintTransform .ToPdfObject ());if _cac ._aabgg !=nil {_cac ._aabgg .PdfObject =_dded ;return _cac ._aabgg ;};return _dded ;};
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_bbebfc *XObjectImage )GetContainingPdfObject ()_eca .PdfObject {return _bbebfc ._gddeaa };
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_fcgd *PdfColorDeviceRGB )R ()float64 {return _fcgd [0]};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_fccg *OutlineItem )Insert (index uint ,item *OutlineItem ){_ebaed :=uint (len (_fccg .Entries ));if index > _ebaed {index =_ebaed ;};_fccg .Entries =append (_fccg .Entries [:index ],append ([]*OutlineItem {item },_fccg .Entries [index :]...)...);
|
||
};func _gcbg (_ebedf _eca .PdfObject )(*PdfColorspaceICCBased ,error ){_bada :=&PdfColorspaceICCBased {};if _gege ,_ffcb :=_ebedf .(*_eca .PdfIndirectObject );_ffcb {_bada ._bgefa =_gege ;};_ebedf =_eca .TraceToDirectObject (_ebedf );_ffcc ,_ffgfg :=_ebedf .(*_eca .PdfObjectArray );
|
||
if !_ffgfg {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ffcc .Len ()!=2{return nil ,_g .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_ebedf =_eca .TraceToDirectObject (_ffcc .Get (0));_gaaba ,_ffgfg :=_ebedf .(*_eca .PdfObjectName );if !_ffgfg {return nil ,_g .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 *_gaaba !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_g .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");};_ebedf =_ffcc .Get (1);
|
||
_cegg ,_ffgfg :=_eca .GetStream (_ebedf );if !_ffgfg {_ccb .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",_ebedf );
|
||
return nil ,_g .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_daefc :=_cegg .PdfObjectDictionary ;_bgab ,_ffgfg :=_daefc .Get ("\u004e").(*_eca .PdfObjectInteger );
|
||
if !_ffgfg {return nil ,_g .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 *_bgab !=1&&*_bgab !=3&&*_bgab !=4{return nil ,_g .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");
|
||
};_bada .N =int (*_bgab );if _bebe :=_daefc .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_bebe !=nil {_ebaa ,_eaee :=NewPdfColorspaceFromPdfObject (_bebe );if _eaee !=nil {return nil ,_eaee ;};_bada .Alternate =_ebaa ;};if _bbbfa :=_daefc .Get ("\u0052\u0061\u006eg\u0065");
|
||
_bbbfa !=nil {_bbbfa =_eca .TraceToDirectObject (_bbbfa );_gefdg ,_febe :=_bbbfa .(*_eca .PdfObjectArray );if !_febe {return nil ,_g .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 _gefdg .Len ()!=2*_bada .N {return nil ,_g .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");
|
||
};_gage ,_defe :=_gefdg .GetAsFloat64Slice ();if _defe !=nil {return nil ,_defe ;};_bada .Range =_gage ;}else {_bada .Range =make ([]float64 ,2*_bada .N );for _afcda :=0;_afcda < _bada .N ;_afcda ++{_bada .Range [2*_afcda ]=0.0;_bada .Range [2*_afcda +1]=1.0;
|
||
};};if _deabf :=_daefc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_deabf !=nil {_dgga ,_cfeg :=_deabf .(*_eca .PdfObjectStream );if !_cfeg {return nil ,_g .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");
|
||
};_bada .Metadata =_dgga ;};_adac ,_cegc :=_eca .DecodeStream (_cegg );if _cegc !=nil {return nil ,_cegc ;};_bada .Data =_adac ;_bada ._fdga =_cegg ;return _bada ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_afga *PdfAnnotationRedact )ToPdfObject ()_eca .PdfObject {_afga .PdfAnnotation .ToPdfObject ();_gbg :=_afga ._cdc ;_fdad :=_gbg .PdfObject .(*_eca .PdfObjectDictionary );_afga .PdfAnnotationMarkup .appendToPdfDictionary (_fdad );_fdad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_fdad .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_afga .QuadPoints );_fdad .SetIfNotNil ("\u0049\u0043",_afga .IC );_fdad .SetIfNotNil ("\u0052\u004f",_afga .RO );_fdad .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_afga .OverlayText );
|
||
_fdad .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_afga .Repeat );_fdad .SetIfNotNil ("\u0044\u0041",_afga .DA );_fdad .SetIfNotNil ("\u0051",_afga .Q );return _gbg ;};
|
||
|
||
// GetPerms returns the Permissions dictionary
|
||
func (_gfgd *PdfReader )GetPerms ()*Permissions {return _gfgd ._bdbaa };
|
||
|
||
// 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 _eca .PdfObject )(_eca .PdfObjectName ,error ){var _edaa *_eca .PdfObjectName ;var _ecfe *_eca .PdfObjectArray ;if _edcea ,_bgcd :=obj .(*_eca .PdfIndirectObject );_bgcd {if _begg ,_agca :=_edcea .PdfObject .(*_eca .PdfObjectArray );
|
||
_agca {_ecfe =_begg ;}else if _gbegg ,_efb :=_edcea .PdfObject .(*_eca .PdfObjectName );_efb {_edaa =_gbegg ;};}else if _ebcc ,_fgcc :=obj .(*_eca .PdfObjectArray );_fgcc {_ecfe =_ebcc ;}else if _ceab ,_gdda :=obj .(*_eca .PdfObjectName );_gdda {_edaa =_ceab ;
|
||
};if _edaa !=nil {switch *_edaa {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 *_edaa ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_edaa ,nil ;
|
||
};};if _ecfe !=nil &&_ecfe .Len ()> 0{if _eddb ,_fbdg :=_ecfe .Get (0).(*_eca .PdfObjectName );_fbdg {switch *_eddb {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 _ecfe .Len ()==1{return *_eddb ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_eddb ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_eddb ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_eddb ,nil ;};};};return "",nil ;};
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_gfda *PdfPage )GetAllContentStreams ()(string ,error ){_gcae ,_fgfdd :=_gfda .GetContentStreams ();if _fgfdd !=nil {return "",_fgfdd ;};return _ec .Join (_gcae ,"\u0020"),nil ;};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_bbbcba *PdfDate )ToPdfObject ()_eca .PdfObject {_cbaef :=_g .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",_bbbcba ._ffacc ,_bbbcba ._gecba ,_bbbcba ._bcdea ,_bbbcba ._dcbgf ,_bbbcba ._agdad ,_bbbcba ._dccbf ,_bbbcba ._cgad ,_bbbcba ._ffffbf ,_bbbcba ._caaa );
|
||
return _eca .MakeString (_cbaef );};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_gccf *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_afdc ,_aacf :=color .(*PdfColorDeviceGray );if !_aacf {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_afdc ),float64 (*_afdc ),float64 (*_afdc )),nil ;};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_fceb *PdfReader )PdfVersion ()_eca .Version {return _fceb ._ecfeba .PdfVersion ()};
|
||
|
||
// IsSimple returns true if `font` is a simple font.
|
||
func (_ccdd *PdfFont )IsSimple ()bool {_ ,_fcgac :=_ccdd ._dbgb .(*pdfFontSimple );return _fcgac };func (_dbcaec *PdfWriter )checkCrossReferenceStream ()bool {_ddfdc :=_dbcaec ._dgab .Major > 1||(_dbcaec ._dgab .Major ==1&&_dbcaec ._dgab .Minor > 4);if _dbcaec ._edaga !=nil {_ddfdc =*_dbcaec ._edaga ;
|
||
};return _ddfdc ;};
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_gcebbd *PdfPattern )SetContext (ctx PdfModel ){_gcebbd ._cegb =ctx };
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_aagg :=NewPdfAction ();_afb :=&PdfActionLaunch {};_afb .PdfAction =_aagg ;_aagg .SetContext (_afb );return _afb ;};
|
||
|
||
// 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 (_gbaa *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffga :=vals [0];if _ffga < 0.0||_ffga > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ffga );
|
||
return nil ,ErrColorOutOfRange ;};_bbdabe :=vals [1];if _bbdabe < 0.0||_bbdabe > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbdabe );return nil ,ErrColorOutOfRange ;
|
||
};_ebdg :=vals [2];if _ebdg < 0.0||_ebdg > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ebdg );return nil ,ErrColorOutOfRange ;};_fegga :=vals [3];
|
||
if _fegga < 0.0||_fegga > 1.0{_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fegga );return nil ,ErrColorOutOfRange ;};_caad :=NewPdfColorDeviceCMYK (_ffga ,_bbdabe ,_ebdg ,_fegga );
|
||
return _caad ,nil ;};
|
||
|
||
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
|
||
// a higher level access to work with PDF structure and information, such as the page structure etc.
|
||
type PdfReader struct{_ecfeba *_eca .PdfParser ;_eefcf _eca .PdfObject ;_ebddg *_eca .PdfIndirectObject ;_bdac *_eca .PdfObjectDictionary ;_gfabb []*_eca .PdfIndirectObject ;PageList []*PdfPage ;_gebe int ;_affc *_eca .PdfObjectDictionary ;_eabaf *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_bdbaa *Permissions ;_dgedea map[*PdfReader ]*PdfReader ;_bcgeg []*PdfReader ;_dcddd *modelManager ;_gggcg bool ;_fgbbd map[_eca .PdfObject ]struct{};_eacag _beg .ReadSeeker ;_ggeed string ;_cgfcc bool ;_bccfb *ReaderOpts ;
|
||
_fdbbc bool ;};
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _eca .PdfObject ;RichMediaContent _eca .PdfObject ;};
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_agda *PdfColorDeviceRGB )B ()float64 {return _agda [2]};
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_abdg *Image )ToGoImage ()(_cc .Image ,error ){_ccb .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_eeeeg ,_ddgg :=_bbg .NewImage (int (_abdg .Width ),int (_abdg .Height ),int (_abdg .BitsPerComponent ),_abdg .ColorComponents ,_abdg .Data ,_abdg ._gcgb ,_abdg ._cfgaa );
|
||
if _ddgg !=nil {return nil ,_ddgg ;};return _eeeeg ,nil ;};
|
||
|
||
// 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 *_eca .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_aabgg *_eca .PdfIndirectObject ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_degf *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_cccgg :=func (_dfea float64 )float64 {if _dfea >=6.0/29{return _dfea *_dfea *_dfea ;};return 108.0/841*(_dfea -4.0/29.0);};_geac ,_ecfc :=color .(*PdfColorLab );if !_ecfc {_ccb .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_geac .L ();AStar :=_geac .A ();BStar :=_geac .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_degf .WhitePoint [0]*_cccgg (L );Y :=_degf .WhitePoint [1]*_cccgg (M );Z :=_degf .WhitePoint [2]*_cccgg (N );_aggf :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ebed :=-0.969256*X +1.875992*Y +0.041556*Z ;_fgbd :=0.055648*X +-0.204043*Y +1.057311*Z ;_aggf =_de .Min (_de .Max (_aggf ,0),1.0);
|
||
_ebed =_de .Min (_de .Max (_ebed ,0),1.0);_fgbd =_de .Min (_de .Max (_fgbd ,0),1.0);return NewPdfColorDeviceRGB (_aggf ,_ebed ,_fgbd ),nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_afbf *PdfColorDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// 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 (_cfdb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fecgd :=vals [0];if _fecgd < 0.0||_fecgd > 100.0{_ccb .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",_fecgd );
|
||
return nil ,ErrColorOutOfRange ;};_eadf :=vals [1];_cbae :=float64 (-100);_ebbb :=float64 (100);if len (_cfdb .Range )> 1{_cbae =_cfdb .Range [0];_ebbb =_cfdb .Range [1];};if _eadf < _cbae ||_eadf > _ebbb {_ccb .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",_eadf ,_cbae ,_ebbb );
|
||
return nil ,ErrColorOutOfRange ;};_ebac :=vals [2];_eaca :=float64 (-100);_aaf :=float64 (100);if len (_cfdb .Range )> 3{_eaca =_cfdb .Range [2];_aaf =_cfdb .Range [3];};if _ebac < _eaca ||_ebac > _aaf {_ccb .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",_ebac ,_eaca ,_aaf );
|
||
return nil ,ErrColorOutOfRange ;};_acbb :=NewPdfColorLab (_fecgd ,_eadf ,_ebac );return _acbb ,nil ;};func (_bfge *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _bfge ._ccec };const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";
|
||
TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_dabgd *PdfWriter )GetOptimizer ()Optimizer {return _dabgd ._cgfccc };
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_bdeac *PdfRectangle )ToPdfObject ()_eca .PdfObject {return _eca .MakeArray (_eca .MakeFloat (_bdeac .Llx ),_eca .MakeFloat (_bdeac .Lly ),_eca .MakeFloat (_bdeac .Urx ),_eca .MakeFloat (_bdeac .Ury ));};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eedc *PdfFilespec )ToPdfObject ()_eca .PdfObject {_cbgfc :=_eedc .getDict ();_cbgfc .Clear ();_cbgfc .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_cbgfc .SetIfNotNil ("\u0046\u0053",_eedc .FS );
|
||
_cbgfc .SetIfNotNil ("\u0046",_eedc .F );_cbgfc .SetIfNotNil ("\u0055\u0046",_eedc .UF );_cbgfc .SetIfNotNil ("\u0044\u004f\u0053",_eedc .DOS );_cbgfc .SetIfNotNil ("\u004d\u0061\u0063",_eedc .Mac );_cbgfc .SetIfNotNil ("\u0055\u006e\u0069\u0078",_eedc .Unix );
|
||
_cbgfc .SetIfNotNil ("\u0049\u0044",_eedc .ID );_cbgfc .SetIfNotNil ("\u0056",_eedc .V );_cbgfc .SetIfNotNil ("\u0045\u0046",_eedc .EF );_cbgfc .SetIfNotNil ("\u0052\u0046",_eedc .RF );_cbgfc .SetIfNotNil ("\u0044\u0065\u0073\u0063",_eedc .Desc );_cbgfc .SetIfNotNil ("\u0043\u0049",_eedc .CI );
|
||
return _eedc ._ggdg ;};func (_fac *PdfAnnotation )String ()string {_aee :="";_fega ,_babd :=_fac .ToPdfObject ().(*_eca .PdfIndirectObject );if _babd {_aee =_g .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fac ._abc ,_fega .PdfObject .String ());};
|
||
return _aee ;};
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_beeab PdfDate )ToGoTime ()_d .Time {_fcgdb :=int (_beeab ._ffffbf *60*60+_beeab ._caaa *60);switch _beeab ._cgad {case '-':_fcgdb =-_fcgdb ;case 'Z':_fcgdb =0;};_caed :=_g .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_beeab ._cgad ,_beeab ._ffffbf ,_beeab ._caaa );
|
||
_dgeda :=_d .FixedZone (_caed ,_fcgdb );return _d .Date (int (_beeab ._ffacc ),_d .Month (_beeab ._gecba ),int (_beeab ._bcdea ),int (_beeab ._dcbgf ),int (_beeab ._agdad ),int (_beeab ._dccbf ),0,_dgeda );};
|
||
|
||
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
// Currently, the Outline object can only be used to construct PDF outlines.
|
||
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func (_def *PdfReader )newPdfActionNamedFromDict (_gedg *_eca .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_gedg .Get ("\u004e")},nil ;};
|
||
|
||
// PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect
|
||
// modifications relative to a signature field that is signed by the author of a document.
|
||
// (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008).
|
||
type PdfTransformParamsDocMDP struct{Type *_eca .PdfObjectName ;P *_eca .PdfObjectInteger ;V *_eca .PdfObjectName ;};func (_gcfea *PdfReader )newPdfFieldFromIndirectObject (_aecgf *_eca .PdfIndirectObject ,_fcfda *PdfField )(*PdfField ,error ){if _ebade ,_ccdf :=_gcfea ._dcddd .GetModelFromPrimitive (_aecgf ).(*PdfField );
|
||
_ccdf {return _ebade ,nil ;};_baed ,_acae :=_eca .GetDict (_aecgf );if !_acae {return nil ,_g .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");
|
||
};_egdcf :=NewPdfField ();_egdcf ._geaa =_aecgf ;_egdcf ._geaa .PdfObject =_baed ;if _gbee ,_fbgeb :=_eca .GetName (_baed .Get ("\u0046\u0054"));_fbgeb {_egdcf .FT =_gbee ;};if _fcfda !=nil {_egdcf .Parent =_fcfda ;};_egdcf .T ,_ =_baed .Get ("\u0054").(*_eca .PdfObjectString );
|
||
_egdcf .TU ,_ =_baed .Get ("\u0054\u0055").(*_eca .PdfObjectString );_egdcf .TM ,_ =_baed .Get ("\u0054\u004d").(*_eca .PdfObjectString );_egdcf .Ff ,_ =_baed .Get ("\u0046\u0066").(*_eca .PdfObjectInteger );_egdcf .V =_baed .Get ("\u0056");_egdcf .DV =_baed .Get ("\u0044\u0056");
|
||
_egdcf .AA =_baed .Get ("\u0041\u0041");if DA :=_baed .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_eca .GetString (DA );_egdcf .VariableText =&VariableText {DA :DA };Q ,_ :=_baed .Get ("\u0051").(*_eca .PdfObjectInteger );DS ,_ :=_baed .Get ("\u0044\u0053").(*_eca .PdfObjectString );
|
||
RV :=_baed .Get ("\u0052\u0056");_egdcf .VariableText .Q =Q ;_egdcf .VariableText .DS =DS ;_egdcf .VariableText .RV =RV ;};_abefb :=_egdcf .FT ;if _abefb ==nil &&_fcfda !=nil {_abefb =_fcfda .FT ;};if _abefb !=nil {switch *_abefb {case "\u0054\u0078":_ddff ,_fcde :=_addg (_baed );
|
||
if _fcde !=nil {return nil ,_fcde ;};_ddff .PdfField =_egdcf ;_egdcf ._fbgb =_ddff ;case "\u0043\u0068":_gcfed ,_gbac :=_cedfg (_baed );if _gbac !=nil {return nil ,_gbac ;};_gcfed .PdfField =_egdcf ;_egdcf ._fbgb =_gcfed ;case "\u0042\u0074\u006e":_ggebd ,_facb :=_febg (_baed );
|
||
if _facb !=nil {return nil ,_facb ;};_ggebd .PdfField =_egdcf ;_egdcf ._fbgb =_ggebd ;case "\u0053\u0069\u0067":_efbc ,_abba :=_gcfea .newPdfFieldSignatureFromDict (_baed );if _abba !=nil {return nil ,_abba ;};_efbc .PdfField =_egdcf ;_egdcf ._fbgb =_efbc ;
|
||
default:_ccb .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",*_egdcf .FT );return nil ,_da .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
|
||
};};if _ddfgc ,_ecfea :=_eca .GetName (_baed .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_ecfea {if *_ddfgc =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bcca ,_cdfa :=_gcfea .newPdfAnnotationFromIndirectObject (_aecgf );if _cdfa !=nil {return nil ,_cdfa ;
|
||
};_fcceb ,_dgbca :=_bcca .GetContext ().(*PdfAnnotationWidget );if !_dgbca {return nil ,_da .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fcceb ._ebc =_egdcf ;_fcceb .Parent =_egdcf ._geaa ;
|
||
_egdcf .Annotations =append (_egdcf .Annotations ,_fcceb );return _egdcf ,nil ;};};_edaca :=true ;if _ecbfa ,_debg :=_eca .GetArray (_baed .Get ("\u004b\u0069\u0064\u0073"));_debg {_cgbaf :=make ([]*_eca .PdfIndirectObject ,0,_ecbfa .Len ());for _ ,_abfg :=range _ecbfa .Elements (){_gbeag ,_gdba :=_eca .GetIndirect (_abfg );
|
||
if !_gdba {_bcdg ,_cbccb :=_eca .GetStream (_abfg );if _cbccb &&_bcdg .PdfObjectDictionary !=nil {_ecga ,_aceg :=_eca .GetNameVal (_bcdg .Get ("\u0054\u0079\u0070\u0065"));if _aceg &&_ecga =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ccb .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 ,_da .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");};_adcc ,_beca :=_eca .GetDict (_gbeag );
|
||
if !_beca {return nil ,ErrTypeCheck ;};if _edaca {_edaca =!_fgaf (_adcc );};_cgbaf =append (_cgbaf ,_gbeag );};for _ ,_bgdgg :=range _cgbaf {if _edaca {_eggeb ,_eaacd :=_gcfea .newPdfAnnotationFromIndirectObject (_bgdgg );if _eaacd !=nil {_ccb .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",_eaacd );
|
||
return nil ,_eaacd ;};_ggbea ,_befg :=_eggeb ._abc .(*PdfAnnotationWidget );if !_befg {return nil ,ErrTypeCheck ;};_ggbea ._ebc =_egdcf ;_egdcf .Annotations =append (_egdcf .Annotations ,_ggbea );}else {_bdfad ,_fdggb :=_gcfea .newPdfFieldFromIndirectObject (_bgdgg ,_egdcf );
|
||
if _fdggb !=nil {_ccb .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",_fdggb );return nil ,_fdggb ;};_egdcf .Kids =append (_egdcf .Kids ,_bdfad );
|
||
};};};return _egdcf ,nil ;};
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _eca .PdfObject ;Movie _eca .PdfObject ;A _eca .PdfObject ;};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_eccca *pdfFontSimple )ToPdfObject ()_eca .PdfObject {if _eccca ._bgegd ==nil {_eccca ._bgegd =&_eca .PdfIndirectObject {};};_ggfg :=_eccca .baseFields ().asPdfObjectDictionary ("");_eccca ._bgegd .PdfObject =_ggfg ;if _eccca .FirstChar !=nil {_ggfg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_eccca .FirstChar );
|
||
};if _eccca .LastChar !=nil {_ggfg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_eccca .LastChar );};if _eccca .Widths !=nil {_ggfg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_eccca .Widths );};if _eccca .Encoding !=nil {_ggfg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_eccca .Encoding );
|
||
}else if _eccca ._daddc !=nil {_dgbf :=_eccca ._daddc .ToPdfObject ();if _dgbf !=nil {_ggfg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dgbf );};};return _eccca ._bgegd ;};
|
||
|
||
// StandardImplementer is an interface that defines specified PDF standards like PDF/A-1A (pdfa.Profile1A)
|
||
// NOTE: This implementation is in experimental development state.
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
type StandardImplementer interface{StandardValidator ;StandardApplier ;
|
||
|
||
// StandardName gets the human-readable name of the standard.
|
||
StandardName ()string ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fecdf *PdfAnnotationWidget )ToPdfObject ()_eca .PdfObject {_fecdf .PdfAnnotation .ToPdfObject ();_cbga :=_fecdf ._cdc ;_fcb :=_cbga .PdfObject .(*_eca .PdfObjectDictionary );if _fecdf ._bbed {return _cbga ;};_fecdf ._bbed =true ;_fcb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_fcb .SetIfNotNil ("\u0048",_fecdf .H );_fcb .SetIfNotNil ("\u004d\u004b",_fecdf .MK );_fcb .SetIfNotNil ("\u0041",_fecdf .A );_fcb .SetIfNotNil ("\u0041\u0041",_fecdf .AA );_fcb .SetIfNotNil ("\u0042\u0053",_fecdf .BS );_cbgf :=_fecdf .Parent ;if _fecdf ._ebc !=nil {if _fecdf ._ebc ._geaa ==_fecdf ._cdc {_fecdf ._ebc .ToPdfObject ();
|
||
};_cbgf =_fecdf ._ebc .GetContainingPdfObject ();};if _cbgf !=_cbga {_fcb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbgf );};_fecdf ._bbed =false ;return _cbga ;};func (_cbfb *PdfWriter )makeOffSetReference (_dedea int64 ){_edcbe :=_g .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_dedea );
|
||
_cbfb .writeString (_edcbe );_cbfb .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_bga :=NewPdfAction ();_ddg :=&PdfActionURI {};_ddg .PdfAction =_bga ;_bga .SetContext (_ddg );return _ddg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aab *PdfAnnotationPopup )ToPdfObject ()_eca .PdfObject {_aab .PdfAnnotation .ToPdfObject ();_dfcc :=_aab ._cdc ;_ecbb :=_dfcc .PdfObject .(*_eca .PdfObjectDictionary );_ecbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_ecbb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_aab .Parent );_ecbb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_aab .Open );return _dfcc ;};
|
||
|
||
// 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 (_ecaea *Image )Resample (targetBitsPerComponent int64 ){if _ecaea .BitsPerComponent ==targetBitsPerComponent {return ;};_ebagc :=_ecaea .GetSamples ();if targetBitsPerComponent < _ecaea .BitsPerComponent {_cccb :=_ecaea .BitsPerComponent -targetBitsPerComponent ;
|
||
for _ffbb :=range _ebagc {_ebagc [_ffbb ]>>=uint (_cccb );};}else if targetBitsPerComponent > _ecaea .BitsPerComponent {_gffbe :=targetBitsPerComponent -_ecaea .BitsPerComponent ;for _fccfd :=range _ebagc {_ebagc [_fccfd ]<<=uint (_gffbe );};};_ecaea .BitsPerComponent =targetBitsPerComponent ;
|
||
if _ecaea .BitsPerComponent < 8{_ecaea .resampleLowBits (_ebagc );return ;};_eeada :=_bbg .BytesPerLine (int (_ecaea .Width ),int (_ecaea .BitsPerComponent ),_ecaea .ColorComponents );_eefba :=make ([]byte ,_eeada *int (_ecaea .Height ));var (_adce ,_dagc ,_cgcf ,_affef int ;
|
||
_dagbg uint32 ;);for _cgcf =0;_cgcf < int (_ecaea .Height );_cgcf ++{_adce =_cgcf *_eeada ;_dagc =(_cgcf +1)*_eeada -1;_aedea :=_bf .ResampleUint32 (_ebagc [_adce :_dagc ],int (targetBitsPerComponent ),8);for _affef ,_dagbg =range _aedea {_eefba [_affef +_adce ]=byte (_dagbg );
|
||
};};_ecaea .Data =_eefba ;};
|
||
|
||
// IsValid checks if the given pdf output intent type is valid.
|
||
func (_fgegb PdfOutputIntentType )IsValid ()bool {return _fgegb >=PdfOutputIntentTypeA1 &&_fgegb <=PdfOutputIntentTypeX ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_dfefg *PdfPageResources )SetXObjectImageByName (keyName _eca .PdfObjectName ,ximg *XObjectImage )error {_fcccd :=ximg .ToPdfObject ().(*_eca .PdfObjectStream );_aeaed :=_dfefg .SetXObjectByName (keyName ,_fcccd );return _aeaed ;};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_aeac :_eca .MakeIndirectObject (_eca .MakeDict ())};};func _aafd (_ddde _eca .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ccb .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",_ddde .String (),_ddde );
|
||
_efcd :=NewPdfColorspaceSpecialPattern ();if _gagf ,_bfcg :=_ddde .(*_eca .PdfIndirectObject );_bfcg {_efcd ._adcgc =_gagf ;};_ddde =_eca .TraceToDirectObject (_ddde );if _dfff ,_afea :=_ddde .(*_eca .PdfObjectName );_afea {if *_dfff !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_g .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _efcd ,nil ;};_affed ,_fcba :=_ddde .(*_eca .PdfObjectArray );if !_fcba {_ccb .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",_ddde );
|
||
return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _affed .Len ()!=1&&_affed .Len ()!=2{_ccb .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",_affed );
|
||
return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_ddde =_affed .Get (0);if _cfbde ,_fgfag :=_ddde .(*_eca .PdfObjectName );_fgfag {if *_cfbde !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ccb .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",_cfbde );
|
||
return nil ,_g .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _affed .Len ()> 1{_ddde =_affed .Get (1);_ddde =_eca .TraceToDirectObject (_ddde );_acfc ,_eaff :=NewPdfColorspaceFromPdfObject (_ddde );if _eaff !=nil {return nil ,_eaff ;
|
||
};_efcd .UnderlyingCS =_acfc ;};_ccb .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",_efcd .UnderlyingCS );
|
||
return _efcd ,nil ;};func (_ebbd *PdfPage )setContainer (_dfebe *_eca .PdfIndirectObject ){_dfebe .PdfObject =_ebbd ._agaea ;_ebbd ._aedef =_dfebe ;};func (_dabd *LTV )getCerts (_edeebc []*_ad .Certificate )([][]byte ,error ){_agfge :=make ([][]byte ,0,len (_edeebc ));
|
||
for _ ,_edcffc :=range _edeebc {_agfge =append (_agfge ,_edcffc .Raw );};return _agfge ,nil ;};func (_fgde *PdfReader )newPdfActionImportDataFromDict (_gfe *_eca .PdfObjectDictionary )(*PdfActionImportData ,error ){_agd ,_ggd :=_efe (_gfe .Get ("\u0046"));
|
||
if _ggd !=nil {return nil ,_ggd ;};return &PdfActionImportData {F :_agd },nil ;};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_cdaa :_eca .MakeIndirectObject (_eca .MakeDict ()),VRI :map[string ]*VRI {}};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ega *PdfAnnotationLine )ToPdfObject ()_eca .PdfObject {_ega .PdfAnnotation .ToPdfObject ();_dafg :=_ega ._cdc ;_dffa :=_dafg .PdfObject .(*_eca .PdfObjectDictionary );_ega .PdfAnnotationMarkup .appendToPdfDictionary (_dffa );_dffa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_dffa .SetIfNotNil ("\u004c",_ega .L );_dffa .SetIfNotNil ("\u0042\u0053",_ega .BS );_dffa .SetIfNotNil ("\u004c\u0045",_ega .LE );_dffa .SetIfNotNil ("\u0049\u0043",_ega .IC );_dffa .SetIfNotNil ("\u004c\u004c",_ega .LL );_dffa .SetIfNotNil ("\u004c\u004c\u0045",_ega .LLE );
|
||
_dffa .SetIfNotNil ("\u0043\u0061\u0070",_ega .Cap );_dffa .SetIfNotNil ("\u0049\u0054",_ega .IT );_dffa .SetIfNotNil ("\u004c\u004c\u004f",_ega .LLO );_dffa .SetIfNotNil ("\u0043\u0050",_ega .CP );_dffa .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_ega .Measure );
|
||
_dffa .SetIfNotNil ("\u0043\u004f",_ega .CO );return _dafg ;};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _eca .PdfObject ;Mac _eca .PdfObject ;Unix _eca .PdfObject ;NewWindow _eca .PdfObject ;};
|
||
|
||
// NewReaderOpts generates a default `ReaderOpts` instance.
|
||
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_dad .PSProgram ;_abab *_dad .PSExecutor ;_aeafdg []byte ;_bdgbf *_eca .PdfObjectStream ;};func _gdea (_fbecdc _eca .PdfObject )(*PdfFunctionType2 ,error ){_bcae :=&PdfFunctionType2 {};
|
||
var _cafa *_eca .PdfObjectDictionary ;if _cfac ,_dbbd :=_fbecdc .(*_eca .PdfIndirectObject );_dbbd {_dgcg ,_fbdb :=_cfac .PdfObject .(*_eca .PdfObjectDictionary );if !_fbdb {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_bcae ._agcab =_cfac ;_cafa =_dgcg ;}else if _cebdg ,_edcab :=_fbecdc .(*_eca .PdfObjectDictionary );_edcab {_cafa =_cebdg ;}else {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ccb .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cafa .String ());
|
||
_bgdgb ,_gbfef :=_eca .TraceToDirectObject (_cafa .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray );if !_gbfef {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _bgdgb .Len ()< 0||_bgdgb .Len ()%2!=0{_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_cbeed ,_adabg :=_bgdgb .ToFloat64Array ();if _adabg !=nil {return nil ,_adabg ;};_bcae .Domain =_cbeed ;_bgdgb ,_gbfef =_eca .TraceToDirectObject (_cafa .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if _gbfef {if _bgdgb .Len ()< 0||_bgdgb .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_cfcc ,_gefegf :=_bgdgb .ToFloat64Array ();if _gefegf !=nil {return nil ,_gefegf ;};_bcae .Range =_cfcc ;};_bgdgb ,_gbfef =_eca .TraceToDirectObject (_cafa .Get ("\u0043\u0030")).(*_eca .PdfObjectArray );if _gbfef {_bgegb ,_dgdbc :=_bgdgb .ToFloat64Array ();
|
||
if _dgdbc !=nil {return nil ,_dgdbc ;};_bcae .C0 =_bgegb ;};_bgdgb ,_gbfef =_eca .TraceToDirectObject (_cafa .Get ("\u0043\u0031")).(*_eca .PdfObjectArray );if _gbfef {_efcaf ,_gecab :=_bgdgb .ToFloat64Array ();if _gecab !=nil {return nil ,_gecab ;};_bcae .C1 =_efcaf ;
|
||
};if len (_bcae .C0 )!=len (_bcae .C1 ){_ccb .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_eca .ErrRangeError ;};N ,_adabg :=_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_cafa .Get ("\u004e")));
|
||
if _adabg !=nil {_ccb .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",_cafa .String ());return nil ,_adabg ;};_bcae .N =N ;
|
||
return _bcae ,nil ;};func _efbe (_begbb *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_begbb }};var (ErrRequiredAttributeMissing =_da .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 =_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_da .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_abbe =_da .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
||
ErrEncrypted =_da .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 =_da .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
ErrFontNotSupported =_ebf .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_eca .ErrNotSupported );ErrType1CFontNotSupported =_ebf .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",_eca .ErrNotSupported );
|
||
ErrType3FontNotSupported =_ebf .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",_eca .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_ebf .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",_eca .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_ebf .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 =_ebf .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"););
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_cgdde *PdfShadingPatternType2 )ToPdfObject ()_eca .PdfObject {_cgdde .PdfPattern .ToPdfObject ();_ecfa :=_cgdde .getDict ();if _cgdde .Shading !=nil {_ecfa .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_cgdde .Shading .ToPdfObject ());};if _cgdde .Matrix !=nil {_ecfa .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgdde .Matrix );
|
||
};if _cgdde .ExtGState !=nil {_ecfa .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_cgdde .ExtGState );};return _cgdde ._cdfed ;};
|
||
|
||
// 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 (_acege *PdfFont )CharcodesToStrings (charcodes []_dbb .CharCode )([]string ,int ,int ){_gbcbg :=_acege .baseFields ();_eefc :=make ([]string ,0,len (charcodes ));_gdab :=0;_gdfgc :=_acege .Encoder ();_gegfg :=_gbcbg ._gegfa !=nil &&_acege .IsSimple ()&&_acege .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_ec .Contains (_gbcbg ._gegfa .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
|
||
if !_gegfg &&_gdfgc !=nil {switch _feed :=_gdfgc .(type ){case _dbb .SimpleEncoder :_geca :=_feed .BaseName ();if _ ,_cead :=_gfgfb [_geca ];_cead {for _ ,_bcbeb :=range charcodes {if _bfbbd ,_cbbac :=_gdfgc .CharcodeToRune (_bcbeb );_cbbac {_eefc =append (_eefc ,string (_bfbbd ));
|
||
}else {_ccb .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",_bcbeb ,charcodes ,_gbcbg .isCIDFont (),_acege ,_gdfgc );
|
||
_gdab ++;_eefc =append (_eefc ,_ded .MissingCodeString );};};return _eefc ,len (_eefc ),_gdab ;};};};for _ ,_gcacd :=range charcodes {if _gbcbg ._gegfa !=nil {if _egce ,_fbagf :=_gbcbg ._gegfa .CharcodeToUnicode (_ded .CharCode (_gcacd ));_fbagf {_eefc =append (_eefc ,_egce );
|
||
continue ;};};if _gdfgc !=nil {if _cdcg ,_deebf :=_gdfgc .CharcodeToRune (_gcacd );_deebf {_eefc =append (_eefc ,string (_cdcg ));continue ;};};_ccb .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",_gcacd ,charcodes ,_gbcbg .isCIDFont (),_acege ,_gdfgc );
|
||
_gdab ++;_eefc =append (_eefc ,_ded .MissingCodeString );};if _gdab !=0{_ccb .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 ),_gdab ,_acege );
|
||
};return _eefc ,len (_eefc ),_gdab ;};
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_bfadd :=&PdfOutlineItem {_becge :_eca .MakeIndirectObject (_eca .MakeDict ())};_bfadd ._dcfbf =_bfadd ;return _bfadd ;};
|
||
|
||
// 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 (_cafff *PdfReader )Inspect ()(map[string ]int ,error ){return _cafff ._ecfeba .Inspect ()};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_aggg *PdfTilingPattern )GetContentStream ()([]byte ,error ){_bbebe ,_ ,_deaf :=_aggg .GetContentStreamWithEncoder ();return _bbebe ,_deaf ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_ddge *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
|
||
|
||
// 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 (_ceadc *PdfOutlineTreeNode )GetContext ()PdfModel {if _caffd ,_dffff :=_ceadc ._dcfbf .(*PdfOutline );_dffff {return _caffd ;};if _dacab ,_afad :=_ceadc ._dcfbf .(*PdfOutlineItem );_afad {return _dacab ;};_ccb .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 ;};
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_cgafe *PdfRectangle )Normalize (){if _cgafe .Llx > _cgafe .Urx {_cgafe .Llx ,_cgafe .Urx =_cgafe .Urx ,_cgafe .Llx ;};if _cgafe .Lly > _cgafe .Ury {_cgafe .Lly ,_cgafe .Ury =_cgafe .Ury ,_cgafe .Lly ;};};
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_aebad *PdfField )IsTerminal ()bool {return len (_aebad .Kids )==0};func _febaf (_ecebb _eca .PdfObject )(PdfFunction ,error ){_ecebb =_eca .ResolveReference (_ecebb );if _fffeb ,_bggbg :=_ecebb .(*_eca .PdfObjectStream );_bggbg {_dcga :=_fffeb .PdfObjectDictionary ;
|
||
_facce ,_cbece :=_dcga .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eca .PdfObjectInteger );if !_cbece {_ccb .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 ,_da .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 *_facce ==0{return _bfgd (_fffeb );}else if *_facce ==4{return _aeda (_fffeb );
|
||
}else {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _bcff ,_cafb :=_ecebb .(*_eca .PdfIndirectObject );_cafb {_dcbfd ,_cbbggc :=_bcff .PdfObject .(*_eca .PdfObjectDictionary );
|
||
if !_cbbggc {_ccb .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 ,_da .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");};_ebcb ,_cbbggc :=_dcbfd .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eca .PdfObjectInteger );
|
||
if !_cbbggc {_ccb .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 ,_da .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 *_ebcb ==2{return _gdea (_bcff );}else if *_ebcb ==3{return _bfdea (_bcff );}else {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _edcbc ,_ceegd :=_ecebb .(*_eca .PdfObjectDictionary );
|
||
_ceegd {_afedc ,_cfcg :=_edcbc .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_eca .PdfObjectInteger );if !_cfcg {_ccb .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 ,_da .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 *_afedc ==2{return _gdea (_edcbc );}else if *_afedc ==3{return _bfdea (_edcbc );
|
||
}else {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ccb .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_ecebb );
|
||
return nil ,_da .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _eca .PdfObject ;Name _eca .PdfObject ;};
|
||
|
||
// ReaderOpts defines options for creating PdfReader instances.
|
||
type ReaderOpts struct{
|
||
|
||
// Password password of the PDF file encryption.
|
||
// Default: empty ("").
|
||
Password string ;
|
||
|
||
// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
|
||
// Default: true.
|
||
LazyLoad bool ;
|
||
|
||
// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
|
||
ComplianceMode bool ;};func (_gbcba *PdfReader )loadDSS ()(*DSS ,error ){if _gbcba ._ecfeba .GetCrypter ()!=nil &&!_gbcba ._ecfeba .IsAuthenticated (){return nil ,_g .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");
|
||
};_ceda :=_gbcba ._affc .Get ("\u0044\u0053\u0053");if _ceda ==nil {return nil ,nil ;};_gbgdf ,_ :=_eca .GetIndirect (_ceda );_ceda =_eca .TraceToDirectObject (_ceda );switch _bfbec :=_ceda .(type ){case *_eca .PdfObjectNull :return nil ,nil ;case *_eca .PdfObjectDictionary :return _gbab (_gbgdf ,_bfbec );
|
||
};return nil ,_g .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_ceda );};
|
||
|
||
// 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 _eca .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_eca .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_bbfga ,_edadc :=encoder .EncodeBytes (img .Data );
|
||
if _edadc !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_edadc );return nil ,_edadc ;};_aedee :=NewXObjectImage ();_fbcba :=img .Width ;_fgceb :=img .Height ;
|
||
_aedee .Width =&_fbcba ;_aedee .Height =&_fgceb ;_adbcf :=img .BitsPerComponent ;_aedee .BitsPerComponent =&_adbcf ;_aedee .Filter =encoder ;_aedee .Stream =_bbfga ;if cs ==nil {if img .ColorComponents ==1{_aedee .ColorSpace =NewPdfColorspaceDeviceGray ();
|
||
if img .BitsPerComponent ==16{switch encoder .(type ){case *_eca .DCTEncoder :_aedee .ColorSpace =NewPdfColorspaceDeviceRGB ();_adbcf =8;_aedee .BitsPerComponent =&_adbcf ;};};}else if img .ColorComponents ==3{_aedee .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{switch encoder .(type ){case *_eca .DCTEncoder :_aedee .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_aedee .ColorSpace =NewPdfColorspaceDeviceCMYK ();};}else {return nil ,_da .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
|
||
};}else {_aedee .ColorSpace =cs ;};if len (img ._gcgb )!=0{_ecce :=NewXObjectImage ();_ecce .Filter =encoder ;_aaefa ,_ebabf :=encoder .EncodeBytes (img ._gcgb );if _ebabf !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ebabf );
|
||
return nil ,_ebabf ;};_ecce .Stream =_aaefa ;_ecce .BitsPerComponent =_aedee .BitsPerComponent ;_ecce .Width =&img .Width ;_ecce .Height =&img .Height ;_ecce .ColorSpace =NewPdfColorspaceDeviceGray ();_aedee .SMask =_ecce .ToPdfObject ();}else {_aedee .SMask =xobjIn .SMask ;
|
||
_aedee .ImageMask =xobjIn .ImageMask ;if _aedee .ColorSpace .GetNumComponents ()==1{_eeegb (_aedee );};};return _aedee ,nil ;};
|
||
|
||
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
|
||
func (_cgbeg *PdfReader )GetCatalogStructTreeRoot ()(_eca .PdfObject ,bool ){if _cgbeg ._affc ==nil {return nil ,false ;};_affaa :=_cgbeg ._affc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _affaa ,_affaa !=nil ;
|
||
};
|
||
|
||
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
|
||
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_eca .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_eca .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
|
||
};
|
||
|
||
// 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 (_cgdee *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ebgd []_dbb .TextEncoder ;var _fafe _dbb .CMapEncoder ;if _bfaec :=_cgdee .baseFields ()._gegfa ;_bfaec !=nil {_fafe =_dbb .NewCMapEncoder ("",nil ,_bfaec );};_fgee :=_cgdee .Encoder ();
|
||
if _fgee !=nil {switch _aeeca :=_fgee .(type ){case _dbb .SimpleEncoder :_fgeeb :=_aeeca .BaseName ();if _ ,_eegg :=_gfgfb [_fgeeb ];_eegg {_ebgd =append (_ebgd ,_fgee );};};};if len (_ebgd )==0{if _cgdee .baseFields ()._gegfa !=nil {_ebgd =append (_ebgd ,_fafe );
|
||
};if _fgee !=nil {_ebgd =append (_ebgd ,_fgee );};};var _gddd _dd .Buffer ;var _dcda int ;for _ ,_ffeg :=range data {var _fffac bool ;for _ ,_adbb :=range _ebgd {if _agbd :=_adbb .Encode (string (_ffeg ));len (_agbd )> 0{_gddd .Write (_agbd );_fffac =true ;
|
||
break ;};};if !_fffac {_ccb .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",_ffeg );
|
||
_dcda ++;};};if _dcda !=0{_ccb .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 ),_dcda ,_cgdee ,_ebgd );
|
||
};return _gddd .Bytes (),_dcda ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bcg *PdfAnnotationFileAttachment )ToPdfObject ()_eca .PdfObject {_bcg .PdfAnnotation .ToPdfObject ();_dgad :=_bcg ._cdc ;_feee :=_dgad .PdfObject .(*_eca .PdfObjectDictionary );_bcg .PdfAnnotationMarkup .appendToPdfDictionary (_feee );_feee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_feee .SetIfNotNil ("\u0046\u0053",_bcg .FS );_feee .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bcg .Name );return _dgad ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_ebeda *pdfCIDFontType2 )ToPdfObject ()_eca .PdfObject {if _ebeda ._dcgd ==nil {_ebeda ._dcgd =&_eca .PdfIndirectObject {};};_gafga :=_ebeda .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
|
||
_ebeda ._dcgd .PdfObject =_gafga ;if _ebeda .CIDSystemInfo !=nil {_gafga .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_ebeda .CIDSystemInfo );};if _ebeda .DW !=nil {_gafga .Set ("\u0044\u0057",_ebeda .DW );};if _ebeda .DW2 !=nil {_gafga .Set ("\u0044\u0057\u0032",_ebeda .DW2 );
|
||
};if _ebeda .W !=nil {_gafga .Set ("\u0057",_ebeda .W );};if _ebeda .W2 !=nil {_gafga .Set ("\u0057\u0032",_ebeda .W2 );};if _ebeda .CIDToGIDMap !=nil {_gafga .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_ebeda .CIDToGIDMap );};
|
||
return _ebeda ._dcgd ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_afgbb *PdfColorspaceCalRGB )ToPdfObject ()_eca .PdfObject {_gdaa :=&_eca .PdfObjectArray {};_gdaa .Append (_eca .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_cfggg :=_eca .MakeDict ();if _afgbb .WhitePoint !=nil {_dbc :=_eca .MakeArray (_eca .MakeFloat (_afgbb .WhitePoint [0]),_eca .MakeFloat (_afgbb .WhitePoint [1]),_eca .MakeFloat (_afgbb .WhitePoint [2]));
|
||
_cfggg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_dbc );}else {_ccb .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 _afgbb .BlackPoint !=nil {_bce :=_eca .MakeArray (_eca .MakeFloat (_afgbb .BlackPoint [0]),_eca .MakeFloat (_afgbb .BlackPoint [1]),_eca .MakeFloat (_afgbb .BlackPoint [2]));_cfggg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_bce );
|
||
};if _afgbb .Gamma !=nil {_eaed :=_eca .MakeArray (_eca .MakeFloat (_afgbb .Gamma [0]),_eca .MakeFloat (_afgbb .Gamma [1]),_eca .MakeFloat (_afgbb .Gamma [2]));_cfggg .Set ("\u0047\u0061\u006dm\u0061",_eaed );};if _afgbb .Matrix !=nil {_eeebf :=_eca .MakeArray (_eca .MakeFloat (_afgbb .Matrix [0]),_eca .MakeFloat (_afgbb .Matrix [1]),_eca .MakeFloat (_afgbb .Matrix [2]),_eca .MakeFloat (_afgbb .Matrix [3]),_eca .MakeFloat (_afgbb .Matrix [4]),_eca .MakeFloat (_afgbb .Matrix [5]),_eca .MakeFloat (_afgbb .Matrix [6]),_eca .MakeFloat (_afgbb .Matrix [7]),_eca .MakeFloat (_afgbb .Matrix [8]));
|
||
_cfggg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_eeebf );};_gdaa .Append (_cfggg );if _afgbb ._eceae !=nil {_afgbb ._eceae .PdfObject =_gdaa ;return _afgbb ._eceae ;};return _gdaa ;};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_daadd :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_daadd ;};
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
|
||
|
||
// 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 (_gddef *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_cgfgf :=_gddef .actualFont ();if _cgfgf ==nil {_ccb .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",_gddef ._dbgb );
|
||
return _ffd .CharMetrics {},false ;};if _baac ,_acgg :=_cgfgf .GetRuneMetrics (r );_acgg {return _baac ,true ;};if _adeg ,_cddc :=_gddef .GetFontDescriptor ();_cddc ==nil &&_adeg !=nil {return _ffd .CharMetrics {Wx :_adeg ._fdadf },true ;};_ccb .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",_gddef );
|
||
return _ffd .CharMetrics {},false ;};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_eca .PdfIndirectObject )*PdfOutlineItem {_gbegd :=PdfOutlineItem {};_gbegd ._dcfbf =&_gbegd ;_gbegd .Title =_eca .MakeString (title );_febgfb :=_eca .MakeArray ();_febgfb .Append (page );_febgfb .Append (_eca .MakeName ("\u0046\u0069\u0074"));
|
||
_gbegd .Dest =_febgfb ;return &_gbegd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fee *PdfActionGoToE )ToPdfObject ()_eca .PdfObject {_fee .PdfAction .ToPdfObject ();_fea :=_fee ._bee ;_edb :=_fea .PdfObject .(*_eca .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoToE )));if _fee .F !=nil {_edb .Set ("\u0046",_fee .F .ToPdfObject ());
|
||
};_edb .SetIfNotNil ("\u0044",_fee .D );_edb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fee .NewWindow );_edb .SetIfNotNil ("\u0054",_fee .T );return _fea ;};
|
||
|
||
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
|
||
func (_gffg *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _gffg ._ecfeba .GetRevisionNumber ()==0{return nil ,_da .New ("\u0070\u0072e\u0076\u0069\u006f\u0075\u0073\u0020\u0076\u0065\u0072\u0073\u0069\u006f\u006e\u0020\u0069\u0073\u0020\u006e\u006f\u0074\u0020\u0065xi\u0073\u0074");
|
||
};if _gedba ,_dcade :=_gffg ._dgedea [_gffg ];_dcade {return _gedba ,nil ;};_ddda ,_ffgg :=_gffg ._ecfeba .GetPreviousRevisionReadSeeker ();if _ffgg !=nil {return nil ,_ffgg ;};_dcgee ,_ffgg :=_cfbdee (_ddda ,_gffg ._bccfb ,_gffg ._fdbbc ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
|
||
if _ffgg !=nil {return nil ,_ffgg ;};_gffg ._bcgeg [_gffg ._ecfeba .GetRevisionNumber ()-1]=_dcgee ;_gffg ._dgedea [_gffg ]=_dcgee ;_dcgee ._dgedea =_gffg ._dgedea ;return _dcgee ,nil ;};
|
||
|
||
// AddCerts adds certificates to DSS.
|
||
func (_dbce *DSS )AddCerts (certs [][]byte )([]*_eca .PdfObjectStream ,error ){return _dbce .add (&_dbce .Certs ,_dbce ._aaed ,certs );};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;BitsPerFlag *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;};func (_bfcfe *LTV )getOCSPs (_bagb []*_ad .Certificate ,_ffec map[string ]*_ad .Certificate )([][]byte ,error ){_febgf :=make ([][]byte ,0,len (_bagb ));
|
||
for _ ,_gaad :=range _bagb {for _ ,_adggc :=range _gaad .OCSPServer {if _bfcfe .CertClient .IsCA (_gaad ){continue ;};_cgdab ,_bfbeeb :=_ffec [_gaad .Issuer .CommonName ];if !_bfbeeb {_ccb .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 ;};_ ,_bdbgd ,_gabb :=_bfcfe .OCSPClient .MakeRequest (_adggc ,_gaad ,_cgdab );if _gabb !=nil {_ccb .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",_gabb );
|
||
continue ;};_febgf =append (_febgf ,_bdbgd );};};return _febgf ,nil ;};func _eeegb (_aeea *XObjectImage )error {if _aeea .SMask ==nil {return nil ;};_gcace ,_bfagd :=_aeea .SMask .(*_eca .PdfObjectStream );if !_bfagd {_ccb .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 _eca .ErrTypeError ;};_bgfac :=_gcace .PdfObjectDictionary ;_efdcg :=_bgfac .Get ("\u004d\u0061\u0074t\u0065");if _efdcg ==nil {return nil ;};_dagbc ,_feagc :=_cbabf (_efdcg .(*_eca .PdfObjectArray ));if _feagc !=nil {return _feagc ;};_bfbca :=_eca .MakeArrayFromFloats ([]float64 {_dagbc });
|
||
_bgfac .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_bfbca );return nil ;};
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_eaf :=&PdfColorspaceCalGray {};_eaf .BlackPoint =[]float64 {0.0,0.0,0.0};_eaf .Gamma =1;return _eaf ;};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_fe *PdfAction )GetContext ()PdfModel {if _fe ==nil {return nil ;};return _fe ._cd ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_bfeff *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdac ,_acff :=_eca .GetNumbersAsFloat (objects );
|
||
if _acff !=nil {return nil ,_acff ;};return _bfeff .ColorFromFloats (_gdac );};
|
||
|
||
// ApplyStandard is used to apply changes required on the document to match the rules required by the input standard.
|
||
// The writer's content would be changed after all the document parts are already established during the Write method.
|
||
// A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would
|
||
// set up all rules required by that Profile.
|
||
func (_fgce *PdfWriter )ApplyStandard (optimizer StandardApplier ){_fgce ._bfgeb =optimizer };
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_agba *PdfColorspaceICCBased )GetNumComponents ()int {return _agba .N };
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_gbcdf pdfFontType3 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){_eccb :=_gbcdf .Encoder ();if _eccb ==nil {_ccb .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_gbcdf );
|
||
return _ffd .CharMetrics {},false ;};_gdadd ,_ddgac :=_eccb .RuneToCharcode (r );if !_ddgac {if r !=' '{_ccb .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 ,_gbcdf );
|
||
};return _ffd .CharMetrics {},false ;};_dbgfe ,_aeaec :=_gbcdf .GetCharMetrics (_gdadd );return _dbgfe ,_aeaec ;};func _aada (_ceadf *_eca .PdfObjectDictionary )(*PdfShadingType5 ,error ){_cbbacg :=PdfShadingType5 {};_ebaee :=_ceadf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _ebaee ==nil {_ccb .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 ;};_gafdce ,_accecd :=_ebaee .(*_eca .PdfObjectInteger );if !_accecd {_ccb .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",_ebaee );
|
||
return nil ,_eca .ErrTypeError ;};_cbbacg .BitsPerCoordinate =_gafdce ;_ebaee =_ceadf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _ebaee ==nil {_ccb .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 ;};_gafdce ,_accecd =_ebaee .(*_eca .PdfObjectInteger );if !_accecd {_ccb .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",_ebaee );
|
||
return nil ,_eca .ErrTypeError ;};_cbbacg .BitsPerComponent =_gafdce ;_ebaee =_ceadf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _ebaee ==nil {_ccb .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 ;};_gafdce ,_accecd =_ebaee .(*_eca .PdfObjectInteger );if !_accecd {_ccb .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",_ebaee );
|
||
return nil ,_eca .ErrTypeError ;};_cbbacg .VerticesPerRow =_gafdce ;_ebaee =_ceadf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _ebaee ==nil {_ccb .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 ;};_bcdbc ,_accecd :=_ebaee .(*_eca .PdfObjectArray );if !_accecd {_ccb .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",_ebaee );
|
||
return nil ,_eca .ErrTypeError ;};_cbbacg .Decode =_bcdbc ;if _ecfgg :=_ceadf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_ecfgg !=nil {_cbbacg .Function =[]PdfFunction {};if _cefgd ,_abafd :=_ecfgg .(*_eca .PdfObjectArray );_abafd {for _ ,_dgcca :=range _cefgd .Elements (){_eafc ,_gcbceb :=_febaf (_dgcca );
|
||
if _gcbceb !=nil {_ccb .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",_gcbceb );return nil ,_gcbceb ;};_cbbacg .Function =append (_cbbacg .Function ,_eafc );
|
||
};}else {_afede ,_abea :=_febaf (_ecfgg );if _abea !=nil {_ccb .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",_abea );return nil ,_abea ;
|
||
};_cbbacg .Function =append (_cbbacg .Function ,_afede );};};return &_cbbacg ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eegf *PdfAnnotationScreen )ToPdfObject ()_eca .PdfObject {_eegf .PdfAnnotation .ToPdfObject ();_ecbg :=_eegf ._cdc ;_aged :=_ecbg .PdfObject .(*_eca .PdfObjectDictionary );_aged .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_aged .SetIfNotNil ("\u0054",_eegf .T );_aged .SetIfNotNil ("\u004d\u004b",_eegf .MK );_aged .SetIfNotNil ("\u0041",_eegf .A );_aged .SetIfNotNil ("\u0041\u0041",_eegf .AA );return _ecbg ;};func (_fffeg *PdfWriter )setWriter (_dccfdb _beg .Writer ){_fffeg ._eggaf =_fffeg ._bggbc ;
|
||
_fffeg ._agbgb =_b .NewWriter (_dccfdb );};func _cdeeb ()*modelManager {_becac :=modelManager {};_becac ._dccab =map[PdfModel ]_eca .PdfObject {};_becac ._gddea =map[_eca .PdfObject ]PdfModel {};return &_becac ;};func (_accb *PdfReader )newPdfActionLaunchFromDict (_bbe *_eca .PdfObjectDictionary )(*PdfActionLaunch ,error ){_bff ,_dcca :=_efe (_bbe .Get ("\u0046"));
|
||
if _dcca !=nil {return nil ,_dcca ;};return &PdfActionLaunch {Win :_bbe .Get ("\u0057\u0069\u006e"),Mac :_bbe .Get ("\u004d\u0061\u0063"),Unix :_bbe .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_bbe .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_bff },nil ;
|
||
};func _fbeb (_ggdb *_eca .PdfObjectDictionary )(*PdfShadingType2 ,error ){_dgdad :=PdfShadingType2 {};_fceea :=_ggdb .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _fceea ==nil {_ccb .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 ;};_fafcd ,_bdbbb :=_fceea .(*_eca .PdfObjectArray );if !_bdbbb {_ccb .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",_fceea );
|
||
return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _fafcd .Len ()!=4{_ccb .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",_fafcd .Len ());
|
||
return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_dgdad .Coords =_fafcd ;if _adgf :=_ggdb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_adgf !=nil {_adgf =_eca .TraceToDirectObject (_adgf );
|
||
_deda ,_gacd :=_adgf .(*_eca .PdfObjectArray );if !_gacd {_ccb .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",_adgf );return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_dgdad .Domain =_deda ;};_fceea =_ggdb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fceea ==nil {_ccb .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 ;};_dgdad .Function =[]PdfFunction {};if _cafcb ,_afebg :=_fceea .(*_eca .PdfObjectArray );_afebg {for _ ,_edgae :=range _cafcb .Elements (){_dcgeg ,_abcfd :=_febaf (_edgae );if _abcfd !=nil {_ccb .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",_abcfd );
|
||
return nil ,_abcfd ;};_dgdad .Function =append (_dgdad .Function ,_dcgeg );};}else {_ebcba ,_dgfgc :=_febaf (_fceea );if _dgfgc !=nil {_ccb .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",_dgfgc );
|
||
return nil ,_dgfgc ;};_dgdad .Function =append (_dgdad .Function ,_ebcba );};if _cdddb :=_ggdb .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_cdddb !=nil {_cdddb =_eca .TraceToDirectObject (_cdddb );_dgeg ,_ffgeda :=_cdddb .(*_eca .PdfObjectArray );if !_ffgeda {_ccb .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",_cdddb );
|
||
return nil ,_eca .ErrTypeError ;};if _dgeg .Len ()!=2{_ccb .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",_dgeg .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_dgdad .Extend =_dgeg ;};return &_dgdad ,nil ;};func (_dcccb *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
|
||
|
||
// GetContainingPdfObject gets the primitive used to parse the color space.
|
||
func (_agebc *PdfColorspaceICCBased )GetContainingPdfObject ()_eca .PdfObject {return _agebc ._fdga };func _fbff (_cgce _eca .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_baecd :=NewPdfColorspaceSpecialSeparation ();if _fbgf ,_cefg :=_cgce .(*_eca .PdfIndirectObject );
|
||
_cefg {_baecd ._aabgg =_fbgf ;};_cgce =_eca .TraceToDirectObject (_cgce );_ebcg ,_aecdb :=_cgce .(*_eca .PdfObjectArray );if !_aecdb {return nil ,_g .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 _ebcg .Len ()!=4{return nil ,_g .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");};_cgce =_ebcg .Get (0);
|
||
_ddefa ,_aecdb :=_cgce .(*_eca .PdfObjectName );if !_aecdb {return nil ,_g .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 *_ddefa !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_g .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");
|
||
};_cgce =_ebcg .Get (1);_ddefa ,_aecdb =_cgce .(*_eca .PdfObjectName );if !_aecdb {return nil ,_g .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");
|
||
};_baecd .ColorantName =_ddefa ;_cgce =_ebcg .Get (2);_feea ,_aaac :=NewPdfColorspaceFromPdfObject (_cgce );if _aaac !=nil {return nil ,_aaac ;};_baecd .AlternateSpace =_feea ;_fffbd ,_aaac :=_febaf (_ebcg .Get (3));if _aaac !=nil {return nil ,_aaac ;};
|
||
_baecd .TintTransform =_fffbd ;return _baecd ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_gdfdd *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_gegfgf *PdfReader )GetOCProperties ()(_eca .PdfObject ,error ){_efddca :=_gegfgf ._affc ;_fbfgg :=_efddca .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_fbfgg =_eca .ResolveReference (_fbfgg );if !_gegfgf ._gggcg {_ecgdg :=_gegfgf .traverseObjectData (_fbfgg );
|
||
if _ecgdg !=nil {return nil ,_ecgdg ;};};return _fbfgg ,nil ;};const (_ebab =0x00001;_efbd =0x00002;_afdga =0x00004;_cbgb =0x00008;_eaccc =0x00020;_afdgf =0x00040;_afgfc =0x10000;_cdbgd =0x20000;_beaf =0x40000;);
|
||
|
||
// GetRevision returns the specific version of the PdfReader for the current Pdf document
|
||
func (_fbcc *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_fbgag :=_fbcc ._ecfeba .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _fbgag {return nil ,_da .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
|
||
};if revisionNumber ==_fbgag {return _fbcc ,nil ;};if _fbcc ._bcgeg [revisionNumber ]!=nil {return _fbcc ._bcgeg [revisionNumber ],nil ;};_acega :=_fbcc ;for _fdgdf :=_fbgag -1;_fdgdf >=revisionNumber ;_fdgdf --{_cgefg ,_aafad :=_acega .GetPreviousRevision ();
|
||
if _aafad !=nil {return nil ,_aafad ;};_fbcc ._bcgeg [_fdgdf ]=_cgefg ;_acega =_cgefg ;};return _acega ,nil ;};
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _eca .PdfObject ;T _eca .PdfObject ;Operation _eca .PdfObject ;};
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_dfab *modelManager )Register (primitive _eca .PdfObject ,model PdfModel ){_dfab ._dccab [model ]=primitive ;_dfab ._gddea [primitive ]=model ;};
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_gccb *PdfAnnotationLink )SetAction (action *PdfAction ){_gccb ._egc =action ;if action ==nil {_gccb .A =nil ;};};func (_fffb *PdfReader )newPdfAnnotationWatermarkFromDict (_gaab *_eca .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_cfa :=PdfAnnotationWatermark {};
|
||
_cfa .FixedPrint =_gaab .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_cfa ,nil ;};
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_ffdc :=NewPdfAction ();_dcf :=&PdfActionImportData {};_dcf .PdfAction =_ffdc ;_ffdc .SetContext (_dcf );return _dcf ;};type pdfCIDFontType0 struct{fontCommon ;_cdgg *_eca .PdfIndirectObject ;_dccca _dbb .TextEncoder ;
|
||
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_eca .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _eca .PdfObject ;W _eca .PdfObject ;DW2 _eca .PdfObject ;W2 _eca .PdfObject ;_ccfe map[_dbb .CharCode ]float64 ;_eegbc float64 ;};func (_fdea *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
|
||
|
||
// 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 _eca .PdfObjectArray )(*PdfRectangle ,error ){_addgb :=PdfRectangle {};if arr .Len ()!=4{return nil ,_da .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 _cecea error ;_addgb .Llx ,_cecea =_eca .GetNumberAsFloat (arr .Get (0));if _cecea !=nil {return nil ,_cecea ;};_addgb .Lly ,_cecea =_eca .GetNumberAsFloat (arr .Get (1));if _cecea !=nil {return nil ,_cecea ;};_addgb .Urx ,_cecea =_eca .GetNumberAsFloat (arr .Get (2));
|
||
if _cecea !=nil {return nil ,_cecea ;};_addgb .Ury ,_cecea =_eca .GetNumberAsFloat (arr .Get (3));if _cecea !=nil {return nil ,_cecea ;};return &_addgb ,nil ;};func (_dedca *PdfWriter )setDocInfo (_cgbfe _eca .PdfObject ){if _dedca .hasObject (_dedca ._fbegc ){delete (_dedca ._ceace ,_dedca ._fbegc );
|
||
delete (_dedca ._aeedc ,_dedca ._fbegc );for _ebdba ,_gefee :=range _dedca ._daecf {if _gefee ==_dedca ._fbegc {copy (_dedca ._daecf [_ebdba :],_dedca ._daecf [_ebdba +1:]);_dedca ._daecf [len (_dedca ._daecf )-1]=nil ;_dedca ._daecf =_dedca ._daecf [:len (_dedca ._daecf )-1];
|
||
break ;};};};_cbfea :=_eca .PdfIndirectObject {};_cbfea .PdfObject =_cgbfe ;_dedca ._fbegc =&_cbfea ;_dedca .addObject (&_cbfea );};
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_fecae *PdfPage )HasXObjectByName (name _eca .PdfObjectName )bool {_ceegc ,_cdgcg :=_fecae .Resources .XObject .(*_eca .PdfObjectDictionary );if !_cdgcg {return false ;};if _bafbd :=_ceegc .Get (name );_bafbd !=nil {return true ;};return false ;};
|
||
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_bdfgb :=&PdfPageResources {};_bdfgb ._gcbce =_eca .MakeDict ();return _bdfgb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gedc *PdfActionGoToR )ToPdfObject ()_eca .PdfObject {_gedc .PdfAction .ToPdfObject ();_cec :=_gedc ._bee ;_baf :=_cec .PdfObject .(*_eca .PdfObjectDictionary );_baf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeGoToR )));if _gedc .F !=nil {_baf .Set ("\u0046",_gedc .F .ToPdfObject ());
|
||
};_baf .SetIfNotNil ("\u0044",_gedc .D );_baf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gedc .NewWindow );return _cec ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgef *PdfAnnotationTrapNet )ToPdfObject ()_eca .PdfObject {_bgef .PdfAnnotation .ToPdfObject ();_bad :=_bgef ._cdc ;_eegb :=_bad .PdfObject .(*_eca .PdfObjectDictionary );_eegb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _bad ;};
|
||
|
||
// NewPdfReaderWithOpts creates a new PdfReader for an input io.ReadSeeker interface
|
||
// with a ReaderOpts.
|
||
// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
|
||
func NewPdfReaderWithOpts (rs _beg .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _fcdcf ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0057\u0069\u0074\u0068O\u0070\u0074\u0073";return _cfbdee (rs ,opts ,true ,_fcdcf );
|
||
};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_abcgd *PdfReader )GetPageLabels ()(_eca .PdfObject ,error ){_ceddad :=_eca .ResolveReference (_abcgd ._affc .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _ceddad ==nil {return nil ,nil ;};if !_abcgd ._gggcg {_fdaa :=_abcgd .traverseObjectData (_ceddad );
|
||
if _fdaa !=nil {return nil ,_fdaa ;};};return _ceddad ,nil ;};
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_cedg FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_cedg .Mask ()|fl .Mask ())};func (_bfg *PdfReader )newPdfAnnotationRedactFromDict (_ecbf *_eca .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_gbc :=PdfAnnotationRedact {};_effd ,_caeff :=_bfg .newPdfAnnotationMarkupFromDict (_ecbf );
|
||
if _caeff !=nil {return nil ,_caeff ;};_gbc .PdfAnnotationMarkup =_effd ;_gbc .QuadPoints =_ecbf .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_gbc .IC =_ecbf .Get ("\u0049\u0043");_gbc .RO =_ecbf .Get ("\u0052\u004f");_gbc .OverlayText =_ecbf .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");
|
||
_gbc .Repeat =_ecbf .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_gbc .DA =_ecbf .Get ("\u0044\u0041");_gbc .Q =_ecbf .Get ("\u0051");return &_gbc ,nil ;};func (_ccde *LTV )validateSig (_dcbga *PdfSignature )error {if _dcbga ==nil ||_dcbga .Contents ==nil ||len (_dcbga .Contents .Bytes ())==0{return _g .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_dcbga );
|
||
};return nil ;};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_edddb *Image )SetDecode (decode []float64 ){_edddb ._cfgaa =decode };
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _eca .PdfObject ;};
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_ce :=NewPdfAction ();_eg :=&PdfActionHide {};_eg .PdfAction =_ce ;_ce .SetContext (_eg );return _eg ;};
|
||
|
||
// SetNamedDestinations sets the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_ebcdd *PdfWriter )SetNamedDestinations (dests _eca .PdfObject )error {if dests ==nil {return nil ;};_ccb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
|
||
_ebcdd ._eeggd .Set ("\u0044\u0065\u0073t\u0073",dests );return _ebcdd .addObjects (dests );};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_gfde *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ccb .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_da .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func (_gdbb *PdfSignature )extractChainFromCert ()([]*_ad .Certificate ,error ){var _debd *_eca .PdfObjectArray ;switch _cbag :=_gdbb .Cert .(type ){case *_eca .PdfObjectString :_debd =_eca .MakeArray (_cbag );
|
||
case *_eca .PdfObjectArray :_debd =_cbag ;default:return nil ,_g .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",_cbag );
|
||
};var _ccdcg _dd .Buffer ;for _ ,_fgagf :=range _debd .Elements (){_dfdgb ,_gfega :=_eca .GetString (_fgagf );if !_gfega {return nil ,_g .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",_fgagf );
|
||
};if _ ,_cbbae :=_ccdcg .Write (_dfdgb .Bytes ());_cbbae !=nil {return nil ,_cbbae ;};};return _ad .ParseCertificates (_ccdcg .Bytes ());};
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_cfed *PdfInfo )GetCustomInfo (name string )*_eca .PdfObjectString {var _acdfa *_eca .PdfObjectString ;if _cfed ._bcfd ==nil {return _acdfa ;};if _bfgb ,_dcegg :=_cfed ._bcfd .Get (*_eca .MakeName (name )).(*_eca .PdfObjectString );_dcegg {_acdfa =_bfgb ;
|
||
};return _acdfa ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebfb *PdfAnnotationSound )ToPdfObject ()_eca .PdfObject {_ebfb .PdfAnnotation .ToPdfObject ();_bcc :=_ebfb ._cdc ;_fbgg :=_bcc .PdfObject .(*_eca .PdfObjectDictionary );_ebfb .PdfAnnotationMarkup .appendToPdfDictionary (_fbgg );_fbgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_fbgg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_ebfb .Sound );_fbgg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ebfb .Name );return _bcc ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_ffed *PdfColorspaceSpecialPattern )ToPdfObject ()_eca .PdfObject {if _ffed .UnderlyingCS ==nil {return _eca .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_effde :=_eca .MakeArray (_eca .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));
|
||
_effde .Append (_ffed .UnderlyingCS .ToPdfObject ());if _ffed ._adcgc !=nil {_ffed ._adcgc .PdfObject =_effde ;return _ffed ._adcgc ;};return _effde ;};
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _eca .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _eca .PdfObject ;Contents _eca .PdfObject ;
|
||
Rotate *int64 ;Group _eca .PdfObject ;Thumb _eca .PdfObject ;B _eca .PdfObject ;Dur _eca .PdfObject ;Trans _eca .PdfObject ;AA _eca .PdfObject ;Metadata _eca .PdfObject ;PieceInfo _eca .PdfObject ;StructParents _eca .PdfObject ;ID _eca .PdfObject ;PZ _eca .PdfObject ;
|
||
SeparationInfo _eca .PdfObject ;Tabs _eca .PdfObject ;TemplateInstantiated _eca .PdfObject ;PresSteps _eca .PdfObject ;UserUnit _eca .PdfObject ;VP _eca .PdfObject ;Annots _eca .PdfObject ;_gabcd []*PdfAnnotation ;_agaea *_eca .PdfObjectDictionary ;_aedef *_eca .PdfIndirectObject ;
|
||
_gbaec _eca .PdfObjectDictionary ;_cdgeb *PdfReader ;};
|
||
|
||
// 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 (_dfeg *PdfPage )SetContentStreams (cStreams []string ,encoder _eca .StreamEncoder )error {if len (cStreams )==0{_dfeg .Contents =nil ;return nil ;};if encoder ==nil {encoder =_eca .NewRawEncoder ();};var _gaabg []*_eca .PdfObjectStream ;for _ ,_eegcd :=range cStreams {_geccc :=&_eca .PdfObjectStream {};
|
||
_egaff :=encoder .MakeStreamDict ();_eagf ,_bcafe :=encoder .EncodeBytes ([]byte (_eegcd ));if _bcafe !=nil {return _bcafe ;};_egaff .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_eagf ))));_geccc .PdfObjectDictionary =_egaff ;
|
||
_geccc .Stream =_eagf ;_gaabg =append (_gaabg ,_geccc );};if len (_gaabg )==1{_dfeg .Contents =_gaabg [0];}else {_fefc :=_eca .MakeArray ();for _ ,_fcaee :=range _gaabg {_fefc .Append (_fcaee );};_dfeg .Contents =_fefc ;};return nil ;};
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_abca *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_abed *PdfReader )newPdfAnnotationCircleFromDict (_fgcfg *_eca .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_fbecb :=PdfAnnotationCircle {};_daba ,_cff :=_abed .newPdfAnnotationMarkupFromDict (_fgcfg );
|
||
if _cff !=nil {return nil ,_cff ;};_fbecb .PdfAnnotationMarkup =_daba ;_fbecb .BS =_fgcfg .Get ("\u0042\u0053");_fbecb .IC =_fgcfg .Get ("\u0049\u0043");_fbecb .BE =_fgcfg .Get ("\u0042\u0045");_fbecb .RD =_fgcfg .Get ("\u0052\u0044");return &_fbecb ,nil ;
|
||
};
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_feeed *PdfColorDeviceCMYK )K ()float64 {return _feeed [3]};
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_feebf *Image )ColorAt (x ,y int )(_cf .Color ,error ){_cagde :=_bbg .BytesPerLine (int (_feebf .Width ),int (_feebf .BitsPerComponent ),_feebf .ColorComponents );switch _feebf .ColorComponents {case 1:return _bbg .ColorAtGrayscale (x ,y ,int (_feebf .BitsPerComponent ),_cagde ,_feebf .Data ,_feebf ._cfgaa );
|
||
case 3:return _bbg .ColorAtNRGBA (x ,y ,int (_feebf .Width ),_cagde ,int (_feebf .BitsPerComponent ),_feebf .Data ,_feebf ._gcgb ,_feebf ._cfgaa );case 4:return _bbg .ColorAtCMYK (x ,y ,int (_feebf .Width ),_feebf .Data ,_feebf ._cfgaa );};_ccb .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",_feebf .ColorComponents ,_feebf .BitsPerComponent );
|
||
return nil ,_da .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");};
|
||
|
||
// 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 (_deff *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccfb ,_eeeb :=_eca .GetNumbersAsFloat (objects );
|
||
if _eeeb !=nil {return nil ,_eeeb ;};return _deff .ColorFromFloats (_ccfb );};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_ade :=NewPdfAnnotation ();_bbgfc :=&PdfAnnotationRichMedia {};_bbgfc .PdfAnnotation =_ade ;_ade .SetContext (_bbgfc );return _bbgfc ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_gddgc *modelManager )GetModelFromPrimitive (primitive _eca .PdfObject )PdfModel {model ,_dgfga :=_gddgc ._gddea [primitive ];if !_dgfga {return nil ;};return model ;};
|
||
|
||
// GetCatalogMarkInfo gets catalog MarkInfo object.
|
||
func (_gbacb *PdfReader )GetCatalogMarkInfo ()(_eca .PdfObject ,bool ){if _gbacb ._affc ==nil {return nil ,false ;};_dcage :=_gbacb ._affc .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _dcage ,_dcage !=nil ;};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_cacb *PdfWriter )SetPageLabels (pageLabels _eca .PdfObject )error {if pageLabels ==nil {return nil ;};_ccb .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");
|
||
_cacb ._eeggd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _cacb .addObjects (pageLabels );};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_gagfc *PdfPageResources )HasFontByName (keyName _eca .PdfObjectName )bool {_ ,_gccgb :=_gagfc .GetFontByName (keyName );return _gccgb ;};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};func (_dcgc *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_efde *PdfFieldButton )ToPdfObject ()_eca .PdfObject {_efde .PdfField .ToPdfObject ();_ggab :=_efde ._geaa ;_gfa :=_ggab .PdfObject .(*_eca .PdfObjectDictionary );_gfa .Set ("\u0046\u0054",_eca .MakeName ("\u0042\u0074\u006e"));if _efde .Opt !=nil {_gfa .Set ("\u004f\u0070\u0074",_efde .Opt );
|
||
};return _ggab ;};func _decbc (_dfec _eca .PdfObject )(*fontFile ,error ){_ccb .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",_dfec );
|
||
_ddfb :=&fontFile {};_dfec =_eca .TraceToDirectObject (_dfec );_ffca ,_facd :=_dfec .(*_eca .PdfObjectStream );if !_facd {_ccb .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",_dfec );
|
||
return nil ,_eca .ErrTypeError ;};_cfgbf :=_ffca .PdfObjectDictionary ;_bcabb ,_dadag :=_eca .DecodeStream (_ffca );if _dadag !=nil {return nil ,_dadag ;};_bdgga ,_facd :=_eca .GetNameVal (_cfgbf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_facd {_ddfb ._dcgda =_bdgga ;
|
||
if _bdgga =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ccb .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 ;};};_bbged ,_ :=_eca .GetIntVal (_cfgbf .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_ccgac ,_ :=_eca .GetIntVal (_cfgbf .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _bbged > len (_bcabb ){_bbged =len (_bcabb );
|
||
};if _bbged +_ccgac > len (_bcabb ){_ccgac =len (_bcabb )-_bbged ;};_efbbd :=_bcabb [:_bbged ];var _ggaf []byte ;if _ccgac > 0{_ggaf =_bcabb [_bbged :_bbged +_ccgac ];};if _bbged > 0&&_ccgac > 0{_eabba :=_ddfb .loadFromSegments (_efbbd ,_ggaf );if _eabba !=nil {return nil ,_eabba ;
|
||
};};return _ddfb ,nil ;};func _dbed (_adae *PdfPage ){_ggccf :=_aag .GetLicenseKey ();if _ggccf !=nil &&_ggccf .IsLicensed (){return ;};_cbbbg :=_eca .PdfObjectName ("\u0055\u0046\u0031");if !_adae .Resources .HasFontByName (_cbbbg ){_adae .Resources .SetFontByName (_cbbbg ,DefaultFont ().ToPdfObject ());
|
||
};var _afgbg []string ;_afgbg =append (_afgbg ,"\u0071");_afgbg =append (_afgbg ,"\u0042\u0054");_afgbg =append (_afgbg ,_g .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_cbbbg .String ()));_afgbg =append (_afgbg ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
|
||
_afgbg =append (_afgbg ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_cefaa :="\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";
|
||
_afgbg =append (_afgbg ,_g .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_cefaa ));_afgbg =append (_afgbg ,"\u0045\u0054");_afgbg =append (_afgbg ,"\u0051");_bcccd :=_ec .Join (_afgbg ,"\u000a");_adae .AddContentStreamByString (_bcccd );_adae .ToPdfObject ();
|
||
};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_dggcc *PdfPageResources )AddExtGState (gsName _eca .PdfObjectName ,gsDict _eca .PdfObject )error {if _dggcc .ExtGState ==nil {_dggcc .ExtGState =_eca .MakeDict ();};_bafcb :=_dggcc .ExtGState ;_fcbeg ,_bbedcd :=_eca .TraceToDirectObject (_bafcb ).(*_eca .PdfObjectDictionary );
|
||
if !_bbedcd {_ccb .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",_bafcb ,_eca .TraceToDirectObject (_bafcb ));
|
||
return _eca .ErrTypeError ;};_fcbeg .Set (gsName ,gsDict );return nil ;};
|
||
|
||
// PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color
|
||
// spaces, except they can contain an arbitrary number of color components.
|
||
/*
|
||
Format: [/DeviceN names alternateSpace tintTransform]
|
||
or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
*/
|
||
type PdfColorspaceDeviceN struct{ColorantNames *_eca .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_bded *_eca .PdfIndirectObject ;};func (_fccde *PdfPage )getParentResources ()(*PdfPageResources ,error ){_fbeca :=_fccde .Parent ;
|
||
for _fbeca !=nil {_fdcf ,_ggfac :=_eca .GetDict (_fbeca );if !_ggfac {_ccb .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 ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if _bdded :=_fdcf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_bdded !=nil {_ccbae ,_gbegc :=_eca .GetDict (_bdded );if !_gbegc {return nil ,_da .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");
|
||
};_agefc ,_eegdb :=NewPdfPageResourcesFromDict (_ccbae );if _eegdb !=nil {return nil ,_eegdb ;};return _agefc ,nil ;};_fbeca =_fdcf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _eca .PdfObject ;ColorSpace _eca .PdfObject ;Pattern _eca .PdfObject ;Shading _eca .PdfObject ;XObject _eca .PdfObject ;Font _eca .PdfObject ;ProcSet _eca .PdfObject ;Properties _eca .PdfObject ;_gcbce *_eca .PdfObjectDictionary ;
|
||
_faccea *PdfPageResourcesColorspaces ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bca *PdfActionLaunch )ToPdfObject ()_eca .PdfObject {_bca .PdfAction .ToPdfObject ();_eba :=_bca ._bee ;_bfc :=_eba .PdfObject .(*_eca .PdfObjectDictionary );_bfc .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeLaunch )));if _bca .F !=nil {_bfc .Set ("\u0046",_bca .F .ToPdfObject ());
|
||
};_bfc .SetIfNotNil ("\u0057\u0069\u006e",_bca .Win );_bfc .SetIfNotNil ("\u004d\u0061\u0063",_bca .Mac );_bfc .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bca .Unix );_bfc .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bca .NewWindow );return _eba ;
|
||
};
|
||
|
||
// FieldImageProvider provides fields images for specified fields.
|
||
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_cebe *pdfFontType3 )ToPdfObject ()_eca .PdfObject {if _cebe ._gcggc ==nil {_cebe ._gcggc =&_eca .PdfIndirectObject {};};_ddfc :=_cebe .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_cebe ._gcggc .PdfObject =_ddfc ;if _cebe .FirstChar !=nil {_ddfc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_cebe .FirstChar );
|
||
};if _cebe .LastChar !=nil {_ddfc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_cebe .LastChar );};if _cebe .Widths !=nil {_ddfc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_cebe .Widths );};if _cebe .Encoding !=nil {_ddfc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cebe .Encoding );
|
||
}else if _cebe ._aeefc !=nil {_dfbbg :=_cebe ._aeefc .ToPdfObject ();if _dfbbg !=nil {_ddfc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dfbbg );};};if _cebe .FontBBox !=nil {_ddfc .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cebe .FontBBox );
|
||
};if _cebe .FontMatrix !=nil {_ddfc .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_cebe .FontMatrix );};if _cebe .CharProcs !=nil {_ddfc .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_cebe .CharProcs );};if _cebe .Resources !=nil {_ddfc .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cebe .Resources );
|
||
};return _cebe ._gcggc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbb *PdfActionSound )ToPdfObject ()_eca .PdfObject {_cbb .PdfAction .ToPdfObject ();_dgb :=_cbb ._bee ;_ggb :=_dgb .PdfObject .(*_eca .PdfObjectDictionary );_ggb .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeSound )));_ggb .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_cbb .Sound );
|
||
_ggb .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_cbb .Volume );_ggb .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_cbb .Synchronous );_ggb .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_cbb .Repeat );_ggb .SetIfNotNil ("\u004d\u0069\u0078",_cbb .Mix );
|
||
return _dgb ;};
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _eca .PdfObject ;NewWindow _eca .PdfObject ;};func (_bgcf *PdfReader )newPdfActionGotoFromDict (_cca *_eca .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cca .Get ("\u0044")},nil ;
|
||
};
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_fgggf *PdfPattern )IsTiling ()bool {return _fgggf .PatternType ==1};
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_ebfcb *PdfColorDeviceRGB )G ()float64 {return _ebfcb [1]};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_cfgg *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_dced :=_de .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_dced *_cfgg .A ()),uint32 (_dced *_cfgg .B ()),uint32 (_dced *_cfgg .C ())};};
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_eca .PdfObjectDictionary )(*PdfPageResources ,error ){_ddbdd :=NewPdfPageResources ();if _fecdb :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fecdb !=nil {_ddbdd .ExtGState =_fecdb ;};if _dafba :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_dafba !=nil &&!_eca .IsNullObject (_dafba ){_ddbdd .ColorSpace =_dafba ;};if _adggf :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_adggf !=nil {_ddbdd .Pattern =_adggf ;};if _deed :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_deed !=nil {_ddbdd .Shading =_deed ;
|
||
};if _gfacc :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_gfacc !=nil {_ddbdd .XObject =_gfacc ;};if _aebaeb :=_eca .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_aebaeb !=nil {_ddbdd .Font =_aebaeb ;};if _fcadc :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_fcadc !=nil {_ddbdd .ProcSet =_fcadc ;};if _bcdgc :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_bcdgc !=nil {_ddbdd .Properties =_bcdgc ;};return _ddbdd ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bdfcg *Permissions )ToPdfObject ()_eca .PdfObject {return _bdfcg ._bffgb };
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_fbcb *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_fdgee :=_de .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_fdgee *_fbcb .R ()),uint32 (_fdgee *_fbcb .G ()),uint32 (_fdgee *_fbcb .B ())};};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_cgacf *PdfOutlineItem )ToPdfObject ()_eca .PdfObject {_cfdd :=_cgacf ._becge ;_befbc :=_cfdd .PdfObject .(*_eca .PdfObjectDictionary );_befbc .Set ("\u0054\u0069\u0074l\u0065",_cgacf .Title );if _cgacf .A !=nil {_befbc .Set ("\u0041",_cgacf .A );
|
||
};if _ceaba :=_befbc .Get ("\u0053\u0045");_ceaba !=nil {_befbc .Remove ("\u0053\u0045");};if _cgacf .C !=nil {_befbc .Set ("\u0043",_cgacf .C );};if _cgacf .Dest !=nil {_befbc .Set ("\u0044\u0065\u0073\u0074",_cgacf .Dest );};if _cgacf .F !=nil {_befbc .Set ("\u0046",_cgacf .F );
|
||
};if _cgacf .Count !=nil {_befbc .Set ("\u0043\u006f\u0075n\u0074",_eca .MakeInteger (*_cgacf .Count ));};if _cgacf .Next !=nil {_befbc .Set ("\u004e\u0065\u0078\u0074",_cgacf .Next .ToPdfObject ());};if _cgacf .First !=nil {_befbc .Set ("\u0046\u0069\u0072s\u0074",_cgacf .First .ToPdfObject ());
|
||
};if _cgacf .Prev !=nil {_befbc .Set ("\u0050\u0072\u0065\u0076",_cgacf .Prev .GetContext ().GetContainingPdfObject ());};if _cgacf .Last !=nil {_befbc .Set ("\u004c\u0061\u0073\u0074",_cgacf .Last .GetContext ().GetContainingPdfObject ());};if _cgacf .Parent !=nil {_befbc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgacf .Parent .GetContext ().GetContainingPdfObject ());
|
||
};return _cfdd ;};
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_aeb :=NewPdfAnnotation ();_efc :=&PdfAnnotationLink {};_efc .PdfAnnotation =_aeb ;_aeb .SetContext (_efc );return _efc ;};
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_cdfe *PdfPage )ToPdfObject ()_eca .PdfObject {_adba :=_cdfe ._aedef ;_cdfe .GetPageDict ();return _adba ;};func (_fadac *PdfWriter )addObjects (_fbgfa _eca .PdfObject )error {_ccb .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");
|
||
if _egdbg ,_ffgfdd :=_fbgfa .(*_eca .PdfIndirectObject );_ffgfdd {_ccb .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_ccb .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_fbgfa ,_egdbg );_ccb .Log .Trace ("\u002d\u0020\u0025\u0073",_egdbg .PdfObject );
|
||
if _fadac .addObject (_egdbg ){_bdcdf :=_fadac .addObjects (_egdbg .PdfObject );if _bdcdf !=nil {return _bdcdf ;};};return nil ;};if _dafc ,_abdef :=_fbgfa .(*_eca .PdfObjectStream );_abdef {_ccb .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ccb .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_fbgfa ,_fbgfa );
|
||
if _fadac .addObject (_dafc ){_acdaa :=_fadac .addObjects (_dafc .PdfObjectDictionary );if _acdaa !=nil {return _acdaa ;};};return nil ;};if _egdggg ,_eeaddb :=_fbgfa .(*_eca .PdfObjectDictionary );_eeaddb {_ccb .Log .Trace ("\u0044\u0069\u0063\u0074");
|
||
_ccb .Log .Trace ("\u002d\u0020\u0025\u0073",_fbgfa );for _ ,_cabcb :=range _egdggg .Keys (){_fffge :=_egdggg .Get (_cabcb );if _dgcce ,_eafa :=_fffge .(*_eca .PdfObjectReference );_eafa {_fffge =_dgcce .Resolve ();_egdggg .Set (_cabcb ,_fffge );};if _cabcb !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _fggfb :=_fadac .addObjects (_fffge );
|
||
_fggfb !=nil {return _fggfb ;};}else {if _ ,_dfgcg :=_fffge .(*_eca .PdfObjectNull );_dfgcg {continue ;};if _bcbea :=_fadac .hasObject (_fffge );!_bcbea {_ccb .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",_fffge ,_fffge ,_fffge );
|
||
_fadac ._cbfcb [_fffge ]=append (_fadac ._cbfcb [_fffge ],_egdggg );};};};return nil ;};if _abedc ,_cceg :=_fbgfa .(*_eca .PdfObjectArray );_cceg {_ccb .Log .Trace ("\u0041\u0072\u0072a\u0079");_ccb .Log .Trace ("\u002d\u0020\u0025\u0073",_fbgfa );if _abedc ==nil {return _da .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _cgcde ,_cceaa :=range _abedc .Elements (){if _ddcab ,_aacgf :=_cceaa .(*_eca .PdfObjectReference );_aacgf {_cceaa =_ddcab .Resolve ();_abedc .Set (_cgcde ,_cceaa );};if _dcab :=_fadac .addObjects (_cceaa );_dcab !=nil {return _dcab ;};};return nil ;
|
||
};if _ ,_fbfb :=_fbgfa .(*_eca .PdfObjectReference );_fbfb {_ccb .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",_fbgfa );
|
||
return _da .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_effa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _afgdd []float64 ;for _bddbf :=0;_bddbf < _effa .GetNumComponents ();_bddbf ++{_afgdd =append (_afgdd ,0.0,1.0);};return _afgdd ;};func (_bgffg *PdfReader )newPdfAnnotationTrapNetFromDict (_ccbe *_eca .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_eea :=PdfAnnotationTrapNet {};
|
||
return &_eea ,nil ;};
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _eca .PdfObject ;Dest _eca .PdfObject ;H _eca .PdfObject ;PA _eca .PdfObject ;QuadPoints _eca .PdfObject ;BS _eca .PdfObject ;_egc *PdfAction ;_gagb *PdfReader ;};
|
||
|
||
// 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 ;func _gaged (_ebccb []*_eca .PdfObjectStream )*_eca .PdfObjectArray {if len (_ebccb )==0{return nil ;};_dbgfda :=make ([]_eca .PdfObject ,0,len (_ebccb ));for _ ,_gcbfc :=range _ebccb {_dbgfda =append (_dbgfda ,_gcbfc );
|
||
};return _eca .MakeArray (_dbgfda ...);};
|
||
|
||
// NewCustomPdfOutputIntent creates a new custom PdfOutputIntent.
|
||
func NewCustomPdfOutputIntent (outputCondition ,outputConditionIdentifier ,info string ,destOutputProfile []byte ,colorComponents int )*PdfOutputIntent {return &PdfOutputIntent {Type :"\u004f\u0075\u0074p\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074",OutputCondition :outputCondition ,OutputConditionIdentifier :outputConditionIdentifier ,Info :info ,DestOutputProfile :destOutputProfile ,_bfbdb :_eca .MakeDict (),ColorComponents :colorComponents };
|
||
};func _cfbdee (_ebedg _beg .ReadSeeker ,_beda *ReaderOpts ,_daeeb bool ,_gdbc string )(*PdfReader ,error ){if _beda ==nil {_beda =NewReaderOpts ();};_fgeebe :=*_beda ;_bdgcd :=&PdfReader {_eacag :_ebedg ,_fgbbd :map[_eca .PdfObject ]struct{}{},_dcddd :_cdeeb (),_gggcg :_beda .LazyLoad ,_cgfcc :_beda .ComplianceMode ,_fdbbc :_daeeb ,_bccfb :&_fgeebe };
|
||
_fbdgf ,_acda :=_agcee ("\u0072");if _acda !=nil {return nil ,_acda ;};_acda =_aag .Track (_fbdgf ,_gdbc );if _acda !=nil {return nil ,_acda ;};_bdgcd ._ggeed =_fbdgf ;var _bbcbg *_eca .PdfParser ;if !_bdgcd ._cgfcc {_bbcbg ,_acda =_eca .NewParser (_ebedg );
|
||
}else {_bbcbg ,_acda =_eca .NewCompliancePdfParser (_ebedg );};if _acda !=nil {return nil ,_acda ;};_bdgcd ._ecfeba =_bbcbg ;_aegfc ,_acda :=_bdgcd .IsEncrypted ();if _acda !=nil {return nil ,_acda ;};if !_aegfc {_acda =_bdgcd .loadStructure ();if _acda !=nil {return nil ,_acda ;
|
||
};}else if _daeeb {_fbgbf ,_abbge :=_bdgcd .Decrypt ([]byte (_beda .Password ));if _abbge !=nil {return nil ,_abbge ;};if !_fbgbf {return nil ,_da .New ("\u0055\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f \u0064\u0065c\u0072\u0079\u0070\u0074\u0020\u0070\u0061\u0073\u0073w\u006f\u0072\u0064\u0020p\u0072\u006f\u0074\u0065\u0063\u0074\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u002d\u0020\u006e\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0073\u0070\u0065\u0063\u0069\u0066y\u0020\u0070\u0061s\u0073\u0020\u0074\u006f\u0020\u0044\u0065\u0063\u0072\u0079\u0070\u0074");
|
||
};};_bdgcd ._dgedea =make (map[*PdfReader ]*PdfReader );_bdgcd ._bcgeg =make ([]*PdfReader ,_bbcbg .GetRevisionNumber ());return _bdgcd ,nil ;};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_fggeb *fontFile )String ()string {_cbdda :="\u005b\u004e\u006f\u006e\u0065\u005d";if _fggeb ._eggeg !=nil {_cbdda =_fggeb ._eggeg .String ();};return _g .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_fggeb ._gfafb ,_cbdda );
|
||
};func (_dbcf *PdfWriter )writeDocumentVersion (){if _dbcf ._ccdgb {_dbcf .writeString ("\u000a");}else {_dbcf .writeString (_g .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_dbcf ._dgab .Major ,_dbcf ._dgab .Minor ));
|
||
_dbcf .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _eca .PdfObject )(*PdfFont ,error ){return _bbdgf (fontObj ,true )};
|
||
|
||
// 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 _eca .PdfObject ;_eaea []byte ;_dbcc *_eca .PdfIndirectObject ;};
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;IC _eca .PdfObject ;RO _eca .PdfObject ;OverlayText _eca .PdfObject ;Repeat _eca .PdfObject ;DA _eca .PdfObject ;Q _eca .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fcef *PdfAnnotationUnderline )ToPdfObject ()_eca .PdfObject {_fcef .PdfAnnotation .ToPdfObject ();_acgd :=_fcef ._cdc ;_daccc :=_acgd .PdfObject .(*_eca .PdfObjectDictionary );_fcef .PdfAnnotationMarkup .appendToPdfDictionary (_daccc );_daccc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_daccc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fcef .QuadPoints );return _acgd ;};
|
||
|
||
// 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 ){_fdbe ,_eabgd :=_efg .Open (filePath );if _eabgd !=nil {_ccb .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_eabgd );
|
||
return nil ,_eabgd ;};defer _fdbe .Close ();return NewCompositePdfFontFromTTF (_fdbe );};
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_bffef *PdfPageResources )GetXObjectImageByName (keyName _eca .PdfObjectName )(*XObjectImage ,error ){_dbcbd ,_ccdda :=_bffef .GetXObjectByName (keyName );if _dbcbd ==nil {return nil ,nil ;};if _ccdda !=XObjectTypeImage {return nil ,_da .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_faffg ,_becdc :=NewXObjectImageFromStream (_dbcbd );if _becdc !=nil {return nil ,_becdc ;};return _faffg ,nil ;};
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _eca .PdfObject ;MK _eca .PdfObject ;A _eca .PdfObject ;AA _eca .PdfObject ;};
|
||
|
||
// PdfModel is a higher level PDF construct which can be collapsed into a PdfObject.
|
||
// Each PdfModel has an underlying PdfObject and vice versa (one-to-one).
|
||
// Under normal circumstances there should only be one copy of each.
|
||
// Copies can be made, but care must be taken to do it properly.
|
||
type PdfModel interface{ToPdfObject ()_eca .PdfObject ;GetContainingPdfObject ()_eca .PdfObject ;};
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_gdfe *PdfAppender )WriteToFile (outputPath string )error {_bdfc ,_gaacf :=_efg .Create (outputPath );if _gaacf !=nil {return _gaacf ;};defer _bdfc .Close ();return _gdfe .Write (_bdfc );};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_cdeb *PdfReader )GetTrailer ()(*_eca .PdfObjectDictionary ,error ){_cdcac :=_cdeb ._ecfeba .GetTrailer ();if _cdcac ==nil {return nil ,_da .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _cdcac ,nil ;
|
||
};func (_bfcf *PdfFilespec )getDict ()*_eca .PdfObjectDictionary {if _efca ,_afceb :=_bfcf ._ggdg .(*_eca .PdfIndirectObject );_afceb {_cebf ,_bgcbg :=_efca .PdfObject .(*_eca .PdfObjectDictionary );if !_bgcbg {return nil ;};return _cebf ;}else if _efcc ,_cebad :=_bfcf ._ggdg .(*_eca .PdfObjectDictionary );
|
||
_cebad {return _efcc ;}else {_ccb .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",_bfcf ._ggdg );
|
||
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 ;_gefbg []byte ;_acbe []uint32 ;_ggde *_eca .PdfObjectStream ;};
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_ggaded *PdfReader )GetNumPages ()(int ,error ){if _ggaded ._ecfeba .GetCrypter ()!=nil &&!_ggaded ._ecfeba .IsAuthenticated (){return 0,_g .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 (_ggaded ._gfabb ),nil ;};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_gabg *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_fcafa ,_dgfda :=color .(*PdfColorCalGray );if !_dgfda {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_fcafa .Val ();X :=_gabg .WhitePoint [0]*_de .Pow (ANorm ,_gabg .Gamma );Y :=_gabg .WhitePoint [1]*_de .Pow (ANorm ,_gabg .Gamma );
|
||
Z :=_gabg .WhitePoint [2]*_de .Pow (ANorm ,_gabg .Gamma );_fadf :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ecdc :=-0.969256*X +1.875992*Y +0.041556*Z ;_fbfc :=0.055648*X +-0.204043*Y +1.057311*Z ;_fadf =_de .Min (_de .Max (_fadf ,0),1.0);_ecdc =_de .Min (_de .Max (_ecdc ,0),1.0);
|
||
_fbfc =_de .Min (_de .Max (_fbfc ,0),1.0);return NewPdfColorDeviceRGB (_fadf ,_ecdc ,_fbfc ),nil ;};func (_gddce *PdfWriter )writeTrailer (_gcegb int ){_gddce .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _beffc :=0;_beffc <=_gcegb ;{for ;_beffc <=_gcegb ;
|
||
_beffc ++{_aaaeb ,_beded :=_gddce ._eaad [_beffc ];if _beded &&(!_gddce ._ccdgb ||_gddce ._ccdgb &&(_aaaeb .Type ==1&&_aaaeb .Offset >=_gddce ._ffeaf ||_aaaeb .Type ==0)){break ;};};var _fede int ;for _fede =_beffc +1;_fede <=_gcegb ;_fede ++{_eecfd ,_dfega :=_gddce ._eaad [_fede ];
|
||
if _dfega &&(!_gddce ._ccdgb ||_gddce ._ccdgb &&(_eecfd .Type ==1&&_eecfd .Offset > _gddce ._ffeaf )){continue ;};break ;};_abdfg :=_g .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_beffc ,_fede -_beffc );_gddce .writeString (_abdfg );for _deec :=_beffc ;
|
||
_deec < _fede ;_deec ++{_ggdc :=_gddce ._eaad [_deec ];switch _ggdc .Type {case 0:_abdfg =_g .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_gddce .writeString (_abdfg );case 1:_abdfg =_g .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_ggdc .Offset ,0);
|
||
_gddce .writeString (_abdfg );};};_beffc =_fede +1;};_caae :=_eca .MakeDict ();_caae .Set ("\u0049\u006e\u0066\u006f",_gddce ._fbegc );_caae .Set ("\u0052\u006f\u006f\u0074",_gddce ._bggab );_caae .Set ("\u0053\u0069\u007a\u0065",_eca .MakeInteger (int64 (_gcegb +1)));
|
||
if _gddce ._ccdgb &&_gddce ._dcggeb > 0{_caae .Set ("\u0050\u0072\u0065\u0076",_eca .MakeInteger (_gddce ._dcggeb ));};if _gddce ._badga !=nil {_caae .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_gddce ._fdgaf );};if _gddce ._dadf ==nil &&_gddce ._aadc !=""&&_gddce ._fcbcc !=""{_gddce ._dadf =_eca .MakeArray (_eca .MakeHexString (_gddce ._aadc ),_eca .MakeHexString (_gddce ._fcbcc ));
|
||
};if _gddce ._dadf !=nil {_caae .Set ("\u0049\u0044",_gddce ._dadf );_ccb .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_gddce ._dadf );};_gddce .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_gddce .writeString (_caae .WriteString ());
|
||
_gddce .writeString ("\u000a");};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_gddab *PdfWriter )AddPage (page *PdfPage )error {const _dfgdc ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_dbed (page );_ababe :=page .ToPdfObject ();_ccb .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_ccb .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ababe );_gdcbf ,_cabeg :=_eca .GetIndirect (_ababe );if !_cabeg {return _da .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");
|
||
};_ccb .Log .Trace ("\u0025\u0073",_gdcbf );_ccb .Log .Trace ("\u0025\u0073",_gdcbf .PdfObject );_cggc ,_cabeg :=_eca .GetDict (_gdcbf .PdfObject );if !_cabeg {return _da .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");
|
||
};_ddcg ,_cabeg :=_eca .GetName (_cggc .Get ("\u0054\u0079\u0070\u0065"));if !_cabeg {return _g .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",_cggc .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _ddcg .String ()!="\u0050\u0061\u0067\u0065"{return _da .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");};_eafg :=[]_eca .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"};
|
||
_cebfe ,_ceggg :=_eca .GetIndirect (_cggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ccb .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_cggc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_ceggg );
|
||
for _ceggg {_ccb .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cebfe );_gcbgga ,_bcfbb :=_eca .GetDict (_cebfe .PdfObject );if !_bcfbb {return _da .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_abeed :=range _eafg {_ccb .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_abeed );if _cggc .Get (_abeed )!=nil {_ccb .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _bfac :=_gcbgga .Get (_abeed );_bfac !=nil {_ccb .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_abeed );_cggc .Set (_abeed ,_bfac );};};_cebfe ,_ceggg =_eca .GetIndirect (_gcbgga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_ccb .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gcbgga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ccb .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_cggc .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddab ._bceddb );_gdcbf .PdfObject =_cggc ;_dfgfc ,_cabeg :=_eca .GetDict (_gddab ._bceddb .PdfObject );if !_cabeg {return _da .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");
|
||
};_beabbb ,_cabeg :=_eca .GetArray (_dfgfc .Get ("\u004b\u0069\u0064\u0073"));if !_cabeg {return _da .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");
|
||
};_beabbb .Append (_gdcbf );_gddab ._eccgd [_cggc ]=struct{}{};_bgddc ,_cabeg :=_eca .GetInt (_dfgfc .Get ("\u0043\u006f\u0075n\u0074"));if !_cabeg {return _da .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");
|
||
};*_bgddc =*_bgddc +1;if page ._cdgeb ==nil {_bdcgb :=_aag .Track (_gddab ._gaafc ,_dfgdc );if _bdcgb !=nil {return _bdcgb ;};}else {_ebbfg :=_aag .Track (page ._cdgeb ._ggeed ,_dfgdc );if _ebbfg !=nil {return _ebbfg ;};};_gddab .addObject (_gdcbf );_abeac :=_gddab .addObjects (_cggc );
|
||
if _abeac !=nil {return _abeac ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abedb *PdfTransformParamsDocMDP )ToPdfObject ()_eca .PdfObject {_cabab :=_eca .MakeDict ();_cabab .SetIfNotNil ("\u0054\u0079\u0070\u0065",_abedb .Type );_cabab .SetIfNotNil ("\u0056",_abedb .V );_cabab .SetIfNotNil ("\u0050",_abedb .P );return _cabab ;
|
||
};func (_efdec *PdfWriter )adjustXRefAffectedVersion (_cfdaf bool ){if _cfdaf &&_efdec ._dgab .Major ==1&&_efdec ._dgab .Minor < 5{_efdec ._dgab .Minor =5;};};func (_bcced *PdfReader )lookupPageByObject (_babc _eca .PdfObject )(*PdfPage ,error ){return nil ,_da .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
|
||
};var ErrColorOutOfRange =_da .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_ccbac .Lock ();defer _ccbac .Unlock ();_gfcfa =keywords };
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_gabfd *PdfRectangle )Height ()float64 {return _de .Abs (_gabfd .Ury -_gabfd .Lly )};
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_cgbfg *PdfFont )IsCID ()bool {return _cgbfg .baseFields ().isCIDFont ()};
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _eca .PdfObject ;};func (_bfeaa *PdfWriter )writeString (_aefc string ){if _bfeaa ._fafa !=nil {return ;};_fbebc ,_dgbff :=_bfeaa ._agbgb .WriteString (_aefc );_bfeaa ._eggaf +=int64 (_fbebc );_bfeaa ._fafa =_dgbff ;
|
||
};
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_beecd *pdfSignDictionary )GetSubFilter ()string {_ebaca :=_beecd .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _ebaca ==nil {return "";};if _cfgeg ,_ecbab :=_eca .GetNameVal (_ebaca );_ecbab {return _cfgeg ;};return "";};func _deaab (_cccc *XObjectForm )(*PdfRectangle ,bool ,error ){if _fcga ,_dbdc :=_cccc .BBox .(*_eca .PdfObjectArray );
|
||
_dbdc {_dbca ,_fgcbf :=NewPdfRectangle (*_fcga );if _fgcbf !=nil {return nil ,false ,_fgcbf ;};if _fabd ,_eabg :=_cccc .Matrix .(*_eca .PdfObjectArray );_eabg {_caegc ,_efag :=_fabd .ToFloat64Array ();if _efag !=nil {return nil ,false ,_efag ;};_baae :=_gg .IdentityMatrix ();
|
||
if len (_caegc )==6{_baae =_gg .NewMatrix (_caegc [0],_caegc [1],_caegc [2],_caegc [3],_caegc [4],_caegc [5]);};_dbca .Transform (_baae );return _dbca ,true ,nil ;};return _dbca ,false ,nil ;};return nil ,false ,_da .New ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061n\u0063e\u0020\u0042\u0042\u006f\u0078\u0020\u0074y\u0070\u0065");
|
||
};type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_gaeg *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_cbge :=_bf .NewReader (img .getBase ());_aaaef :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_gaeg .AlternateSpace .GetNumComponents (),nil ,img ._gcgb ,nil );
|
||
_abfb :=_bf .NewWriter (_aaaef );_ggebe :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_ccb .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");
|
||
_ccb .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_gaeg .TintTransform );_fcbe :=_gaeg .AlternateSpace .DecodeArray ();var (_dddc uint32 ;_bfdg error ;);for {_dddc ,_bfdg =_cbge .ReadSample ();
|
||
if _bfdg ==_beg .EOF {break ;};if _bfdg !=nil {return img ,_bfdg ;};_ecgf :=float64 (_dddc )/_ggebe ;_daaddg ,_fcaa :=_gaeg .TintTransform .Evaluate ([]float64 {_ecgf });if _fcaa !=nil {return img ,_fcaa ;};for _fgbc ,_cffac :=range _daaddg {_cdddf :=_bbg .LinearInterpolate (_cffac ,_fcbe [_fgbc *2],_fcbe [_fgbc *2+1],0,1);
|
||
if _fcaa =_abfb .WriteSample (uint32 (_cdddf *_ggebe ));_fcaa !=nil {return img ,_fcaa ;};};};return _gaeg .AlternateSpace .ImageToRGB (_cggae (&_aaaef ));};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bfe *PdfActionSetOCGState )ToPdfObject ()_eca .PdfObject {_bfe .PdfAction .ToPdfObject ();_cbe :=_bfe ._bee ;_bab :=_cbe .PdfObject .(*_eca .PdfObjectDictionary );_bab .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeSetOCGState )));_bab .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_bfe .State );
|
||
_bab .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_bfe .PreserveRB );return _cbe ;};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_afcdaa *PdfReader )GetIndirectObjectByNumber (number int )(_eca .PdfObject ,error ){_afcdf ,_ebadc :=_afcdaa ._ecfeba .LookupByNumber (number );return _afcdf ,_ebadc ;};func (_eeebe *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _agbe []*PdfFieldSignature ;
|
||
for _ ,_fdeee :=range _eeebe .AllFields (){switch _cabf :=_fdeee .GetContext ().(type ){case *PdfFieldSignature :_feadd :=_cabf ;_agbe =append (_agbe ,_feadd );};};return _agbe ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_fgcfc *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};var _ddead =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":{}};
|
||
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;BitsPerFlag *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_bfcaa *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_eaacdf *PdfPage )GetPageAsIndirectObject ()*_eca .PdfIndirectObject {return _eaacdf ._aedef };type pdfFontType3 struct{fontCommon ;_gcggc *_eca .PdfIndirectObject ;
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _eca .PdfObject ;Encoding _eca .PdfObject ;FontBBox _eca .PdfObject ;FontMatrix _eca .PdfObject ;FirstChar _eca .PdfObject ;LastChar _eca .PdfObject ;Widths _eca .PdfObject ;Resources _eca .PdfObject ;_ggcge map[_dbb .CharCode ]float64 ;_aeefc _dbb .TextEncoder ;
|
||
};func _aedfa (_gafge *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_gafge }};
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_dbdcg *PdfRectangle )Width ()float64 {return _de .Abs (_dbdcg .Urx -_dbdcg .Llx )};func (_afeaab *PdfReader )buildOutlineTree (_fecbd _eca .PdfObject ,_ecbfg *PdfOutlineTreeNode ,_fcaeg *PdfOutlineTreeNode ,_gggg map[_eca .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _gggg ==nil {_gggg =map[_eca .PdfObject ]struct{}{};
|
||
};_gggg [_fecbd ]=struct{}{};_ecdba ,_fgfb :=_fecbd .(*_eca .PdfIndirectObject );if !_fgfb {return nil ,nil ,_g .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",_fecbd );
|
||
};_gacef ,_ebef :=_ecdba .PdfObject .(*_eca .PdfObjectDictionary );if !_ebef {return nil ,nil ,_da .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ccb .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",_gacef ,_ecdba ,_ecdba );
|
||
if _gdcdf :=_gacef .Get ("\u0054\u0069\u0074l\u0065");_gdcdf !=nil {_ffede ,_ccebg :=_afeaab .newPdfOutlineItemFromIndirectObject (_ecdba );if _ccebg !=nil {return nil ,nil ,_ccebg ;};_ffede .Parent =_ecbfg ;_ffede .Prev =_fcaeg ;_bfagf :=_eca .ResolveReference (_gacef .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_cegbg :=_gggg [_bfagf ];_bfagf !=nil &&_bfagf !=_ecdba &&!_cegbg {if !_eca .IsNullObject (_bfagf ){_cbfdd ,_fcdecg ,_fdbee :=_afeaab .buildOutlineTree (_bfagf ,&_ffede .PdfOutlineTreeNode ,nil ,_gggg );if _fdbee !=nil {_ccb .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",_fdbee );
|
||
}else {_ffede .First =_cbfdd ;_ffede .Last =_fcdecg ;};};};_ebcfc :=_eca .ResolveReference (_gacef .Get ("\u004e\u0065\u0078\u0074"));if _ ,_egeff :=_gggg [_ebcfc ];_ebcfc !=nil &&_ebcfc !=_ecdba &&!_egeff {if !_eca .IsNullObject (_ebcfc ){_cffdf ,_begcc ,_ccaec :=_afeaab .buildOutlineTree (_ebcfc ,_ecbfg ,&_ffede .PdfOutlineTreeNode ,_gggg );
|
||
if _ccaec !=nil {_ccb .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",_ccaec );
|
||
}else {_ffede .Next =_cffdf ;return &_ffede .PdfOutlineTreeNode ,_begcc ,nil ;};};};return &_ffede .PdfOutlineTreeNode ,&_ffede .PdfOutlineTreeNode ,nil ;};_bcccg ,_baddbe :=_fdeeee (_ecdba );if _baddbe !=nil {return nil ,nil ,_baddbe ;};_bcccg .Parent =_ecbfg ;
|
||
if _gdbe :=_gacef .Get ("\u0046\u0069\u0072s\u0074");_gdbe !=nil {_gdbe =_eca .ResolveReference (_gdbe );if _ ,_cddgg :=_gggg [_gdbe ];_gdbe !=nil &&_gdbe !=_ecdba &&!_cddgg {_bbebee :=_eca .TraceToDirectObject (_gdbe );if _ ,_bdag :=_bbebee .(*_eca .PdfObjectNull );
|
||
!_bdag &&_bbebee !=nil {_fefgf ,_afdgab ,_gcbab :=_afeaab .buildOutlineTree (_gdbe ,&_bcccg .PdfOutlineTreeNode ,nil ,_gggg );if _gcbab !=nil {_ccb .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",_gcbab );
|
||
}else {_bcccg .First =_fefgf ;_bcccg .Last =_afdgab ;};};};};return &_bcccg .PdfOutlineTreeNode ,&_bcccg .PdfOutlineTreeNode ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_gcac *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_gcac .Base .GetNumComponents ();_afdf :=int (vals [0])*N ;
|
||
if _afdf < 0||(_afdf +N -1)>=len (_gcac ._eaea ){_ccb .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_afdf );return nil ,ErrColorOutOfRange ;};_dgdb :=_gcac ._eaea [_afdf :_afdf +N ];
|
||
var _fgfd []float64 ;for _ ,_abae :=range _dgdb {_fgfd =append (_fgfd ,float64 (_abae )/255.0);};_ggfb ,_dgfdaf :=_gcac .Base .ColorFromFloats (_fgfd );if _dgfdaf !=nil {return nil ,_dgfdaf ;};return _ggfb ,nil ;};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };func (_ggeag *PdfReader )newPdfAnnotationCaretFromDict (_abcg *_eca .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_age :=PdfAnnotationCaret {};_cffb ,_daeg :=_ggeag .newPdfAnnotationMarkupFromDict (_abcg );
|
||
if _daeg !=nil {return nil ,_daeg ;};_age .PdfAnnotationMarkup =_cffb ;_age .RD =_abcg .Get ("\u0052\u0044");_age .Sy =_abcg .Get ("\u0053\u0079");return &_age ,nil ;};
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_eca .PdfObjectString ;Author *_eca .PdfObjectString ;Subject *_eca .PdfObjectString ;Keywords *_eca .PdfObjectString ;Creator *_eca .PdfObjectString ;Producer *_eca .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;
|
||
Trapped *_eca .PdfObjectName ;_bcfd *_eca .PdfObjectDictionary ;};
|
||
|
||
// NewPdfReaderFromFile creates a new PdfReader from the speficied PDF file.
|
||
// If ReaderOpts is nil it will be set to default value from NewReaderOpts.
|
||
func NewPdfReaderFromFile (pdfFile string ,opts *ReaderOpts )(*PdfReader ,*_efg .File ,error ){const _fabab ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
|
||
_gaeeg ,_agcfb :=_efg .Open (pdfFile );if _agcfb !=nil {return nil ,nil ,_agcfb ;};_bbgbc ,_agcfb :=_cfbdee (_gaeeg ,opts ,true ,_fabab );if _agcfb !=nil {_gaeeg .Close ();return nil ,nil ,_agcfb ;};return _bbgbc ,_gaeeg ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bcf *PdfActionHide )ToPdfObject ()_eca .PdfObject {_bcf .PdfAction .ToPdfObject ();_aeg :=_bcf ._bee ;_dac :=_aeg .PdfObject .(*_eca .PdfObjectDictionary );_dac .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeHide )));_dac .SetIfNotNil ("\u0054",_bcf .T );
|
||
_dac .SetIfNotNil ("\u0048",_bcf .H );return _aeg ;};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_fbba *PdfAcroForm )Fill (provider FieldValueProvider )error {return _fbba .fill (provider ,nil )};func (_bdga *PdfReader )newPdfAnnotationPopupFromDict (_caff *_eca .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_afeb :=PdfAnnotationPopup {};
|
||
_afeb .Parent =_caff .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_afeb .Open =_caff .Get ("\u004f\u0070\u0065\u006e");return &_afeb ,nil ;};func (_ddaa *pdfCIDFontType2 )baseFields ()*fontCommon {return &_ddaa .fontCommon };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gcdf *PdfAnnotationStamp )ToPdfObject ()_eca .PdfObject {_gcdf .PdfAnnotation .ToPdfObject ();_caa :=_gcdf ._cdc ;_gdf :=_caa .PdfObject .(*_eca .PdfObjectDictionary );_gcdf .PdfAnnotationMarkup .appendToPdfDictionary (_gdf );_gdf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_gdf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gcdf .Name );return _caa ;};
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_cfcb *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_bgda :=_bf .NewReader (img .getBase ());_aagc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_beec :=_bf .NewWriter (_aagc );
|
||
_bdfgf :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_ebge :=make ([]uint32 ,3);var (_daadf error ;_bgbf ,_afbc ,_abaf ,_ggff ,_edecf ,_becg float64 ;);for {_daadf =_bgda .ReadSamples (_ebge );if _daadf ==_beg .EOF {break ;}else if _daadf !=nil {return img ,_daadf ;
|
||
};_bgbf =float64 (_ebge [0])/_bdfgf ;_afbc =float64 (_ebge [1])/_bdfgf ;_abaf =float64 (_ebge [2])/_bdfgf ;_ggff =_cfcb .Matrix [0]*_de .Pow (_bgbf ,_cfcb .Gamma [0])+_cfcb .Matrix [3]*_de .Pow (_afbc ,_cfcb .Gamma [1])+_cfcb .Matrix [6]*_de .Pow (_abaf ,_cfcb .Gamma [2]);
|
||
_edecf =_cfcb .Matrix [1]*_de .Pow (_bgbf ,_cfcb .Gamma [0])+_cfcb .Matrix [4]*_de .Pow (_afbc ,_cfcb .Gamma [1])+_cfcb .Matrix [7]*_de .Pow (_abaf ,_cfcb .Gamma [2]);_becg =_cfcb .Matrix [2]*_de .Pow (_bgbf ,_cfcb .Gamma [0])+_cfcb .Matrix [5]*_de .Pow (_afbc ,_cfcb .Gamma [1])+_cfcb .Matrix [8]*_de .Pow (_abaf ,_cfcb .Gamma [2]);
|
||
_bgbf =3.240479*_ggff +-1.537150*_edecf +-0.498535*_becg ;_afbc =-0.969256*_ggff +1.875992*_edecf +0.041556*_becg ;_abaf =0.055648*_ggff +-0.204043*_edecf +1.057311*_becg ;_bgbf =_de .Min (_de .Max (_bgbf ,0),1.0);_afbc =_de .Min (_de .Max (_afbc ,0),1.0);
|
||
_abaf =_de .Min (_de .Max (_abaf ,0),1.0);_ebge [0]=uint32 (_bgbf *_bdfgf );_ebge [1]=uint32 (_afbc *_bdfgf );_ebge [2]=uint32 (_abaf *_bdfgf );if _daadf =_beec .WriteSamples (_ebge );_daadf !=nil {return img ,_daadf ;};};return _cggae (&_aagc ),nil ;};
|
||
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_gedf *PdfFont )ToUnicode ()string {if _gedf .baseFields ()._gegfa ==nil {return "";};return _gedf .baseFields ()._gegfa .Name ();};
|
||
|
||
// GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique.
|
||
func (_gbfg *DSS )GenerateHashMaps ()error {_aagca ,_effe :=_gbfg .generateHashMap (_gbfg .Certs );if _effe !=nil {return _effe ;};_edeeb ,_effe :=_gbfg .generateHashMap (_gbfg .OCSPs );if _effe !=nil {return _effe ;};_fcfd ,_effe :=_gbfg .generateHashMap (_gbfg .CRLs );
|
||
if _effe !=nil {return _effe ;};_gbfg ._aaed =_aagca ;_gbfg ._defag =_edeeb ;_gbfg ._ccgf =_fcfd ;return nil ;};
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_ddbef *PdfAcroForm )AllFields ()[]*PdfField {if _ddbef ==nil {return nil ;};var _dcgge []*PdfField ;if _ddbef .Fields !=nil {for _ ,_agaf :=range *_ddbef .Fields {_dcgge =append (_dcgge ,_fccf (_agaf )...);};};return _dcgge ;};
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_bcgeb *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_fgagfe ,_aggge :=_eca .GetDict (_bcgeb ._eeggd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_aggge {_fgagfe =_eca .MakeDict ();_bcgeb ._eeggd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_fgagfe );
|
||
};_gddae ,_aggge :=_eca .GetDict (_fgagfe .Get (_eca .PdfObjectName (extName )));if !_aggge {_gddae =_eca .MakeDict ();_fgagfe .Set (_eca .PdfObjectName (extName ),_gddae );};if _cbdae ,_ :=_eca .GetNameVal (_gddae .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_cbdae !=baseVersion {_gddae .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_eca .MakeName (baseVersion ));};if _abbb ,_ :=_eca .GetIntVal (_gddae .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_abbb !=extLevel {_gddae .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_eca .MakeInteger (int64 (extLevel )));};};
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_cffg *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fcbd ,_acdfg :=color .(*PdfColorCalRGB );if !_acdfg {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gbad :=_fcbd .A ();_afgd :=_fcbd .B ();_agga :=_fcbd .C ();X :=_cffg .Matrix [0]*_de .Pow (_gbad ,_cffg .Gamma [0])+_cffg .Matrix [3]*_de .Pow (_afgd ,_cffg .Gamma [1])+_cffg .Matrix [6]*_de .Pow (_agga ,_cffg .Gamma [2]);
|
||
Y :=_cffg .Matrix [1]*_de .Pow (_gbad ,_cffg .Gamma [0])+_cffg .Matrix [4]*_de .Pow (_afgd ,_cffg .Gamma [1])+_cffg .Matrix [7]*_de .Pow (_agga ,_cffg .Gamma [2]);Z :=_cffg .Matrix [2]*_de .Pow (_gbad ,_cffg .Gamma [0])+_cffg .Matrix [5]*_de .Pow (_afgd ,_cffg .Gamma [1])+_cffg .Matrix [8]*_de .Pow (_agga ,_cffg .Gamma [2]);
|
||
_gaeb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_fbad :=-0.969256*X +1.875992*Y +0.041556*Z ;_afdcf :=0.055648*X +-0.204043*Y +1.057311*Z ;_gaeb =_de .Min (_de .Max (_gaeb ,0),1.0);_fbad =_de .Min (_de .Max (_fbad ,0),1.0);_afdcf =_de .Min (_de .Max (_afdcf ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_gaeb ,_fbad ,_afdcf ),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 (_affefb *XObjectImage )ToImage ()(*Image ,error ){_bdbea :=&Image {};if _affefb .Height ==nil {return nil ,_da .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_bdbea .Height =*_affefb .Height ;if _affefb .Width ==nil {return nil ,_da .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_bdbea .Width =*_affefb .Width ;if _affefb .BitsPerComponent ==nil {switch _affefb .Filter .(type ){case *_eca .CCITTFaxEncoder ,*_eca .JBIG2Encoder :_bdbea .BitsPerComponent =1;
|
||
case *_eca .LZWEncoder ,*_eca .RunLengthEncoder :_bdbea .BitsPerComponent =8;default:return nil ,_da .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 {_bdbea .BitsPerComponent =*_affefb .BitsPerComponent ;};_bdbea .ColorComponents =_affefb .ColorSpace .GetNumComponents ();_affefb ._gddeaa .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eca .MakeInteger (int64 (_bdbea .ColorComponents )));
|
||
_ebedgd ,_bfdga :=_eca .DecodeStream (_affefb ._gddeaa );if _bfdga !=nil {return nil ,_bfdga ;};_bdbea .Data =_ebedgd ;if _affefb .Decode !=nil {_adfbb ,_dbfge :=_affefb .Decode .(*_eca .PdfObjectArray );if !_dbfge {_ccb .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_da .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_cfbc ,_gbcga :=_adfbb .ToFloat64Array ();if _gbcga !=nil {return nil ,_gbcga ;};switch _affefb .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_abffag :=_affefb .ColorSpace .DecodeArray ();
|
||
if _abffag [0]==_cfbc [0]&&_abffag [1]==_cfbc [1]&&_abffag [2]==_cfbc [2]&&_abffag [3]==_cfbc [3]{_bdbea ._cfgaa =_cfbc ;};default:_bdbea ._cfgaa =_cfbc ;};};return _bdbea ,nil ;};
|
||
|
||
// 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 (_dbdgf *XObjectForm )SetContentStream (content []byte ,encoder _eca .StreamEncoder )error {_aaaedd :=content ;if encoder ==nil {if _dbdgf .Filter !=nil {encoder =_dbdgf .Filter ;}else {encoder =_eca .NewRawEncoder ();};};_adbc ,_cecee :=encoder .EncodeBytes (_aaaedd );
|
||
if _cecee !=nil {return _cecee ;};_aaaedd =_adbc ;_dbdgf .Stream =_aaaedd ;_dbdgf .Filter =encoder ;return nil ;};
|
||
|
||
// GetNameDictionary returns the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_bfdb *PdfReader )GetNameDictionary ()(_eca .PdfObject ,error ){_aacdb :=_eca .ResolveReference (_bfdb ._affc .Get ("\u004e\u0061\u006de\u0073"));if _aacdb ==nil {return nil ,nil ;};if !_bfdb ._gggcg {_afbdg :=_bfdb .traverseObjectData (_aacdb );
|
||
if _afbdg !=nil {return nil ,_afbdg ;};};return _aacdb ,nil ;};
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_abaa *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ccb .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ccb .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 );
|
||
_ccb .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ccb .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_cfba ,_deb :=_bbg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gcgb ,img ._cfgaa );if _deb !=nil {return Image {},_deb ;};_fcgb ,_deb :=_bbg .NRGBAConverter .Convert (_cfba );if _deb !=nil {return Image {},_deb ;
|
||
};return _cggae (_fcgb .Base ()),nil ;};func (_egfbf *PdfWriter )updateObjectNumbers (){_gedfg :=_egfbf .ObjNumOffset ;_fgggd :=0;for _ ,_eddcg :=range _egfbf ._daecf {_ebefe :=int64 (_fgggd +1+_gedfg );_ecgfc :=true ;if _egfbf ._ccdgb {if _bcaff ,_aaccge :=_egfbf ._abfag [_eddcg ];
|
||
_aaccge {_ebefe =_bcaff ;_ecgfc =false ;};};switch _fgaaa :=_eddcg .(type ){case *_eca .PdfIndirectObject :_fgaaa .ObjectNumber =_ebefe ;_fgaaa .GenerationNumber =0;case *_eca .PdfObjectStream :_fgaaa .ObjectNumber =_ebefe ;_fgaaa .GenerationNumber =0;
|
||
case *_eca .PdfObjectStreams :_fgaaa .ObjectNumber =_ebefe ;_fgaaa .GenerationNumber =0;default:_ccb .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",_fgaaa );
|
||
continue ;};if _ecgfc {_fgggd ++;};};_gbbbda :=func (_bcgdg _eca .PdfObject )int64 {switch _dgffb :=_bcgdg .(type ){case *_eca .PdfIndirectObject :return _dgffb .ObjectNumber ;case *_eca .PdfObjectStream :return _dgffb .ObjectNumber ;case *_eca .PdfObjectStreams :return _dgffb .ObjectNumber ;
|
||
};return 0;};_gac .SliceStable (_egfbf ._daecf ,func (_bbfdg ,_dfbgg int )bool {return _gbbbda (_egfbf ._daecf [_bbfdg ])< _gbbbda (_egfbf ._daecf [_dfbgg ])});};func _ffgea (_dbeef *_eca .PdfObjectDictionary )(*PdfShadingType7 ,error ){_fbadde :=PdfShadingType7 {};
|
||
_eacee :=_dbeef .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _eacee ==nil {_ccb .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 ;};_fafecf ,_affea :=_eacee .(*_eca .PdfObjectInteger );if !_affea {_ccb .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",_eacee );
|
||
return nil ,_eca .ErrTypeError ;};_fbadde .BitsPerCoordinate =_fafecf ;_eacee =_dbeef .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _eacee ==nil {_ccb .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 ;};_fafecf ,_affea =_eacee .(*_eca .PdfObjectInteger );if !_affea {_ccb .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",_eacee );
|
||
return nil ,_eca .ErrTypeError ;};_fbadde .BitsPerComponent =_fafecf ;_eacee =_dbeef .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _eacee ==nil {_ccb .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 ;};_fafecf ,_affea =_eacee .(*_eca .PdfObjectInteger );if !_affea {_ccb .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",_eacee );
|
||
return nil ,_eca .ErrTypeError ;};_fbadde .BitsPerComponent =_fafecf ;_eacee =_dbeef .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _eacee ==nil {_ccb .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 ;};_adga ,_affea :=_eacee .(*_eca .PdfObjectArray );if !_affea {_ccb .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",_eacee );
|
||
return nil ,_eca .ErrTypeError ;};_fbadde .Decode =_adga ;if _egfa :=_dbeef .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_egfa !=nil {_fbadde .Function =[]PdfFunction {};if _ddgc ,_abbceg :=_egfa .(*_eca .PdfObjectArray );_abbceg {for _ ,_abdbd :=range _ddgc .Elements (){_ecdde ,_abcga :=_febaf (_abdbd );
|
||
if _abcga !=nil {_ccb .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",_abcga );return nil ,_abcga ;};_fbadde .Function =append (_fbadde .Function ,_ecdde );
|
||
};}else {_adfb ,_ecbgb :=_febaf (_egfa );if _ecbgb !=nil {_ccb .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",_ecbgb );return nil ,_ecbgb ;
|
||
};_fbadde .Function =append (_fbadde .Function ,_adfb );};};return &_fbadde ,nil ;};
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _bb .Permissions ;Algorithm EncryptionAlgorithm ;};
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_dgag :=NewPdfAnnotation ();_acdf :=&PdfAnnotationSquiggly {};_acdf .PdfAnnotation =_dgag ;_acdf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgag .SetContext (_acdf );return _acdf ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_dgfd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbea ,_bbcb :=_eca .GetNumbersAsFloat (objects );
|
||
if _bbcb !=nil {return nil ,_bbcb ;};return _dgfd .ColorFromFloats (_gbea );};
|
||
|
||
// 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 (_gfce *PdfColorspaceLab )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edgb ,_agdf :=_eca .GetNumbersAsFloat (objects );
|
||
if _agdf !=nil {return nil ,_agdf ;};return _gfce .ColorFromFloats (_edgb );};func _agcee (_afcab string )(string ,error ){var _dedae _dd .Buffer ;_dedae .WriteString (_afcab );_bgbe :=make ([]byte ,8+16);_fdcfb :=_d .Now ().UTC ().UnixNano ();_bd .BigEndian .PutUint64 (_bgbe ,uint64 (_fdcfb ));
|
||
_ ,_gcbeg :=_ef .Read (_bgbe [8:]);if _gcbeg !=nil {return "",_gcbeg ;};_dedae .WriteString (_c .EncodeToString (_bgbe ));return _dedae .String (),nil ;};func (_gdfb *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_dffda *PdfFunctionType3 )ToPdfObject ()_eca .PdfObject {_fgbcb :=_eca .MakeDict ();_fgbcb .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_eca .MakeInteger (3));_cagaa :=&_eca .PdfObjectArray {};for _ ,_adbd :=range _dffda .Domain {_cagaa .Append (_eca .MakeFloat (_adbd ));
|
||
};_fgbcb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cagaa );if _dffda .Range !=nil {_agdd :=&_eca .PdfObjectArray {};for _ ,_gccg :=range _dffda .Range {_agdd .Append (_eca .MakeFloat (_gccg ));};_fgbcb .Set ("\u0052\u0061\u006eg\u0065",_agdd );};if _dffda .Functions !=nil {_bffa :=&_eca .PdfObjectArray {};
|
||
for _ ,_adagb :=range _dffda .Functions {_bffa .Append (_adagb .ToPdfObject ());};_fgbcb .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bffa );};if _dffda .Bounds !=nil {_ecegg :=&_eca .PdfObjectArray {};for _ ,_egfc :=range _dffda .Bounds {_ecegg .Append (_eca .MakeFloat (_egfc ));
|
||
};_fgbcb .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ecegg );};if _dffda .Encode !=nil {_ccgd :=&_eca .PdfObjectArray {};for _ ,_gcda :=range _dffda .Encode {_ccgd .Append (_eca .MakeFloat (_gcda ));};_fgbcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_ccgd );
|
||
};if _dffda ._cddb !=nil {_dffda ._cddb .PdfObject =_fgbcb ;return _dffda ._cddb ;};return _fgbcb ;};
|
||
|
||
// 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 };};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _eca .PdfObject ;};func (_efea *DSS )add (_ccab *[]*_eca .PdfObjectStream ,_dgfa map[string ]*_eca .PdfObjectStream ,_gabgf [][]byte )([]*_eca .PdfObjectStream ,error ){_edag :=make ([]*_eca .PdfObjectStream ,0,len (_gabgf ));
|
||
for _ ,_ddeb :=range _gabgf {_dcea ,_bgefae :=_dggdf (_ddeb );if _bgefae !=nil {return nil ,_bgefae ;};_fcdd ,_cada :=_dgfa [string (_dcea )];if !_cada {_fcdd ,_bgefae =_eca .MakeStream (_ddeb ,_eca .NewRawEncoder ());if _bgefae !=nil {return nil ,_bgefae ;
|
||
};_dgfa [string (_dcea )]=_fcdd ;*_ccab =append (*_ccab ,_fcdd );};_edag =append (_edag ,_fcdd );};return _edag ,nil ;};func (_egcgg *LTV )getCRLs (_agedg []*_ad .Certificate )([][]byte ,error ){_gcebb :=make ([][]byte ,0,len (_agedg ));for _ ,_dfcdf :=range _agedg {for _ ,_edfc :=range _dfcdf .CRLDistributionPoints {if _egcgg .CertClient .IsCA (_dfcdf ){continue ;
|
||
};_dace ,_bcdcg :=_egcgg .CRLClient .MakeRequest (_edfc ,_dfcdf );if _bcdcg !=nil {_ccb .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",_bcdcg );continue ;
|
||
};_gcebb =append (_gcebb ,_dace );};};return _gcebb ,nil ;};
|
||
|
||
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
|
||
func NewPdfShadingType2 ()*PdfShadingType2 {_cdfg :=&PdfShadingType2 {};_cdfg .PdfShading =&PdfShading {};_cdfg .PdfShading ._dcbe =_eca .MakeIndirectObject (_eca .MakeDict ());_cdfg .PdfShading ._abefa =_cdfg ;return _cdfg ;};
|
||
|
||
// StandardValidator is the interface that is used for the PDF StandardImplementer validation for the PDF document.
|
||
// It is using a CompliancePdfReader which is expected to give more Metadata during reading process.
|
||
// NOTE: This implementation is in experimental development state.
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
type StandardValidator interface{
|
||
|
||
// ValidateStandard checks if the input reader
|
||
ValidateStandard (_gfdgc *CompliancePdfReader )error ;};
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _eca .PdfObject ;Volume _eca .PdfObject ;Synchronous _eca .PdfObject ;Repeat _eca .PdfObject ;Mix _eca .PdfObject ;};
|
||
|
||
// 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 {_afda ,_bceg :=NewStandard14Font (basefont );if _bceg !=nil {panic (_g .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 _afda ;};
|
||
|
||
// 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 (_bdee *PdfPageResources )GetFontByName (keyName _eca .PdfObjectName )(_eca .PdfObject ,bool ){if _bdee .Font ==nil {return nil ,false ;};_fcfdf ,_ggdda :=_eca .TraceToDirectObject (_bdee .Font ).(*_eca .PdfObjectDictionary );if !_ggdda {_ccb .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",_eca .TraceToDirectObject (_bdee .Font ));
|
||
return nil ,false ;};if _gbeee :=_fcfdf .Get (keyName );_gbeee !=nil {return _gbeee ,true ;};return nil ,false ;};func _dggdf (_ebeg []byte )([]byte ,error ){_cdfd :=_bdf .New ();if _ ,_gaegg :=_beg .Copy (_cdfd ,_dd .NewReader (_ebeg ));_gaegg !=nil {return nil ,_gaegg ;
|
||
};return _cdfd .Sum (nil ),nil ;};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_ccbac .Lock ();defer _ccbac .Unlock ();_dceag =creator };func (_dggab *LTV )buildCertChain (_aeaaa ,_gcgdf []*_ad .Certificate )([]*_ad .Certificate ,map[string ]*_ad .Certificate ,error ){_bffg :=map[string ]*_ad .Certificate {};
|
||
for _ ,_gfdf :=range _aeaaa {_bffg [_gfdf .Subject .CommonName ]=_gfdf ;};_edgaa :=_aeaaa ;for _ ,_cbgda :=range _gcgdf {_bbgd :=_cbgda .Subject .CommonName ;if _ ,_baecdf :=_bffg [_bbgd ];_baecdf {continue ;};_bffg [_bbgd ]=_cbgda ;_edgaa =append (_edgaa ,_cbgda );
|
||
};if len (_edgaa )==0{return nil ,nil ,ErrSignNoCertificates ;};var _dbgd error ;for _daed :=_edgaa [0];_daed !=nil &&!_dggab .CertClient .IsCA (_daed );{_bdfbd ,_fefba :=_bffg [_daed .Issuer .CommonName ];if !_fefba {if _bdfbd ,_dbgd =_dggab .CertClient .GetIssuer (_daed );
|
||
_dbgd !=nil {_ccb .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",_dbgd );
|
||
break ;};_bffg [_daed .Issuer .CommonName ]=_bdfbd ;_edgaa =append (_edgaa ,_bdfbd );};_daed =_bdfbd ;};return _edgaa ,_bffg ,nil ;};
|
||
|
||
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
|
||
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
|
||
type PdfColorDeviceGray float64 ;func (_efaa *PdfAppender )replaceObject (_ffeb ,_feb _eca .PdfObject ){switch _aebcg :=_ffeb .(type ){case *_eca .PdfIndirectObject :_efaa ._ccbc [_feb ]=_aebcg .ObjectNumber ;case *_eca .PdfObjectStream :_efaa ._ccbc [_feb ]=_aebcg .ObjectNumber ;
|
||
};};func (_cddcg *PdfReader )resolveReference (_aafag *_eca .PdfObjectReference )(_eca .PdfObject ,bool ,error ){_befge ,_fggd :=_cddcg ._ecfeba .ObjCache [int (_aafag .ObjectNumber )];if !_fggd {_ccb .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_aafag );
|
||
_ccgeb ,_ccfd :=_cddcg ._ecfeba .LookupByReference (*_aafag );if _ccfd !=nil {return nil ,false ,_ccfd ;};_cddcg ._ecfeba .ObjCache [int (_aafag .ObjectNumber )]=_ccgeb ;return _ccgeb ,false ,nil ;};return _befge ,true ,nil ;};
|
||
|
||
// PdfFunctionType3 defines stitching of the subdomains of several 1-input functions to produce
|
||
// a single new 1-input function.
|
||
type PdfFunctionType3 struct{Domain []float64 ;Range []float64 ;Functions []PdfFunction ;Bounds []float64 ;Encode []float64 ;_cddb *_eca .PdfIndirectObject ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _eca .PdfObject ;FS _eca .PdfObject ;F _eca .PdfObject ;UF _eca .PdfObject ;DOS _eca .PdfObject ;Mac _eca .PdfObject ;Unix _eca .PdfObject ;ID _eca .PdfObject ;V _eca .PdfObject ;EF _eca .PdfObject ;RF _eca .PdfObject ;Desc _eca .PdfObject ;
|
||
CI _eca .PdfObject ;_ggdg _eca .PdfObject ;};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_fcbc *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fcbc .updateObjectsDeep (dss .ToPdfObject (),nil );};_fcbc ._adff =dss ;};
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_egfb *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _eca .GetNumberAsFloat (_egfb .Descent );};
|
||
|
||
// GetFillImage get attached model.Image in push button.
|
||
func (_baad *PdfFieldButton )GetFillImage ()*Image {if _baad .IsPush (){return _baad ._fbffd ;};return nil ;};
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_gcgg *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_gcgg .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_gcgg ._edcc =acroForm ;};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_gedac :=PdfColorCalGray (grayVal );return &_gedac ;};func _aeda (_beebe *_eca .PdfObjectStream )(*PdfFunctionType4 ,error ){_edgg :=&PdfFunctionType4 {};_edgg ._bdgbf =_beebe ;_dggd :=_beebe .PdfObjectDictionary ;
|
||
_dggaf ,_fbdab :=_eca .TraceToDirectObject (_dggd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray );if !_fbdab {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _dggaf .Len ()%2!=0{_ccb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gfed ,_effdf :=_dggaf .ToFloat64Array ();
|
||
if _effdf !=nil {return nil ,_effdf ;};_edgg .Domain =_gfed ;_dggaf ,_fbdab =_eca .TraceToDirectObject (_dggd .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if _fbdab {if _dggaf .Len ()< 0||_dggaf .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_afdcg ,_dbge :=_dggaf .ToFloat64Array ();if _dbge !=nil {return nil ,_dbge ;};_edgg .Range =_afdcg ;};_cdgga ,_effdf :=_eca .DecodeStream (_beebe );if _effdf !=nil {return nil ,_effdf ;};_edgg ._aeafdg =_cdgga ;_fcecf :=_dad .NewPSParser (_cdgga );_fcdc ,_effdf :=_fcecf .Parse ();
|
||
if _effdf !=nil {return nil ,_effdf ;};_edgg .Program =_fcdc ;return _edgg ,nil ;};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_ged :=NewPdfAction ();_fdd :=&PdfActionNamed {};_fdd .PdfAction =_ged ;_ged .SetContext (_fdd );return _fdd ;};func (_gadaa *PdfWriter )writeObjects (){_ccb .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_gadaa ._daecf ));
|
||
_gadaa ._eaad =make (map[int ]crossReference );_gadaa ._eaad [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _gadaa ._acdbf .ObjectMap !=nil {for _daedf ,_dfccd :=range _gadaa ._acdbf .ObjectMap {if _daedf ==0{continue ;};if _dfccd .XType ==_eca .XrefTypeObjectStream {_aaedfc :=crossReference {Type :2,ObjectNumber :_dfccd .OsObjNumber ,Index :_dfccd .OsObjIndex };
|
||
_gadaa ._eaad [_daedf ]=_aaedfc ;};if _dfccd .XType ==_eca .XrefTypeTableEntry {_ebbba :=crossReference {Type :1,ObjectNumber :_dfccd .ObjectNumber ,Offset :_dfccd .Offset };_gadaa ._eaad [_daedf ]=_ebbba ;};};};};
|
||
|
||
// 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 *_eca .PdfIndirectObject ;SV *_eca .PdfIndirectObject ;};
|
||
|
||
// 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{_fbgb PdfModel ;_geaa *_eca .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_eca .PdfObjectName ;T *_eca .PdfObjectString ;TU *_eca .PdfObjectString ;TM *_eca .PdfObjectString ;Ff *_eca .PdfObjectInteger ;
|
||
V _eca .PdfObject ;DV _eca .PdfObject ;AA _eca .PdfObject ;VariableText *VariableText ;};func _afec (_fgebc _eca .PdfObject )(*PdfColorspaceCalGray ,error ){_caga :=NewPdfColorspaceCalGray ();if _bdbg ,_dceg :=_fgebc .(*_eca .PdfIndirectObject );_dceg {_caga ._aaba =_bdbg ;
|
||
};_fgebc =_eca .TraceToDirectObject (_fgebc );_ebbc ,_gfc :=_fgebc .(*_eca .PdfObjectArray );if !_gfc {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ebbc .Len ()!=2{return nil ,_g .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");
|
||
};_fgebc =_eca .TraceToDirectObject (_ebbc .Get (0));_ebcf ,_gfc :=_fgebc .(*_eca .PdfObjectName );if !_gfc {return nil ,_g .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 *_ebcf !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_g .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_fgebc =_eca .TraceToDirectObject (_ebbc .Get (1));
|
||
_cece ,_gfc :=_fgebc .(*_eca .PdfObjectDictionary );if !_gfc {return nil ,_g .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");};
|
||
_fgebc =_cece .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_fgebc =_eca .TraceToDirectObject (_fgebc );_accge ,_gfc :=_fgebc .(*_eca .PdfObjectArray );if !_gfc {return nil ,_g .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 _accge .Len ()!=3{return nil ,_g .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");};_fcff ,_begb :=_accge .GetAsFloat64Slice ();
|
||
if _begb !=nil {return nil ,_begb ;};_caga .WhitePoint =_fcff ;_fgebc =_cece .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fgebc !=nil {_fgebc =_eca .TraceToDirectObject (_fgebc );_gacaf ,_ggae :=_fgebc .(*_eca .PdfObjectArray );
|
||
if !_ggae {return nil ,_g .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 _gacaf .Len ()!=3{return nil ,_g .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");
|
||
};_facae ,_cfge :=_gacaf .GetAsFloat64Slice ();if _cfge !=nil {return nil ,_cfge ;};_caga .BlackPoint =_facae ;};_fgebc =_cece .Get ("\u0047\u0061\u006dm\u0061");if _fgebc !=nil {_fgebc =_eca .TraceToDirectObject (_fgebc );_efff ,_fcfbc :=_eca .GetNumberAsFloat (_fgebc );
|
||
if _fcfbc !=nil {return nil ,_g .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_caga .Gamma =_efff ;};return _caga ,nil ;};
|
||
|
||
// GetPdfVersion gets the version of the PDF used within this document.
|
||
func (_dece *PdfWriter )GetPdfVersion ()string {return _dece .getPdfVersion ()};
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_cgf *BorderStyle )GetPdfName ()string {switch *_cgf {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};
|
||
|
||
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};func (_gagg *pdfFontType0 )subsetRegistered ()error {_gbgb ,_eebde :=_gagg .DescendantFont ._dbgb .(*pdfCIDFontType2 );
|
||
if !_eebde {_ccb .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",_gagg .DescendantFont );return nil ;};if _gbgb ==nil {return nil ;
|
||
};if _gbgb ._ccec ==nil {_ccb .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 _gagg ._gdcea ==nil {_ccb .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 ;};_gedgc ,_eebde :=_eca .GetStream (_gbgb ._ccec .FontFile2 );if !_eebde {_ccb .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 _da .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_dccfe ,_cfcd :=_eca .DecodeStream (_gedgc );if _cfcd !=nil {_ccb .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_cfcd );
|
||
return _cfcd ;};_abgb ,_cfcd :=_dg .Parse (_dd .NewReader (_dccfe ));if _cfcd !=nil {_ccb .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 (_gedgc .Stream ));
|
||
return _cfcd ;};var _fdbff []rune ;var _fbacd *_dg .Font ;switch _dacae :=_gagg ._gdcea .(type ){case *_dbb .TrueTypeFontEncoder :_fdbff =_dacae .RegisteredRunes ();_fbacd ,_cfcd =_abgb .SubsetKeepRunes (_fdbff );if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd );
|
||
return _cfcd ;};_dacae .SubsetRegistered ();case *_dbb .IdentityEncoder :_fdbff =_dacae .RegisteredRunes ();_gebf :=make ([]_dg .GlyphIndex ,len (_fdbff ));for _eeed ,_cbefe :=range _fdbff {_gebf [_eeed ]=_dg .GlyphIndex (_cbefe );};_fbacd ,_cfcd =_abgb .SubsetKeepIndices (_gebf );
|
||
if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd );return _cfcd ;};case _dbb .SimpleEncoder :_fbeg :=_dacae .Charcodes ();for _ ,_fdcg :=range _fbeg {_dddd ,_becaf :=_dacae .CharcodeToRune (_fdcg );if !_becaf {_ccb .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",_fdcg );
|
||
continue ;};_fdbff =append (_fdbff ,_dddd );};default:return _g .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",_gagg ._gdcea );
|
||
};var _gaafg _dd .Buffer ;_cfcd =_fbacd .Write (&_gaafg );if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd );return _cfcd ;};if _gagg ._gegfa !=nil {_aabc :=make (map[_ded .CharCode ]rune ,len (_fdbff ));for _ ,_efcea :=range _fdbff {_efbda ,_afedg :=_gagg ._gdcea .RuneToCharcode (_efcea );
|
||
if !_afedg {continue ;};_aabc [_ded .CharCode (_efbda )]=_efcea ;};_gagg ._gegfa =_ded .NewToUnicodeCMap (_aabc );};_gedgc ,_cfcd =_eca .MakeStream (_gaafg .Bytes (),_eca .NewFlateEncoder ());if _cfcd !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfcd );
|
||
return _cfcd ;};_gedgc .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_eca .MakeInteger (int64 (_gaafg .Len ())));if _agfb ,_dedgb :=_eca .GetStream (_gbgb ._ccec .FontFile2 );_dedgb {*_agfb =*_gedgc ;}else {_gbgb ._ccec .FontFile2 =_gedgc ;};_gfac :=_ccda ();
|
||
if len (_gagg ._daac )> 0{_gagg ._daac =_abdd (_gagg ._daac ,_gfac );};if len (_gbgb ._daac )> 0{_gbgb ._daac =_abdd (_gbgb ._daac ,_gfac );};if len (_gagg ._agdaa )> 0{_gagg ._agdaa =_abdd (_gagg ._agdaa ,_gfac );};if _gbgb ._ccec !=nil {_bebc ,_dbdcd :=_eca .GetName (_gbgb ._ccec .FontName );
|
||
if _dbdcd &&len (_bebc .String ())> 0{_bcccf :=_abdd (_bebc .String (),_gfac );_gbgb ._ccec .FontName =_eca .MakeName (_bcccf );};};return nil ;};
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_fca :=NewPdfAnnotation ();_fddf :=&PdfAnnotationWatermark {};_fddf .PdfAnnotation =_fca ;_fca .SetContext (_fddf );return _fddf ;};
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_eada :=PdfColorDeviceRGB {r ,g ,b };return &_eada ;};func _abcgdc (_cfecb _eca .PdfObject )[]*_eca .PdfObjectStream {if _cfecb ==nil {return nil ;};_dfcbbc ,_febfg :=_eca .GetArray (_cfecb );
|
||
if !_febfg ||_dfcbbc .Len ()==0{return nil ;};_fbdf :=make ([]*_eca .PdfObjectStream ,0,_dfcbbc .Len ());for _ ,_feceb :=range _dfcbbc .Elements (){if _abgbb ,_gbec :=_eca .GetStream (_feceb );_gbec {_fbdf =append (_fbdf ,_abgbb );};};return _fbdf ;};func (_dafaa *PdfWriter )writeOutputIntents ()error {if len (_dafaa ._bdgggc )==0{return nil ;
|
||
};_acagb :=make ([]_eca .PdfObject ,len (_dafaa ._bdgggc ));for _acdd ,_gadfg :=range _dafaa ._bdgggc {_dgbe :=_gadfg .ToPdfObject ();_acagb [_acdd ]=_eca .MakeIndirectObject (_dgbe );};_cfad :=_eca .MakeIndirectObject (_eca .MakeArray (_acagb ...));_dafaa ._eeggd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_cfad );
|
||
if _geegd :=_dafaa .addObjects (_cfad );_geegd !=nil {return _geegd ;};return nil ;};
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_adbab *PdfPageResources )HasXObjectByName (keyName _eca .PdfObjectName )bool {_fefcb ,_ :=_adbab .GetXObjectByName (keyName );return _fefcb !=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 (_dgeb *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abbc ,_fdaf :=_eca .GetNumbersAsFloat (objects );
|
||
if _fdaf !=nil {return nil ,_fdaf ;};return _dgeb .ColorFromFloats (_abbc );};
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_gag :=&PdfAction {};_gag ._bee =_eca .MakeIndirectObject (_eca .MakeDict ());return _gag ;};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
/*
|
||
Format: [/DeviceN names alternateSpace tintTransform]
|
||
or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
*/
|
||
func (_cedb *PdfColorspaceDeviceN )ToPdfObject ()_eca .PdfObject {_feccf :=_eca .MakeArray (_eca .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_feccf .Append (_cedb .ColorantNames );_feccf .Append (_cedb .AlternateSpace .ToPdfObject ());_feccf .Append (_cedb .TintTransform .ToPdfObject ());
|
||
if _cedb .Attributes !=nil {_feccf .Append (_cedb .Attributes .ToPdfObject ());};if _cedb ._bded !=nil {_cedb ._bded .PdfObject =_feccf ;return _cedb ._bded ;};return _feccf ;};
|
||
|
||
// Val returns the color value.
|
||
func (_faba *PdfColorDeviceGray )Val ()float64 {return float64 (*_faba )};
|
||
|
||
// 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 (_dbea *LTV )Enable (sig *PdfSignature ,extraCerts []*_ad .Certificate )error {if _addcc :=_dbea .validateSig (sig );_addcc !=nil {return _addcc ;};_efbfc ,_aeeg :=_dbea .generateVRIKey (sig );if _aeeg !=nil {return _aeeg ;};if _ ,_afcaa :=_dbea ._eebfab .VRI [_efbfc ];
|
||
_afcaa &&_dbea .SkipExisting {return nil ;};_gfag ,_aeeg :=sig .GetCerts ();if _aeeg !=nil {return _aeeg ;};return _dbea .enable (_gfag ,extraCerts ,_efbfc );};
|
||
|
||
// 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 (_cgeb *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_da .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");
|
||
};_fddfa :=&PdfColorPattern {};_fbee ,_gecbd :=objects [len (objects )-1].(*_eca .PdfObjectName );if !_gecbd {_ccb .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 ;};_fddfa .PatternName =*_fbee ;if len (objects )> 1{_ggg :=objects [0:len (objects )-1];if _cgeb .UnderlyingCS ==nil {_ccb .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 ,_da .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_fggg ,_gbdgg :=_cgeb .UnderlyingCS .ColorFromPdfObjects (_ggg );if _gbdgg !=nil {_ccb .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",_gbdgg );
|
||
return nil ,_gbdgg ;};_fddfa .Color =_fggg ;};return _fddfa ,nil ;};type fontCommon struct{_daac string ;_cfbe string ;_agdaa string ;_effb _eca .PdfObject ;_gegfa *_ded .CMap ;_ccec *PdfFontDescriptor ;_dccaa int64 ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_efaf pdfCIDFontType2 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){if _ccbgf ,_bgdb :=_efaf ._bdbc [code ];_bgdb {return _ffd .CharMetrics {Wx :_ccbgf },true ;};_dcbcc :=rune (code );_fbbee ,_dgecbg :=_efaf ._dgdag [_dcbcc ];if !_dgecbg {_fbbee =int (_efaf ._bbcc );
|
||
};return _ffd .CharMetrics {Wx :float64 (_fbbee )},true ;};func _gfga (_bggf *_eca .PdfObjectDictionary )(*PdfShadingType4 ,error ){_bdaaf :=PdfShadingType4 {};_eecbd :=_bggf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _eecbd ==nil {_ccb .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 ;};_cfcec ,_eedfg :=_eecbd .(*_eca .PdfObjectInteger );if !_eedfg {_ccb .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",_eecbd );
|
||
return nil ,_eca .ErrTypeError ;};_bdaaf .BitsPerCoordinate =_cfcec ;_eecbd =_bggf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _eecbd ==nil {_ccb .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 ;};_cfcec ,_eedfg =_eecbd .(*_eca .PdfObjectInteger );if !_eedfg {_ccb .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",_eecbd );
|
||
return nil ,_eca .ErrTypeError ;};_bdaaf .BitsPerComponent =_cfcec ;_eecbd =_bggf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _eecbd ==nil {_ccb .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 ;};_cfcec ,_eedfg =_eecbd .(*_eca .PdfObjectInteger );if !_eedfg {_ccb .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",_eecbd );
|
||
return nil ,_eca .ErrTypeError ;};_bdaaf .BitsPerComponent =_cfcec ;_eecbd =_bggf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _eecbd ==nil {_ccb .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 ;};_addb ,_eedfg :=_eecbd .(*_eca .PdfObjectArray );if !_eedfg {_ccb .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",_eecbd );
|
||
return nil ,_eca .ErrTypeError ;};_bdaaf .Decode =_addb ;_eecbd =_bggf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _eecbd ==nil {_ccb .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 ;};_bdaaf .Function =[]PdfFunction {};if _gcccg ,_cecfb :=_eecbd .(*_eca .PdfObjectArray );_cecfb {for _ ,_adfe :=range _gcccg .Elements (){_gebgb ,_bfabc :=_febaf (_adfe );if _bfabc !=nil {_ccb .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",_bfabc );
|
||
return nil ,_bfabc ;};_bdaaf .Function =append (_bdaaf .Function ,_gebgb );};}else {_fffaa ,_dcedbg :=_febaf (_eecbd );if _dcedbg !=nil {_ccb .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",_dcedbg );
|
||
return nil ,_dcedbg ;};_bdaaf .Function =append (_bdaaf .Function ,_fffaa );};return &_bdaaf ,nil ;};
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_fbfd *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_gce :=_bf .NewReader (img .getBase ());_bfed :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ggc :=_bf .NewWriter (_bfed );
|
||
_faeb :=_de .Pow (2,float64 (img .BitsPerComponent ))-1;_afegg :=make ([]uint32 ,3);var (_gccc uint32 ;ANorm ,X ,Y ,Z ,_afaa ,_eabd ,_beddd float64 ;_bbge error ;);for {_gccc ,_bbge =_gce .ReadSample ();if _bbge ==_beg .EOF {break ;}else if _bbge !=nil {return img ,_bbge ;
|
||
};ANorm =float64 (_gccc )/_faeb ;X =_fbfd .WhitePoint [0]*_de .Pow (ANorm ,_fbfd .Gamma );Y =_fbfd .WhitePoint [1]*_de .Pow (ANorm ,_fbfd .Gamma );Z =_fbfd .WhitePoint [2]*_de .Pow (ANorm ,_fbfd .Gamma );_afaa =3.240479*X +-1.537150*Y +-0.498535*Z ;_eabd =-0.969256*X +1.875992*Y +0.041556*Z ;
|
||
_beddd =0.055648*X +-0.204043*Y +1.057311*Z ;_afaa =_de .Min (_de .Max (_afaa ,0),1.0);_eabd =_de .Min (_de .Max (_eabd ,0),1.0);_beddd =_de .Min (_de .Max (_beddd ,0),1.0);_afegg [0]=uint32 (_afaa *_faeb );_afegg [1]=uint32 (_eabd *_faeb );_afegg [2]=uint32 (_beddd *_faeb );
|
||
if _bbge =_ggc .WriteSamples (_afegg );_bbge !=nil {return img ,_bbge ;};};return _cggae (&_bfed ),nil ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;
|
||
);
|
||
|
||
// PdfOutputIntent provides a means for matching the color characteristics of a PDF document with
|
||
// those of a target output device.
|
||
// Multiple PdfOutputIntents allows the production process to be customized to the expected workflow and the specific
|
||
// tools available.
|
||
type PdfOutputIntent struct{
|
||
|
||
// Type is an optional PDF object that this dictionary describes.
|
||
// If present, must be OutputIntent for an output intent dictionary.
|
||
Type string ;
|
||
|
||
// S defines the OutputIntent subtype which should match the standard used in given document i.e:
|
||
// for PDF/X use PdfOutputIntentTypeX.
|
||
S PdfOutputIntentType ;
|
||
|
||
// OutputCondition is an optional field that is identifying the intended output device or production condition in
|
||
// human-readable form. This is preferred method of defining such a string for presentation to the user.
|
||
OutputCondition string ;
|
||
|
||
// OutputConditionIdentifier is a required field identifying the intended output device or production condition in
|
||
// human or machine-readable form. If human-readable, this string may be used
|
||
// in lieu of an OutputCondition for presentation to the user.
|
||
// A typical value for this entry would be the name of a production condition maintained
|
||
// in an industry-standard registry such as the ICC Characterization Data Registry
|
||
// If the intended production condition is not a recognized standard, the value Custom is recommended for this entry.
|
||
// the DestOutputProfile entry defines the ICC profile, and the Info entry is used for further
|
||
// human-readable identification.
|
||
OutputConditionIdentifier string ;
|
||
|
||
// RegistryName is an optional string field (conventionally URI) identifying the registry in which the condition
|
||
// designated by OutputConditionIdentifier is defined.
|
||
RegistryName string ;
|
||
|
||
// Info is a required field if OutputConditionIdentifier does not specify a standard production condition.
|
||
// A human-readable text string containing additional information or comments about intended
|
||
// target device or production condition.
|
||
Info string ;
|
||
|
||
// DestOutputProfile is required if OutputConditionIdentifier does not specify a standard production condition.
|
||
// It is an ICC profile stream defining the transformation from the PDF document's source colors to output device colorants.
|
||
DestOutputProfile []byte ;
|
||
|
||
// ColorComponents is the number of color components supported by given output profile.
|
||
ColorComponents int ;_bfbdb *_eca .PdfObjectDictionary ;};func (_bgbd *pdfFontType0 )baseFields ()*fontCommon {return &_bgbd .fontCommon };
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_eaacf OutlineDest )ToPdfObject ()_eca .PdfObject {if (_eaacf .PageObj ==nil &&_eaacf .Page < 0)||_eaacf .Mode ==""{return _eca .MakeNull ();};_aggce :=_eca .MakeArray ();if _eaacf .PageObj !=nil {_aggce .Append (_eaacf .PageObj );}else {_aggce .Append (_eca .MakeInteger (_eaacf .Page ));
|
||
};_aggce .Append (_eca .MakeName (_eaacf .Mode ));switch _eaacf .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_aggce .Append (_eca .MakeFloat (_eaacf .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_aggce .Append (_eca .MakeFloat (_eaacf .X ));
|
||
case "\u0058\u0059\u005a":_aggce .Append (_eca .MakeFloat (_eaacf .X ));_aggce .Append (_eca .MakeFloat (_eaacf .Y ));_aggce .Append (_eca .MakeFloat (_eaacf .Zoom ));default:_aggce .Set (1,_eca .MakeName ("\u0046\u0069\u0074"));};return _aggce ;};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_egga *PdfSignature )SetReason (reason string ){_egga .Reason =_eca .MakeString (reason )};
|
||
|
||
// 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 ){_ddacd ,_acdab :=_dcb .ParsePdfTime (dateStr );if _acdab !=nil {return PdfDate {},_acdab ;};return NewPdfDateFromTime (_ddacd );};
|
||
|
||
// GetNamedDestinations returns the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_efccb *PdfReader )GetNamedDestinations ()(_eca .PdfObject ,error ){_egcacb :=_eca .ResolveReference (_efccb ._affc .Get ("\u0044\u0065\u0073t\u0073"));if _egcacb ==nil {return nil ,nil ;};if !_efccb ._gggcg {_ddagdc :=_efccb .traverseObjectData (_egcacb );
|
||
if _ddagdc !=nil {return nil ,_ddagdc ;};};return _egcacb ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fc *PdfActionImportData )ToPdfObject ()_eca .PdfObject {_fc .PdfAction .ToPdfObject ();_cgc :=_fc ._bee ;_caf :=_cgc .PdfObject .(*_eca .PdfObjectDictionary );_caf .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeImportData )));if _fc .F !=nil {_caf .Set ("\u0046",_fc .F .ToPdfObject ());
|
||
};return _cgc ;};
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_gecabg *PdfShading )GetContext ()PdfModel {return _gecabg ._abefa };func _febg (_ddded *_eca .PdfObjectDictionary )(*PdfFieldButton ,error ){_edaad :=&PdfFieldButton {};_edaad .PdfField =NewPdfField ();_edaad .PdfField .SetContext (_edaad );_edaad .Opt ,_ =_eca .GetArray (_ddded .Get ("\u004f\u0070\u0074"));
|
||
_babf :=NewPdfAnnotationWidget ();_babf .A ,_ =_eca .GetDict (_ddded .Get ("\u0041"));_babf .AP ,_ =_eca .GetDict (_ddded .Get ("\u0041\u0050"));_babf .SetContext (_edaad );_edaad .PdfField .Annotations =append (_edaad .PdfField .Annotations ,_babf );return _edaad ,nil ;
|
||
};
|
||
|
||
// 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 (_feba *PdfFont )CharcodesToUnicode (charcodes []_dbb .CharCode )[]rune {_acde ,_ ,_ :=_feba .CharcodesToUnicodeWithStats (charcodes );return _acde ;};func (_dgc *PdfReader )newPdfAnnotationFromIndirectObject (_abcf *_eca .PdfIndirectObject )(*PdfAnnotation ,error ){_dcbb ,_eeg :=_abcf .PdfObject .(*_eca .PdfObjectDictionary );
|
||
if !_eeg {return nil ,_g .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 :=_dgc ._dcddd .GetModelFromPrimitive (_dcbb );model !=nil {_fgf ,_ddgd :=model .(*PdfAnnotation );if !_ddgd {return nil ,_g .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 _fgf ,nil ;};_gadg :=&PdfAnnotation {};_gadg ._cdc =_abcf ;_dgc ._dcddd .Register (_dcbb ,_gadg );if _fbaf :=_dcbb .Get ("\u0054\u0079\u0070\u0065");_fbaf !=nil {_ggeb ,_gcg :=_fbaf .(*_eca .PdfObjectName );if !_gcg {_ccb .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",_fbaf );
|
||
}else {if *_ggeb !="\u0041\u006e\u006eo\u0074"{_ccb .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",*_ggeb );};};};
|
||
if _bge :=_dcbb .Get ("\u0052\u0065\u0063\u0074");_bge !=nil {_gadg .Rect =_bge ;};if _bbdg :=_dcbb .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bbdg !=nil {_gadg .Contents =_bbdg ;};if _edbe :=_dcbb .Get ("\u0050");_edbe !=nil {_gadg .P =_edbe ;
|
||
};if _acg :=_dcbb .Get ("\u004e\u004d");_acg !=nil {_gadg .NM =_acg ;};if _gfg :=_dcbb .Get ("\u004d");_gfg !=nil {_gadg .M =_gfg ;};if _bbfa :=_dcbb .Get ("\u0046");_bbfa !=nil {_gadg .F =_bbfa ;};if _eccg :=_dcbb .Get ("\u0041\u0050");_eccg !=nil {_gadg .AP =_eccg ;
|
||
};if _fbafg :=_dcbb .Get ("\u0041\u0053");_fbafg !=nil {_gadg .AS =_fbafg ;};if _dca :=_dcbb .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_dca !=nil {_gadg .Border =_dca ;};if _aegg :=_dcbb .Get ("\u0043");_aegg !=nil {_gadg .C =_aegg ;};if _efd :=_dcbb .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_efd !=nil {_gadg .StructParent =_efd ;};if _fge :=_dcbb .Get ("\u004f\u0043");_fge !=nil {_gadg .OC =_fge ;};_cdd :=_dcbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _cdd ==nil {_ccb .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");
|
||
_gadg ._abc =nil ;return _gadg ,nil ;};_eff ,_cdgdb :=_cdd .(*_eca .PdfObjectName );if !_cdgdb {_ccb .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",_cdd );
|
||
return nil ,_g .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",_cdd );};switch *_eff {case "\u0054\u0065\u0078\u0074":_dfd ,_ceg :=_dgc .newPdfAnnotationTextFromDict (_dcbb );
|
||
if _ceg !=nil {return nil ,_ceg ;};_dfd .PdfAnnotation =_gadg ;_gadg ._abc =_dfd ;return _gadg ,nil ;case "\u004c\u0069\u006e\u006b":_edf ,_aac :=_dgc .newPdfAnnotationLinkFromDict (_dcbb );if _aac !=nil {return nil ,_aac ;};_edf .PdfAnnotation =_gadg ;
|
||
_gadg ._abc =_edf ;return _gadg ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_dde ,_bdd :=_dgc .newPdfAnnotationFreeTextFromDict (_dcbb );if _bdd !=nil {return nil ,_bdd ;};_dde .PdfAnnotation =_gadg ;_gadg ._abc =_dde ;return _gadg ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_fded ,_deaa :=_dgc .newPdfAnnotationLineFromDict (_dcbb );if _deaa !=nil {return nil ,_deaa ;};_fded .PdfAnnotation =_gadg ;_gadg ._abc =_fded ;_ccb .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",_gadg ,_gadg );
|
||
_ccb .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",_fded ,_fded );_ccb .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",_fded .PdfAnnotationMarkup ,_fded .PdfAnnotationMarkup );
|
||
return _gadg ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_gefd ,_cgee :=_dgc .newPdfAnnotationSquareFromDict (_dcbb );if _cgee !=nil {return nil ,_cgee ;};_gefd .PdfAnnotation =_gadg ;_gadg ._abc =_gefd ;return _gadg ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_dccc ,_fef :=_dgc .newPdfAnnotationCircleFromDict (_dcbb );
|
||
if _fef !=nil {return nil ,_fef ;};_dccc .PdfAnnotation =_gadg ;_gadg ._abc =_dccc ;return _gadg ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_fgc ,_cbc :=_dgc .newPdfAnnotationPolygonFromDict (_dcbb );if _cbc !=nil {return nil ,_cbc ;};_fgc .PdfAnnotation =_gadg ;
|
||
_gadg ._abc =_fgc ;return _gadg ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ffc ,_bbda :=_dgc .newPdfAnnotationPolyLineFromDict (_dcbb );if _bbda !=nil {return nil ,_bbda ;};_ffc .PdfAnnotation =_gadg ;_gadg ._abc =_ffc ;return _gadg ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_ebae ,_gaf :=_dgc .newPdfAnnotationHighlightFromDict (_dcbb );if _gaf !=nil {return nil ,_gaf ;};_ebae .PdfAnnotation =_gadg ;_gadg ._abc =_ebae ;return _gadg ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_eec ,_aeaf :=_dgc .newPdfAnnotationUnderlineFromDict (_dcbb );
|
||
if _aeaf !=nil {return nil ,_aeaf ;};_eec .PdfAnnotation =_gadg ;_gadg ._abc =_eec ;return _gadg ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_dddbd ,_aaca :=_dgc .newPdfAnnotationSquigglyFromDict (_dcbb );if _aaca !=nil {return nil ,_aaca ;
|
||
};_dddbd .PdfAnnotation =_gadg ;_gadg ._abc =_dddbd ;return _gadg ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fbdc ,_ggbf :=_dgc .newPdfAnnotationStrikeOut (_dcbb );if _ggbf !=nil {return nil ,_ggbf ;};_fbdc .PdfAnnotation =_gadg ;_gadg ._abc =_fbdc ;
|
||
return _gadg ,nil ;case "\u0043\u0061\u0072e\u0074":_bdda ,_degd :=_dgc .newPdfAnnotationCaretFromDict (_dcbb );if _degd !=nil {return nil ,_degd ;};_bdda .PdfAnnotation =_gadg ;_gadg ._abc =_bdda ;return _gadg ,nil ;case "\u0053\u0074\u0061m\u0070":_fbec ,_bbfc :=_dgc .newPdfAnnotationStampFromDict (_dcbb );
|
||
if _bbfc !=nil {return nil ,_bbfc ;};_fbec .PdfAnnotation =_gadg ;_gadg ._abc =_fbec ;return _gadg ,nil ;case "\u0049\u006e\u006b":_fbg ,_cafc :=_dgc .newPdfAnnotationInkFromDict (_dcbb );if _cafc !=nil {return nil ,_cafc ;};_fbg .PdfAnnotation =_gadg ;
|
||
_gadg ._abc =_fbg ;return _gadg ,nil ;case "\u0050\u006f\u0070u\u0070":_dbg ,_fcg :=_dgc .newPdfAnnotationPopupFromDict (_dcbb );if _fcg !=nil {return nil ,_fcg ;};_dbg .PdfAnnotation =_gadg ;_gadg ._abc =_dbg ;return _gadg ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bbca ,_gdc :=_dgc .newPdfAnnotationFileAttachmentFromDict (_dcbb );
|
||
if _gdc !=nil {return nil ,_gdc ;};_bbca .PdfAnnotation =_gadg ;_gadg ._abc =_bbca ;return _gadg ,nil ;case "\u0053\u006f\u0075n\u0064":_ecb ,_edee :=_dgc .newPdfAnnotationSoundFromDict (_dcbb );if _edee !=nil {return nil ,_edee ;};_ecb .PdfAnnotation =_gadg ;
|
||
_gadg ._abc =_ecb ;return _gadg ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_ecab ,_ggbb :=_dgc .newPdfAnnotationRichMediaFromDict (_dcbb );if _ggbb !=nil {return nil ,_ggbb ;};_ecab .PdfAnnotation =_gadg ;_gadg ._abc =_ecab ;return _gadg ,nil ;
|
||
case "\u004d\u006f\u0076i\u0065":_daf ,_gadf :=_dgc .newPdfAnnotationMovieFromDict (_dcbb );if _gadf !=nil {return nil ,_gadf ;};_daf .PdfAnnotation =_gadg ;_gadg ._abc =_daf ;return _gadg ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_cgbc ,_ebb :=_dgc .newPdfAnnotationScreenFromDict (_dcbb );
|
||
if _ebb !=nil {return nil ,_ebb ;};_cgbc .PdfAnnotation =_gadg ;_gadg ._abc =_cgbc ;return _gadg ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_ggbg ,_aec :=_dgc .newPdfAnnotationWidgetFromDict (_dcbb );if _aec !=nil {return nil ,_aec ;};_ggbg .PdfAnnotation =_gadg ;
|
||
_gadg ._abc =_ggbg ;return _gadg ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_afe ,_eed :=_dgc .newPdfAnnotationPrinterMarkFromDict (_dcbb );if _eed !=nil {return nil ,_eed ;};_afe .PdfAnnotation =_gadg ;_gadg ._abc =_afe ;
|
||
return _gadg ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_gacfg ,_ggbfc :=_dgc .newPdfAnnotationTrapNetFromDict (_dcbb );if _ggbfc !=nil {return nil ,_ggbfc ;};_gacfg .PdfAnnotation =_gadg ;_gadg ._abc =_gacfg ;return _gadg ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_gadb ,_ddf :=_dgc .newPdfAnnotationWatermarkFromDict (_dcbb );
|
||
if _ddf !=nil {return nil ,_ddf ;};_gadb .PdfAnnotation =_gadg ;_gadg ._abc =_gadb ;return _gadg ,nil ;case "\u0033\u0044":_dab ,_bddb :=_dgc .newPdfAnnotation3DFromDict (_dcbb );if _bddb !=nil {return nil ,_bddb ;};_dab .PdfAnnotation =_gadg ;_gadg ._abc =_dab ;
|
||
return _gadg ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_fccc ,_bgfa :=_dgc .newPdfAnnotationProjectionFromDict (_dcbb );if _bgfa !=nil {return nil ,_bgfa ;};_fccc .PdfAnnotation =_gadg ;_gadg ._abc =_fccc ;return _gadg ,nil ;
|
||
case "\u0052\u0065\u0064\u0061\u0063\u0074":_aca ,_fdgd :=_dgc .newPdfAnnotationRedactFromDict (_dcbb );if _fdgd !=nil {return nil ,_fdgd ;};_aca .PdfAnnotation =_gadg ;_gadg ._abc =_aca ;return _gadg ,nil ;};_ccb .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",*_eff );
|
||
return nil ,nil ;};
|
||
|
||
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
|
||
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _eca .PdfObjectName ;};func (_eaba *PdfReader )newPdfAnnotationStrikeOut (_bed *_eca .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_bbeg :=PdfAnnotationStrikeOut {};_dedc ,_gfea :=_eaba .newPdfAnnotationMarkupFromDict (_bed );
|
||
if _gfea !=nil {return nil ,_gfea ;};_bbeg .PdfAnnotationMarkup =_dedc ;_bbeg .QuadPoints =_bed .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bbeg ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ceea *PdfColorDeviceGray )ToInteger (bits int )uint32 {_gecb :=_de .Pow (2,float64 (bits ))-1;return uint32 (_gecb *_ceea .Val ());};
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_eca .PdfObjectString ;Q *_eca .PdfObjectInteger ;DS *_eca .PdfObjectString ;RV _eca .PdfObject ;MaxLen *_eca .PdfObjectInteger ;};func _beeca (_bgbc _eca .PdfObject )(*PdfColorspaceDeviceN ,error ){_ccdc :=NewPdfColorspaceDeviceN ();
|
||
if _eaedg ,_edeec :=_bgbc .(*_eca .PdfIndirectObject );_edeec {_ccdc ._bded =_eaedg ;};_bgbc =_eca .TraceToDirectObject (_bgbc );_gdgfc ,_bceb :=_bgbc .(*_eca .PdfObjectArray );if !_bceb {return nil ,_g .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 _gdgfc .Len ()!=4&&_gdgfc .Len ()!=5{return nil ,_g .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");};_bgbc =_gdgfc .Get (0);
|
||
_eddba ,_bceb :=_bgbc .(*_eca .PdfObjectName );if !_bceb {return nil ,_g .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 *_eddba !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_g .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");};_bgbc =_gdgfc .Get (1);
|
||
_bgbc =_eca .TraceToDirectObject (_bgbc );_cbccd ,_bceb :=_bgbc .(*_eca .PdfObjectArray );if !_bceb {return nil ,_g .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");
|
||
};_ccdc .ColorantNames =_cbccd ;_bgbc =_gdgfc .Get (2);_fgbe ,_gfead :=NewPdfColorspaceFromPdfObject (_bgbc );if _gfead !=nil {return nil ,_gfead ;};_ccdc .AlternateSpace =_fgbe ;_eegdf ,_gfead :=_febaf (_gdgfc .Get (3));if _gfead !=nil {return nil ,_gfead ;
|
||
};_ccdc .TintTransform =_eegdf ;if _gdgfc .Len ()==5{_cdbf ,_bdceb :=_fgef (_gdgfc .Get (4));if _bdceb !=nil {return nil ,_bdceb ;};_ccdc .Attributes =_cdbf ;};return _ccdc ,nil ;};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_dbf *PdfAction )String ()string {_bg ,_gad :=_dbf .ToPdfObject ().(*_eca .PdfIndirectObject );if _gad {return _g .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_dbf ._cd ,_bg .PdfObject .String ());};return "";};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_dafab *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ccb .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_cdged :=[]float64 {0.0};if _dafab .C0 !=nil {_cdged =_dafab .C0 ;};_cbdc :=[]float64 {1.0};if _dafab .C1 !=nil {_cbdc =_dafab .C1 ;};var _aefac []float64 ;for _dfeb :=0;_dfeb < len (_cdged );_dfeb ++{_fbdge :=_cdged [_dfeb ]+_de .Pow (x [0],_dafab .N )*(_cbdc [_dfeb ]-_cdged [_dfeb ]);
|
||
_aefac =append (_aefac ,_fbdge );};return _aefac ,nil ;};
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_cdaad *PdfAcroForm )ToPdfObject ()_eca .PdfObject {_ddbb :=_cdaad ._aeac ;_cgef :=_ddbb .PdfObject .(*_eca .PdfObjectDictionary );if _cdaad .Fields !=nil {_ffebd :=_eca .PdfObjectArray {};for _ ,_ddagd :=range *_cdaad .Fields {_dgafec :=_ddagd .GetContext ();
|
||
if _dgafec !=nil {_ffebd .Append (_dgafec .ToPdfObject ());}else {_ffebd .Append (_ddagd .ToPdfObject ());};};_cgef .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ffebd );};if _cdaad .NeedAppearances !=nil {_cgef .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_cdaad .NeedAppearances );
|
||
}else {if _ffbabg :=_cgef .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_ffbabg !=nil {_cgef .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _cdaad .SigFlags !=nil {_cgef .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_cdaad .SigFlags );
|
||
};if _cdaad .CO !=nil {_cgef .Set ("\u0043\u004f",_cdaad .CO );};if _cdaad .DR !=nil {_cgef .Set ("\u0044\u0052",_cdaad .DR .ToPdfObject ());};if _cdaad .DA !=nil {_cgef .Set ("\u0044\u0041",_cdaad .DA );};if _cdaad .Q !=nil {_cgef .Set ("\u0051",_cdaad .Q );
|
||
};if _cdaad .XFA !=nil {_cgef .Set ("\u0058\u0046\u0041",_cdaad .XFA );};if _cdaad .ADBEEchoSign !=nil {_cgef .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_cdaad .ADBEEchoSign );};return _ddbb ;};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_defg fontCommon )String ()string {return _g .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_defg .coreString ());};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_beac *PdfAnnotation3D )ToPdfObject ()_eca .PdfObject {_beac .PdfAnnotation .ToPdfObject ();_bfab :=_beac ._cdc ;_efdd :=_bfab .PdfObject .(*_eca .PdfObjectDictionary );_efdd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0033\u0044"));
|
||
_efdd .SetIfNotNil ("\u0033\u0044\u0044",_beac .T3DD );_efdd .SetIfNotNil ("\u0033\u0044\u0056",_beac .T3DV );_efdd .SetIfNotNil ("\u0033\u0044\u0041",_beac .T3DA );_efdd .SetIfNotNil ("\u0033\u0044\u0049",_beac .T3DI );_efdd .SetIfNotNil ("\u0033\u0044\u0042",_beac .T3DB );
|
||
return _bfab ;};func _eagff (_gfede _eca .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbaeca :=&PdfPageResourcesColorspaces {};if _fgbeg ,_fegae :=_gfede .(*_eca .PdfIndirectObject );_fegae {_gbaeca ._faddg =_fgbeg ;_gfede =_fgbeg .PdfObject ;};
|
||
_dfaa ,_cfag :=_eca .GetDict (_gfede );if !_cfag {return nil ,_da .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_gbaeca .Names =[]string {};_gbaeca .Colorspaces =map[string ]PdfColorspace {};
|
||
for _ ,_eebe :=range _dfaa .Keys (){_geggd :=_dfaa .Get (_eebe );_gbaeca .Names =append (_gbaeca .Names ,string (_eebe ));_dbgfd ,_bbff :=NewPdfColorspaceFromPdfObject (_geggd );if _bbff !=nil {return nil ,_bbff ;};_gbaeca .Colorspaces [string (_eebe )]=_dbgfd ;
|
||
};return _gbaeca ,nil ;};
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_fffcb *PdfPageResources )SetShadingByName (keyName _eca .PdfObjectName ,shadingObj _eca .PdfObject )error {if _fffcb .Shading ==nil {_fffcb .Shading =_eca .MakeDict ();};_eaef ,_eadadf :=_eca .GetDict (_fffcb .Shading );if !_eadadf {return _eca .ErrTypeError ;
|
||
};_eaef .Set (keyName ,shadingObj );return nil ;};func (_bfbba *PdfWriter )seekByName (_baaaa _eca .PdfObject ,_eefee []string ,_fcdfc string )([]_eca .PdfObject ,error ){_ccb .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_baaaa );
|
||
var _cebea []_eca .PdfObject ;if _abffa ,_gcbgd :=_baaaa .(*_eca .PdfIndirectObject );_gcbgd {return _bfbba .seekByName (_abffa .PdfObject ,_eefee ,_fcdfc );};if _egdga ,_eggcg :=_baaaa .(*_eca .PdfObjectStream );_eggcg {return _bfbba .seekByName (_egdga .PdfObjectDictionary ,_eefee ,_fcdfc );
|
||
};if _aeab ,_afbda :=_baaaa .(*_eca .PdfObjectDictionary );_afbda {_ccb .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_gedfc :=range _aeab .Keys (){_fbcd :=_aeab .Get (_gedfc );if string (_gedfc )==_fcdfc {_cebea =append (_cebea ,_fbcd );};for _ ,_bfcbc :=range _eefee {if string (_gedfc )==_bfcbc {_ccb .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_bfcbc );
|
||
_ccdga ,_bdccb :=_bfbba .seekByName (_fbcd ,_eefee ,_fcdfc );if _bdccb !=nil {return _cebea ,_bdccb ;};_cebea =append (_cebea ,_ccdga ...);break ;};};};return _cebea ,nil ;};return _cebea ,nil ;};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_cbbgb *PdfFieldButton )IsCheckbox ()bool {return _cbbgb .GetType ()==ButtonTypeCheckbox };func _efe (_fde _eca .PdfObject )(*PdfFilespec ,error ){if _fde ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_fde );};
|
||
|
||
// 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 _eca .PdfObject ;FontFamily _eca .PdfObject ;FontStretch _eca .PdfObject ;FontWeight _eca .PdfObject ;Flags _eca .PdfObject ;FontBBox _eca .PdfObject ;ItalicAngle _eca .PdfObject ;Ascent _eca .PdfObject ;Descent _eca .PdfObject ;
|
||
Leading _eca .PdfObject ;CapHeight _eca .PdfObject ;XHeight _eca .PdfObject ;StemV _eca .PdfObject ;StemH _eca .PdfObject ;AvgWidth _eca .PdfObject ;MaxWidth _eca .PdfObject ;MissingWidth _eca .PdfObject ;FontFile _eca .PdfObject ;FontFile2 _eca .PdfObject ;
|
||
FontFile3 _eca .PdfObject ;CharSet _eca .PdfObject ;_feaf int ;_fdadf float64 ;*fontFile ;_aacg *_ffd .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _eca .PdfObject ;Lang _eca .PdfObject ;FD _eca .PdfObject ;CIDSet _eca .PdfObject ;_acccb *_eca .PdfIndirectObject ;};func _cbabf (_ddcge *_eca .PdfObjectArray )(float64 ,error ){_agaec ,_ecaab :=_ddcge .ToFloat64Array ();if _ecaab !=nil {_ccb .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",_ddcge ,_ecaab );
|
||
};switch len (_agaec ){case 1:return _agaec [0],nil ;case 3:_cfceg :=PdfColorspaceDeviceRGB {};_agbdc ,_deccbc :=_cfceg .ColorFromFloats (_agaec );if _deccbc !=nil {return 0.0,_deccbc ;};return _agbdc .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_bceac :=PdfColorspaceDeviceCMYK {};
|
||
_ebcde ,_feebc :=_bceac .ColorFromFloats (_agaec );if _feebc !=nil {return 0.0,_feebc ;};_gdafcg ,_feebc :=_bceac .ColorToRGB (_ebcde .(*PdfColorDeviceCMYK ));if _feebc !=nil {return 0.0,_feebc ;};return _gdafcg .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
|
||
};_ecaab =_da .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_ccb .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_ddcge ,_ecaab );
|
||
return 0.0,_ecaab ;};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_abec *PdfColorDeviceCMYK )Y ()float64 {return _abec [2]};
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_gffbg *PdfField )PartialName ()string {_cbbced :="";if _gffbg .T !=nil {_cbbced =_gffbg .T .Decoded ();}else {_ccb .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 _cbbced ;};
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_aggb []byte )(_efacdb int ,_ebfbb error );};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_ecda *PdfColorCalRGB )A ()float64 {return _ecda [0]};
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_cdgaf *PdfPage )AddExtGState (name _eca .PdfObjectName ,egs *_eca .PdfObjectDictionary )error {if _cdgaf .Resources ==nil {_cdgaf .Resources =NewPdfPageResources ();};if _cdgaf .Resources .ExtGState ==nil {_cdgaf .Resources .ExtGState =_eca .MakeDict ();
|
||
};_ffgd ,_fdecd :=_eca .TraceToDirectObject (_cdgaf .Resources .ExtGState ).(*_eca .PdfObjectDictionary );if !_fdecd {_ccb .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",_eca .TraceToDirectObject (_cdgaf .Resources .ExtGState ));
|
||
return _da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ffgd .Set (name ,egs );return nil ;};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _eca .PdfObject ;Flags _eca .PdfObject ;};
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_cceab *PdfPageResources )GetExtGState (keyName _eca .PdfObjectName )(_eca .PdfObject ,bool ){if _cceab .ExtGState ==nil {return nil ,false ;};_fdfge ,_fbgba :=_eca .TraceToDirectObject (_cceab .ExtGState ).(*_eca .PdfObjectDictionary );if !_fbgba {_ccb .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",_cceab .ExtGState );
|
||
return nil ,false ;};if _eafe :=_fdfge .Get (keyName );_eafe !=nil {return _eafe ,true ;};return nil ,false ;};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_acd :=NewPdfAction ();_af :=&PdfActionGoToR {};_af .PdfAction =_acd ;_acd .SetContext (_af );return _af ;};
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _eca .PdfObject ;Name _eca .PdfObject ;State _eca .PdfObject ;StateModel _eca .PdfObject ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_bgad *PdfColorCalRGB )B ()float64 {return _bgad [1]};func _cgccc ()string {_ccbac .Lock ();defer _ccbac .Unlock ();return _aaaad };func (_bccbc PdfFont )actualFont ()pdfFont {if _bccbc ._dbgb ==nil {_ccb .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",_bccbc );
|
||
};return _bccbc ._dbgb ;};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_acfd *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_cdefe *PdfSignature )GetCerts ()([]*_ad .Certificate ,error ){var _eegcg []func ()([]*_ad .Certificate ,error );switch _ffeea ,_ :=_eca .GetNameVal (_cdefe .SubFilter );_ffeea {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":_eegcg =append (_eegcg ,_cdefe .extractChainFromPKCS7 ,_cdefe .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_eegcg =append (_eegcg ,_cdefe .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_eegcg =append (_eegcg ,_cdefe .extractChainFromPKCS7 );
|
||
default:return nil ,_g .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_ffeea );};for _ ,_abeeb :=range _eegcg {_efed ,_aceac :=_abeeb ();if _aceac !=nil {return nil ,_aceac ;
|
||
};if len (_efed )> 0{return _efed ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_abfga *PdfWriter )mapObjectStreams (_aabf bool )(map[_eca .PdfObject ]bool ,bool ){_aeefd :=make (map[_eca .PdfObject ]bool );for _ ,_gdcad :=range _abfga ._daecf {if _ceadcg ,_gfdcg :=_gdcad .(*_eca .PdfObjectStreams );
|
||
_gfdcg {_aabf =true ;for _ ,_ccfcb :=range _ceadcg .Elements (){_aeefd [_ccfcb ]=true ;if _edae ,_cbged :=_ccfcb .(*_eca .PdfIndirectObject );_cbged {_aeefd [_edae .PdfObject ]=true ;};};};};return _aeefd ,_aabf ;};
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_fgggg *PdfPageResources )SetColorspaceByName (keyName _eca .PdfObjectName ,cs PdfColorspace )error {_efab ,_bgacb :=_fgggg .GetColorspaces ();if _bgacb !=nil {_ccb .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",_bgacb );
|
||
return _bgacb ;};if _efab ==nil {_efab =NewPdfPageResourcesColorspaces ();_fgggg .SetColorSpace (_efab );};_efab .Set (keyName ,cs );return nil ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _eca .PdfObject ;T3DV _eca .PdfObject ;T3DA _eca .PdfObject ;T3DI _eca .PdfObject ;T3DB _eca .PdfObject ;};func (_cdea *PdfField )inherit (_gdgg func (*PdfField )bool )(bool ,error ){_defd :=map[*PdfField ]bool {};
|
||
_bbde :=false ;_cebd :=_cdea ;for _cebd !=nil {if _ ,_gede :=_defd [_cebd ];_gede {return false ,_da .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_eadd :=_gdgg (_cebd );if _eadd {_bbde =true ;
|
||
break ;};_defd [_cebd ]=true ;_cebd =_cebd .Parent ;};return _bbde ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_cdba *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acgaf :=vals [0];_cbfc :=[]float64 {_acgaf };_dbec ,_ccge :=_cdba .TintTransform .Evaluate (_cbfc );
|
||
if _ccge !=nil {_ccb .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",_ccge );_ccb .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_cdba .TintTransform );
|
||
return nil ,_ccge ;};_ccb .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",_dbec ,_cdba .AlternateSpace );
|
||
_bbbfaa ,_ccge :=_cdba .AlternateSpace .ColorFromFloats (_dbec );if _ccge !=nil {_ccb .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",_ccge );
|
||
return nil ,_ccge ;};return _bbbfaa ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bfca *PdfAnnotationSquare )ToPdfObject ()_eca .PdfObject {_bfca .PdfAnnotation .ToPdfObject ();_fgb :=_bfca ._cdc ;_cbde :=_fgb .PdfObject .(*_eca .PdfObjectDictionary );if _bfca .PdfAnnotationMarkup !=nil {_bfca .PdfAnnotationMarkup .appendToPdfDictionary (_cbde );
|
||
};_cbde .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_cbde .SetIfNotNil ("\u0042\u0053",_bfca .BS );_cbde .SetIfNotNil ("\u0049\u0043",_bfca .IC );_cbde .SetIfNotNil ("\u0042\u0045",_bfca .BE );
|
||
_cbde .SetIfNotNil ("\u0052\u0044",_bfca .RD );return _fgb ;};func (_befac *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _befac ._ecfeba .GetCrypter ()!=nil &&!_befac ._ecfeba .IsAuthenticated (){return nil ,_g .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");
|
||
};_gccbb :=_befac ._affc ;_cbeaa :=_gccbb .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _cbeaa ==nil {return nil ,nil ;};_ccb .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_gefg :=_eca .ResolveReference (_cbeaa );
|
||
_ccb .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_gefg );if _gdefc :=_eca .IsNullObject (_gefg );_gdefc {_ccb .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 ;};_cgdabb ,_gddfc :=_gefg .(*_eca .PdfIndirectObject );if !_gddfc {if _ ,_aebbf :=_eca .GetDict (_gefg );!_aebbf {_ccb .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 ;};_ccb .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");
|
||
_cgdabb =_eca .MakeIndirectObject (_gefg );};_dfgc ,_gddfc :=_cgdabb .PdfObject .(*_eca .PdfObjectDictionary );if !_gddfc {return nil ,_da .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");
|
||
};_ccb .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_dfgc );_ddaabd ,_ ,_gbbc :=_befac .buildOutlineTree (_cgdabb ,nil ,nil ,nil );if _gbbc !=nil {return nil ,_gbbc ;};_ccb .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",_ddaabd );
|
||
return _ddaabd ,nil ;};
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};func (_aafef *PdfSignature )extractChainFromPKCS7 ()([]*_ad .Certificate ,error ){_gbfbdb ,_becdd :=_dcc .Parse (_aafef .Contents .Bytes ());if _becdd !=nil {return nil ,_becdd ;
|
||
};return _gbfbdb .Certificates ,nil ;};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_adcgc *_eca .PdfIndirectObject ;};
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_ffb *PdfAction )SetContext (ctx PdfModel ){_ffb ._cd =ctx };
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// 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 ,_dbb .SimpleEncoder ,error ){_bcfa ,_afgdg :=_dbecc (basefont );if _afgdg !=nil {return nil ,nil ,_afgdg ;};_dfac ,_gbge :=_bcfa .Encoder ().(_dbb .SimpleEncoder );
|
||
if !_gbge {return nil ,nil ,_g .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",_bcfa .Encoder ());
|
||
};_gdbf :=make (map[rune ]_dbb .GlyphName );for _dbgbc :=range alphabet {if _ ,_faga :=_dfac .RuneToCharcode (_dbgbc );!_faga {_ ,_dcbd :=_bcfa ._cedde .Read (_dbgbc );if !_dcbd {_ccb .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",_dbgbc ,_dbgbc );
|
||
continue ;};_afbdd ,_dcbd :=_dbb .RuneToGlyph (_dbgbc );if !_dcbd {_ccb .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_dbgbc ,_dbgbc );continue ;};if len (_gdbf )>=255{return nil ,nil ,_da .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");
|
||
};_gdbf [_dbgbc ]=_afbdd ;};};var (_daaf []_dbb .CharCode ;_ceeg []_dbb .CharCode ;);for _accbc :=_dbb .CharCode (1);_accbc <=0xff;_accbc ++{_baeca ,_baabb :=_dfac .CharcodeToRune (_accbc );if !_baabb {_daaf =append (_daaf ,_accbc );continue ;};if _ ,_baabb =alphabet [_baeca ];
|
||
!_baabb {_ceeg =append (_ceeg ,_accbc );};};_efffb :=append (_daaf ,_ceeg ...);if len (_efffb )< len (_gdbf ){return nil ,nil ,_g .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 (_gdbf ),len (_efffb ));
|
||
};_abaaf :=make ([]rune ,0,len (_gdbf ));for _bfcb :=range _gdbf {_abaaf =append (_abaaf ,_bfcb );};_gac .Slice (_abaaf ,func (_aabeg ,_fcdad int )bool {return _abaaf [_aabeg ]< _abaaf [_fcdad ]});_aaced :=make (map[_dbb .CharCode ]_dbb .GlyphName ,len (_abaaf ));
|
||
for _ ,_afdb :=range _abaaf {_gbcde :=_efffb [0];_efffb =_efffb [1:];_aaced [_gbcde ]=_gdbf [_afdb ];};_dfac =_dbb .ApplyDifferences (_dfac ,_aaced );_bcfa .SetEncoder (_dfac );return &PdfFont {_dbgb :&_bcfa },_dfac ,nil ;};
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_daa :=NewPdfAnnotation ();_fdee :=&PdfAnnotationUnderline {};_fdee .PdfAnnotation =_daa ;_fdee .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_daa .SetContext (_fdee );return _fdee ;};func _dcegf (_fcag _eca .PdfObject )(*PdfColorspaceLab ,error ){_egca :=NewPdfColorspaceLab ();
|
||
if _gdee ,_accca :=_fcag .(*_eca .PdfIndirectObject );_accca {_egca ._egcf =_gdee ;};_fcag =_eca .TraceToDirectObject (_fcag );_gdbd ,_deefa :=_fcag .(*_eca .PdfObjectArray );if !_deefa {return nil ,_g .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _gdbd .Len ()!=2{return nil ,_g .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_fcag =_eca .TraceToDirectObject (_gdbd .Get (0));_caeb ,_deefa :=_fcag .(*_eca .PdfObjectName );
|
||
if !_deefa {return nil ,_g .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 *_caeb !="\u004c\u0061\u0062"{return nil ,_g .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");
|
||
};_fcag =_eca .TraceToDirectObject (_gdbd .Get (1));_adde ,_deefa :=_fcag .(*_eca .PdfObjectDictionary );if !_deefa {return nil ,_g .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");
|
||
};_fcag =_adde .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_fcag =_eca .TraceToDirectObject (_fcag );_eedb ,_deefa :=_fcag .(*_eca .PdfObjectArray );if !_deefa {return nil ,_g .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
|
||
};if _eedb .Len ()!=3{return nil ,_g .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");};_fecg ,_cfea :=_eedb .GetAsFloat64Slice ();
|
||
if _cfea !=nil {return nil ,_cfea ;};_egca .WhitePoint =_fecg ;_fcag =_adde .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fcag !=nil {_fcag =_eca .TraceToDirectObject (_fcag );_gceb ,_gbbb :=_fcag .(*_eca .PdfObjectArray );if !_gbbb {return nil ,_g .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");
|
||
};if _gceb .Len ()!=3{return nil ,_g .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");};_ebbca ,_edba :=_gceb .GetAsFloat64Slice ();
|
||
if _edba !=nil {return nil ,_edba ;};_egca .BlackPoint =_ebbca ;};_fcag =_adde .Get ("\u0052\u0061\u006eg\u0065");if _fcag !=nil {_fcag =_eca .TraceToDirectObject (_fcag );_abaae ,_afebb :=_fcag .(*_eca .PdfObjectArray );if !_afebb {_ccb .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
return nil ,_g .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _abaae .Len ()!=4{_ccb .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_g .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_gefb ,_egaf :=_abaae .GetAsFloat64Slice ();if _egaf !=nil {return nil ,_egaf ;};_egca .Range =_gefb ;};return _egca ,nil ;};func (_dfe *PdfReader )newPdfAnnotationStampFromDict (_ggbe *_eca .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_gcdd :=PdfAnnotationStamp {};
|
||
_ggf ,_ggbcg :=_dfe .newPdfAnnotationMarkupFromDict (_ggbe );if _ggbcg !=nil {return nil ,_ggbcg ;};_gcdd .PdfAnnotationMarkup =_ggf ;_gcdd .Name =_ggbe .Get ("\u004e\u0061\u006d\u0065");return &_gcdd ,nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cgca pdfCIDFontType2 )Encoder ()_dbb .TextEncoder {return _cgca ._gafg };var _gfgfb =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":{}};
|
||
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_effc *PdfFieldText )ToPdfObject ()_eca .PdfObject {_effc .PdfField .ToPdfObject ();_feag :=_effc ._geaa ;_eegdd :=_feag .PdfObject .(*_eca .PdfObjectDictionary );_eegdd .Set ("\u0046\u0054",_eca .MakeName ("\u0054\u0078"));if _effc .DA !=nil {_eegdd .Set ("\u0044\u0041",_effc .DA );
|
||
};if _effc .Q !=nil {_eegdd .Set ("\u0051",_effc .Q );};if _effc .DS !=nil {_eegdd .Set ("\u0044\u0053",_effc .DS );};if _effc .RV !=nil {_eegdd .Set ("\u0052\u0056",_effc .RV );};if _effc .MaxLen !=nil {_eegdd .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_effc .MaxLen );
|
||
};return _feag ;};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_aabg *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _aabg .Alternate ==nil {_ccb .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 _aabg .N ==1{_ccb .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");
|
||
_gbcfg :=NewPdfColorspaceDeviceGray ();return _gbcfg .ColorToRGB (color );}else if _aabg .N ==3{_ccb .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 _aabg .N ==4{_ccb .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");
|
||
_aedda :=NewPdfColorspaceDeviceCMYK ();return _aedda .ColorToRGB (color );}else {return nil ,_da .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");
|
||
};};_ccb .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",_aabg );
|
||
return _aabg .Alternate .ColorToRGB (color );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egf *PdfActionRendition )ToPdfObject ()_eca .PdfObject {_egf .PdfAction .ToPdfObject ();_edg :=_egf ._bee ;_ede :=_edg .PdfObject .(*_eca .PdfObjectDictionary );_ede .SetIfNotNil ("\u0053",_eca .MakeName (string (ActionTypeRendition )));_ede .SetIfNotNil ("\u0052",_egf .R );
|
||
_ede .SetIfNotNil ("\u0041\u004e",_egf .AN );_ede .SetIfNotNil ("\u004f\u0050",_egf .OP );_ede .SetIfNotNil ("\u004a\u0053",_egf .JS );return _edg ;};func _bfdea (_agfa _eca .PdfObject )(*PdfFunctionType3 ,error ){_fdebc :=&PdfFunctionType3 {};var _edef *_eca .PdfObjectDictionary ;
|
||
if _facg ,_bdcf :=_agfa .(*_eca .PdfIndirectObject );_bdcf {_cbacf ,_egbc :=_facg .PdfObject .(*_eca .PdfObjectDictionary );if !_egbc {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fdebc ._cddb =_facg ;
|
||
_edef =_cbacf ;}else if _dbccb ,_effbc :=_agfa .(*_eca .PdfObjectDictionary );_effbc {_edef =_dbccb ;}else {return nil ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_caddg ,_bcdf :=_eca .TraceToDirectObject (_edef .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_eca .PdfObjectArray );
|
||
if !_bcdf {_ccb .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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 _caddg .Len ()!=2{_ccb .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_da .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bagg ,_cgbdd :=_caddg .ToFloat64Array ();
|
||
if _cgbdd !=nil {return nil ,_cgbdd ;};_fdebc .Domain =_bagg ;_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0052\u0061\u006eg\u0065")).(*_eca .PdfObjectArray );if _bcdf {if _caddg .Len ()< 0||_caddg .Len ()%2!=0{return nil ,_da .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_afca ,_eaag :=_caddg .ToFloat64Array ();if _eaag !=nil {return nil ,_eaag ;};_fdebc .Range =_afca ;};_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_eca .PdfObjectArray );if !_bcdf {_ccb .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 ,_da .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");};_fdebc .Functions =[]PdfFunction {};
|
||
for _ ,_fdag :=range _caddg .Elements (){_facf ,_bgfc :=_febaf (_fdag );if _bgfc !=nil {return nil ,_bgfc ;};_fdebc .Functions =append (_fdebc .Functions ,_facf );};_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_eca .PdfObjectArray );
|
||
if !_bcdf {_ccb .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_da .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");
|
||
};_agcbe ,_cgbdd :=_caddg .ToFloat64Array ();if _cgbdd !=nil {return nil ,_cgbdd ;};_fdebc .Bounds =_agcbe ;if len (_fdebc .Bounds )!=len (_fdebc .Functions )-1{_ccb .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 (_fdebc .Bounds ),len (_fdebc .Functions ));
|
||
return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_caddg ,_bcdf =_eca .TraceToDirectObject (_edef .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_eca .PdfObjectArray );if !_bcdf {_ccb .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_da .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");};_bcfaf ,_cgbdd :=_caddg .ToFloat64Array ();
|
||
if _cgbdd !=nil {return nil ,_cgbdd ;};_fdebc .Encode =_bcfaf ;if len (_fdebc .Encode )!=2*len (_fdebc .Functions ){_ccb .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 (_fdebc .Encode ),len (_fdebc .Functions ));
|
||
return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _fdebc ,nil ;};
|
||
|
||
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
|
||
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_eca .PdfObjectArray ;ExtGState _eca .PdfObject ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_cggfd *PdfColorDeviceCMYK )M ()float64 {return _cggfd [1]};func _bcedebe ()_d .Time {_ccbac .Lock ();defer _ccbac .Unlock ();return _fcacce };
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_gadga *PdfPageResources )SetXObjectFormByName (keyName _eca .PdfObjectName ,xform *XObjectForm )error {_fcgbd :=xform .ToPdfObject ().(*_eca .PdfObjectStream );_ffdcb :=_gadga .SetXObjectByName (keyName ,_fcgbd );return _ffdcb ;};
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_dafgf *PdfFontDescriptor )String ()string {var _accea []string ;if _dafgf .FontName !=nil {_accea =append (_accea ,_dafgf .FontName .String ());};if _dafgf .FontFamily !=nil {_accea =append (_accea ,_dafgf .FontFamily .String ());};if _dafgf .fontFile !=nil {_accea =append (_accea ,_dafgf .fontFile .String ());
|
||
};if _dafgf ._aacg !=nil {_accea =append (_accea ,_dafgf ._aacg .String ());};_accea =append (_accea ,_g .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_dafgf .FontFile3 !=nil ));return _g .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_ec .Join (_accea ,"\u002c\u0020"));
|
||
};func (_dgfc *pdfFontSimple )updateStandard14Font (){_befb ,_daadb :=_dgfc .Encoder ().(_dbb .SimpleEncoder );if !_daadb {_ccb .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",_dgfc .Encoder (),_dgfc );
|
||
return ;};_bcecg :=_befb .Charcodes ();_dgfc ._gfcfb =make (map[_dbb .CharCode ]float64 ,len (_bcecg ));for _ ,_eeac :=range _bcecg {_ggbbf ,_ :=_befb .CharcodeToRune (_eeac );_gfeg ,_ :=_dgfc ._cedde .Read (_ggbbf );_dgfc ._gfcfb [_eeac ]=_gfeg .Wx ;};
|
||
};func _ccda ()string {_dbcce :="\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 _dcddf _dd .Buffer ;for _gbeac :=0;_gbeac < 6;_gbeac ++{_dcddf .WriteRune (rune (_dbcce [_eb .Intn (len (_dbcce ))]));
|
||
};return _dcddf .String ();};func (_aegf *PdfReader )newPdfAnnotationFileAttachmentFromDict (_cgeeg *_eca .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_aed :=PdfAnnotationFileAttachment {};_acdb ,_gee :=_aegf .newPdfAnnotationMarkupFromDict (_cgeeg );
|
||
if _gee !=nil {return nil ,_gee ;};_aed .PdfAnnotationMarkup =_acdb ;_aed .FS =_cgeeg .Get ("\u0046\u0053");_aed .Name =_cgeeg .Get ("\u004e\u0061\u006d\u0065");return &_aed ,nil ;};func (_dbaec *XObjectImage )getParamsDict ()*_eca .PdfObjectDictionary {_cabca :=_eca .MakeDict ();
|
||
_cabca .Set ("\u0057\u0069\u0064t\u0068",_eca .MakeInteger (*_dbaec .Width ));_cabca .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eca .MakeInteger (*_dbaec .Height ));_cabca .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_eca .MakeInteger (int64 (_dbaec .ColorSpace .GetNumComponents ())));
|
||
_cabca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eca .MakeInteger (*_dbaec .BitsPerComponent ));return _cabca ;};
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _d .Time ){_ccbac .Lock ();defer _ccbac .Unlock ();_bddc =modifiedDate ;};func (_fdfdf *PdfWriter )writeBytes (_aaddb []byte ){if _fdfdf ._fafa !=nil {return ;};_cfegd ,_cfdba :=_fdfdf ._agbgb .Write (_aaddb );_fdfdf ._eggaf +=int64 (_cfegd );
|
||
_fdfdf ._fafa =_cfdba ;};
|
||
|
||
// NewPermissions returns a new permissions object.
|
||
func NewPermissions (docMdp *PdfSignature )*Permissions {_abcdg :=Permissions {};_abcdg .DocMDP =docMdp ;_ccaed :=_eca .MakeDict ();_ccaed .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_abcdg ._bffgb =_ccaed ;return &_abcdg ;};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_fcccc *XObjectImage )SetFilter (encoder _eca .StreamEncoder )error {_afdbf :=_fcccc .Stream ;_bedad ,_fcdcg :=_fcccc .Filter .DecodeBytes (_afdbf );if _fcdcg !=nil {return _fcdcg ;};_fcccc .Filter =encoder ;encoder .UpdateParams (_fcccc .getParamsDict ());
|
||
_afdbf ,_fcdcg =encoder .EncodeBytes (_bedad );if _fcdcg !=nil {return _fcdcg ;};_fcccc .Stream =_afdbf ;return nil ;};
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_eca .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _eca .PdfObject ;A _eca .PdfObject ;SE _eca .PdfObject ;C _eca .PdfObject ;F _eca .PdfObject ;
|
||
_becge *_eca .PdfIndirectObject ;};func _ceaa (_fdae []byte )[]byte {const _cegf =52845;const _cadd =22719;_fagc :=55665;for _ ,_ccced :=range _fdae [:4]{_fagc =(int (_ccced )+_fagc )*_cegf +_cadd ;};_fedbf :=make ([]byte ,len (_fdae )-4);for _ceegb ,_eabgg :=range _fdae [4:]{_fedbf [_ceegb ]=byte (int (_eabgg )^_fagc >>8);
|
||
_fagc =(int (_eabgg )+_fagc )*_cegf +_cadd ;};return _fedbf ;};func (_edgbe *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _edgbe ._ccec ==nil &&_edgbe .DescendantFont !=nil {return _edgbe .DescendantFont .FontDescriptor ();};return _edgbe ._ccec ;
|
||
};
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_afeca *PdfField )SetFlag (flag FieldFlag ){_afeca .Ff =_eca .MakeInteger (int64 (flag ))};
|
||
|
||
// 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 (_cafgc *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _dbeca []*PdfField ;if _cafgc .AcroForm !=nil {_dbeca =_cafgc .AcroForm .AllFields ();};_efebf :=make (map[*PdfField ]struct{},len (_dbeca ));for _ ,_gefgg :=range _dbeca {_efebf [_gefgg ]=struct{}{};
|
||
};for _ ,_eceaecf :=range _cafgc .PageList {_beaa ,_cccff :=_eceaecf .GetAnnotations ();if _cccff !=nil {return false ,_cccff ;};for _ ,_cebfb :=range _beaa {_dgba ,_aeedb :=_cebfb .GetContext ().(*PdfAnnotationWidget );if !_aeedb {continue ;};_fgfg :=_dgba .Field ();
|
||
if _fgfg ==nil {return true ,nil ;};if _ ,_gcceg :=_efebf [_fgfg ];!_gcceg {return true ,nil ;};};};return false ,nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element in
|
||
// range 0-1.
|
||
func (_cceb *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_eca .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eacg ,_afgbc :=_eca .GetNumbersAsFloat (objects );
|
||
if _afgbc !=nil {return nil ,_afgbc ;};return _cceb .ColorFromFloats (_eacg );};func (_deeb *PdfReader )newPdfAnnotationSquigglyFromDict (_ggbc *_eca .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_bbdab :=PdfAnnotationSquiggly {};_ggea ,_daee :=_deeb .newPdfAnnotationMarkupFromDict (_ggbc );
|
||
if _daee !=nil {return nil ,_daee ;};_bbdab .PdfAnnotationMarkup =_ggea ;_bbdab .QuadPoints =_ggbc .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bbdab ,nil ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_ggfa *PdfColorLab )B ()float64 {return _ggfa [2]};
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_cega *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _eca .PdfObject ;Popup *PdfAnnotationPopup ;CA _eca .PdfObject ;RC _eca .PdfObject ;CreationDate _eca .PdfObject ;IRT _eca .PdfObject ;Subj _eca .PdfObject ;RT _eca .PdfObject ;IT _eca .PdfObject ;ExData _eca .PdfObject ;
|
||
};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_bggab *_eca .PdfIndirectObject ;_bceddb *_eca .PdfIndirectObject ;_eccgd map[_eca .PdfObject ]struct{};_daecf []_eca .PdfObject ;_ceace map[_eca .PdfObject ]struct{};_cafgb []*_eca .PdfIndirectObject ;_ccgeg *PdfOutlineTreeNode ;
|
||
_eeggd *_eca .PdfObjectDictionary ;_bbee []_eca .PdfObject ;_fbegc *_eca .PdfIndirectObject ;_agbgb *_b .Writer ;_eggaf int64 ;_fafa error ;_badga *_eca .PdfCrypt ;_bbfae *_eca .PdfObjectDictionary ;_fdgaf *_eca .PdfIndirectObject ;_dadf *_eca .PdfObjectArray ;
|
||
_dgab _eca .Version ;_edaga *bool ;_cbfcb map[_eca .PdfObject ][]*_eca .PdfObjectDictionary ;_bebb *PdfAcroForm ;_cgfccc Optimizer ;_bfgeb StandardApplier ;_eaad map[int ]crossReference ;_bggbc int64 ;ObjNumOffset int ;_ccdgb bool ;_acdbf _eca .XrefTable ;
|
||
_dcggeb int64 ;_ffeaf int64 ;_abfag map[_eca .PdfObject ]int64 ;_aeedc map[_eca .PdfObject ]struct{};_gaafc string ;_bdgggc []*PdfOutputIntent ;_dagbd bool ;_aadc ,_fcbcc string ;};func _dceac ()_d .Time {_ccbac .Lock ();defer _ccbac .Unlock ();return _bddc };
|
||
func (_ecfeb *PdfAcroForm )filteredFields (_eaaa FieldFilterFunc ,_accdbd bool )[]*PdfField {if _ecfeb ==nil {return nil ;};return _cgeed (_ecfeb .Fields ,_eaaa ,_accdbd );};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_gacc *OutlineItem )Add (item *OutlineItem ){_gacc .Entries =append (_gacc .Entries ,item )};
|
||
|
||
// GetDocMDPPermission returns the DocMDP level of the restrictions
|
||
func (_dbcbc *PdfSignature )GetDocMDPPermission ()(_ecg .DocMDPPermission ,bool ){for _ ,_dbcae :=range _dbcbc .Reference .Elements (){if _gfcfba ,_afafc :=_eca .GetDict (_dbcae );_afafc {if _gcbd ,_bgeaf :=_eca .GetNameVal (_gfcfba .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
_bgeaf &&_gcbd =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _afef ,_cadb :=_eca .GetDict (_gfcfba .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_cadb {if P ,_ffad :=_eca .GetIntVal (_afef .Get ("\u0050"));_ffad {return _ecg .DocMDPPermission (P ),true ;
|
||
};};};};};return 0,false ;};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_adcgbe FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_adcgbe .Mask ()&^fl .Mask ())};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_abefe pdfCIDFontType2 )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){_ggcgf ,_dcceb :=_abefe ._dgdag [r ];if !_dcceb {_dfdc ,_fdff :=_eca .GetInt (_abefe .DW );if !_fdff {return _ffd .CharMetrics {},false ;};_ggcgf =int (*_dfdc );};return _ffd .CharMetrics {Wx :float64 (_ggcgf )},true ;
|
||
};
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_cfede *PdfField )Flags ()FieldFlag {var _bgcb FieldFlag ;_aegae ,_agf :=_cfede .inherit (func (_eacaa *PdfField )bool {if _eacaa .Ff !=nil {_bgcb =FieldFlag (*_eacaa .Ff );return true ;};return false ;});if _agf !=nil {_ccb .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",_agf );
|
||
};if !_aegae {_ccb .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 _bgcb ;};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_bbedg *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_da .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");
|
||
};_aecg ,_bbfad :=_bbg .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gcgb ,img ._cfgaa );if _bbfad !=nil {return img ,_bbfad ;};_dgecd ,_bbfad :=_bbg .GrayConverter .Convert (_aecg );
|
||
if _bbfad !=nil {return img ,_bbfad ;};return _cggae (_dgecd .Base ()),nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_fece *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_fbadb *PdfShadingType5 )ToPdfObject ()_eca .PdfObject {_fbadb .PdfShading .ToPdfObject ();_cgddef ,_beebd :=_fbadb .getShadingDict ();if _beebd !=nil {_ccb .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 _fbadb .BitsPerCoordinate !=nil {_cgddef .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fbadb .BitsPerCoordinate );};if _fbadb .BitsPerComponent !=nil {_cgddef .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fbadb .BitsPerComponent );
|
||
};if _fbadb .VerticesPerRow !=nil {_cgddef .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_fbadb .VerticesPerRow );};if _fbadb .Decode !=nil {_cgddef .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fbadb .Decode );
|
||
};if _fbadb .Function !=nil {if len (_fbadb .Function )==1{_cgddef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fbadb .Function [0].ToPdfObject ());}else {_caeae :=_eca .MakeArray ();for _ ,_ebbdd :=range _fbadb .Function {_caeae .Append (_ebbdd .ToPdfObject ());
|
||
};_cgddef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caeae );};};return _fbadb ._dcbe ;};
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_aeaefc *PdfSignature )SetName (name string ){_aeaefc .Name =_eca .MakeString (name )};var _gccefc =false ;
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_fbgbaf *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_ddbbe :=RC4_128bit ;if options !=nil {_ddbbe =options .Algorithm ;};_ebcafd :=_bb .PermOwner ;if options !=nil {_ebcafd =options .Permissions ;};var _agafg _db .Filter ;
|
||
switch _ddbbe {case RC4_128bit :_agafg =_db .NewFilterV2 (16);case AES_128bit :_agafg =_db .NewFilterAESV2 ();case AES_256bit :_agafg =_db .NewFilterAESV3 ();default:return _g .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_cade ,_ddcbb ,_fccgg :=_eca .PdfCryptNewEncrypt (_agafg ,userPass ,ownerPass ,_ebcafd );if _fccgg !=nil {return _fccgg ;};_fbgbaf ._badga =_cade ;if _ddcbb .Major !=0{_fbgbaf .SetVersion (_ddcbb .Major ,_ddcbb .Minor );};_fbgbaf ._bbfae =_ddcbb .Encrypt ;
|
||
_fbgbaf ._aadc ,_fbgbaf ._fcbcc =_ddcbb .ID0 ,_ddcbb .ID1 ;_ddeca :=_eca .MakeIndirectObject (_ddcbb .Encrypt );_fbgbaf ._fdgaf =_ddeca ;_fbgbaf .addObject (_ddeca );return nil ;};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_bddae *PdfWriter )SetDocInfo (info *PdfInfo ){_bddae .setDocInfo (info .ToPdfObject ())};func (_cdgeg *PdfReader )newPdfAcroFormFromDict (_eacge *_eca .PdfIndirectObject ,_ccea *_eca .PdfObjectDictionary )(*PdfAcroForm ,error ){_egbeb :=NewPdfAcroForm ();
|
||
if _eacge !=nil {_egbeb ._aeac =_eacge ;_eacge .PdfObject =_eca .MakeDict ();};if _bfdgf :=_ccea .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_bfdgf !=nil &&!_eca .IsNullObject (_bfdgf ){_dffbb ,_fefg :=_eca .GetArray (_bfdgf );if !_fefg {return nil ,_g .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_bfdgf );
|
||
};var _ebcd []*PdfField ;for _ ,_ecdf :=range _dffbb .Elements (){_gcbf ,_afeaa :=_eca .GetIndirect (_ecdf );if !_afeaa {if _ ,_bedb :=_ecdf .(*_eca .PdfObjectNull );_bedb {_ccb .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 ;};_ccb .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",_ecdf );
|
||
return nil ,_g .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");};_ceege ,_fecgg :=_cdgeg .newPdfFieldFromIndirectObject (_gcbf ,nil );
|
||
if _fecgg !=nil {return nil ,_fecgg ;};_ccb .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_ceege );_ebcd =append (_ebcd ,_ceege );};_egbeb .Fields =&_ebcd ;};if _befbb :=_ccea .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_befbb !=nil {_efdb ,_ggda :=_eca .GetBool (_befbb );if _ggda {_egbeb .NeedAppearances =_efdb ;}else {_ccb .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",_befbb );
|
||
};};if _ecec :=_ccea .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ecec !=nil {_aggc ,_fcgdf :=_eca .GetInt (_ecec );if _fcgdf {_egbeb .SigFlags =_aggc ;}else {_ccb .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",_ecec );
|
||
};};if _eag :=_ccea .Get ("\u0043\u004f");_eag !=nil {_ffbab ,_bfgg :=_eca .GetArray (_eag );if _bfgg {_egbeb .CO =_ffbab ;}else {_ccb .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",_eag );
|
||
};};if _edbae :=_ccea .Get ("\u0044\u0052");_edbae !=nil {if _dadg ,_cddgd :=_eca .GetDict (_edbae );_cddgd {_bcgbb ,_egcgf :=NewPdfPageResourcesFromDict (_dadg );if _egcgf !=nil {_ccb .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_egcgf );
|
||
return nil ,_egcgf ;};_egbeb .DR =_bcgbb ;}else {_ccb .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",_edbae );};};if _bgddb :=_ccea .Get ("\u0044\u0041");
|
||
_bgddb !=nil {_bbceg ,_faafg :=_eca .GetString (_bgddb );if _faafg {_egbeb .DA =_bbceg ;}else {_ccb .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",_bgddb );
|
||
};};if _aegec :=_ccea .Get ("\u0051");_aegec !=nil {_fbde ,_dbeec :=_eca .GetInt (_aegec );if _dbeec {_egbeb .Q =_fbde ;}else {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_aegec );
|
||
};};if _cgfe :=_ccea .Get ("\u0058\u0046\u0041");_cgfe !=nil {_egbeb .XFA =_cgfe ;};if _adbg :=_ccea .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_adbg !=nil {_egbeb .ADBEEchoSign =_adbg ;};_egbeb .ToPdfObject ();
|
||
return _egbeb ,nil ;};func (_ceca *PdfReader )newPdfSignatureFromIndirect (_ffgc *_eca .PdfIndirectObject )(*PdfSignature ,error ){_bcba ,_becged :=_ffgc .PdfObject .(*_eca .PdfObjectDictionary );if !_becged {_ccb .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 _dddgc ,_fecdd :=_ceca ._dcddd .GetModelFromPrimitive (_ffgc ).(*PdfSignature );_fecdd {return _dddgc ,nil ;};_cagfc :=&PdfSignature {};_cagfc ._bfebg =_ffgc ;_cagfc .Type ,_ =_eca .GetName (_bcba .Get ("\u0054\u0079\u0070\u0065"));
|
||
_cagfc .Filter ,_becged =_eca .GetName (_bcba .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_becged {_ccb .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 ;};_cagfc .SubFilter ,_ =_eca .GetName (_bcba .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_cagfc .Contents ,_becged =_eca .GetString (_bcba .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_becged {_ccb .Log .Error ("\u0045\u0052\u0052\u004f\u0052\u003a \u0053\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065\u0020\u0063\u006f\u006et\u0065\u006e\u0074\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrInvalidAttribute ;};if _bbagge ,_dffdd :=_eca .GetArray (_bcba .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_dffdd {_cagfc .Reference =_eca .MakeArray ();for _ ,_bgfag :=range _bbagge .Elements (){_aeca ,_ffaba :=_eca .GetDict (_bgfag );
|
||
if !_ffaba {_ccb .Log .Error ("\u0045\u0052R\u004f\u0052\u003a\u0020R\u0065\u0066e\u0072\u0065\u006e\u0063\u0065\u0020\u0063\u006fn\u0074\u0065\u006e\u0074\u0073\u0020\u0069\u006e\u0076\u0061\u006c\u0069d\u0061\u0074\u0065\u0064");return nil ,ErrInvalidAttribute ;
|
||
};_beff ,_degad :=_ceca .newPdfSignatureReferenceFromDict (_aeca );if _degad !=nil {return nil ,_degad ;};_cagfc .Reference .Append (_beff .ToPdfObject ());};};_cagfc .Cert =_bcba .Get ("\u0043\u0065\u0072\u0074");_cagfc .ByteRange ,_ =_eca .GetArray (_bcba .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
|
||
_cagfc .Changes ,_ =_eca .GetArray (_bcba .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_cagfc .Name ,_ =_eca .GetString (_bcba .Get ("\u004e\u0061\u006d\u0065"));_cagfc .M ,_ =_eca .GetString (_bcba .Get ("\u004d"));_cagfc .Location ,_ =_eca .GetString (_bcba .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_cagfc .Reason ,_ =_eca .GetString (_bcba .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_cagfc .ContactInfo ,_ =_eca .GetString (_bcba .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_cagfc .R ,_ =_eca .GetInt (_bcba .Get ("\u0052"));
|
||
_cagfc .V ,_ =_eca .GetInt (_bcba .Get ("\u0056"));_cagfc .PropBuild ,_ =_eca .GetDict (_bcba .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_cagfc .PropAuthTime ,_ =_eca .GetInt (_bcba .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_cagfc .PropAuthType ,_ =_eca .GetName (_bcba .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_ceca ._dcddd .Register (_ffgc ,_cagfc );return _cagfc ,nil ;};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_gfbf *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_abcca ,_cgbcdc :=_gfbf .GetTrailer ();if _cgbcdc !=nil {return nil ,_cgbcdc ;};var _bgbgb *_eca .PdfObjectDictionary ;_fdfgg :=_abcca .Get ("\u0049\u006e\u0066\u006f");switch _fgecb :=_fdfgg .(type ){case *_eca .PdfObjectReference :_gfgff :=_fgecb ;
|
||
_fdfgg ,_cgbcdc =_gfbf .GetIndirectObjectByNumber (int (_gfgff .ObjectNumber ));_fdfgg =_eca .TraceToDirectObject (_fdfgg );if _cgbcdc !=nil {return nil ,_cgbcdc ;};_bgbgb ,_ =_fdfgg .(*_eca .PdfObjectDictionary );case *_eca .PdfObjectDictionary :_bgbgb =_fgecb ;
|
||
};if _bgbgb ==nil {return nil ,_da .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_gbefa ,_cgbcdc :=NewPdfInfoFromObject (_bgbgb );if _cgbcdc !=nil {return nil ,_cgbcdc ;
|
||
};return _gbefa ,nil ;};
|
||
|
||
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
|
||
// annotations present in the document pages. Pass nil for the opts parameter
|
||
// in order to use the default options.
|
||
// NOTE: Currently, the opts parameter is declared in order to enable adding
|
||
// future options, but passing nil will always result in the default options
|
||
// being used.
|
||
func (_cgbfc *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bdgf []*PdfField ;_dbbc :=map[*_eca .PdfIndirectObject ]struct{}{};for _ ,_abeff :=range _cgbfc .PageList {_eeddg ,_accdd :=_abeff .GetAnnotations ();if _accdd !=nil {return _accdd ;
|
||
};for _ ,_fggcb :=range _eeddg {var _eeedd *PdfField ;switch _dbab :=_fggcb .GetContext ().(type ){case *PdfAnnotationWidget :if _dbab ._ebc !=nil {_eeedd =_dbab ._ebc ;break ;};if _fafd ,_ffffa :=_eca .GetIndirect (_dbab .Parent );_ffffa {_eeedd ,_accdd =_cgbfc .newPdfFieldFromIndirectObject (_fafd ,nil );
|
||
if _accdd ==nil {break ;};_ccb .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",_fafd ,_accdd );
|
||
};if _dbab ._cdc !=nil {_eeedd ,_accdd =_cgbfc .newPdfFieldFromIndirectObject (_dbab ._cdc ,nil );if _accdd ==nil {break ;};_ccb .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",_dbab ._cdc ,_accdd );
|
||
};};if _eeedd ==nil {continue ;};if _ ,_cfcde :=_dbbc [_eeedd ._geaa ];_cfcde {continue ;};_dbbc [_eeedd ._geaa ]=struct{}{};_bdgf =append (_bdgf ,_eeedd );};};if len (_bdgf )==0{return nil ;};if _cgbfc .AcroForm ==nil {_cgbfc .AcroForm =NewPdfAcroForm ();
|
||
};_cgbfc .AcroForm .Fields =&_bdgf ;return nil ;};
|
||
|
||
// ToPdfObject implements model.PdfModel interface.
|
||
func (_fdaec *PdfOutputIntent )ToPdfObject ()_eca .PdfObject {if _fdaec ._bfbdb ==nil {_fdaec ._bfbdb =_eca .MakeDict ();};_dgafee :=_fdaec ._bfbdb ;if _fdaec .Type !=""{_dgafee .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName (_fdaec .Type ));};_dgafee .Set ("\u0053",_eca .MakeName (_fdaec .S .String ()));
|
||
if _fdaec .OutputCondition !=""{_dgafee .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_eca .MakeString (_fdaec .OutputCondition ));};_dgafee .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_eca .MakeString (_fdaec .OutputConditionIdentifier ));
|
||
_dgafee .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_eca .MakeString (_fdaec .RegistryName ));if _fdaec .Info !=""{_dgafee .Set ("\u0049\u006e\u0066\u006f",_eca .MakeString (_fdaec .Info ));};if len (_fdaec .DestOutputProfile )!=0{_acdg ,_fadaa :=_eca .MakeStream (_fdaec .DestOutputProfile ,_eca .NewFlateEncoder ());
|
||
if _fadaa !=nil {_ccb .Log .Error ("\u004d\u0061\u006b\u0065\u0053\u0074\u0072\u0065\u0061\u006d\u0020\u0044\u0065s\u0074\u004f\u0075\u0074\u0070\u0075t\u0050\u0072\u006f\u0066\u0069\u006c\u0065\u0020\u0066\u0061\u0069\u006c\u0065d\u003a\u0020\u0025\u0076",_fadaa );
|
||
};_acdg .PdfObjectDictionary .Set ("\u004e",_eca .MakeInteger (int64 (_fdaec .ColorComponents )));_ddgdg :=make ([]float64 ,_fdaec .ColorComponents *2);for _bfcd :=0;_bfcd < _fdaec .ColorComponents *2;_bfcd ++{_dbccd :=0.0;if _bfcd %2!=0{_dbccd =1.0;};
|
||
_ddgdg [_bfcd ]=_dbccd ;};_acdg .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_eca .MakeArrayFromFloats (_ddgdg ));_dgafee .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_acdg );};return _dgafee ;
|
||
};
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_gdggc *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_gdggc .ToPdfOutline ().PdfOutlineTreeNode ;};
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_bcbgf FieldFlag )Has (fl FieldFlag )bool {return (_bcbgf .Mask ()&fl .Mask ())> 0};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_gbcg *PdfInfo )CustomKeys ()[]string {if _gbcg ._bcfd ==nil {return nil ;};_becfb :=make ([]string ,len (_gbcg ._bcfd .Keys ()));for _ ,_baef :=range _gbcg ._bcfd .Keys (){_becfb =append (_becfb ,_baef .String ());};return _becfb ;};func (_bba *PdfReader )newPdfActionResetFormFromDict (_eda *_eca .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_eda .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_eda .Get ("\u0046\u006c\u0061g\u0073")},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 (_aceef *LTV )EnableChain (chain []*_ad .Certificate )error {return _aceef .enable (nil ,chain ,"")};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfdf *PdfAnnotationCircle )ToPdfObject ()_eca .PdfObject {_dfdf .PdfAnnotation .ToPdfObject ();_afgb :=_dfdf ._cdc ;_eade :=_afgb .PdfObject .(*_eca .PdfObjectDictionary );_dfdf .PdfAnnotationMarkup .appendToPdfDictionary (_eade );_eade .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_eade .SetIfNotNil ("\u0042\u0053",_dfdf .BS );_eade .SetIfNotNil ("\u0049\u0043",_dfdf .IC );_eade .SetIfNotNil ("\u0042\u0045",_dfdf .BE );_eade .SetIfNotNil ("\u0052\u0044",_dfdf .RD );return _afgb ;};
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_eca .PdfObjectArray ;Matrix *_eca .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_fdg :=NewPdfAction ();_gae :=&PdfActionJavaScript {};_gae .PdfAction =_fdg ;_fdg .SetContext (_gae );return _gae ;};
|
||
|
||
// ParsePdfObject parses input pdf object into given output intent.
|
||
func (_efgb *PdfOutputIntent )ParsePdfObject (object _eca .PdfObject )error {_ggddf ,_ffea :=_eca .GetDict (object );if !_ffea {_ccb .Log .Error ("\u0055\u006e\u006bno\u0077\u006e\u0020\u0074\u0079\u0070\u0065\u003a\u0020%\u0054 \u0066o\u0072 \u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074",object );
|
||
return _da .New ("\u0075\u006e\u006b\u006e\u006fw\u006e\u0020\u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020t\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020\u0069\u006e\u0074\u0065\u006e\u0074");
|
||
};_efgb ._bfbdb =_ggddf ;_efgb .Type ,_ =_ggddf .GetString ("\u0054\u0079\u0070\u0065");_fbbdd ,_ffea :=_ggddf .GetString ("\u0053");if _ffea {switch _fbbdd {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_efgb .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_efgb .S =PdfOutputIntentTypeA2 ;
|
||
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_efgb .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_efgb .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_efgb .S =PdfOutputIntentTypeX ;
|
||
};};_efgb .OutputCondition ,_ =_ggddf .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_efgb .OutputConditionIdentifier ,_ =_ggddf .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
|
||
_efgb .RegistryName ,_ =_ggddf .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_efgb .Info ,_ =_ggddf .GetString ("\u0049\u006e\u0066\u006f");if _bggcc ,_daea :=_eca .GetStream (_ggddf .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
|
||
_daea {_efgb .ColorComponents ,_ =_eca .GetIntVal (_bggcc .Get ("\u004e"));_gfcd ,_ddfgg :=_eca .DecodeStream (_bggcc );if _ddfgg !=nil {return _ddfgg ;};_efgb .DestOutputProfile =_gfcd ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_faab *PdfAnnotationPrinterMark )ToPdfObject ()_eca .PdfObject {_faab .PdfAnnotation .ToPdfObject ();_dgef :=_faab ._cdc ;_aace :=_dgef .PdfObject .(*_eca .PdfObjectDictionary );_aace .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_aace .SetIfNotNil ("\u004d\u004e",_faab .MN );return _dgef ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_bdcc *DSS )ToPdfObject ()_eca .PdfObject {_afafe :=_bdcc ._cdaa .PdfObject .(*_eca .PdfObjectDictionary );_afafe .Clear ();_aafdf :=_eca .MakeDict ();for _daae ,_aebae :=range _bdcc .VRI {_aafdf .Set (*_eca .MakeName (_daae ),_aebae .ToPdfObject ());
|
||
};_afafe .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_gaged (_bdcc .Certs ));_afafe .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_gaged (_bdcc .OCSPs ));_afafe .SetIfNotNil ("\u0043\u0052\u004c\u0073",_gaged (_bdcc .CRLs ));_afafe .Set ("\u0056\u0052\u0049",_aafdf );
|
||
return _bdcc ._cdaa ;};
|
||
|
||
// 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 ;_agcab *_eca .PdfIndirectObject ;};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_abdaec *PdfWriter )SetOCProperties (ocProperties _eca .PdfObject )error {_fadaac :=_abdaec ._eeggd ;if ocProperties !=nil {_ccb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_fadaac .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _abdaec .addObjects (ocProperties );};return nil ;};func (_abecc *pdfFontType0 )bytesToCharcodes (_acgc []byte )([]_dbb .CharCode ,bool ){if _abecc ._bfefe ==nil {return nil ,false ;
|
||
};_deae ,_fgeg :=_abecc ._bfefe .BytesToCharcodes (_acgc );if !_fgeg {return nil ,false ;};_dcfbg :=make ([]_dbb .CharCode ,len (_deae ));for _abcfa ,_bcede :=range _deae {_dcfbg [_abcfa ]=_dbb .CharCode (_bcede );};return _dcfbg ,true ;};func (_eab *PdfReader )newPdfActionGoTo3DViewFromDict (_bcd *_eca .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_bcd .Get ("\u0054\u0041"),V :_bcd .Get ("\u0056")},nil ;
|
||
};
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_df :=NewPdfAction ();_dge :=&PdfActionGoTo3DView {};_dge .PdfAction =_df ;_df .SetContext (_dge );return _dge ;};
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_cad :=NewPdfAction ();_fd :=&PdfActionGoTo {};_fd .PdfAction =_cad ;_cad .SetContext (_fd );return _fd ;};
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_bcfff *PdfShading )SetContext (ctx PdfModel ){_bcfff ._abefa =ctx };var _ pdfFont =(*pdfFontType0 )(nil );
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aeafb *PdfAnnotationFreeText )ToPdfObject ()_eca .PdfObject {_aeafb .PdfAnnotation .ToPdfObject ();_cgbce :=_aeafb ._cdc ;_fffc :=_cgbce .PdfObject .(*_eca .PdfObjectDictionary );_aeafb .PdfAnnotationMarkup .appendToPdfDictionary (_fffc );_fffc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_fffc .SetIfNotNil ("\u0044\u0041",_aeafb .DA );_fffc .SetIfNotNil ("\u0051",_aeafb .Q );_fffc .SetIfNotNil ("\u0052\u0043",_aeafb .RC );_fffc .SetIfNotNil ("\u0044\u0053",_aeafb .DS );_fffc .SetIfNotNil ("\u0043\u004c",_aeafb .CL );_fffc .SetIfNotNil ("\u0049\u0054",_aeafb .IT );
|
||
_fffc .SetIfNotNil ("\u0042\u0045",_aeafb .BE );_fffc .SetIfNotNil ("\u0052\u0044",_aeafb .RD );_fffc .SetIfNotNil ("\u0042\u0053",_aeafb .BS );_fffc .SetIfNotNil ("\u004c\u0045",_aeafb .LE );return _cgbce ;};func (_agce *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
|
||
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_faddc *PdfPage )AddContentStreamByString (contentStr string )error {_abbca ,_fface :=_eca .MakeStream ([]byte (contentStr ),_eca .NewFlateEncoder ());if _fface !=nil {return _fface ;};if _faddc .Contents ==nil {_faddc .Contents =_abbca ;}else {_abebd :=_eca .TraceToDirectObject (_faddc .Contents );
|
||
_eaaaf ,_ccdec :=_abebd .(*_eca .PdfObjectArray );if !_ccdec {_eaaaf =_eca .MakeArray (_abebd );};_eaaaf .Append (_abbca );_faddc .Contents =_eaaaf ;};return nil ;};func _dgedc (_ffag *_eca .PdfObjectDictionary )*VRI {_ageaf ,_ :=_eca .GetString (_ffag .Get ("\u0054\u0055"));
|
||
_fdeac ,_ :=_eca .GetString (_ffag .Get ("\u0054\u0053"));return &VRI {Cert :_abcgdc (_ffag .Get ("\u0043\u0065\u0072\u0074")),OCSP :_abcgdc (_ffag .Get ("\u004f\u0043\u0053\u0050")),CRL :_abcgdc (_ffag .Get ("\u0043\u0052\u004c")),TU :_ageaf ,TS :_fdeac };
|
||
};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func (_acdgb *PdfWriter )hasObject (_gcceff _eca .PdfObject )bool {_ ,_eecce :=_acdgb ._ceace [_gcceff ];return _eecce ;};
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_cefc :=NewPdfAnnotation ();_bage :=&PdfAnnotationCaret {};_bage .PdfAnnotation =_cefc ;_bage .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cefc .SetContext (_bage );return _bage ;};
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_eca .PdfObjectArray ;Domain *_eca .PdfObjectArray ;Function []PdfFunction ;Extend *_eca .PdfObjectArray ;};
|
||
|
||
// String returns a string representation of PdfTransformParamsDocMDP.
|
||
func (_efegc *PdfTransformParamsDocMDP )String ()string {return _g .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_efegc .Type ,_efegc .P ,_efegc .V );};
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_adf :=NewPdfAction ();_aaa :=&PdfActionResetForm {};_aaa .PdfAction =_adf ;_adf .SetContext (_aaa );return _aaa ;};func (_cbcf *PdfReader )newPdfAnnotationHighlightFromDict (_ecgd *_eca .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_cddd :=PdfAnnotationHighlight {};
|
||
_ebfc ,_gaa :=_cbcf .newPdfAnnotationMarkupFromDict (_ecgd );if _gaa !=nil {return nil ,_gaa ;};_cddd .PdfAnnotationMarkup =_ebfc ;_cddd .QuadPoints =_ecgd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_cddd ,nil ;};
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _eca .PdfObject ;B _eca .PdfObject ;};
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_eca .PdfObjectInteger ;BitsPerComponent *_eca .PdfObjectInteger ;BitsPerFlag *_eca .PdfObjectInteger ;Decode *_eca .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_cbbe *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_cbbe .Base .GetNumComponents ();if N < 1{return Image {},_g .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 );
|
||
};_ggagc :=_bbg .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._gcgb ,img ._cfgaa );_bgace :=_bf .NewReader (img .getBase ());_dgdg :=_bf .NewWriter (_ggagc );var (_efce uint32 ;_bgeb int ;_bcga error ;);for {_efce ,_bcga =_bgace .ReadSample ();
|
||
if _bcga ==_beg .EOF {break ;}else if _bcga !=nil {return img ,_bcga ;};_bgeb =int (_efce );_ccb .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",_bgeb ,N ,len (_cbbe ._eaea ));
|
||
if (_bgeb +1)*N > len (_cbbe ._eaea ){_bgeb =len (_cbbe ._eaea )/N -1;_ccb .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_bgeb );if _bgeb < 0{_ccb .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 _daca :=_bgeb *N ;_daca < (_bgeb +1)*N ;_daca ++{if _bcga =_dgdg .WriteSample (uint32 (_cbbe ._eaea [_daca ]));_bcga !=nil {return img ,_bcga ;};};};return _cbbe .Base .ImageToRGB (_cggae (&_ggagc ));};func (_gbeaa *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
|
||
func (_ffab *PdfReader )traverseObjectData (_ebdcc _eca .PdfObject )error {return _eca .ResolveReferencesDeep (_ebdcc ,_ffab ._fgbbd );};
|
||
|
||
// 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 (_gegfgb int ,_gdafc *PdfPage );var _ pdfFont =(*pdfCIDFontType2 )(nil );
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_gfgg *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _gfgg .Alternate ==nil {_ccb .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 _gfgg .N ==1{_ccb .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");
|
||
_eefac :=NewPdfColorspaceDeviceGray ();return _eefac .ImageToRGB (img );}else if _gfgg .N ==3{_ccb .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 _gfgg .N ==4{_ccb .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");
|
||
_caec :=NewPdfColorspaceDeviceCMYK ();return _caec .ImageToRGB (img );}else {return img ,_da .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");
|
||
};};_ccb .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",_gfgg );
|
||
_efcbg ,_bebf :=_gfgg .Alternate .ImageToRGB (img );_ccb .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ccb .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_efcbg );
|
||
return _efcbg ,_bebf ;};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_fecgf :=&PdfFieldSignature {};_fecgf .PdfField =NewPdfField ();_fecgf .PdfField .SetContext (_fecgf );_fecgf .PdfAnnotationWidget =NewPdfAnnotationWidget ();_fecgf .PdfAnnotationWidget .SetContext (_fecgf );
|
||
_fecgf .PdfAnnotationWidget ._cdc =_fecgf .PdfField ._geaa ;_fecgf .T =_eca .MakeString ("");_fecgf .F =_eca .MakeInteger (132);_fecgf .V =signature ;return _fecgf ;};func (_fcfde *PdfWriter )writeObjectsInStreams (_adda map[_eca .PdfObject ]bool )error {for _ ,_caffe :=range _fcfde ._daecf {if _agebd :=_adda [_caffe ];
|
||
_agebd {continue ;};_acdgf :=int64 (0);switch _aeafg :=_caffe .(type ){case *_eca .PdfIndirectObject :_acdgf =_aeafg .ObjectNumber ;case *_eca .PdfObjectStream :_acdgf =_aeafg .ObjectNumber ;case *_eca .PdfObjectStreams :_acdgf =_aeafg .ObjectNumber ;default:_ccb .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",_caffe );
|
||
return ErrTypeCheck ;};if _fcfde ._badga !=nil &&_caffe !=_fcfde ._fdgaf {_bcfaa :=_fcfde ._badga .Encrypt (_caffe ,_acdgf ,0);if _bcfaa !=nil {_ccb .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",_bcfaa );
|
||
return _bcfaa ;};};_fcfde .writeObject (int (_acdgf ),_caffe );};return nil ;};func (_gbcb *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_cgff *PdfPageResources )GetContainingPdfObject ()_eca .PdfObject {return _cgff ._gcbce };
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_fggf *PdfField )ToPdfObject ()_eca .PdfObject {_gbaeg :=_fggf ._geaa ;_ecdg :=_gbaeg .PdfObject .(*_eca .PdfObjectDictionary );_faedd :=_eca .MakeArray ();for _ ,_ecgca :=range _fggf .Kids {_faedd .Append (_ecgca .ToPdfObject ());};for _ ,_cebc :=range _fggf .Annotations {if _cebc ._cdc !=_fggf ._geaa {_faedd .Append (_cebc .GetContext ().ToPdfObject ());
|
||
};};if _fggf .Parent !=nil {_ecdg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fggf .Parent .GetContainingPdfObject ());};if _faedd .Len ()> 0{_ecdg .Set ("\u004b\u0069\u0064\u0073",_faedd );};_ecdg .SetIfNotNil ("\u0046\u0054",_fggf .FT );_ecdg .SetIfNotNil ("\u0054",_fggf .T );
|
||
_ecdg .SetIfNotNil ("\u0054\u0055",_fggf .TU );_ecdg .SetIfNotNil ("\u0054\u004d",_fggf .TM );_ecdg .SetIfNotNil ("\u0046\u0066",_fggf .Ff );_ecdg .SetIfNotNil ("\u0056",_fggf .V );_ecdg .SetIfNotNil ("\u0044\u0056",_fggf .DV );_ecdg .SetIfNotNil ("\u0041\u0041",_fggf .AA );
|
||
if _fggf .VariableText !=nil {_ecdg .SetIfNotNil ("\u0044\u0041",_fggf .VariableText .DA );_ecdg .SetIfNotNil ("\u0051",_fggf .VariableText .Q );_ecdg .SetIfNotNil ("\u0044\u0053",_fggf .VariableText .DS );_ecdg .SetIfNotNil ("\u0052\u0056",_fggf .VariableText .RV );
|
||
};return _gbaeg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dafa *PdfAnnotationInk )ToPdfObject ()_eca .PdfObject {_dafa .PdfAnnotation .ToPdfObject ();_edce :=_dafa ._cdc ;_dgaf :=_edce .PdfObject .(*_eca .PdfObjectDictionary );_dafa .PdfAnnotationMarkup .appendToPdfDictionary (_dgaf );_dgaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0049\u006e\u006b"));
|
||
_dgaf .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_dafa .InkList );_dgaf .SetIfNotNil ("\u0042\u0053",_dafa .BS );return _edce ;};func (_fb *PdfReader )newPdfActionFromIndirectObject (_gfb *_eca .PdfIndirectObject )(*PdfAction ,error ){_aea ,_bgg :=_gfb .PdfObject .(*_eca .PdfObjectDictionary );
|
||
if !_bgg {return nil ,_g .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 :=_fb ._dcddd .GetModelFromPrimitive (_aea );model !=nil {_bgff ,_dce :=model .(*PdfAction );if !_dce {return nil ,_g .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 _bgff ,nil ;};_ab :=&PdfAction {};_ab ._bee =_gfb ;_fb ._dcddd .Register (_aea ,_ab );if _bbgf :=_aea .Get ("\u0054\u0079\u0070\u0065");_bbgf !=nil {_acb ,_edeb :=_bbgf .(*_eca .PdfObjectName );if !_edeb {_ccb .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",_bbgf );
|
||
}else {if *_acb !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ccb .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",*_acb );
|
||
};_ab .Type =_acb ;};};if _dae :=_aea .Get ("\u004e\u0065\u0078\u0074");_dae !=nil {_ab .Next =_dae ;};if _bgc :=_aea .Get ("\u0053");_bgc !=nil {_ab .S =_bgc ;};_gdg ,_acbc :=_ab .S .(*_eca .PdfObjectName );if !_acbc {_ccb .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",_ab .S );
|
||
return nil ,_g .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",_ab .S );};_faa :=PdfActionType (_gdg .String ());switch _faa {case ActionTypeGoTo :_fg ,_bfec :=_fb .newPdfActionGotoFromDict (_aea );
|
||
if _bfec !=nil {return nil ,_bfec ;};_fg .PdfAction =_ab ;_ab ._cd =_fg ;return _ab ,nil ;case ActionTypeGoToR :_ead ,_gcc :=_fb .newPdfActionGotoRFromDict (_aea );if _gcc !=nil {return nil ,_gcc ;};_ead .PdfAction =_ab ;_ab ._cd =_ead ;return _ab ,nil ;
|
||
case ActionTypeGoToE :_bec ,_dff :=_fb .newPdfActionGotoEFromDict (_aea );if _dff !=nil {return nil ,_dff ;};_bec .PdfAction =_ab ;_ab ._cd =_bec ;return _ab ,nil ;case ActionTypeLaunch :_gcb ,_dbe :=_fb .newPdfActionLaunchFromDict (_aea );if _dbe !=nil {return nil ,_dbe ;
|
||
};_gcb .PdfAction =_ab ;_ab ._cd =_gcb ;return _ab ,nil ;case ActionTypeThread :_bae ,_bbf :=_fb .newPdfActionThreadFromDict (_aea );if _bbf !=nil {return nil ,_bbf ;};_bae .PdfAction =_ab ;_ab ._cd =_bae ;return _ab ,nil ;case ActionTypeURI :_gbe ,_adb :=_fb .newPdfActionURIFromDict (_aea );
|
||
if _adb !=nil {return nil ,_adb ;};_gbe .PdfAction =_ab ;_ab ._cd =_gbe ;return _ab ,nil ;case ActionTypeSound :_gga ,_ffge :=_fb .newPdfActionSoundFromDict (_aea );if _ffge !=nil {return nil ,_ffge ;};_gga .PdfAction =_ab ;_ab ._cd =_gga ;return _ab ,nil ;
|
||
case ActionTypeMovie :_dbee ,_fgd :=_fb .newPdfActionMovieFromDict (_aea );if _fgd !=nil {return nil ,_fgd ;};_dbee .PdfAction =_ab ;_ab ._cd =_dbee ;return _ab ,nil ;case ActionTypeHide :_bbc ,_ege :=_fb .newPdfActionHideFromDict (_aea );if _ege !=nil {return nil ,_ege ;
|
||
};_bbc .PdfAction =_ab ;_ab ._cd =_bbc ;return _ab ,nil ;case ActionTypeNamed :_cecf ,_gec :=_fb .newPdfActionNamedFromDict (_aea );if _gec !=nil {return nil ,_gec ;};_cecf .PdfAction =_ab ;_ab ._cd =_cecf ;return _ab ,nil ;case ActionTypeSubmitForm :_bfb ,_geb :=_fb .newPdfActionSubmitFormFromDict (_aea );
|
||
if _geb !=nil {return nil ,_geb ;};_bfb .PdfAction =_ab ;_ab ._cd =_bfb ;return _ab ,nil ;case ActionTypeResetForm :_gea ,_gbb :=_fb .newPdfActionResetFormFromDict (_aea );if _gbb !=nil {return nil ,_gbb ;};_gea .PdfAction =_ab ;_ab ._cd =_gea ;return _ab ,nil ;
|
||
case ActionTypeImportData :_dea ,_gab :=_fb .newPdfActionImportDataFromDict (_aea );if _gab !=nil {return nil ,_gab ;};_dea .PdfAction =_ab ;_ab ._cd =_dea ;return _ab ,nil ;case ActionTypeSetOCGState :_fffa ,_fgdd :=_fb .newPdfActionSetOCGStateFromDict (_aea );
|
||
if _fgdd !=nil {return nil ,_fgdd ;};_fffa .PdfAction =_ab ;_ab ._cd =_fffa ;return _ab ,nil ;case ActionTypeRendition :_fbd ,_dfa :=_fb .newPdfActionRenditionFromDict (_aea );if _dfa !=nil {return nil ,_dfa ;};_fbd .PdfAction =_ab ;_ab ._cd =_fbd ;return _ab ,nil ;
|
||
case ActionTypeTrans :_dgf ,_gba :=_fb .newPdfActionTransFromDict (_aea );if _gba !=nil {return nil ,_gba ;};_dgf .PdfAction =_ab ;_ab ._cd =_dgf ;return _ab ,nil ;case ActionTypeGoTo3DView :_dfc ,_ag :=_fb .newPdfActionGoTo3DViewFromDict (_aea );if _ag !=nil {return nil ,_ag ;
|
||
};_dfc .PdfAction =_ab ;_ab ._cd =_dfc ;return _ab ,nil ;case ActionTypeJavaScript :_bdfg ,_cbbc :=_fb .newPdfActionJavaScriptFromDict (_aea );if _cbbc !=nil {return nil ,_cbbc ;};_bdfg .PdfAction =_ab ;_ab ._cd =_bdfg ;return _ab ,nil ;};_ccb .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",_faa );
|
||
return nil ,nil ;};
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_fffe :=&PdfAnnotation {};_fffe ._cdc =_eca .MakeIndirectObject (_eca .MakeDict ());return _fffe ;};
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_ddfad *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _ddfad ._cegb .(*PdfShadingPattern );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbedc *PdfSignatureReference )ToPdfObject ()_eca .PdfObject {_gdgaf :=_eca .MakeDict ();_gdgaf .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cbedc .Type );_gdgaf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cbedc .TransformMethod );
|
||
_gdgaf .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cbedc .TransformParams );_gdgaf .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cbedc .Data );_gdgaf .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cbedc .DigestMethod );
|
||
return _gdgaf ;};
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_aff :=NewPdfAnnotation ();_bbec :=&PdfAnnotationInk {};_bbec .PdfAnnotation =_aff ;_bbec .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aff .SetContext (_bbec );return _bbec ;};
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_edabf *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_edabf ._dgab .Major =majorVersion ;_edabf ._dgab .Minor =minorVersion ;};
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_afgc *PdfPage )HasFontByName (name _eca .PdfObjectName )bool {_dafd ,_beefd :=_afgc .Resources .Font .(*_eca .PdfObjectDictionary );if !_beefd {return false ;};if _dgffc :=_dafd .Get (name );_dgffc !=nil {return true ;};return false ;};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_aedc *PdfColorspaceSpecialIndexed )ToPdfObject ()_eca .PdfObject {_cagac :=_eca .MakeArray (_eca .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_cagac .Append (_aedc .Base .ToPdfObject ());_cagac .Append (_eca .MakeInteger (int64 (_aedc .HiVal )));
|
||
_cagac .Append (_aedc .Lookup );if _aedc ._dbcc !=nil {_aedc ._dbcc .PdfObject =_cagac ;return _aedc ._dbcc ;};return _cagac ;};
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_fffda *DSS )GetContainingPdfObject ()_eca .PdfObject {return _fffda ._cdaa };
|
||
|
||
// 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 (_cdeae *PdfReader )GetObjectNums ()[]int {return _cdeae ._ecfeba .GetObjectNums ()};type pdfSignDictionary struct{*_eca .PdfObjectDictionary ;_ceaad *SignatureHandler ;_eacaae *PdfSignature ;_fegcb int64 ;_cbdga int ;_aaead int ;_aagfc int ;_fgbbb int ;
|
||
};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_effff DefaultImageHandler )Read (reader _beg .Reader )(*Image ,error ){_becd ,_ ,_gbegb :=_cc .Decode (reader );if _gbegb !=nil {_ccb .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_gbegb );
|
||
return nil ,_gbegb ;};return _effff .NewImageFromGoImage (_becd );};
|
||
|
||
// Permissions specify a permissions dictionary (PDF 1.5).
|
||
// (Section 12.8.4, Table 258 - Entries in a permissions dictionary p. 477 in PDF32000_2008).
|
||
type Permissions struct{DocMDP *PdfSignature ;_bffgb *_eca .PdfObjectDictionary ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_efcb *PdfColorLab )GetNumComponents ()int {return 3};
|
||
|
||
// PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields.
|
||
// (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008).
|
||
type PdfSignatureReference struct{_fdgfa *_eca .PdfObjectDictionary ;Type *_eca .PdfObjectName ;TransformMethod *_eca .PdfObjectName ;TransformParams _eca .PdfObject ;Data _eca .PdfObject ;DigestMethod *_eca .PdfObjectName ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fceg *PdfAnnotationWatermark )ToPdfObject ()_eca .PdfObject {_fceg .PdfAnnotation .ToPdfObject ();_bcbc :=_fceg ._cdc ;_cbcfc :=_bcbc .PdfObject .(*_eca .PdfObjectDictionary );_cbcfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_cbcfc .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_fceg .FixedPrint );return _bcbc ;};
|
||
|
||
// SetSubtype sets the Subtype S for given PdfOutputIntent.
|
||
func (_fadde *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _da .New ("\u0070\u0072o\u0076\u0069\u0064\u0065d\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u004f\u0075t\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0020\u0053\u0075b\u0054\u0079\u0070\u0065");
|
||
};_fadde .S =subtype ;return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_caaga *PdfShadingType4 )ToPdfObject ()_eca .PdfObject {_caaga .PdfShading .ToPdfObject ();_ebgae ,_cddaf :=_caaga .getShadingDict ();if _cddaf !=nil {_ccb .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 _caaga .BitsPerCoordinate !=nil {_ebgae .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_caaga .BitsPerCoordinate );};if _caaga .BitsPerComponent !=nil {_ebgae .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_caaga .BitsPerComponent );
|
||
};if _caaga .BitsPerFlag !=nil {_ebgae .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_caaga .BitsPerFlag );};if _caaga .Decode !=nil {_ebgae .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_caaga .Decode );};if _caaga .Function !=nil {if len (_caaga .Function )==1{_ebgae .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caaga .Function [0].ToPdfObject ());
|
||
}else {_egbaa :=_eca .MakeArray ();for _ ,_ggcdd :=range _caaga .Function {_egbaa .Append (_ggcdd .ToPdfObject ());};_ebgae .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egbaa );};};return _caaga ._dcbe ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_cgga pdfCIDFontType0 )GetCharMetrics (code _dbb .CharCode )(_ffd .CharMetrics ,bool ){_fcea :=_cgga ._eegbc ;if _cbeae ,_eabeg :=_cgga ._ccfe [code ];_eabeg {_fcea =_cbeae ;};return _ffd .CharMetrics {Wx :_fcea },true ;};func _gbab (_ffac *_eca .PdfIndirectObject ,_babe *_eca .PdfObjectDictionary )(*DSS ,error ){if _ffac ==nil {_ffac =_eca .MakeIndirectObject (nil );
|
||
};_ffac .PdfObject =_eca .MakeDict ();_ccca :=map[string ]*VRI {};if _dgecb ,_ffbf :=_eca .GetDict (_babe .Get ("\u0056\u0052\u0049"));_ffbf {for _ ,_cafcf :=range _dgecb .Keys (){if _ddab ,_cfdgg :=_eca .GetDict (_dgecb .Get (_cafcf ));_cfdgg {_ccca [_ec .ToUpper (_cafcf .String ())]=_dgedc (_ddab );
|
||
};};};return &DSS {Certs :_abcgdc (_babe .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_abcgdc (_babe .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_abcgdc (_babe .Get ("\u0043\u0052\u004c\u0073")),VRI :_ccca ,_cdaa :_ffac },nil ;};
|
||
|
||
// NewPdfColorPattern returns an empty color pattern.
|
||
func NewPdfColorPattern ()*PdfColorPattern {_dafe :=&PdfColorPattern {};return _dafe };func _degfg (_eccdg _eca .PdfObject ,_bcbeg *PdfReader )(*OutlineDest ,error ){_efbgf ,_ebdd :=_eca .GetArray (_eccdg );if !_ebdd {return nil ,_da .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");
|
||
};_dccg :=_efbgf .Len ();if _dccg < 2{return nil ,_g .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",_dccg );
|
||
};_cfcbb :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_bdbag :=_efbgf .Get (0);if _agfc ,_eceaec :=_eca .GetIndirect (_bdbag );_eceaec {if _ ,_febgd ,_faee :=_bcbeg .PageFromIndirectObject (_agfc );_faee ==nil {_cfcbb .Page =int64 (_febgd -1);}else {_ccb .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",_agfc );
|
||
};_cfcbb .PageObj =_agfc ;}else if _gbdcf ,_fgaa :=_eca .GetIntVal (_bdbag );_fgaa {if _gbdcf >=0&&_gbdcf < len (_bcbeg .PageList ){_cfcbb .PageObj =_bcbeg .PageList [_gbdcf ].GetPageAsIndirectObject ();}else {_ccb .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",_gbdcf );
|
||
};_cfcbb .Page =int64 (_gbdcf );}else {return nil ,_g .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",_bdbag );};_ffbg ,_ebdd :=_eca .GetNameVal (_efbgf .Get (1));
|
||
if !_ebdd {_ccb .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",_efbgf .Get (1));
|
||
return _cfcbb ,nil ;};switch _ffbg {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _dccg > 2{_cfcbb .Y ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _dccg > 2{_cfcbb .X ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _dccg > 4{_cfcbb .X ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (2)));_cfcbb .Y ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (3)));_cfcbb .Zoom ,_ =_eca .GetNumberAsFloat (_eca .TraceToDirectObject (_efbgf .Get (4)));
|
||
};default:_ffbg ="\u0046\u0069\u0074";};_cfcbb .Mode =_ffbg ;return _cfcbb ,nil ;};func _accgb (_ggge _eca .PdfObject ,_cccag *fontCommon )(*_ded .CMap ,error ){_debb ,_agcc :=_eca .GetStream (_ggge );if !_agcc {_ccb .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",_ggge );
|
||
return nil ,_eca .ErrTypeError ;};_bfede ,_aedfe :=_eca .DecodeStream (_debb );if _aedfe !=nil {return nil ,_aedfe ;};_egafc ,_aedfe :=_ded .LoadCmapFromData (_bfede ,!_cccag .isCIDFont ());if _aedfe !=nil {_ccb .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",_debb .ObjectNumber ,_aedfe );
|
||
};return _egafc ,_aedfe ;};
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_eca .PdfObjectArray ;_fbffd *Image ;};
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_fdbf :=&PdfColorspaceLab {};_fdbf .BlackPoint =[]float64 {0.0,0.0,0.0};_fdbf .Range =[]float64 {-100,100,-100,100};return _fdbf ;};
|
||
|
||
// 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 (_afecf *PdfFont )SubsetRegistered ()error {switch _dfcf :=_afecf ._dbgb .(type ){case *pdfFontType0 :_eefb :=_dfcf .subsetRegistered ();if _eefb !=nil {_ccb .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eefb );
|
||
return _eefb ;};if _dfcf ._cgaae !=nil {if _dfcf ._gdcea !=nil {_dfcf ._gdcea .ToPdfObject ();};_dfcf .ToPdfObject ();};default:_ccb .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",_dfcf );
|
||
};return nil ;};
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _eca .PdfObject ;};
|
||
|
||
// 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 (_cggb *PdfWriter )SetRotation (rotate int64 )error {_baddc ,_gabgff :=_eca .GetDict (_cggb ._bceddb );if !_gabgff {return ErrTypeCheck ;};_baddc .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_eca .MakeInteger (rotate ));return nil ;};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_fagg *_eca .PdfObjectDictionary ;_eceae *_eca .PdfIndirectObject ;};
|
||
|
||
// 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 (_dbae _beg .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_ceegf _cc .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_dcbad _cc .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_dgaa *Image ,_efgg int64 )(*Image ,error );};
|
||
|
||
// 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 ;};
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_cgdb :=NewPdfAnnotation ();_bac :=&PdfAnnotationHighlight {};_bac .PdfAnnotation =_cgdb ;_bac .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cgdb .SetContext (_bac );return _bac ;};
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_afegb *PdfPage )error ;};
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_gfaag *_eca .PdfIndirectObject ;};func (_gca *PdfReader )newPdfAnnotationMovieFromDict (_afeg *_eca .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fgddg :=PdfAnnotationMovie {};
|
||
_fgddg .T =_afeg .Get ("\u0054");_fgddg .Movie =_afeg .Get ("\u004d\u006f\u0076i\u0065");_fgddg .A =_afeg .Get ("\u0041");return &_fgddg ,nil ;};func (_gcba *PdfReader )newPdfActionSoundFromDict (_gecc *_eca .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_gecc .Get ("\u0053\u006f\u0075n\u0064"),Volume :_gecc .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_gecc .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_gecc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_gecc .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// SetNameDictionary sets the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_gaabac *PdfWriter )SetNameDictionary (names _eca .PdfObject )error {if names ==nil {return nil ;};_ccb .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_gaabac ._eeggd .Set ("\u004e\u0061\u006de\u0073",names );return _gaabac .addObjects (names );};
|
||
|
||
// 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 ;_gcgb []byte ;_cfgaa []float64 ;};
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_cbdce :=PdfWriter {};_cbdce ._ceace =map[_eca .PdfObject ]struct{}{};_cbdce ._daecf =[]_eca .PdfObject {};_cbdce ._cbfcb =map[_eca .PdfObject ][]*_eca .PdfObjectDictionary {};_cbdce ._aeedc =map[_eca .PdfObject ]struct{}{};
|
||
_cbdce ._dgab .Major =1;_cbdce ._dgab .Minor =3;_edff :=_eca .MakeDict ();_efdac :=[]struct{_aagab _eca .PdfObjectName ;_ddcba string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_egdb ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_ddfbd ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_aabge ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_dddac ()},{"\u0054\u0069\u0074l\u0065",_cgccc ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_cebgd ()}};
|
||
for _ ,_gafe :=range _efdac {if _gafe ._ddcba !=""{_edff .Set (_gafe ._aagab ,_eca .MakeString (_gafe ._ddcba ));};};if _bfged :=_bcedebe ();!_bfged .IsZero (){if _edefd ,_cbdgg :=NewPdfDateFromTime (_bfged );_cbdgg ==nil {_edff .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_edefd .ToPdfObject ());
|
||
};};if _egaec :=_dceac ();!_egaec .IsZero (){if _eaec ,_defga :=NewPdfDateFromTime (_egaec );_defga ==nil {_edff .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_eaec .ToPdfObject ());};};_cdbad :=_eca .PdfIndirectObject {};_cdbad .PdfObject =_edff ;_cbdce ._fbegc =&_cdbad ;
|
||
_cbdce .addObject (&_cdbad );_gfedea :=_eca .PdfIndirectObject {};_cgfff :=_eca .MakeDict ();_cgfff .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_gfedea .PdfObject =_cgfff ;_cbdce ._bggab =&_gfedea ;_cbdce .addObject (_cbdce ._bggab );
|
||
_eaedc ,_bgfbe :=_agcee ("\u0077");if _bgfbe !=nil {_ccb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bgfbe );};_cbdce ._gaafc =_eaedc ;_ageba :=_eca .PdfIndirectObject {};_afcbb :=_eca .MakeDict ();_afcbb .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0050\u0061\u0067e\u0073"));
|
||
_aacfg :=_eca .PdfObjectArray {};_afcbb .Set ("\u004b\u0069\u0064\u0073",&_aacfg );_afcbb .Set ("\u0043\u006f\u0075n\u0074",_eca .MakeInteger (0));_ageba .PdfObject =_afcbb ;_cbdce ._bceddb =&_ageba ;_cbdce ._eccgd =map[_eca .PdfObject ]struct{}{};_cbdce .addObject (_cbdce ._bceddb );
|
||
_cgfff .Set ("\u0050\u0061\u0067e\u0073",&_ageba );_cbdce ._eeggd =_cgfff ;_ccb .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_gfedea );return _cbdce ;};
|
||
|
||
// 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 (_gbdea *LTV )EnableAll (extraCerts []*_ad .Certificate )error {_gcge :=_gbdea ._deaee ._badg .AcroForm ;for _ ,_acdef :=range _gcge .AllFields (){_ddaab ,_ :=_acdef .GetContext ().(*PdfFieldSignature );if _ddaab ==nil {continue ;};_aedfaa :=_ddaab .V ;
|
||
if _faggf :=_gbdea .validateSig (_aedfaa );_faggf !=nil {_ccb .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",_faggf );
|
||
};if _dabf :=_gbdea .Enable (_aedfaa ,extraCerts );_dabf !=nil {return _dabf ;};};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_ffffae *PdfShading )ToPdfObject ()_eca .PdfObject {_gegad :=_ffffae ._dcbe ;_fdgba ,_eaeb :=_ffffae .getShadingDict ();if _eaeb !=nil {_ccb .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 _ffffae .ShadingType !=nil {_fdgba .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_ffffae .ShadingType );};if _ffffae .ColorSpace !=nil {_fdgba .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_ffffae .ColorSpace .ToPdfObject ());
|
||
};if _ffffae .Background !=nil {_fdgba .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_ffffae .Background );};if _ffffae .BBox !=nil {_fdgba .Set ("\u0042\u0042\u006f\u0078",_ffffae .BBox .ToPdfObject ());};if _ffffae .AntiAlias !=nil {_fdgba .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_ffffae .AntiAlias );
|
||
};return _gegad ;};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_eca .PdfObject ,error );};
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_aacfc *PdfSignature )Initialize ()error {if _aacfc .Handler ==nil {return _da .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 _aacfc .Handler .InitSignature (_aacfc );};
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_eegcc *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gebg ,_bcddf :=color .(*PdfColorDeviceRGB );if !_bcddf {_ccb .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 ,_da .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _gebg ,nil ;};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _eca .PdfObject ;BS _eca .PdfObject ;LE _eca .PdfObject ;IC _eca .PdfObject ;LL _eca .PdfObject ;LLE _eca .PdfObject ;Cap _eca .PdfObject ;IT _eca .PdfObject ;LLO _eca .PdfObject ;CP _eca .PdfObject ;
|
||
Measure _eca .PdfObject ;CO _eca .PdfObject ;};func (_dgbce *PdfReader )buildPageList (_egaa *_eca .PdfIndirectObject ,_cefd *_eca .PdfIndirectObject ,_geff map[_eca .PdfObject ]struct{})error {if _egaa ==nil {return nil ;};if _ ,_ccdgc :=_geff [_egaa ];
|
||
_ccdgc {_ccb .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",_egaa .ObjectNumber );return nil ;};_geff [_egaa ]=struct{}{};
|
||
_gdgce ,_bdfcd :=_egaa .PdfObject .(*_eca .PdfObjectDictionary );if !_bdfcd {return _da .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_gcbc ,_bdfcd :=(*_gdgce ).Get ("\u0054\u0079\u0070\u0065").(*_eca .PdfObjectName );
|
||
if !_bdfcd {if _gdgce .Get ("\u004b\u0069\u0064\u0073")==nil {return _da .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");};_ccb .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.");
|
||
_gcbc =_eca .MakeName ("\u0050\u0061\u0067e\u0073");_gdgce .Set ("\u0054\u0079\u0070\u0065",_gcbc );};_ccb .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",*_gcbc ,_egaa );
|
||
if *_gcbc =="\u0050\u0061\u0067\u0065"{_ggga ,_ffaa :=_dgbce .newPdfPageFromDict (_gdgce );if _ffaa !=nil {return _ffaa ;};_ggga .setContainer (_egaa );if _cefd !=nil {_gdgce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cefd );};_dgbce ._gfabb =append (_dgbce ._gfabb ,_egaa );
|
||
_dgbce .PageList =append (_dgbce .PageList ,_ggga );return nil ;};if *_gcbc !="\u0050\u0061\u0067e\u0073"{_ccb .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",_gcbc );
|
||
return _da .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 _cefd !=nil {_gdgce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cefd );};if !_dgbce ._gggcg {_becadc :=_dgbce .traverseObjectData (_egaa );if _becadc !=nil {return _becadc ;};};_cfca ,_fdcfc :=_dgbce ._ecfeba .Resolve (_gdgce .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _fdcfc !=nil {_ccb .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 _fdcfc ;};var _egbcd *_eca .PdfObjectArray ;
|
||
_egbcd ,_bdfcd =_cfca .(*_eca .PdfObjectArray );if !_bdfcd {_ceacf ,_efgec :=_cfca .(*_eca .PdfIndirectObject );if !_efgec {return _da .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_egbcd ,_bdfcd =_ceacf .PdfObject .(*_eca .PdfObjectArray );
|
||
if !_bdfcd {return _da .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");};};_ccb .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_egbcd );
|
||
for _gdeg ,_cecda :=range _egbcd .Elements (){_gccef ,_ebagf :=_eca .GetIndirect (_cecda );if !_ebagf {_ccb .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",_gccef );
|
||
return _da .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_egbcd .Set (_gdeg ,_gccef );_fdcfc =_dgbce .buildPageList (_gccef ,_egaa ,_geff );if _fdcfc !=nil {return _fdcfc ;
|
||
};};return nil ;};
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_eca .PdfObject ;};
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_dgcb *PdfPageResources )SetPatternByName (keyName _eca .PdfObjectName ,pattern _eca .PdfObject )error {if _dgcb .Pattern ==nil {_dgcb .Pattern =_eca .MakeDict ();};_cddbc ,_gbdgd :=_eca .GetDict (_dgcb .Pattern );if !_gbdgd {return _eca .ErrTypeError ;
|
||
};_cddbc .Set (keyName ,pattern );return nil ;};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dee :=NewPdfAnnotation ();_bdfa :=&PdfAnnotationPrinterMark {};_bdfa .PdfAnnotation =_dee ;_dee .SetContext (_bdfa );return _bdfa ;};func (_eeef *PdfAcroForm )fill (_eeggg FieldValueProvider ,_dfcg FieldAppearanceGenerator )error {if _eeef ==nil {return nil ;
|
||
};_gedgd ,_dfdg :=_eeggg .FieldValues ();if _dfdg !=nil {return _dfdg ;};for _ ,_bdbe :=range _eeef .AllFields (){_bgaea :=_bdbe .PartialName ();_gcbe ,_fgec :=_gedgd [_bgaea ];if !_fgec {if _cgdd ,_ceefd :=_bdbe .FullName ();_ceefd ==nil {_gcbe ,_fgec =_gedgd [_cgdd ];
|
||
};};if !_fgec {_ccb .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",_bgaea );
|
||
continue ;};if _fedbe :=_bbba (_bdbe ,_gcbe );_fedbe !=nil {return _fedbe ;};if _dfcg ==nil {continue ;};for _ ,_abbaf :=range _bdbe .Annotations {_fcefd ,_fgbb :=_dfcg .GenerateAppearanceDict (_eeef ,_bdbe ,_abbaf );if _fgbb !=nil {return _fgbb ;};_abbaf .AP =_fcefd ;
|
||
_abbaf .ToPdfObject ();};};return nil ;};
|
||
|
||
// GetContainingPdfObject implements model.PdfModel interface.
|
||
func (_efagb *PdfOutputIntent )GetContainingPdfObject ()_eca .PdfObject {return _efagb ._bfbdb };
|
||
|
||
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
|
||
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_bdce :=&PdfColorPatternType2 {};return _bdce };func (_fege *PdfWriter )copyObject (_ecaga _eca .PdfObject ,_fcgca map[_eca .PdfObject ]_eca .PdfObject ,_fgbfa map[_eca .PdfObject ]struct{},_efcbb bool )_eca .PdfObject {_bffeb :=!_fege ._ccdgb &&_fgbfa !=nil ;
|
||
if _ffddb ,_ffdbg :=_fcgca [_ecaga ];_ffdbg {if _bffeb &&!_efcbb {delete (_fgbfa ,_ecaga );};return _ffddb ;};if _ecaga ==nil {_fcfbd :=_eca .MakeNull ();return _fcfbd ;};_gccga :=_ecaga ;switch _edgag :=_ecaga .(type ){case *_eca .PdfObjectArray :_gafee :=_eca .MakeArray ();
|
||
_gccga =_gafee ;_fcgca [_ecaga ]=_gccga ;for _ ,_bcaaf :=range _edgag .Elements (){_gafee .Append (_fege .copyObject (_bcaaf ,_fcgca ,_fgbfa ,_efcbb ));};case *_eca .PdfObjectStreams :_ggdee :=&_eca .PdfObjectStreams {PdfObjectReference :_edgag .PdfObjectReference };
|
||
_gccga =_ggdee ;_fcgca [_ecaga ]=_gccga ;for _ ,_eegbgf :=range _edgag .Elements (){_ggdee .Append (_fege .copyObject (_eegbgf ,_fcgca ,_fgbfa ,_efcbb ));};case *_eca .PdfObjectStream :_cgage :=&_eca .PdfObjectStream {Stream :_edgag .Stream ,PdfObjectReference :_edgag .PdfObjectReference };
|
||
_gccga =_cgage ;_fcgca [_ecaga ]=_gccga ;_cgage .PdfObjectDictionary =_fege .copyObject (_edgag .PdfObjectDictionary ,_fcgca ,_fgbfa ,_efcbb ).(*_eca .PdfObjectDictionary );case *_eca .PdfObjectDictionary :var _acgeg bool ;if _bffeb &&!_efcbb {if _gdebd ,_ :=_eca .GetNameVal (_edgag .Get ("\u0054\u0079\u0070\u0065"));
|
||
_gdebd =="\u0050\u0061\u0067\u0065"{_ ,_eagbf :=_fege ._eccgd [_edgag ];_efcbb =!_eagbf ;_acgeg =_efcbb ;};};_cdcceg :=_eca .MakeDict ();_gccga =_cdcceg ;_fcgca [_ecaga ]=_gccga ;for _ ,_eaaab :=range _edgag .Keys (){_cdcceg .Set (_eaaab ,_fege .copyObject (_edgag .Get (_eaaab ),_fcgca ,_fgbfa ,_efcbb ));
|
||
};if _acgeg {_gccga =_eca .MakeNull ();_efcbb =false ;};case *_eca .PdfIndirectObject :_aaeae :=&_eca .PdfIndirectObject {PdfObjectReference :_edgag .PdfObjectReference };_gccga =_aaeae ;_fcgca [_ecaga ]=_gccga ;_aaeae .PdfObject =_fege .copyObject (_edgag .PdfObject ,_fcgca ,_fgbfa ,_efcbb );
|
||
case *_eca .PdfObjectString :_bfggd :=*_edgag ;_gccga =&_bfggd ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectName :_dagd :=*_edgag ;_gccga =&_dagd ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectNull :_gccga =_eca .MakeNull ();_fcgca [_ecaga ]=_gccga ;
|
||
case *_eca .PdfObjectInteger :_gaddf :=*_edgag ;_gccga =&_gaddf ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectReference :_aeegd :=*_edgag ;_gccga =&_aeegd ;_fcgca [_ecaga ]=_gccga ;case *_eca .PdfObjectFloat :_baaa :=*_edgag ;_gccga =&_baaa ;_fcgca [_ecaga ]=_gccga ;
|
||
case *_eca .PdfObjectBool :_degg :=*_edgag ;_gccga =&_degg ;_fcgca [_ecaga ]=_gccga ;case *pdfSignDictionary :_eddcf :=&pdfSignDictionary {PdfObjectDictionary :_eca .MakeDict (),_ceaad :_edgag ._ceaad ,_eacaae :_edgag ._eacaae };_gccga =_eddcf ;_fcgca [_ecaga ]=_gccga ;
|
||
for _ ,_caabgb :=range _edgag .Keys (){_eddcf .Set (_caabgb ,_fege .copyObject (_edgag .Get (_caabgb ),_fcgca ,_fgbfa ,_efcbb ));};default:_ccb .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",_ecaga );
|
||
};if _bffeb &&_efcbb {_fgbfa [_ecaga ]=struct{}{};};return _gccga ;};
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_fgbbd :map[_eca .PdfObject ]struct{}{},_dcddd :_cdeeb (),_ecfeba :_eca .NewParserFromString (txt )};};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_bebcd pdfFontSimple )GetRuneMetrics (r rune )(_ffd .CharMetrics ,bool ){if _bebcd ._cedde !=nil {_eeab ,_cccga :=_bebcd ._cedde .Read (r );if _cccga {return _eeab ,true ;};};_daag :=_bebcd .Encoder ();if _daag ==nil {_ccb .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bebcd );
|
||
return _ffd .CharMetrics {},false ;};_fafc ,_abfe :=_daag .RuneToCharcode (r );if !_abfe {if r !=' '{_ccb .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 ,_bebcd );
|
||
};return _ffd .CharMetrics {},false ;};_cbfce ,_cded :=_bebcd .GetCharMetrics (_fafc );return _cbfce ,_cded ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_gccgaf *XObjectImage )ToPdfObject ()_eca .PdfObject {_efbfbf :=_gccgaf ._gddeaa ;_aaebc :=_efbfbf .PdfObjectDictionary ;if _gccgaf .Filter !=nil {_aaebc =_gccgaf .Filter .MakeStreamDict ();_efbfbf .PdfObjectDictionary =_aaebc ;};_aaebc .Set ("\u0054\u0079\u0070\u0065",_eca .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_aaebc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_eca .MakeName ("\u0049\u006d\u0061g\u0065"));_aaebc .Set ("\u0057\u0069\u0064t\u0068",_eca .MakeInteger (*(_gccgaf .Width )));_aaebc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_eca .MakeInteger (*(_gccgaf .Height )));
|
||
if _gccgaf .BitsPerComponent !=nil {_aaebc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eca .MakeInteger (*(_gccgaf .BitsPerComponent )));};if _gccgaf .ColorSpace !=nil {_aaebc .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gccgaf .ColorSpace .ToPdfObject ());
|
||
};_aaebc .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_gccgaf .Intent );_aaebc .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_gccgaf .ImageMask );_aaebc .SetIfNotNil ("\u004d\u0061\u0073\u006b",_gccgaf .Mask );_gddda :=_aaebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
|
||
if _gccgaf .Decode ==nil &&_gddda {_aaebc .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _gccgaf .Decode !=nil {_aaebc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gccgaf .Decode );};_aaebc .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_gccgaf .Interpolate );
|
||
_aaebc .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_gccgaf .Alternatives );_aaebc .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_gccgaf .SMask );_aaebc .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_gccgaf .SMaskInData );
|
||
_aaebc .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_gccgaf .Matte );_aaebc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gccgaf .Name );_aaebc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gccgaf .StructParent );_aaebc .SetIfNotNil ("\u0049\u0044",_gccgaf .ID );
|
||
_aaebc .SetIfNotNil ("\u004f\u0050\u0049",_gccgaf .OPI );_aaebc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gccgaf .Metadata );_aaebc .SetIfNotNil ("\u004f\u0043",_gccgaf .OC );_aaebc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_eca .MakeInteger (int64 (len (_gccgaf .Stream ))));
|
||
_efbfbf .Stream =_gccgaf .Stream ;return _efbfbf ;};
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_bfcgd PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _bfcgd ._dbgb .getFontDescriptor (),nil ;};
|
||
|
||
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
|
||
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
|
||
// method instead, which also provides information regarding the destination
|
||
// of the outline items.
|
||
func (_aaebg *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _fgffe []*PdfOutlineTreeNode ;var _beafa []string ;var _cceee func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_cceee =func (_bgafa *PdfOutlineTreeNode ,_efba *[]*PdfOutlineTreeNode ,_dcad *[]string ,_gdbdc int ){if _bgafa ==nil {return ;
|
||
};if _bgafa ._dcfbf ==nil {_ccb .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 ;};_agfe ,_ggggd :=_bgafa ._dcfbf .(*PdfOutlineItem );if _ggggd {*_efba =append (*_efba ,&_agfe .PdfOutlineTreeNode );
|
||
_fgae :=_ec .Repeat ("\u0020",_gdbdc *2)+_agfe .Title .Decoded ();*_dcad =append (*_dcad ,_fgae );};if _bgafa .First !=nil {_bbcea :=_ec .Repeat ("\u0020",_gdbdc *2)+"\u002b";*_dcad =append (*_dcad ,_bbcea );_cceee (_bgafa .First ,_efba ,_dcad ,_gdbdc +1);
|
||
};if _ggggd &&_agfe .Next !=nil {_cceee (_agfe .Next ,_efba ,_dcad ,_gdbdc );};};_cceee (_aaebg ._eabaf ,&_fgffe ,&_beafa ,0);return _fgffe ,_beafa ,nil ;};
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _eca .PdfObject ;Sy _eca .PdfObject ;};
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _eca .PdfObject ;IC _eca .PdfObject ;BE _eca .PdfObject ;RD _eca .PdfObject ;};func (_adead *PdfWriter )setDocumentIDs (_ddce ,_aegdg string ){_adead ._dadf =_eca .MakeArray (_eca .MakeHexString (_ddce ),_eca .MakeHexString (_aegdg ));
|
||
};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_gge :=NewPdfAction ();_gbf :=&PdfActionRendition {};_gbf .PdfAction =_gge ;_gge .SetContext (_gbf );return _gbf ;};
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _eca .PdfObject ;};
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_face :=&PdfPageResourcesColorspaces {};_face .Names =[]string {};_face .Colorspaces =map[string ]PdfColorspace {};_face ._faddg =&_eca .PdfIndirectObject {};return _face ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_faaf *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_faaf .GetNumComponents (){return nil ,_da .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cgde ,_ccfbc :=_faaf .TintTransform .Evaluate (vals );
|
||
if _ccfbc !=nil {return nil ,_ccfbc ;};_edac ,_ccfbc :=_faaf .AlternateSpace .ColorFromFloats (_cgde );if _ccfbc !=nil {return nil ,_ccfbc ;};return _edac ,nil ;};func (_bbgc *PdfReader )newPdfAnnotationSoundFromDict (_cefa *_eca .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_aebcd :=PdfAnnotationSound {};
|
||
_fgcb ,_gcdb :=_bbgc .newPdfAnnotationMarkupFromDict (_cefa );if _gcdb !=nil {return nil ,_gcdb ;};_aebcd .PdfAnnotationMarkup =_fgcb ;_aebcd .Name =_cefa .Get ("\u004e\u0061\u006d\u0065");_aebcd .Sound =_cefa .Get ("\u0053\u006f\u0075n\u0064");return &_aebcd ,nil ;
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_aecfb *PdfShading )GetContainingPdfObject ()_eca .PdfObject {return _aecfb ._dcbe };
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_acgbae *PdfWriter )SetOptimizer (optimizer Optimizer ){_acgbae ._cgfccc =optimizer }; |