mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-27 13:48:51 +08:00
5029 lines
747 KiB
Go
5029 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 (_dg "bufio";_ag "bytes";_ae "crypto/md5";_bc "crypto/rand";_f "crypto/sha1";_eg "crypto/x509";_be "encoding/binary";_bd "encoding/hex";_ge "errors";_e "fmt";_ec "github.com/unidoc/pkcs7";_ff "github.com/unidoc/unipdf/v3/common";_ce "github.com/unidoc/unipdf/v3/core";
|
||
_cca "github.com/unidoc/unipdf/v3/core/security";_aee "github.com/unidoc/unipdf/v3/core/security/crypt";_ga "github.com/unidoc/unipdf/v3/internal/cmap";_gf "github.com/unidoc/unipdf/v3/internal/imageutil";_gec "github.com/unidoc/unipdf/v3/internal/license";
|
||
_gb "github.com/unidoc/unipdf/v3/internal/sampling";_dc "github.com/unidoc/unipdf/v3/internal/textencoding";_gdc "github.com/unidoc/unipdf/v3/internal/timeutils";_efc "github.com/unidoc/unipdf/v3/internal/transform";_ffa "github.com/unidoc/unipdf/v3/model/internal/docutil";
|
||
_ee "github.com/unidoc/unipdf/v3/model/internal/fonts";_aef "github.com/unidoc/unipdf/v3/model/mdp";_bcd "github.com/unidoc/unipdf/v3/model/sigutil";_caa "github.com/unidoc/unipdf/v3/ps";_eb "github.com/unidoc/unitype";_ffae "golang.org/x/xerrors";_d "hash";
|
||
_cb "image";_cc "image/color";_ "image/gif";_ "image/png";_gd "io";_fcg "io/ioutil";_egg "math";_fb "math/rand";_dd "os";_cd "regexp";_bf "sort";_dgb "strconv";_g "strings";_b "sync";_c "time";_ef "unicode";_ca "unicode/utf8";);
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ebcg *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cgeg :=_egg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cgeg *_ebcg .R ()),uint32 (_cgeg *_ebcg .G ()),uint32 (_cgeg *_ebcg .B ())};};func (_agabd *PdfAcroForm )fill (_edcbd FieldValueProvider ,_ccfc FieldAppearanceGenerator )error {if _agabd ==nil {return nil ;
|
||
};_eccee ,_fcafg :=_edcbd .FieldValues ();if _fcafg !=nil {return _fcafg ;};for _ ,_cddd :=range _agabd .AllFields (){_gcee :=_cddd .PartialName ();_ffbfc ,_faac :=_eccee [_gcee ];if !_faac {if _bdgad ,_ddgf :=_cddd .FullName ();_ddgf ==nil {_ffbfc ,_faac =_eccee [_bdgad ];
|
||
};};if !_faac {_ff .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",_gcee );
|
||
continue ;};if _gace :=_cfcg (_cddd ,_ffbfc );_gace !=nil {return _gace ;};if _ccfc ==nil {continue ;};for _ ,_fdfeg :=range _cddd .Annotations {_bgfdd ,_cceae :=_ccfc .GenerateAppearanceDict (_agabd ,_cddd ,_fdfeg );if _cceae !=nil {return _cceae ;};_fdfeg .AP =_bgfdd ;
|
||
_fdfeg .ToPdfObject ();};};return nil ;};func (_fegd *PdfReader )newPdfAnnotationTextFromDict (_cded *_ce .PdfObjectDictionary )(*PdfAnnotationText ,error ){_becf :=PdfAnnotationText {};_fee ,_gaa :=_fegd .newPdfAnnotationMarkupFromDict (_cded );if _gaa !=nil {return nil ,_gaa ;
|
||
};_becf .PdfAnnotationMarkup =_fee ;_becf .Open =_cded .Get ("\u004f\u0070\u0065\u006e");_becf .Name =_cded .Get ("\u004e\u0061\u006d\u0065");_becf .State =_cded .Get ("\u0053\u0074\u0061t\u0065");_becf .StateModel =_cded .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
|
||
return &_becf ,nil ;};
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_ega *PdfField )SetFlag (flag FieldFlag ){_ega .Ff =_ce .MakeInteger (int64 (flag ))};
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_ce .PdfObjectArray ;Matrix *_ce .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_efbe *PdfTilingPattern )GetContentStream ()([]byte ,error ){_dcfa ,_ ,_gaedb :=_efbe .GetContentStreamWithEncoder ();return _dcfa ,_gaedb ;};
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;};
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_cgacd *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_gcgac :=pageNum -1;for _gebc :=range _cgacd ._ggdc {if _gebc ==_gcgac {_adeg :=page .Duplicate ();_bfbegf (_adeg );_cgacd ._ggdc [_gebc ]=_adeg ;};};};
|
||
|
||
// GetFillImage get attached model.Image in push button.
|
||
func (_ecff *PdfFieldButton )GetFillImage ()*Image {if _ecff .IsPush (){return _ecff ._ffff ;};return nil ;};
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_ee .StdFontName ;
|
||
|
||
// ParsePdfObject parses input pdf object into given output intent.
|
||
func (_ebcee *PdfOutputIntent )ParsePdfObject (object _ce .PdfObject )error {_aeffc ,_aaace :=_ce .GetDict (object );if !_aaace {_ff .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 _ge .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");
|
||
};_ebcee ._gfdaf =_aeffc ;_ebcee .Type ,_ =_aeffc .GetString ("\u0054\u0079\u0070\u0065");_ggcgcb ,_aaace :=_aeffc .GetString ("\u0053");if _aaace {switch _ggcgcb {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_ebcee .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_ebcee .S =PdfOutputIntentTypeA2 ;
|
||
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_ebcee .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_ebcee .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_ebcee .S =PdfOutputIntentTypeX ;
|
||
};};_ebcee .OutputCondition ,_ =_aeffc .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_ebcee .OutputConditionIdentifier ,_ =_aeffc .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
|
||
_ebcee .RegistryName ,_ =_aeffc .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_ebcee .Info ,_ =_aeffc .GetString ("\u0049\u006e\u0066\u006f");if _fegc ,_bgefe :=_ce .GetStream (_aeffc .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
|
||
_bgefe {_ebcee .ColorComponents ,_ =_ce .GetIntVal (_fegc .Get ("\u004e"));_edfe ,_edgac :=_ce .DecodeStream (_fegc );if _edgac !=nil {return _edgac ;};_ebcee .DestOutputProfile =_edfe ;};return nil ;};
|
||
|
||
// String returns a string representation of the field.
|
||
func (_gfca *PdfField )String ()string {if _dbbbg ,_gcgb :=_gfca .ToPdfObject ().(*_ce .PdfIndirectObject );_gcgb {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_gfca ._dcagc ,_dbbbg .PdfObject .String ());};return "";};
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_gcbc DefaultImageHandler )NewGrayImageFromGoImage (goimg _cb .Image )(*Image ,error ){_bbccfb :=goimg .Bounds ();_eefee :=&Image {Width :int64 (_bbccfb .Dx ()),Height :int64 (_bbccfb .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _adeaca :=goimg .(type ){case *_cb .Gray :if len (_adeaca .Pix )!=_bbccfb .Dx ()*_bbccfb .Dy (){_gdbef ,_accab :=_gf .GrayConverter .Convert (goimg );
|
||
if _accab !=nil {return nil ,_accab ;};_eefee .Data =_gdbef .Pix ();}else {_eefee .Data =_adeaca .Pix ;};case *_cb .Gray16 :_eefee .BitsPerComponent =16;if len (_adeaca .Pix )!=_bbccfb .Dx ()*_bbccfb .Dy ()*2{_dbdef ,_efca :=_gf .Gray16Converter .Convert (goimg );
|
||
if _efca !=nil {return nil ,_efca ;};_eefee .Data =_dbdef .Pix ();}else {_eefee .Data =_adeaca .Pix ;};case _gf .Image :_dfccg :=_adeaca .Base ();if _dfccg .ColorComponents ==1{_eefee .BitsPerComponent =int64 (_dfccg .BitsPerComponent );_eefee .Data =_dfccg .Data ;
|
||
return _eefee ,nil ;};_bcaba ,_dgbc :=_gf .GrayConverter .Convert (goimg );if _dgbc !=nil {return nil ,_dgbc ;};_eefee .Data =_bcaba .Pix ();default:_bgbcd ,_dceeb :=_gf .GrayConverter .Convert (goimg );if _dceeb !=nil {return nil ,_dceeb ;};_eefee .Data =_bgbcd .Pix ();
|
||
};return _eefee ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_afdd *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eef *PdfActionJavaScript )ToPdfObject ()_ce .PdfObject {_eef .PdfAction .ToPdfObject ();_bde :=_eef ._bcc ;_fa :=_bde .PdfObject .(*_ce .PdfObjectDictionary );_fa .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeJavaScript )));_fa .SetIfNotNil ("\u004a\u0053",_eef .JS );
|
||
return _bde ;};func (_cf *PdfReader )newPdfActionGotoEFromDict (_gbb *_ce .PdfObjectDictionary )(*PdfActionGoToE ,error ){_aca ,_cff :=_ecbge (_gbb .Get ("\u0046"));if _cff !=nil {return nil ,_cff ;};return &PdfActionGoToE {D :_gbb .Get ("\u0044"),NewWindow :_gbb .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_gbb .Get ("\u0054"),F :_aca },nil ;
|
||
};
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_gcgf *PdfField )SetContext (ctx PdfModel ){_gcgf ._dcagc =ctx };func (_eaeg *fontFile )parseASCIIPart (_acaac []byte )error {if len (_acaac )< 2||string (_acaac [:2])!="\u0025\u0021"{return _ge .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");
|
||
};_ggcfg ,_ddgdg ,_eaaab :=_ecgcd (_acaac );if _eaaab !=nil {return _eaaab ;};_deaae :=_abgcc (_ggcfg );_eaeg ._abdd =_deaae ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _eaeg ._abdd ==""{_ff .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 _ddgdg !=""{_gffc ,_agbfb :=_dccba (_ddgdg );if _agbfb !=nil {return _agbfb ;};_debg ,_agbfb :=_dc .NewCustomSimpleTextEncoder (_gffc ,nil );if _agbfb !=nil {_ff .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",_agbfb );
|
||
return nil ;};_eaeg ._bagea =_debg ;};return nil ;};
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_gcfd *PdfReader )GetNumPages ()(int ,error ){if _gcfd ._afda .GetCrypter ()!=nil &&!_gcfd ._afda .IsAuthenticated (){return 0,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};return len (_gcfd ._cbddb ),nil ;};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_fdfaa *PdfPage )AddImageResource (name _ce .PdfObjectName ,ximg *XObjectImage )error {var _aaefb *_ce .PdfObjectDictionary ;if _fdfaa .Resources .XObject ==nil {_aaefb =_ce .MakeDict ();_fdfaa .Resources .XObject =_aaefb ;}else {var _aaeb bool ;
|
||
_aaefb ,_aaeb =(_fdfaa .Resources .XObject ).(*_ce .PdfObjectDictionary );if !_aaeb {return _ge .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_aaefb .Set (name ,ximg .ToPdfObject ());
|
||
return 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 ;
|
||
|
||
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
|
||
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _ce .PdfObjectName ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_degg *PdfAnnotationRichMedia )ToPdfObject ()_ce .PdfObject {_degg .PdfAnnotation .ToPdfObject ();_dcd :=_degg ._dec ;_abag :=_dcd .PdfObject .(*_ce .PdfObjectDictionary );_abag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_abag .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_degg .RichMediaSettings );_abag .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_degg .RichMediaContent );
|
||
return _dcd ;};
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_bdba *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ce .PdfObject {_bccd :=_ce .MakeDict ();if _bdba .Subtype !=nil {_bccd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_bdba .Subtype );};_bccd .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_bdba .Colorants );
|
||
_bccd .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_bdba .Process );_bccd .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_bdba .MixingHints );if _bdba ._dcggf !=nil {_bdba ._dcggf .PdfObject =_bccd ;return _bdba ._dcggf ;
|
||
};return _bccd ;};func (_ebe *PdfReader )newPdfActionLaunchFromDict (_egd *_ce .PdfObjectDictionary )(*PdfActionLaunch ,error ){_cee ,_acad :=_ecbge (_egd .Get ("\u0046"));if _acad !=nil {return nil ,_acad ;};return &PdfActionLaunch {Win :_egd .Get ("\u0057\u0069\u006e"),Mac :_egd .Get ("\u004d\u0061\u0063"),Unix :_egd .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_egd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_cee },nil ;
|
||
};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain three elements representing the
|
||
// L (range 0-100), A (range -100-100) and B (range -100-100) components of
|
||
// the color.
|
||
func (_gdbd *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_deed :=vals [0];if _deed < 0.0||_deed > 100.0{_ff .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",_deed );
|
||
return nil ,ErrColorOutOfRange ;};_afefg :=vals [1];_ceaa :=float64 (-100);_cgfc :=float64 (100);if len (_gdbd .Range )> 1{_ceaa =_gdbd .Range [0];_cgfc =_gdbd .Range [1];};if _afefg < _ceaa ||_afefg > _cgfc {_ff .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",_afefg ,_ceaa ,_cgfc );
|
||
return nil ,ErrColorOutOfRange ;};_ggefe :=vals [2];_gaefg :=float64 (-100);_aage :=float64 (100);if len (_gdbd .Range )> 3{_gaefg =_gdbd .Range [2];_aage =_gdbd .Range [3];};if _ggefe < _gaefg ||_ggefe > _aage {_ff .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",_ggefe ,_gaefg ,_aage );
|
||
return nil ,ErrColorOutOfRange ;};_baeg :=NewPdfColorLab (_deed ,_afefg ,_ggefe );return _baeg ,nil ;};func _cccf (_addbe _ce .PdfObject )(*PdfPageResourcesColorspaces ,error ){_gbbba :=&PdfPageResourcesColorspaces {};if _dggeba ,_egbebg :=_addbe .(*_ce .PdfIndirectObject );
|
||
_egbebg {_gbbba ._bcgd =_dggeba ;_addbe =_dggeba .PdfObject ;};_bcaea ,_bdcga :=_ce .GetDict (_addbe );if !_bdcga {return nil ,_ge .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_gbbba .Names =[]string {};_gbbba .Colorspaces =map[string ]PdfColorspace {};for _ ,_ccbb :=range _bcaea .Keys (){_bdbef :=_bcaea .Get (_ccbb );_gbbba .Names =append (_gbbba .Names ,string (_ccbb ));_caddg ,_abfad :=NewPdfColorspaceFromPdfObject (_bdbef );
|
||
if _abfad !=nil {return nil ,_abfad ;};_gbbba .Colorspaces [string (_ccbb )]=_caddg ;};return _gbbba ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aade *PdfAnnotationSound )ToPdfObject ()_ce .PdfObject {_aade .PdfAnnotation .ToPdfObject ();_ecgc :=_aade ._dec ;_gbgcf :=_ecgc .PdfObject .(*_ce .PdfObjectDictionary );_aade .PdfAnnotationMarkup .appendToPdfDictionary (_gbgcf );_gbgcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_gbgcf .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aade .Sound );_gbgcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_aade .Name );return _ecgc ;};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_edac :=&PdfColorspaceDeviceN {};return _edac };func _dagga (_bfce *_ce .PdfObjectDictionary ,_debda *fontCommon )(*pdfFontType0 ,error ){_ggcd ,_egdefa :=_ce .GetArray (_bfce .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
|
||
if !_egdefa {_ff .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",_debda );
|
||
return nil ,_ce .ErrRangeError ;};if _ggcd .Len ()!=1{_ff .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",_ggcd .Len ());return nil ,_ce .ErrRangeError ;
|
||
};_gfffe ,_fecd :=_abaa (_ggcd .Get (0),false );if _fecd !=nil {_ff .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",_fecd ,_debda );
|
||
return nil ,_fecd ;};_fcea :=_cfdb (_debda );_fcea .DescendantFont =_gfffe ;_gfbd ,_egdefa :=_ce .GetNameVal (_bfce .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _egdefa {if _gfbd =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_gfbd =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_fcea ._fbfa =_dc .NewIdentityTextEncoder (_gfbd );
|
||
}else if _ga .IsPredefinedCMap (_gfbd ){_fcea ._ggecbf ,_fecd =_ga .LoadPredefinedCMap (_gfbd );if _fecd !=nil {_ff .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",_gfbd ,_fecd );
|
||
};}else {_ff .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_gfbd );};};if _fgfa :=_gfffe .baseFields ()._dgfcg ;_fgfa !=nil {if _afbea :=_fgfa .Name ();_afbea =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_afbea =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_afbea =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_afbea =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_fcea ._fbfa =_dc .NewCMapEncoder (_gfbd ,_fcea ._ggecbf ,_fgfa );
|
||
};};return _fcea ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ba *PdfActionThread )ToPdfObject ()_ce .PdfObject {_ba .PdfAction .ToPdfObject ();_gbg :=_ba ._bcc ;_aa :=_gbg .PdfObject .(*_ce .PdfObjectDictionary );_aa .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeThread )));if _ba .F !=nil {_aa .Set ("\u0046",_ba .F .ToPdfObject ());
|
||
};_aa .SetIfNotNil ("\u0044",_ba .D );_aa .SetIfNotNil ("\u0042",_ba .B );return _gbg ;};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};func _cccg (_aedb []byte )bool {if len (_aedb )< 4{return true ;
|
||
};for _fgfed :=range _aedb [:4]{_adcd :=rune (_fgfed );if !_ef .Is (_ef .ASCII_Hex_Digit ,_adcd )&&!_ef .IsSpace (_adcd ){return true ;};};return false ;};var _ pdfFont =(*pdfFontSimple )(nil );
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_fabef *PdfRectangle )Width ()float64 {return _egg .Abs (_fabef .Urx -_fabef .Llx )};
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_egefa *XObjectImage )GetContainingPdfObject ()_ce .PdfObject {return _egefa ._gefdf };
|
||
|
||
// 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 ;_bcgd *_ce .PdfIndirectObject ;};func (_eaffd *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _dgbed []*PdfFieldSignature ;for _ ,_ggce :=range _eaffd .AllFields (){switch _fdda :=_ggce .GetContext ().(type ){case *PdfFieldSignature :_dbdgf :=_fdda ;
|
||
_dgbed =append (_dgbed ,_dbdgf );};};return _dgbed ;};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_ggadb *PdfPageResources )HasColorspaceByName (keyName _ce .PdfObjectName )bool {_gbdab ,_fagdf :=_ggadb .GetColorspaces ();if _fagdf !=nil {_ff .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",_fagdf );
|
||
return false ;};if _gbdab ==nil {return false ;};_ ,_dgcc :=_gbdab .Colorspaces [string (keyName )];return _dgcc ;};
|
||
|
||
// 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{_dcagc PdfModel ;_aadeb *_ce .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ce .PdfObjectName ;T *_ce .PdfObjectString ;TU *_ce .PdfObjectString ;TM *_ce .PdfObjectString ;Ff *_ce .PdfObjectInteger ;
|
||
V _ce .PdfObject ;DV _ce .PdfObject ;AA _ce .PdfObject ;VariableText *VariableText ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eeg *PdfActionSubmitForm )ToPdfObject ()_ce .PdfObject {_eeg .PdfAction .ToPdfObject ();_abb :=_eeg ._bcc ;_fcd :=_abb .PdfObject .(*_ce .PdfObjectDictionary );_fcd .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSubmitForm )));if _eeg .F !=nil {_fcd .Set ("\u0046",_eeg .F .ToPdfObject ());
|
||
};_fcd .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_eeg .Fields );_fcd .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_eeg .Flags );return _abb ;};func (_fgab *PdfReader )newPdfAnnotationHighlightFromDict (_cffa *_ce .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_gecfd :=PdfAnnotationHighlight {};
|
||
_gcfa ,_bcfe :=_fgab .newPdfAnnotationMarkupFromDict (_cffa );if _bcfe !=nil {return nil ,_bcfe ;};_gecfd .PdfAnnotationMarkup =_gcfa ;_gecfd .QuadPoints =_cffa .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_gecfd ,nil ;
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_dbbaf *PdfPageResources )GetContainingPdfObject ()_ce .PdfObject {return _dbbaf ._gceda };
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_egffg :=&PdfOutlineItem {_ggcfgf :_ce .MakeIndirectObject (_ce .MakeDict ())};_egffg ._edda =_egffg ;return _egffg ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_afgg *PdfColorCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// GetContainingPdfObject implements model.PdfModel interface.
|
||
func (_geed *PdfOutputIntent )GetContainingPdfObject ()_ce .PdfObject {return _geed ._gfdaf };func _cfdb (_bafd *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_bafd }};func _bbecd (_egeaf *PdfField ,_ggbfd _ce .PdfObject ){for _ ,_fgdaa :=range _egeaf .Annotations {_fgdaa .AS =_ggbfd ;
|
||
_fgdaa .ToPdfObject ();};};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_debd *PdfAnnotation )GetContainingPdfObject ()_ce .PdfObject {return _debd ._dec };var _dggec =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
|
||
func (_agcec *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _agcec ._afda .GetCrypter ()!=nil &&!_agcec ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_dcafd :=_agcec ._cfcdg ;_eeggc :=_dcafd .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _eeggc ==nil {return nil ,nil ;};_ff .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_cabfe :=_ce .ResolveReference (_eeggc );
|
||
_ff .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_cabfe );if _cfaf :=_ce .IsNullObject (_cabfe );_cfaf {_ff .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 ;};_edfed ,_abdbc :=_cabfe .(*_ce .PdfIndirectObject );if !_abdbc {if _ ,_degbb :=_ce .GetDict (_cabfe );!_degbb {_ff .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 ;};_ff .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");
|
||
_edfed =_ce .MakeIndirectObject (_cabfe );};_fgfeb ,_abdbc :=_edfed .PdfObject .(*_ce .PdfObjectDictionary );if !_abdbc {return nil ,_ge .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");
|
||
};_ff .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_fgfeb );_decge ,_ ,_fccaa :=_agcec .buildOutlineTree (_edfed ,nil ,nil ,nil );if _fccaa !=nil {return nil ,_fccaa ;};_ff .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",_decge );
|
||
return _decge ,nil ;};
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_cab :=NewPdfAnnotation ();_ddfe :=&PdfAnnotationCircle {};_ddfe .PdfAnnotation =_cab ;_ddfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cab .SetContext (_ddfe );return _ddfe ;};func (_gbbdd *PdfReader )loadAnnotations (_agfca _ce .PdfObject )([]*PdfAnnotation ,error ){_ccbeb ,_ecfad :=_ce .GetArray (_agfca );
|
||
if !_ecfad {return nil ,_e .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");};var _adbc []*PdfAnnotation ;for _ ,_agcd :=range _ccbeb .Elements (){_agcd =_ce .ResolveReference (_agcd );
|
||
if _ ,_abec :=_agcd .(*_ce .PdfObjectNull );_abec {continue ;};_egcagf ,_dagbd :=_agcd .(*_ce .PdfObjectDictionary );_eddec ,_abaca :=_agcd .(*_ce .PdfIndirectObject );if _dagbd {_eddec =&_ce .PdfIndirectObject {};_eddec .PdfObject =_egcagf ;}else {if !_abaca {return nil ,_e .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};};_gggg ,_gfba :=_gbbdd .newPdfAnnotationFromIndirectObject (_eddec );if _gfba !=nil {return nil ,_gfba ;};switch _bbdbb :=_gggg .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_fddf :=range _gbbdd .AcroForm .AllFields (){if _fddf ._aadeb ==_bbdbb .Parent {_bbdbb ._bag =_fddf ;
|
||
break ;};};};if _gggg !=nil {_adbc =append (_adbc ,_gggg );};};return _adbc ,nil ;};
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_efba *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _efba .Base ==nil {return nil ,_ge .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 _efba .Base .ColorToRGB (color );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fagc *PdfFilespec )ToPdfObject ()_ce .PdfObject {_bedg :=_fagc .getDict ();_bedg .Clear ();_bedg .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_bedg .SetIfNotNil ("\u0046\u0053",_fagc .FS );
|
||
_bedg .SetIfNotNil ("\u0046",_fagc .F );_bedg .SetIfNotNil ("\u0055\u0046",_fagc .UF );_bedg .SetIfNotNil ("\u0044\u004f\u0053",_fagc .DOS );_bedg .SetIfNotNil ("\u004d\u0061\u0063",_fagc .Mac );_bedg .SetIfNotNil ("\u0055\u006e\u0069\u0078",_fagc .Unix );
|
||
_bedg .SetIfNotNil ("\u0049\u0044",_fagc .ID );_bedg .SetIfNotNil ("\u0056",_fagc .V );_bedg .SetIfNotNil ("\u0045\u0046",_fagc .EF );_bedg .SetIfNotNil ("\u0052\u0046",_fagc .RF );_bedg .SetIfNotNil ("\u0044\u0065\u0073\u0063",_fagc .Desc );_bedg .SetIfNotNil ("\u0043\u0049",_fagc .CI );
|
||
return _fagc ._ddgc ;};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_edeaa *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _debf []float64 ;for _caea :=0;_caea < _edeaa .GetNumComponents ();_caea ++{_debf =append (_debf ,0.0,1.0);};return _debf ;};func (_cbb *PdfReader )newPdfActionRenditionFromDict (_gbc *_ce .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_gbc .Get ("\u0052"),AN :_gbc .Get ("\u0041\u004e"),OP :_gbc .Get ("\u004f\u0050"),JS :_gbc .Get ("\u004a\u0053")},nil ;
|
||
};func (_bbaca *PdfPage )flattenFieldsWithOpts (_decf FieldAppearanceGenerator ,_aecae *FieldFlattenOpts ,_bgfa map[*PdfAnnotation ]bool )error {var _dbge []*PdfAnnotation ;if _decf !=nil {if _acafg :=_decf .WrapContentStream (_bbaca );_acafg !=nil {return _acafg ;
|
||
};};_gccb ,_dfdb :=_bbaca .GetAnnotations ();if _dfdb !=nil {return _dfdb ;};for _ ,_adbda :=range _gccb {_cadae ,_gdfgf :=_bgfa [_adbda ];if !_gdfgf &&_aecae .AnnotFilterFunc !=nil {if _ ,_dbgeb :=_adbda .GetContext ().(*PdfAnnotationWidget );!_dbgeb {_gdfgf =_aecae .AnnotFilterFunc (_adbda );
|
||
};};if !_gdfgf {_dbge =append (_dbge ,_adbda );continue ;};switch _adbda .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_dgeea ,_fbffd ,_cbeeg :=_eegg (_adbda );if _cbeeg !=nil {if !_cadae {_ff .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 ;};_ff .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",_cbeeg );
|
||
continue ;};if _dgeea ==nil {continue ;};_abcc :=_bbaca .Resources .GenerateXObjectName ();_bbaca .Resources .SetXObjectFormByName (_abcc ,_dgeea );_gfgbe ,_bgd ,_cbeeg :=_fgdc (_dgeea );if _cbeeg !=nil {_ff .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",_cbeeg );
|
||
}else {_eefec :=_efc .IdentityMatrix ();_eefec =_eefec .Translate (-_gfgbe .Llx ,-_gfgbe .Lly );if _bgd {_bdea :=0.0;if _gfgbe .Width ()> 0{_bdea =_fbffd .Width ()/_gfgbe .Width ();};_cfdg :=0.0;if _gfgbe .Height ()> 0{_cfdg =_fbffd .Height ()/_gfgbe .Height ();
|
||
};_eefec =_eefec .Scale (_bdea ,_cfdg );};_fbffd .Transform (_eefec );};_gdgfd :=_egg .Min (_fbffd .Llx ,_fbffd .Urx );_gccf :=_egg .Min (_fbffd .Lly ,_fbffd .Ury );var _dcfb []string ;_dcfb =append (_dcfb ,"\u0071");_dcfb =append (_dcfb ,_e .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_gdgfd ,_gccf ));
|
||
_dcfb =append (_dcfb ,_e .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_abcc .String ()));_dcfb =append (_dcfb ,"\u0051");_bdgb :=_g .Join (_dcfb ,"\u000a");_cbeeg =_bbaca .AppendContentStream (_bdgb );if _cbeeg !=nil {return _cbeeg ;};if _dgeea .Resources !=nil {_acgag ,_bcced :=_ce .GetDict (_dgeea .Resources .Font );
|
||
if _bcced {for _ ,_eebd :=range _acgag .Keys (){if !_bbaca .Resources .HasFontByName (_eebd ){_bbaca .Resources .SetFontByName (_eebd ,_acgag .Get (_eebd ));};};};};};if len (_dbge )> 0{_bbaca ._gage =_dbge ;}else {_bbaca ._gage =[]*PdfAnnotation {};};
|
||
return 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 (_bgda *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _bgda .baseFields ()._daebd !=nil {return _bgda .baseFields ()._daebd ;};if _cdfb :=_bgda ._dace .getFontDescriptor ();_cdfb !=nil {return _cdfb ;};_ff .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",_bgda );
|
||
return nil ;};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_geddc *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _geddc ._dbbfe };func _eedd (_eaafd *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_eaafd }};func (_gbe *PdfReader )newPdfAnnotationScreenFromDict (_gfed *_ce .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_bbfg :=PdfAnnotationScreen {};
|
||
_bbfg .T =_gfed .Get ("\u0054");_bbfg .MK =_gfed .Get ("\u004d\u004b");_bbfg .A =_gfed .Get ("\u0041");_bbfg .AA =_gfed .Get ("\u0041\u0041");return &_bbfg ,nil ;};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_bfbcd *PdfColorspaceSpecialIndexed )ToPdfObject ()_ce .PdfObject {_fdcc :=_ce .MakeArray (_ce .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_fdcc .Append (_bfbcd .Base .ToPdfObject ());_fdcc .Append (_ce .MakeInteger (int64 (_bfbcd .HiVal )));
|
||
_fdcc .Append (_bfbcd .Lookup );if _bfbcd ._cbca !=nil {_bfbcd ._cbca .PdfObject =_fdcc ;return _bfbcd ._cbca ;};return _fdcc ;};
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_cfbed *PdfPage )GetPageDict ()*_ce .PdfObjectDictionary {_dcbf :=_cfbed ._cbcaa ;_dcbf .Clear ();_dcbf .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067\u0065"));_dcbf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cfbed .Parent );
|
||
if _cfbed .LastModified !=nil {_dcbf .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cfbed .LastModified .ToPdfObject ());};if _cfbed .Resources !=nil {_dcbf .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cfbed .Resources .ToPdfObject ());
|
||
};if _cfbed .CropBox !=nil {_dcbf .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_cfbed .CropBox .ToPdfObject ());};if _cfbed .MediaBox !=nil {_dcbf .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_cfbed .MediaBox .ToPdfObject ());};if _cfbed .BleedBox !=nil {_dcbf .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_cfbed .BleedBox .ToPdfObject ());
|
||
};if _cfbed .TrimBox !=nil {_dcbf .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_cfbed .TrimBox .ToPdfObject ());};if _cfbed .ArtBox !=nil {_dcbf .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_cfbed .ArtBox .ToPdfObject ());};_dcbf .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_cfbed .BoxColorInfo );
|
||
_dcbf .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cfbed .Contents );if _cfbed .Rotate !=nil {_dcbf .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ce .MakeInteger (*_cfbed .Rotate ));};_dcbf .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cfbed .Group );
|
||
_dcbf .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_cfbed .Thumb );_dcbf .SetIfNotNil ("\u0042",_cfbed .B );_dcbf .SetIfNotNil ("\u0044\u0075\u0072",_cfbed .Dur );_dcbf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cfbed .Trans );_dcbf .SetIfNotNil ("\u0041\u0041",_cfbed .AA );
|
||
_dcbf .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cfbed .Metadata );_dcbf .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cfbed .PieceInfo );_dcbf .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cfbed .StructParents );
|
||
_dcbf .SetIfNotNil ("\u0049\u0044",_cfbed .ID );_dcbf .SetIfNotNil ("\u0050\u005a",_cfbed .PZ );_dcbf .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_cfbed .SeparationInfo );_dcbf .SetIfNotNil ("\u0054\u0061\u0062\u0073",_cfbed .Tabs );
|
||
_dcbf .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_cfbed .TemplateInstantiated );_dcbf .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_cfbed .PresSteps );_dcbf .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_cfbed .UserUnit );
|
||
_dcbf .SetIfNotNil ("\u0056\u0050",_cfbed .VP );if _cfbed ._gage !=nil {_gade :=_ce .MakeArray ();for _ ,_cbdcd :=range _cfbed ._gage {if _dagef :=_cbdcd .GetContext ();_dagef !=nil {_gade .Append (_dagef .ToPdfObject ());}else {_gade .Append (_cbdcd .ToPdfObject ());
|
||
};};if _gade .Len ()> 0{_dcbf .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_gade );};}else if _cfbed .Annots !=nil {_dcbf .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_cfbed .Annots );};return _dcbf ;};
|
||
|
||
// ParserMetadata gets the parser metadata.
|
||
func (_dagf *CompliancePdfReader )ParserMetadata ()_ce .ParserMetadata {if _dagf ._cefd ==(_ce .ParserMetadata {}){_dagf ._cefd ,_ =_dagf ._afda .ParserMetadata ();};return _dagf ._cefd ;};
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_gbga *PdfColorDeviceCMYK )C ()float64 {return _gbga [0]};func (_bgcgb *pdfFontSimple )baseFields ()*fontCommon {return &_bgcgb .fontCommon };
|
||
|
||
// 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 ;_cefd _ce .ParserMetadata ;};var ErrColorOutOfRange =_ge .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");func (_egbg *PdfReader )newPdfAnnotationPolygonFromDict (_gfff *_ce .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_bfg :=PdfAnnotationPolygon {};
|
||
_edcb ,_gcfg :=_egbg .newPdfAnnotationMarkupFromDict (_gfff );if _gcfg !=nil {return nil ,_gcfg ;};_bfg .PdfAnnotationMarkup =_edcb ;_bfg .Vertices =_gfff .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bfg .LE =_gfff .Get ("\u004c\u0045");_bfg .BS =_gfff .Get ("\u0042\u0053");
|
||
_bfg .IC =_gfff .Get ("\u0049\u0043");_bfg .BE =_gfff .Get ("\u0042\u0045");_bfg .IT =_gfff .Get ("\u0049\u0054");_bfg .Measure =_gfff .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bfg ,nil ;};
|
||
|
||
// GetContainingPdfObject gets the primitive used to parse the color space.
|
||
func (_egfc *PdfColorspaceICCBased )GetContainingPdfObject ()_ce .PdfObject {return _egfc ._gcgc };func (_cefcb *LTV )buildCertChain (_aaecc ,_edgdg []*_eg .Certificate )([]*_eg .Certificate ,map[string ]*_eg .Certificate ,error ){_eccea :=map[string ]*_eg .Certificate {};
|
||
for _ ,_afcdef :=range _aaecc {_eccea [_afcdef .Subject .CommonName ]=_afcdef ;};_eggb :=_aaecc ;for _ ,_dgde :=range _edgdg {_fgdcc :=_dgde .Subject .CommonName ;if _ ,_bffg :=_eccea [_fgdcc ];_bffg {continue ;};_eccea [_fgdcc ]=_dgde ;_eggb =append (_eggb ,_dgde );
|
||
};if len (_eggb )==0{return nil ,nil ,ErrSignNoCertificates ;};var _ffbgc error ;for _bgge :=_eggb [0];_bgge !=nil &&!_cefcb .CertClient .IsCA (_bgge );{_faede ,_bdec :=_eccea [_bgge .Issuer .CommonName ];if !_bdec {if _faede ,_ffbgc =_cefcb .CertClient .GetIssuer (_bgge );
|
||
_ffbgc !=nil {_ff .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",_ffbgc );
|
||
break ;};_eccea [_bgge .Issuer .CommonName ]=_faede ;_eggb =append (_eggb ,_faede );};_bgge =_faede ;};return _eggb ,_eccea ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gbecb *PdfShadingType2 )ToPdfObject ()_ce .PdfObject {_gbecb .PdfShading .ToPdfObject ();_ebddg ,_bgcaf :=_gbecb .getShadingDict ();if _bgcaf !=nil {_ff .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 _ebddg ==nil {_ff .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _gbecb .Coords !=nil {_ebddg .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_gbecb .Coords );
|
||
};if _gbecb .Domain !=nil {_ebddg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbecb .Domain );};if _gbecb .Function !=nil {if len (_gbecb .Function )==1{_ebddg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbecb .Function [0].ToPdfObject ());
|
||
}else {_ebeae :=_ce .MakeArray ();for _ ,_dbag :=range _gbecb .Function {_ebeae .Append (_dbag .ToPdfObject ());};_ebddg .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ebeae );};};if _gbecb .Extend !=nil {_ebddg .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_gbecb .Extend );
|
||
};return _gbecb ._agcdg ;};
|
||
|
||
// 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 (_bbffc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _bbffc .flattenFieldsWithOpts (allannots ,appgen ,nil );};func (_ddad *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";
|
||
};func (_cbadb *PdfReader )newPdfSignatureFromIndirect (_bcgfb *_ce .PdfIndirectObject )(*PdfSignature ,error ){_cdbgg ,_dbbggb :=_bcgfb .PdfObject .(*_ce .PdfObjectDictionary );if !_dbbggb {_ff .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 _aaffa ,_cface :=_cbadb ._aedda .GetModelFromPrimitive (_bcgfb ).(*PdfSignature );_cface {return _aaffa ,nil ;};_eadbd :=&PdfSignature {};_eadbd ._ggbg =_bcgfb ;_eadbd .Type ,_ =_ce .GetName (_cdbgg .Get ("\u0054\u0079\u0070\u0065"));
|
||
_eadbd .Filter ,_dbbggb =_ce .GetName (_cdbgg .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_dbbggb {_ff .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 ;};_eadbd .SubFilter ,_ =_ce .GetName (_cdbgg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_eadbd .Contents ,_dbbggb =_ce .GetString (_cdbgg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_dbbggb {_ff .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 _afbeac ,_bacgg :=_ce .GetArray (_cdbgg .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_bacgg {_eadbd .Reference =_ce .MakeArray ();for _ ,_ebecg :=range _afbeac .Elements (){_cbaab ,_daea :=_ce .GetDict (_ebecg );
|
||
if !_daea {_ff .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 ;
|
||
};_cgba ,_geccd :=_cbadb .newPdfSignatureReferenceFromDict (_cbaab );if _geccd !=nil {return nil ,_geccd ;};_eadbd .Reference .Append (_cgba .ToPdfObject ());};};_eadbd .Cert =_cdbgg .Get ("\u0043\u0065\u0072\u0074");_eadbd .ByteRange ,_ =_ce .GetArray (_cdbgg .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
|
||
_eadbd .Changes ,_ =_ce .GetArray (_cdbgg .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_eadbd .Name ,_ =_ce .GetString (_cdbgg .Get ("\u004e\u0061\u006d\u0065"));_eadbd .M ,_ =_ce .GetString (_cdbgg .Get ("\u004d"));_eadbd .Location ,_ =_ce .GetString (_cdbgg .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_eadbd .Reason ,_ =_ce .GetString (_cdbgg .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_eadbd .ContactInfo ,_ =_ce .GetString (_cdbgg .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_eadbd .R ,_ =_ce .GetInt (_cdbgg .Get ("\u0052"));
|
||
_eadbd .V ,_ =_ce .GetInt (_cdbgg .Get ("\u0056"));_eadbd .PropBuild ,_ =_ce .GetDict (_cdbgg .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_eadbd .PropAuthTime ,_ =_ce .GetInt (_cdbgg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_eadbd .PropAuthType ,_ =_ce .GetName (_cdbgg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_cbadb ._aedda .Register (_bcgfb ,_eadbd );return _eadbd ,nil ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_egcfb *XObjectImage )ToPdfObject ()_ce .PdfObject {_dcaed :=_egcfb ._gefdf ;_dgbb :=_dcaed .PdfObjectDictionary ;if _egcfb .Filter !=nil {_dgbb =_egcfb .Filter .MakeStreamDict ();_dcaed .PdfObjectDictionary =_dgbb ;};_dgbb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_dgbb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0049\u006d\u0061g\u0065"));_dgbb .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (*(_egcfb .Width )));_dgbb .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (*(_egcfb .Height )));
|
||
if _egcfb .BitsPerComponent !=nil {_dgbb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (*(_egcfb .BitsPerComponent )));};if _egcfb .ColorSpace !=nil {_dgbb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_egcfb .ColorSpace .ToPdfObject ());
|
||
};_dgbb .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_egcfb .Intent );_dgbb .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_egcfb .ImageMask );_dgbb .SetIfNotNil ("\u004d\u0061\u0073\u006b",_egcfb .Mask );_ccfdf :=_dgbb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
|
||
if _egcfb .Decode ==nil &&_ccfdf {_dgbb .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _egcfb .Decode !=nil {_dgbb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_egcfb .Decode );};_dgbb .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_egcfb .Interpolate );
|
||
_dgbb .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_egcfb .Alternatives );_dgbb .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_egcfb .SMask );_dgbb .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_egcfb .SMaskInData );
|
||
_dgbb .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_egcfb .Matte );_dgbb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_egcfb .Name );_dgbb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_egcfb .StructParent );_dgbb .SetIfNotNil ("\u0049\u0044",_egcfb .ID );
|
||
_dgbb .SetIfNotNil ("\u004f\u0050\u0049",_egcfb .OPI );_dgbb .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_egcfb .Metadata );_dgbb .SetIfNotNil ("\u004f\u0043",_egcfb .OC );_dgbb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_egcfb .Stream ))));
|
||
_dcaed .Stream =_egcfb .Stream ;return _dcaed ;};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ce .PdfObject ;Mac _ce .PdfObject ;Unix _ce .PdfObject ;NewWindow _ce .PdfObject ;};
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_aadea *PdfFontDescriptor )String ()string {var _dgbd []string ;if _aadea .FontName !=nil {_dgbd =append (_dgbd ,_aadea .FontName .String ());};if _aadea .FontFamily !=nil {_dgbd =append (_dgbd ,_aadea .FontFamily .String ());};if _aadea .fontFile !=nil {_dgbd =append (_dgbd ,_aadea .fontFile .String ());
|
||
};if _aadea ._cdfe !=nil {_dgbd =append (_dgbd ,_aadea ._cdfe .String ());};_dgbd =append (_dgbd ,_e .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_aadea .FontFile3 !=nil ));return _e .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_g .Join (_dgbd ,"\u002c\u0020"));
|
||
};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _ce .StreamEncoder ;FormType _ce .PdfObject ;BBox _ce .PdfObject ;Matrix _ce .PdfObject ;Resources *PdfPageResources ;Group _ce .PdfObject ;Ref _ce .PdfObject ;MetaData _ce .PdfObject ;PieceInfo _ce .PdfObject ;LastModified _ce .PdfObject ;
|
||
StructParent _ce .PdfObject ;StructParents _ce .PdfObject ;OPI _ce .PdfObject ;OC _ce .PdfObject ;Name _ce .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_efffe *_ce .PdfObjectStream ;};
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ce .PdfObject ;};func (_aae *PdfReader )newPdfActionJavaScriptFromDict (_bgfb *_ce .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_bgfb .Get ("\u004a\u0053")},nil ;
|
||
};func (_eebde *PdfWriter )checkCrossReferenceStream ()bool {_fbgac :=_eebde ._facee .Major > 1||(_eebde ._facee .Major ==1&&_eebde ._facee .Minor > 4);if _eebde ._aedga !=nil {_fbgac =*_eebde ._aedga ;};return _fbgac ;};
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_ebaag *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ce .StreamEncoder ,error ){_fbeaa ,_egcad :=_ebaag ._gadcb .(*_ce .PdfObjectStream );if !_egcad {_ff .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",_ebaag ._gadcb );
|
||
return nil ,nil ,_ce .ErrTypeError ;};_cage ,_ebceea :=_ce .DecodeStream (_fbeaa );if _ebceea !=nil {_ff .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",_ebceea );
|
||
return nil ,nil ,_ebceea ;};_ffccc ,_ebceea :=_ce .NewEncoderFromStream (_fbeaa );if _ebceea !=nil {_ff .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",_ebceea );
|
||
return nil ,nil ,_ebceea ;};return _cage ,_ffccc ,nil ;};
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _ce .PdfObject ;Flags _ce .PdfObject ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_ccgf *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ccgf .Alternate ==nil {if _ccgf .N ==1{_cbad :=NewPdfColorspaceDeviceGray ();return _cbad .ColorFromFloats (vals );}else if _ccgf .N ==3{_gadc :=NewPdfColorspaceDeviceRGB ();
|
||
return _gadc .ColorFromFloats (vals );}else if _ccgf .N ==4{_fffdf :=NewPdfColorspaceDeviceCMYK ();return _fffdf .ColorFromFloats (vals );}else {return nil ,_ge .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 _ccgf .Alternate .ColorFromFloats (vals );};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_gae :=NewPdfAction ();_gc :=&PdfActionGoToR {};_gc .PdfAction =_gae ;_gae .SetContext (_gc );return _gc ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_dbff *PdfColorCalRGB )B ()float64 {return _dbff [1]};func (_agg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_eeeb *_ce .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_dada :=PdfAnnotationPrinterMark {};_dada .MN =_eeeb .Get ("\u004d\u004e");
|
||
return &_dada ,nil ;};func _gegfc (_beefd []*_ce .PdfObjectStream )*_ce .PdfObjectArray {if len (_beefd )==0{return nil ;};_adgfe :=make ([]_ce .PdfObject ,0,len (_beefd ));for _ ,_caeaeg :=range _beefd {_adgfe =append (_adgfe ,_caeaeg );};return _ce .MakeArray (_adgfe ...);
|
||
};
|
||
|
||
// 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 (_bgbc *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _ge .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");
|
||
};_gbce :=field .V ;if _gbce ==nil {return _ge .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");};_bgfbdd :=pageNum -1;
|
||
if _bgfbdd < 0||_bgfbdd > len (_bgbc ._ggdc )-1{return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_fcca :=_bgbc .Reader .PageList [_bgfbdd ];field .P =_fcca .ToPdfObject ();
|
||
if field .T ==nil ||field .T .String ()==""{field .T =_ce .MakeString (_e .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_fcca .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _bgbc ._fed ==_bgbc ._fcda .AcroForm {_bgbc ._fed =_bgbc .Reader .AcroForm ;
|
||
};_ccad :=_bgbc ._fed ;if _ccad ==nil {_ccad =NewPdfAcroForm ();};_ccad .SigFlags =_ce .MakeInteger (3);if _ccad .NeedAppearances !=nil {_ccad .NeedAppearances =nil ;};_bgad :=append (_ccad .AllFields (),field .PdfField );_ccad .Fields =&_bgad ;_bgbc .ReplaceAcroForm (_ccad );
|
||
_bgbc .UpdatePage (_fcca );_bgbc ._ggdc [_bgfbdd ]=_fcca ;if _ ,_bafc :=field .V .GetDocMDPPermission ();_bafc {_bgbc ._acec =NewPermissions (field .V );};return nil ;};func (_faggbf *PdfReader )loadDSS ()(*DSS ,error ){if _faggbf ._afda .GetCrypter ()!=nil &&!_faggbf ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_efcgb :=_faggbf ._cfcdg .Get ("\u0044\u0053\u0053");if _efcgb ==nil {return nil ,nil ;};_cafgd ,_ :=_ce .GetIndirect (_efcgb );_efcgb =_ce .TraceToDirectObject (_efcgb );switch _eadcdd :=_efcgb .(type ){case *_ce .PdfObjectNull :return nil ,nil ;case *_ce .PdfObjectDictionary :return _caef (_cafgd ,_eadcdd );
|
||
};return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_efcgb );};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_dgaag *PdfReader )GetTrailer ()(*_ce .PdfObjectDictionary ,error ){_faegb :=_dgaag ._afda .GetTrailer ();if _faegb ==nil {return nil ,_ge .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _faegb ,nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgac *PdfAnnotationWatermark )ToPdfObject ()_ce .PdfObject {_fgac .PdfAnnotation .ToPdfObject ();_cdee :=_fgac ._dec ;_fade :=_cdee .PdfObject .(*_ce .PdfObjectDictionary );_fade .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_fade .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_fgac .FixedPrint );return _cdee ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_edcd *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_agc *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_ggbf ,_cbeb :=color .(*PdfColorCalGray );if !_cbeb {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_ggbf .Val ();X :=_agc .WhitePoint [0]*_egg .Pow (ANorm ,_agc .Gamma );Y :=_agc .WhitePoint [1]*_egg .Pow (ANorm ,_agc .Gamma );Z :=_agc .WhitePoint [2]*_egg .Pow (ANorm ,_agc .Gamma );
|
||
_bdef :=3.240479*X +-1.537150*Y +-0.498535*Z ;_eddf :=-0.969256*X +1.875992*Y +0.041556*Z ;_ebg :=0.055648*X +-0.204043*Y +1.057311*Z ;_bdef =_egg .Min (_egg .Max (_bdef ,0),1.0);_eddf =_egg .Min (_egg .Max (_eddf ,0),1.0);_ebg =_egg .Min (_egg .Max (_ebg ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_bdef ,_eddf ,_ebg ),nil ;};func (_bfgb *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};func (_efae *fontFile )loadFromSegments (_bbegf ,_bgaaf []byte )error {_ff .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_bbegf ),len (_bgaaf ));
|
||
_fcbf :=_efae .parseASCIIPart (_bbegf );if _fcbf !=nil {return _fcbf ;};_ff .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_efae );if len (_bgaaf )==0{return nil ;};_ff .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_efae );
|
||
return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egbe *PdfAnnotationTrapNet )ToPdfObject ()_ce .PdfObject {_egbe .PdfAnnotation .ToPdfObject ();_dfdg :=_egbe ._dec ;_ggac :=_dfdg .PdfObject .(*_ce .PdfObjectDictionary );_ggac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _dfdg ;};
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_fgdb *PdfFontDescriptor )ToPdfObject ()_ce .PdfObject {_agdd :=_ce .MakeDict ();if _fgdb ._dbbbgg ==nil {_fgdb ._dbbbgg =&_ce .PdfIndirectObject {};};_fgdb ._dbbbgg .PdfObject =_agdd ;_agdd .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _fgdb .FontName !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_fgdb .FontName );};if _fgdb .FontFamily !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_fgdb .FontFamily );};if _fgdb .FontStretch !=nil {_agdd .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_fgdb .FontStretch );
|
||
};if _fgdb .FontWeight !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_fgdb .FontWeight );};if _fgdb .Flags !=nil {_agdd .Set ("\u0046\u006c\u0061g\u0073",_fgdb .Flags );};if _fgdb .FontBBox !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_fgdb .FontBBox );
|
||
};if _fgdb .ItalicAngle !=nil {_agdd .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_fgdb .ItalicAngle );};if _fgdb .Ascent !=nil {_agdd .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_fgdb .Ascent );};if _fgdb .Descent !=nil {_agdd .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_fgdb .Descent );
|
||
};if _fgdb .Leading !=nil {_agdd .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_fgdb .Leading );};if _fgdb .CapHeight !=nil {_agdd .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_fgdb .CapHeight );};if _fgdb .XHeight !=nil {_agdd .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_fgdb .XHeight );
|
||
};if _fgdb .StemV !=nil {_agdd .Set ("\u0053\u0074\u0065m\u0056",_fgdb .StemV );};if _fgdb .StemH !=nil {_agdd .Set ("\u0053\u0074\u0065m\u0048",_fgdb .StemH );};if _fgdb .AvgWidth !=nil {_agdd .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_fgdb .AvgWidth );
|
||
};if _fgdb .MaxWidth !=nil {_agdd .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_fgdb .MaxWidth );};if _fgdb .MissingWidth !=nil {_agdd .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_fgdb .MissingWidth );};if _fgdb .FontFile !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_fgdb .FontFile );
|
||
};if _fgdb .FontFile2 !=nil {_agdd .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_fgdb .FontFile2 );};if _fgdb .FontFile3 !=nil {_agdd .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_fgdb .FontFile3 );};if _fgdb .CharSet !=nil {_agdd .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_fgdb .CharSet );
|
||
};if _fgdb .Style !=nil {_agdd .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_fgdb .FontName );};if _fgdb .Lang !=nil {_agdd .Set ("\u004c\u0061\u006e\u0067",_fgdb .Lang );};if _fgdb .FD !=nil {_agdd .Set ("\u0046\u0044",_fgdb .FD );};if _fgdb .CIDSet !=nil {_agdd .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_fgdb .CIDSet );
|
||
};return _fgdb ._dbbbgg ;};func (_effb *PdfReader )resolveReference (_ebdc *_ce .PdfObjectReference )(_ce .PdfObject ,bool ,error ){_geafd ,_gbfaa :=_effb ._afda .ObjCache [int (_ebdc .ObjectNumber )];if !_gbfaa {_ff .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_ebdc );
|
||
_abage ,_abddf :=_effb ._afda .LookupByReference (*_ebdc );if _abddf !=nil {return nil ,false ,_abddf ;};_effb ._afda .ObjCache [int (_ebdc .ObjectNumber )]=_abage ;return _abage ,false ,nil ;};return _geafd ,true ,nil ;};
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_cecc *PdfPage )GetAllContentStreams ()(string ,error ){_efbga ,_gafef :=_cecc .GetContentStreams ();if _gafef !=nil {return "",_gafef ;};return _g .Join (_efbga ,"\u0020"),nil ;};
|
||
|
||
// PdfColorspace interface defines the common methods of a PDF colorspace.
|
||
// The colorspace defines the data storage format for each color and color representation.
|
||
//
|
||
// Device based colorspace, specified by name
|
||
// - /DeviceGray
|
||
// - /DeviceRGB
|
||
// - /DeviceCMYK
|
||
//
|
||
// CIE based colorspace specified by [name, dictionary]
|
||
// - [/CalGray dict]
|
||
// - [/CalRGB dict]
|
||
// - [/Lab dict]
|
||
// - [/ICCBased dict]
|
||
//
|
||
// Special colorspaces
|
||
// - /Pattern
|
||
// - /Indexed
|
||
// - /Separation
|
||
// - /DeviceN
|
||
//
|
||
// Work is in progress to support all colorspaces. At the moment ICCBased color spaces fall back to the alternate
|
||
// colorspace which works OK in most cases. For full color support, will need fully featured ICC support.
|
||
type PdfColorspace interface{
|
||
|
||
// String returns the PdfColorspace's name.
|
||
String ()string ;
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
ImageToRGB (Image )(Image ,error );
|
||
|
||
// ColorToRGB converts a single color in a given PdfColorspace to an RGB color.
|
||
ColorToRGB (_edea PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_ce .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_ddacd []_ce .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_fgaca []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};func (_ecda *pdfFontType0 )bytesToCharcodes (_agedf []byte )([]_dc .CharCode ,bool ){if _ecda ._ggecbf ==nil {return nil ,false ;};_cbgbb ,_gcfgb :=_ecda ._ggecbf .BytesToCharcodes (_agedf );if !_gcfgb {return nil ,false ;};_agab :=make ([]_dc .CharCode ,len (_cbgbb ));
|
||
for _fefg ,_cdbga :=range _cbgbb {_agab [_fefg ]=_dc .CharCode (_cdbga );};return _agab ,true ;};func (_aeccd *PdfWriter )writeOutlines ()error {if _aeccd ._cfcac ==nil {return nil ;};_ff .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_aeccd ._cfcac );
|
||
_gbgca :=_aeccd ._cfcac .ToPdfObject ();_ff .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gbgca ,_gbgca ,_gbgca );_aeccd ._bbef .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gbgca );
|
||
_edecc :=_aeccd .addObjects (_gbgca );if _edecc !=nil {return _edecc ;};return nil ;};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_fdaa *PdfColorLab )A ()float64 {return _fdaa [1]};
|
||
|
||
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
|
||
func NewPdfTransformParamsDocMDP (permission _aef .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ce .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ce .MakeInteger (int64 (permission )),V :_ce .MakeName ("\u0031\u002e\u0032")};
|
||
};
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_afcf *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_bdcdg :=_gb .NewReader (img .getBase ());_babd :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_gebd :=_gb .NewWriter (_babd );
|
||
_fafa :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_beaf :=make ([]uint32 ,3);var (_gfcg uint32 ;ANorm ,X ,Y ,Z ,_ebbc ,_fefd ,_gfce float64 ;_dccb error ;);for {_gfcg ,_dccb =_bdcdg .ReadSample ();if _dccb ==_gd .EOF {break ;}else if _dccb !=nil {return img ,_dccb ;
|
||
};ANorm =float64 (_gfcg )/_fafa ;X =_afcf .WhitePoint [0]*_egg .Pow (ANorm ,_afcf .Gamma );Y =_afcf .WhitePoint [1]*_egg .Pow (ANorm ,_afcf .Gamma );Z =_afcf .WhitePoint [2]*_egg .Pow (ANorm ,_afcf .Gamma );_ebbc =3.240479*X +-1.537150*Y +-0.498535*Z ;
|
||
_fefd =-0.969256*X +1.875992*Y +0.041556*Z ;_gfce =0.055648*X +-0.204043*Y +1.057311*Z ;_ebbc =_egg .Min (_egg .Max (_ebbc ,0),1.0);_fefd =_egg .Min (_egg .Max (_fefd ,0),1.0);_gfce =_egg .Min (_egg .Max (_gfce ,0),1.0);_beaf [0]=uint32 (_ebbc *_fafa );
|
||
_beaf [1]=uint32 (_fefd *_fafa );_beaf [2]=uint32 (_gfce *_fafa );if _dccb =_gebd .WriteSamples (_beaf );_dccb !=nil {return img ,_dccb ;};};return _ffba (&_babd ),nil ;};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_bdcf *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bdcf .Alternate ==nil {_ff .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 _bdcf .N ==1{_ff .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");
|
||
_eebg :=NewPdfColorspaceDeviceGray ();return _eebg .ColorToRGB (color );}else if _bdcf .N ==3{_ff .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 _bdcf .N ==4{_ff .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");
|
||
_dggd :=NewPdfColorspaceDeviceCMYK ();return _dggd .ColorToRGB (color );}else {return nil ,_ge .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");
|
||
};};_ff .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",_bdcf );
|
||
return _bdcf .Alternate .ColorToRGB (color );};
|
||
|
||
// 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 {_bbbga ,_daeb :=NewStandard14Font (basefont );if _daeb !=nil {panic (_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
|
||
};return _bbbga ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gbff *PdfAnnotationPopup )ToPdfObject ()_ce .PdfObject {_gbff .PdfAnnotation .ToPdfObject ();_cgca :=_gbff ._dec ;_fdge :=_cgca .PdfObject .(*_ce .PdfObjectDictionary );_fdge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_fdge .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gbff .Parent );_fdge .SetIfNotNil ("\u004f\u0070\u0065\u006e",_gbff .Open );return _cgca ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_egbfd pdfFontType0 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){if _egbfd .DescendantFont ==nil {_ff .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",_egbfd );
|
||
return _ee .CharMetrics {},false ;};return _egbfd .DescendantFont .GetRuneMetrics (r );};
|
||
|
||
// 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 ;
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_gdad *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };func (_eadcb *PdfReader )newPdfAnnotationRichMediaFromDict (_becc *_ce .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_cbf :=&PdfAnnotationRichMedia {};
|
||
_cbf .RichMediaSettings =_becc .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_cbf .RichMediaContent =_becc .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
|
||
return _cbf ,nil ;};func _bdfdd (_ffdb *_ce .PdfObjectDictionary )bool {for _ ,_gcacc :=range _ffdb .Keys (){if _ ,_dcbdb :=_abeaae [_gcacc .String ()];_dcbdb {return true ;};};return false ;};
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};func (_bcff *PdfReader )newPdfActionHideFromDict (_cgaf *_ce .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_cgaf .Get ("\u0054"),H :_cgaf .Get ("\u0048")},nil ;};func (_cfeef *PdfWriter )setWriter (_gefd _gd .Writer ){_cfeef ._cgdfab =_cfeef ._bffgf ;
|
||
_cfeef ._cafdf =_dg .NewWriter (_gefd );};
|
||
|
||
// 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 _ce .PdfObject ;FontFamily _ce .PdfObject ;FontStretch _ce .PdfObject ;FontWeight _ce .PdfObject ;Flags _ce .PdfObject ;FontBBox _ce .PdfObject ;ItalicAngle _ce .PdfObject ;Ascent _ce .PdfObject ;Descent _ce .PdfObject ;
|
||
Leading _ce .PdfObject ;CapHeight _ce .PdfObject ;XHeight _ce .PdfObject ;StemV _ce .PdfObject ;StemH _ce .PdfObject ;AvgWidth _ce .PdfObject ;MaxWidth _ce .PdfObject ;MissingWidth _ce .PdfObject ;FontFile _ce .PdfObject ;FontFile2 _ce .PdfObject ;FontFile3 _ce .PdfObject ;
|
||
CharSet _ce .PdfObject ;_cgfb int ;_abcb float64 ;*fontFile ;_cdfe *_ee .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _ce .PdfObject ;Lang _ce .PdfObject ;FD _ce .PdfObject ;CIDSet _ce .PdfObject ;_dbbbgg *_ce .PdfIndirectObject ;};
|
||
|
||
// 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 _gd .ReadSeeker )(*CompliancePdfReader ,error ){const _bgcdd ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_dddg ,_eddg :=_aaegd (rs ,&ReaderOpts {ComplianceMode :true },false ,_bgcdd );
|
||
if _eddg !=nil {return nil ,_eddg ;};return &CompliancePdfReader {PdfReader :_dddg },nil ;};func (_bcae *PdfReader )newPdfAnnotationFreeTextFromDict (_ggbc *_ce .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_bbcc :=PdfAnnotationFreeText {};_fad ,_dcc :=_bcae .newPdfAnnotationMarkupFromDict (_ggbc );
|
||
if _dcc !=nil {return nil ,_dcc ;};_bbcc .PdfAnnotationMarkup =_fad ;_bbcc .DA =_ggbc .Get ("\u0044\u0041");_bbcc .Q =_ggbc .Get ("\u0051");_bbcc .RC =_ggbc .Get ("\u0052\u0043");_bbcc .DS =_ggbc .Get ("\u0044\u0053");_bbcc .CL =_ggbc .Get ("\u0043\u004c");
|
||
_bbcc .IT =_ggbc .Get ("\u0049\u0054");_bbcc .BE =_ggbc .Get ("\u0042\u0045");_bbcc .RD =_ggbc .Get ("\u0052\u0044");_bbcc .BS =_ggbc .Get ("\u0042\u0053");_bbcc .LE =_ggbc .Get ("\u004c\u0045");return &_bbcc ,nil ;};func (_dcfbg *PdfFunctionType0 )processSamples ()error {_acae :=_gb .ResampleBytes (_dcfbg ._becgb ,_dcfbg .BitsPerSample );
|
||
_dcfbg ._dfcag =_acae ;return nil ;};
|
||
|
||
// GetRevisionNumber returns the version of the current Pdf document
|
||
func (_dcgcg *PdfReader )GetRevisionNumber ()int {return _dcgcg ._afda .GetRevisionNumber ()};func (_bbdbf *PdfSignature )extractChainFromPKCS7 ()([]*_eg .Certificate ,error ){_dgced ,_gdccc :=_ec .Parse (_bbdbf .Contents .Bytes ());if _gdccc !=nil {return nil ,_gdccc ;
|
||
};return _dgced .Certificates ,nil ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ce .PdfObject ;T3DV _ce .PdfObject ;T3DA _ce .PdfObject ;T3DI _ce .PdfObject ;T3DB _ce .PdfObject ;};
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_gfgf :=appender .Reader .DSS ;if _gfgf ==nil {_gfgf =NewDSS ();};if _dafe :=_gfgf .GenerateHashMaps ();_dafe !=nil {return nil ,_dafe ;};return <V {CertClient :_bcd .NewCertClient (),OCSPClient :_bcd .NewOCSPClient (),CRLClient :_bcd .NewCRLClient (),SkipExisting :true ,_fdfad :appender ,_dcacf :_gfgf },nil ;
|
||
};func (_cafaa *XObjectImage )getParamsDict ()*_ce .PdfObjectDictionary {_bdde :=_ce .MakeDict ();_bdde .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (*_cafaa .Width ));_bdde .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (*_cafaa .Height ));
|
||
_bdde .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_cafaa .ColorSpace .GetNumComponents ())));_bdde .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (*_cafaa .BitsPerComponent ));
|
||
return _bdde ;};
|
||
|
||
// 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 *_ce .PdfObjectStream )(*XObjectImage ,error ){_gaebe :=&XObjectImage {};_gaebe ._gefdf =stream ;_gcabc :=*(stream .PdfObjectDictionary );_cgfcd ,_fbdb :=_ce .NewEncoderFromStream (stream );if _fbdb !=nil {return nil ,_fbdb ;
|
||
};_gaebe .Filter =_cgfcd ;if _cggc :=_ce .TraceToDirectObject (_gcabc .Get ("\u0057\u0069\u0064t\u0068"));_cggc !=nil {_ddbe ,_egdg :=_cggc .(*_ce .PdfObjectInteger );if !_egdg {return nil ,_ge .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");
|
||
};_acaeg :=int64 (*_ddbe );_gaebe .Width =&_acaeg ;}else {return nil ,_ge .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _gbbbb :=_ce .TraceToDirectObject (_gcabc .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_gbbbb !=nil {_fabee ,_dagbb :=_gbbbb .(*_ce .PdfObjectInteger );if !_dagbb {return nil ,_ge .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_ebddeb :=int64 (*_fabee );
|
||
_gaebe .Height =&_ebddeb ;}else {return nil ,_ge .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ddccc :=_ce .TraceToDirectObject (_gcabc .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_ddccc !=nil {_cabef ,_edfff :=NewPdfColorspaceFromPdfObject (_ddccc );if _edfff !=nil {return nil ,_edfff ;};_gaebe .ColorSpace =_cabef ;}else {_ff .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");
|
||
_gaebe .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dfgdc :=_ce .TraceToDirectObject (_gcabc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dfgdc !=nil {_adecd ,_abagea :=_dfgdc .(*_ce .PdfObjectInteger );
|
||
if !_abagea {return nil ,_ge .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cgdda :=int64 (*_adecd );_gaebe .BitsPerComponent =&_cgdda ;};_gaebe .Intent =_gcabc .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_gaebe .ImageMask =_gcabc .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_gaebe .Mask =_gcabc .Get ("\u004d\u0061\u0073\u006b");_gaebe .Decode =_gcabc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_gaebe .Interpolate =_gcabc .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_gaebe .Alternatives =_gcabc .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_gaebe .SMask =_gcabc .Get ("\u0053\u004d\u0061s\u006b");_gaebe .SMaskInData =_gcabc .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_gaebe .Matte =_gcabc .Get ("\u004d\u0061\u0074t\u0065");_gaebe .Name =_gcabc .Get ("\u004e\u0061\u006d\u0065");_gaebe .StructParent =_gcabc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_gaebe .ID =_gcabc .Get ("\u0049\u0044");
|
||
_gaebe .OPI =_gcabc .Get ("\u004f\u0050\u0049");_gaebe .Metadata =_gcabc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gaebe .OC =_gcabc .Get ("\u004f\u0043");_gaebe .Stream =stream .Stream ;return _gaebe ,nil ;};
|
||
|
||
// 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 *_ce .PdfObjectArray ;ExtGState _ce .PdfObject ;};
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_aedbf *_ce .PdfIndirectObject ;};func (_dgec *PdfReader )newPdfAnnotationLineFromDict (_ebea *_ce .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_fbbc :=PdfAnnotationLine {};
|
||
_fbbf ,_ccfb :=_dgec .newPdfAnnotationMarkupFromDict (_ebea );if _ccfb !=nil {return nil ,_ccfb ;};_fbbc .PdfAnnotationMarkup =_fbbf ;_fbbc .L =_ebea .Get ("\u004c");_fbbc .BS =_ebea .Get ("\u0042\u0053");_fbbc .LE =_ebea .Get ("\u004c\u0045");_fbbc .IC =_ebea .Get ("\u0049\u0043");
|
||
_fbbc .LL =_ebea .Get ("\u004c\u004c");_fbbc .LLE =_ebea .Get ("\u004c\u004c\u0045");_fbbc .Cap =_ebea .Get ("\u0043\u0061\u0070");_fbbc .IT =_ebea .Get ("\u0049\u0054");_fbbc .LLO =_ebea .Get ("\u004c\u004c\u004f");_fbbc .CP =_ebea .Get ("\u0043\u0050");
|
||
_fbbc .Measure =_ebea .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_fbbc .CO =_ebea .Get ("\u0043\u004f");return &_fbbc ,nil ;};
|
||
|
||
// SetNamedDestinations sets the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_cdaab *PdfWriter )SetNamedDestinations (dests _ce .PdfObject )error {if dests ==nil {return nil ;};_ff .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
|
||
_cdaab ._bbef .Set ("\u0044\u0065\u0073t\u0073",dests );return _cdaab .addObjects (dests );};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_gcfaga *pdfCIDFontType2 )ToPdfObject ()_ce .PdfObject {if _gcfaga ._edbb ==nil {_gcfaga ._edbb =&_ce .PdfIndirectObject {};};_eece :=_gcfaga .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
|
||
_gcfaga ._edbb .PdfObject =_eece ;if _gcfaga .CIDSystemInfo !=nil {_eece .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_gcfaga .CIDSystemInfo );};if _gcfaga .DW !=nil {_eece .Set ("\u0044\u0057",_gcfaga .DW );};
|
||
if _gcfaga .DW2 !=nil {_eece .Set ("\u0044\u0057\u0032",_gcfaga .DW2 );};if _gcfaga .W !=nil {_eece .Set ("\u0057",_gcfaga .W );};if _gcfaga .W2 !=nil {_eece .Set ("\u0057\u0032",_gcfaga .W2 );};if _gcfaga .CIDToGIDMap !=nil {_eece .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_gcfaga .CIDToGIDMap );
|
||
};return _gcfaga ._edbb ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_gbceb *PdfColorspaceLab )GetNumComponents ()int {return 3};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gddd *PdfAnnotationSquare )ToPdfObject ()_ce .PdfObject {_gddd .PdfAnnotation .ToPdfObject ();_ebfg :=_gddd ._dec ;_bbg :=_ebfg .PdfObject .(*_ce .PdfObjectDictionary );if _gddd .PdfAnnotationMarkup !=nil {_gddd .PdfAnnotationMarkup .appendToPdfDictionary (_bbg );
|
||
};_bbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bbg .SetIfNotNil ("\u0042\u0053",_gddd .BS );_bbg .SetIfNotNil ("\u0049\u0043",_gddd .IC );_bbg .SetIfNotNil ("\u0042\u0045",_gddd .BE );
|
||
_bbg .SetIfNotNil ("\u0052\u0044",_gddd .RD );return _ebfg ;};
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_aece :=NewPdfAnnotation ();_cdced :=&PdfAnnotationRedact {};_cdced .PdfAnnotation =_aece ;_cdced .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aece .SetContext (_cdced );return _cdced ;};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_ece :=NewPdfAnnotation ();_ccca :=&PdfAnnotationRichMedia {};_ccca .PdfAnnotation =_ece ;_ece .SetContext (_ccca );return _ccca ;};func (_gdeba fontCommon )asPdfObjectDictionary (_cfgafa string )*_ce .PdfObjectDictionary {if _cfgafa !=""&&_gdeba ._baafb !=""&&_cfgafa !=_gdeba ._baafb {_ff .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",_cfgafa ,_gdeba );
|
||
}else if _cfgafa ==""&&_gdeba ._baafb ==""{_ff .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",_gdeba );
|
||
}else if _gdeba ._baafb ==""{_gdeba ._baafb =_cfgafa ;};_fbegb :=_ce .MakeDict ();_fbegb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u006e\u0074"));_fbegb .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ce .MakeName (_gdeba ._egacd ));
|
||
_fbegb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName (_gdeba ._baafb ));if _gdeba ._daebd !=nil {_fbegb .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_gdeba ._daebd .ToPdfObject ());};if _gdeba ._bcef !=nil {_fbegb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gdeba ._bcef );
|
||
}else if _gdeba ._dgfcg !=nil {_eegee ,_cdaa :=_gdeba ._dgfcg .Stream ();if _cdaa !=nil {_ff .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",_cdaa );
|
||
}else {_fbegb .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_eegee );};};return _fbegb ;};
|
||
|
||
// 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 (_fddd *PdfFont )CharcodesToUnicodeWithStats (charcodes []_dc .CharCode )(_begfa []rune ,_gdabd ,_fbfc int ){_eafcf ,_gdabd ,_fbfc :=_fddd .CharcodesToStrings (charcodes );return []rune (_g .Join (_eafcf ,"")),_gdabd ,_fbfc ;};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_gbad fontCommon )String ()string {return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_gbad .coreString ());};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_eeffd :=&PdfOutline {_aedbf :_ce .MakeIndirectObject (_ce .MakeDict ())};_eeffd ._edda =_eeffd ;return _eeffd ;};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_cgcgb *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ff .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 ,_ge .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");};func _agdcf (_edcef *_ce .PdfObjectDictionary ,_ebbbb *fontCommon )(*pdfCIDFontType0 ,error ){if _ebbbb ._baafb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ff .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",_ebbbb );
|
||
return nil ,_ce .ErrRangeError ;};_efge :=_gacga (_ebbbb );_abae ,_bebgg :=_ce .GetDict (_edcef .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_bebgg {_ff .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",_ebbbb );
|
||
return nil ,ErrRequiredAttributeMissing ;};_efge .CIDSystemInfo =_abae ;_efge .DW =_edcef .Get ("\u0044\u0057");_efge .W =_edcef .Get ("\u0057");_efge .DW2 =_edcef .Get ("\u0044\u0057\u0032");_efge .W2 =_edcef .Get ("\u0057\u0032");_efge ._fcae =1000.0;
|
||
if _gegfd ,_ceeg :=_ce .GetNumberAsFloat (_efge .DW );_ceeg ==nil {_efge ._fcae =_gegfd ;};_aaaae ,_ddaba :=_baef (_efge .W );if _ddaba !=nil {return nil ,_ddaba ;};if _aaaae ==nil {_aaaae =map[_dc .CharCode ]float64 {};};_efge ._acbf =_aaaae ;return _efge ,nil ;
|
||
};func (_eadf *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _eadf ._daebd };
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ce .PdfObject ;RichMediaContent _ce .PdfObject ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_bgbd *PdfColorDeviceGray )GetNumComponents ()int {return 1};type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};func (_fgcb *PdfReader )newPdfAnnotationPopupFromDict (_bdee *_ce .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_bbcee :=PdfAnnotationPopup {};_bbcee .Parent =_bdee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_bbcee .Open =_bdee .Get ("\u004f\u0070\u0065\u006e");
|
||
return &_bbcee ,nil ;};
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_cbee *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _cbee .Alternate ==nil {_ff .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 _cbee .N ==1{_ff .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");
|
||
_aeecd :=NewPdfColorspaceDeviceGray ();return _aeecd .ImageToRGB (img );}else if _cbee .N ==3{_ff .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 _cbee .N ==4{_ff .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");
|
||
_eecd :=NewPdfColorspaceDeviceCMYK ();return _eecd .ImageToRGB (img );}else {return img ,_ge .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");
|
||
};};_ff .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",_cbee );
|
||
_gabg ,_bbbd :=_cbee .Alternate .ImageToRGB (img );_ff .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ff .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_gabg );
|
||
return _gabg ,_bbbd ;};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };func _adc (_gdbeg _ce .PdfObject )(*PdfColorspaceCalRGB ,error ){_gabc :=NewPdfColorspaceCalRGB ();if _cbdd ,_egcda :=_gdbeg .(*_ce .PdfIndirectObject );_egcda {_gabc ._agbda =_cbdd ;};_gdbeg =_ce .TraceToDirectObject (_gdbeg );
|
||
_fdac ,_ebbe :=_gdbeg .(*_ce .PdfObjectArray );if !_ebbe {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fdac .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_gdbeg =_ce .TraceToDirectObject (_fdac .Get (0));_acbdc ,_ebbe :=_gdbeg .(*_ce .PdfObjectName );if !_ebbe {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
|
||
};if *_acbdc !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_e .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_gdbeg =_ce .TraceToDirectObject (_fdac .Get (1));
|
||
_fdga ,_ebbe :=_gdbeg .(*_ce .PdfObjectDictionary );if !_ebbe {return nil ,_e .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};
|
||
_gdbeg =_fdga .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gdbeg =_ce .TraceToDirectObject (_gdbeg );_cadd ,_ebbe :=_gdbeg .(*_ce .PdfObjectArray );if !_ebbe {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
|
||
};if _cadd .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_efac ,_cccad :=_cadd .GetAsFloat64Slice ();
|
||
if _cccad !=nil {return nil ,_cccad ;};_gabc .WhitePoint =_efac ;_gdbeg =_fdga .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gdbeg !=nil {_gdbeg =_ce .TraceToDirectObject (_gdbeg );_fefad ,_fbafa :=_gdbeg .(*_ce .PdfObjectArray );
|
||
if !_fbafa {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _fefad .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_aege ,_ccac :=_fefad .GetAsFloat64Slice ();if _ccac !=nil {return nil ,_ccac ;};_gabc .BlackPoint =_aege ;};_gdbeg =_fdga .Get ("\u0047\u0061\u006dm\u0061");if _gdbeg !=nil {_gdbeg =_ce .TraceToDirectObject (_gdbeg );_fcef ,_cfgef :=_gdbeg .(*_ce .PdfObjectArray );
|
||
if !_cfgef {return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _fcef .Len ()!=3{return nil ,_e .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
|
||
};_cdef ,_dfed :=_fcef .GetAsFloat64Slice ();if _dfed !=nil {return nil ,_dfed ;};_gabc .Gamma =_cdef ;};_gdbeg =_fdga .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _gdbeg !=nil {_gdbeg =_ce .TraceToDirectObject (_gdbeg );_baa ,_gdfg :=_gdbeg .(*_ce .PdfObjectArray );
|
||
if !_gdfg {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _baa .Len ()!=9{_ff .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_baa .String ());
|
||
return nil ,_e .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_ecaaf ,_dfbe :=_baa .GetAsFloat64Slice ();if _dfbe !=nil {return nil ,_dfbe ;
|
||
};_gabc .Matrix =_ecaaf ;};return _gabc ,nil ;};
|
||
|
||
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
|
||
type PdfOutputIntentType int ;func (_dbdc *PdfReader )traverseObjectData (_acggg _ce .PdfObject )error {return _ce .ResolveReferencesDeep (_acggg ,_dbdc ._efdafe );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_baf *PdfAnnotationStamp )ToPdfObject ()_ce .PdfObject {_baf .PdfAnnotation .ToPdfObject ();_dea :=_baf ._dec ;_cfc :=_dea .PdfObject .(*_ce .PdfObjectDictionary );_baf .PdfAnnotationMarkup .appendToPdfDictionary (_cfc );_cfc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_cfc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_baf .Name );return _dea ;};func _gabd (_gbca *_ce .PdfObjectDictionary )(*PdfFieldText ,error ){_gdcf :=&PdfFieldText {};_gdcf .DA ,_ =_ce .GetString (_gbca .Get ("\u0044\u0041"));_gdcf .Q ,_ =_ce .GetInt (_gbca .Get ("\u0051"));
|
||
_gdcf .DS ,_ =_ce .GetString (_gbca .Get ("\u0044\u0053"));_gdcf .RV =_gbca .Get ("\u0052\u0056");_gdcf .MaxLen ,_ =_ce .GetInt (_gbca .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _gdcf ,nil ;};
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_begg *XObjectImage )SetFilter (encoder _ce .StreamEncoder )error {_cgcgadd :=_begg .Stream ;_ebfed ,_cbbaf :=_begg .Filter .DecodeBytes (_cgcgadd );if _cbbaf !=nil {return _cbbaf ;};_begg .Filter =encoder ;encoder .UpdateParams (_begg .getParamsDict ());
|
||
_cgcgadd ,_cbbaf =encoder .EncodeBytes (_ebfed );if _cbbaf !=nil {return _cbbaf ;};_begg .Stream =_cgcgadd ;return nil ;};
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_gbf PdfModel ;Type _ce .PdfObject ;S _ce .PdfObject ;Next _ce .PdfObject ;_bcc *_ce .PdfIndirectObject ;};
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_aadeb :_ce .MakeIndirectObject (_ce .MakeDict ())}};
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_daefg *PdfPage )GetContainingPdfObject ()_ce .PdfObject {return _daefg ._acbbb };
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;NewWindow _ce .PdfObject ;};
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_bgffc *PdfPage )AddFont (name _ce .PdfObjectName ,font _ce .PdfObject )error {if _bgffc .Resources ==nil {_bgffc .Resources =NewPdfPageResources ();};if _bgffc .Resources .Font ==nil {_bgffc .Resources .Font =_ce .MakeDict ();};_bfda ,_cbbgd :=_ce .TraceToDirectObject (_bgffc .Resources .Font ).(*_ce .PdfObjectDictionary );
|
||
if !_cbbgd {_ff .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",_ce .TraceToDirectObject (_bgffc .Resources .Font ));
|
||
return _ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bfda .Set (name ,font );return nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gfcef *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_aefcb :=_egg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_aefcb *_gfcef .A ()),uint32 (_aefcb *_gfcef .B ()),uint32 (_aefcb *_gfcef .C ())};};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_cfccce *OutlineItem )ToPdfObject ()_ce .PdfObject {_geac ,_ :=_cfccce .ToPdfOutlineItem ();return _geac .ToPdfObject ();};
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_fcfc *PdfField )ToPdfObject ()_ce .PdfObject {_aegc :=_fcfc ._aadeb ;_aeffg :=_aegc .PdfObject .(*_ce .PdfObjectDictionary );_effdf :=_ce .MakeArray ();for _ ,_badbe :=range _fcfc .Kids {_effdf .Append (_badbe .ToPdfObject ());};for _ ,_adcb :=range _fcfc .Annotations {if _adcb ._dec !=_fcfc ._aadeb {_effdf .Append (_adcb .GetContext ().ToPdfObject ());
|
||
};};if _fcfc .Parent !=nil {_aeffg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fcfc .Parent .GetContainingPdfObject ());};if _effdf .Len ()> 0{_aeffg .Set ("\u004b\u0069\u0064\u0073",_effdf );};_aeffg .SetIfNotNil ("\u0046\u0054",_fcfc .FT );
|
||
_aeffg .SetIfNotNil ("\u0054",_fcfc .T );_aeffg .SetIfNotNil ("\u0054\u0055",_fcfc .TU );_aeffg .SetIfNotNil ("\u0054\u004d",_fcfc .TM );_aeffg .SetIfNotNil ("\u0046\u0066",_fcfc .Ff );_aeffg .SetIfNotNil ("\u0056",_fcfc .V );_aeffg .SetIfNotNil ("\u0044\u0056",_fcfc .DV );
|
||
_aeffg .SetIfNotNil ("\u0041\u0041",_fcfc .AA );if _fcfc .VariableText !=nil {_aeffg .SetIfNotNil ("\u0044\u0041",_fcfc .VariableText .DA );_aeffg .SetIfNotNil ("\u0051",_fcfc .VariableText .Q );_aeffg .SetIfNotNil ("\u0044\u0053",_fcfc .VariableText .DS );
|
||
_aeffg .SetIfNotNil ("\u0052\u0056",_fcfc .VariableText .RV );};return _aegc ;};
|
||
|
||
// 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 (_gba *PdfAnnotationWidget )Field ()*PdfField {return _gba ._bag };
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_add :=NewPdfAnnotation ();_bfeg :=&PdfAnnotationInk {};_bfeg .PdfAnnotation =_add ;_bfeg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_add .SetContext (_bfeg );return _bfeg ;};
|
||
|
||
// SetDocInfo sets the document /Info metadata.
|
||
// This will overwrite any globally declared document info.
|
||
func (_dage *PdfAppender )SetDocInfo (info *PdfInfo ){_dage ._geaf =info };
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_fedfb *PdfFilespec )GetContainingPdfObject ()_ce .PdfObject {return _fedfb ._ddgc };
|
||
|
||
// AddCRLs adds CRLs to DSS.
|
||
func (_cffec *DSS )AddCRLs (crls [][]byte )([]*_ce .PdfObjectStream ,error ){return _cffec .add (&_cffec .CRLs ,_cffec ._abge ,crls );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fga *PdfActionGoTo )ToPdfObject ()_ce .PdfObject {_fga .PdfAction .ToPdfObject ();_cga :=_fga ._bcc ;_gff :=_cga .PdfObject .(*_ce .PdfObjectDictionary );_gff .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoTo )));_gff .SetIfNotNil ("\u0044",_fga .D );
|
||
return _cga ;};
|
||
|
||
// 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 *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;DS *_ce .PdfObjectString ;RV _ce .PdfObject ;};
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_aebe *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_aebe .ToPdfOutline ().PdfOutlineTreeNode ;};
|
||
|
||
// 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 ;_becgb []byte ;_dfcag []uint32 ;_ffgdd *_ce .PdfObjectStream ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_ceedf OutlineDest )ToPdfObject ()_ce .PdfObject {if (_ceedf .PageObj ==nil &&_ceedf .Page < 0)||_ceedf .Mode ==""{return _ce .MakeNull ();};_edced :=_ce .MakeArray ();if _ceedf .PageObj !=nil {_edced .Append (_ceedf .PageObj );}else {_edced .Append (_ce .MakeInteger (_ceedf .Page ));
|
||
};_edced .Append (_ce .MakeName (_ceedf .Mode ));switch _ceedf .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_edced .Append (_ce .MakeFloat (_ceedf .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_edced .Append (_ce .MakeFloat (_ceedf .X ));
|
||
case "\u0058\u0059\u005a":_edced .Append (_ce .MakeFloat (_ceedf .X ));_edced .Append (_ce .MakeFloat (_ceedf .Y ));_edced .Append (_ce .MakeFloat (_ceedf .Zoom ));default:_edced .Set (1,_ce .MakeName ("\u0046\u0069\u0074"));};return _edced ;};
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_bfcf *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bfcf .AlternateSpace ==nil {return nil ,_ge .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 _bfcf .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_fgge *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bdgcf *PdfAnnotationUnderline )ToPdfObject ()_ce .PdfObject {_bdgcf .PdfAnnotation .ToPdfObject ();_bcde :=_bdgcf ._dec ;_aac :=_bcde .PdfObject .(*_ce .PdfObjectDictionary );_bdgcf .PdfAnnotationMarkup .appendToPdfDictionary (_aac );_aac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_aac .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdgcf .QuadPoints );return _bcde ;};
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_dbgb *DSS )GetContainingPdfObject ()_ce .PdfObject {return _dbgb ._ecde };
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_dcac *PdfField )Flags ()FieldFlag {var _gggd FieldFlag ;_facba ,_ccgc :=_dcac .inherit (func (_aaagc *PdfField )bool {if _aaagc .Ff !=nil {_gggd =FieldFlag (*_aaagc .Ff );return true ;};return false ;});if _ccgc !=nil {_ff .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",_ccgc );
|
||
};if !_facba {_ff .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 _gggd ;};func _dfcde (_fdgfe *_ce .PdfIndirectObject )(*PdfOutline ,error ){_dbgee ,_dfaff :=_fdgfe .PdfObject .(*_ce .PdfObjectDictionary );
|
||
if !_dfaff {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");};_gbdc :=NewPdfOutline ();if _dgecd :=_dbgee .Get ("\u0054\u0079\u0070\u0065");
|
||
_dgecd !=nil {_badd ,_eeged :=_dgecd .(*_ce .PdfObjectName );if _eeged {if *_badd !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ff .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",*_badd );
|
||
};};};if _beea :=_dbgee .Get ("\u0043\u006f\u0075n\u0074");_beea !=nil {_bdgf ,_dcdd :=_ce .GetNumberAsInt64 (_beea );if _dcdd !=nil {return nil ,_dcdd ;};_gbdc .Count =&_bdgf ;};return _gbdc ,nil ;};
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_ccc *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _ccc ._gbba !=nil {return _ccc ._gbba ,nil ;};if _ccc .A ==nil {return nil ,nil ;};if _ccc ._dge ==nil {return nil ,nil ;};_agd ,_cccd :=_ccc ._dge .loadAction (_ccc .A );if _cccd !=nil {return nil ,_cccd ;
|
||
};_ccc ._gbba =_agd ;return _ccc ._gbba ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_adeaa *PdfColorspaceDeviceRGB )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_bdbcg *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ce .GetNumberAsFloat (_bdbcg .CapHeight );};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_fgb *PdfInfo )AddCustomInfo (name string ,value string )error {if _fgb ._ecfddd ==nil {_fgb ._ecfddd =_ce .MakeDict ();};if _ ,_fbaba :=_gfaee [name ];_fbaba {return _e .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
|
||
};_fgb ._ecfddd .SetIfNotNil (*_ce .MakeName (name ),_ce .MakeString (value ));return nil ;};
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_cfcbc *PdfColorDeviceRGB )B ()float64 {return _cfcbc [2]};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_daee pdfCIDFontType0 )Encoder ()_dc .TextEncoder {return _daee ._afgge };
|
||
|
||
// 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 (_aaca _gd .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_dcegc _cb .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_bcfcg _cb .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_cgdaf *Image ,_gacdb int64 )(*Image ,error );};
|
||
|
||
// 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 (_dccg int ,_ffbae *PdfPage )error ;
|
||
|
||
// 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 _gd .ReadSeeker )(*PdfFont ,error ){_ddde ,_bade :=_fcg .ReadAll (r );if _bade !=nil {_ff .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",_bade );
|
||
return nil ,_bade ;};_ecebe ,_bade :=_ee .TtfParse (_ag .NewReader (_ddde ));if _bade !=nil {_ff .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",_bade );
|
||
return nil ,_bade ;};_abfec :=&pdfCIDFontType2 {fontCommon :fontCommon {_baafb :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ce .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_ecebe .Widths )<=0{return nil ,_ge .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");
|
||
};_aaaf :=1000.0/float64 (_ecebe .UnitsPerEm );_gfbc :=_aaaf *float64 (_ecebe .Widths [0]);_fgbe :=make (map[rune ]int );_gegegb :=make (map[_ee .GID ]int );_gbcaf :=_ee .GID (len (_ecebe .Widths ));for _abcgg ,_dcee :=range _ecebe .Chars {if _dcee > _gbcaf -1{continue ;
|
||
};_cdfed :=int (_aaaf *float64 (_ecebe .Widths [_dcee ]));_fgbe [_abcgg ]=_cdfed ;_gegegb [_dcee ]=_cdfed ;};_abfec ._bedga =_fgbe ;_abfec .DW =_ce .MakeInteger (int64 (_gfbc ));_ceaf :=_bfbb (_gegegb ,uint16 (_gbcaf ));_abfec .W =_ce .MakeIndirectObject (_ceaf );
|
||
_bedgaa :=_ce .MakeDict ();_bedgaa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ce .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_bedgaa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ce .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_bedgaa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ce .MakeInteger (0));_abfec .CIDSystemInfo =_bedgaa ;_cabf :=&PdfFontDescriptor {FontName :_ce .MakeName (_ecebe .PostScriptName ),Ascent :_ce .MakeFloat (_aaaf *float64 (_ecebe .TypoAscender )),Descent :_ce .MakeFloat (_aaaf *float64 (_ecebe .TypoDescender )),CapHeight :_ce .MakeFloat (_aaaf *float64 (_ecebe .CapHeight )),FontBBox :_ce .MakeArrayFromFloats ([]float64 {_aaaf *float64 (_ecebe .Xmin ),_aaaf *float64 (_ecebe .Ymin ),_aaaf *float64 (_ecebe .Xmax ),_aaaf *float64 (_ecebe .Ymax )}),ItalicAngle :_ce .MakeFloat (_ecebe .ItalicAngle ),MissingWidth :_ce .MakeFloat (_gfbc )};
|
||
_agdbg ,_bade :=_ce .MakeStream (_ddde ,_ce .NewFlateEncoder ());if _bade !=nil {_ff .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",_bade );
|
||
return nil ,_bade ;};_agdbg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (len (_ddde ))));_cabf .FontFile2 =_agdbg ;if _ecebe .Bold {_cabf .StemV =_ce .MakeInteger (120);}else {_cabf .StemV =_ce .MakeInteger (70);
|
||
};_cfbd :=_abda ;if _ecebe .IsFixedPitch {_cfbd |=_afdc ;};if _ecebe .ItalicAngle !=0{_cfbd |=_egdef ;};_cabf .Flags =_ce .MakeInteger (int64 (_cfbd ));_abfec ._egacd =_ecebe .PostScriptName ;_abfec ._daebd =_cabf ;_dbeec :=pdfFontType0 {fontCommon :fontCommon {_baafb :"\u0054\u0079\u0070e\u0030",_egacd :_ecebe .PostScriptName },DescendantFont :&PdfFont {_dace :_abfec },Encoding :_ce .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_fbfa :_ecebe .NewEncoder ()};
|
||
if len (_ecebe .Chars )> 0{_dadfg :=make (map[_ga .CharCode ]rune ,len (_ecebe .Chars ));for _bfedgg ,_cfdd :=range _ecebe .Chars {_agdcc :=_ga .CharCode (_cfdd );if _gaba ,_agde :=_dadfg [_agdcc ];!_agde ||(_agde &&_gaba > _bfedgg ){_dadfg [_agdcc ]=_bfedgg ;
|
||
};};_dbeec ._dgfcg =_ga .NewToUnicodeCMap (_dadfg );};_cecb :=PdfFont {_dace :&_dbeec };return &_cecb ,nil ;};
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_dddga ,_aebg :=_ee .NewStdFontByName (HelveticaName );if !_aebg {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");
|
||
};_cfdef :=_bcegg (_dddga );return &PdfFont {_dace :&_cfdef };};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_aaga *PdfColorspaceLab )ToPdfObject ()_ce .PdfObject {_bgae :=_ce .MakeArray ();_bgae .Append (_ce .MakeName ("\u004c\u0061\u0062"));_ddeca :=_ce .MakeDict ();if _aaga .WhitePoint !=nil {_fdea :=_ce .MakeArray (_ce .MakeFloat (_aaga .WhitePoint [0]),_ce .MakeFloat (_aaga .WhitePoint [1]),_ce .MakeFloat (_aaga .WhitePoint [2]));
|
||
_ddeca .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fdea );}else {_ff .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 _aaga .BlackPoint !=nil {_gdgc :=_ce .MakeArray (_ce .MakeFloat (_aaga .BlackPoint [0]),_ce .MakeFloat (_aaga .BlackPoint [1]),_ce .MakeFloat (_aaga .BlackPoint [2]));_ddeca .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_gdgc );
|
||
};if _aaga .Range !=nil {_dcgg :=_ce .MakeArray (_ce .MakeFloat (_aaga .Range [0]),_ce .MakeFloat (_aaga .Range [1]),_ce .MakeFloat (_aaga .Range [2]),_ce .MakeFloat (_aaga .Range [3]));_ddeca .Set ("\u0052\u0061\u006eg\u0065",_dcgg );};_bgae .Append (_ddeca );
|
||
if _aaga ._eefd !=nil {_aaga ._eefd .PdfObject =_bgae ;return _aaga ._eefd ;};return _bgae ;};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_gbfa *PdfColorDeviceCMYK )Y ()float64 {return _gbfa [2]};
|
||
|
||
// 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 (_bgec *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebffb :=vals [0];if _ebffb < 0.0||_ebffb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ebffb );
|
||
return nil ,ErrColorOutOfRange ;};_effc :=NewPdfColorCalGray (_ebffb );return _effc ,nil ;};
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _ce .PdfObject )(*PdfFilespec ,error ){_eecf :=&PdfFilespec {};var _cbagb *_ce .PdfObjectDictionary ;if _dbed ,_ccdb :=_ce .GetIndirect (obj );_ccdb {_eecf ._ddgc =_dbed ;_bgfd ,_acde :=_ce .GetDict (_dbed .PdfObject );if !_acde {_ff .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 ,_ce .ErrTypeError ;};_cbagb =_bgfd ;}else if _fdfa ,_egfg :=_ce .GetDict (obj );_egfg {_eecf ._ddgc =_fdfa ;_cbagb =_fdfa ;}else {_ff .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 ,_ce .ErrTypeError ;};if _cbagb ==nil {_ff .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ge .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};if _egcdf :=_cbagb .Get ("\u0054\u0079\u0070\u0065");_egcdf !=nil {_ecfb ,_bbggg :=_egcdf .(*_ce .PdfObjectName );if !_bbggg {_ff .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",_egcdf );
|
||
}else {if *_ecfb !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ff .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",*_ecfb );
|
||
};};};if _dbac :=_cbagb .Get ("\u0046\u0053");_dbac !=nil {_eecf .FS =_dbac ;};if _caeaf :=_cbagb .Get ("\u0046");_caeaf !=nil {_eecf .F =_caeaf ;};if _cbbd :=_cbagb .Get ("\u0055\u0046");_cbbd !=nil {_eecf .UF =_cbbd ;};if _ffgc :=_cbagb .Get ("\u0044\u004f\u0053");
|
||
_ffgc !=nil {_eecf .DOS =_ffgc ;};if _bdfbb :=_cbagb .Get ("\u004d\u0061\u0063");_bdfbb !=nil {_eecf .Mac =_bdfbb ;};if _gbgb :=_cbagb .Get ("\u0055\u006e\u0069\u0078");_gbgb !=nil {_eecf .Unix =_gbgb ;};if _fgca :=_cbagb .Get ("\u0049\u0044");_fgca !=nil {_eecf .ID =_fgca ;
|
||
};if _bfef :=_cbagb .Get ("\u0056");_bfef !=nil {_eecf .V =_bfef ;};if _fbae :=_cbagb .Get ("\u0045\u0046");_fbae !=nil {_eecf .EF =_fbae ;};if _fggea :=_cbagb .Get ("\u0052\u0046");_fggea !=nil {_eecf .RF =_fggea ;};if _egac :=_cbagb .Get ("\u0044\u0065\u0073\u0063");
|
||
_egac !=nil {_eecf .Desc =_egac ;};if _bbcgg :=_cbagb .Get ("\u0043\u0049");_bbcgg !=nil {_eecf .CI =_bbcgg ;};return _eecf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aaeg *PdfAnnotationSquiggly )ToPdfObject ()_ce .PdfObject {_aaeg .PdfAnnotation .ToPdfObject ();_eada :=_aaeg ._dec ;_bcg :=_eada .PdfObject .(*_ce .PdfObjectDictionary );_aaeg .PdfAnnotationMarkup .appendToPdfDictionary (_bcg );_bcg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_bcg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_aaeg .QuadPoints );return _eada ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);func (_cgabc *PdfWriter )writeAcroFormFields ()error {if _cgabc ._aabaf ==nil {return nil ;
|
||
};_ff .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_fcaeb :=_cgabc ._aabaf .ToPdfObject ();_ff .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_fcaeb );
|
||
_cgabc ._bbef .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fcaeb );_agaac :=_cgabc .addObjects (_fcaeb );if _agaac !=nil {return _agaac ;};return nil ;};
|
||
|
||
// 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 ;};var _dbdae =false ;
|
||
|
||
// GetCatalogMetadata gets the catalog defined XMP Metadata.
|
||
func (_eacaa *PdfReader )GetCatalogMetadata ()(_ce .PdfObject ,bool ){if _eacaa ._cfcdg ==nil {return nil ,false ;};_gffdd :=_eacaa ._cfcdg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _gffdd ,_gffdd !=nil ;};func _aaegd (_fgabea _gd .ReadSeeker ,_cfdde *ReaderOpts ,_bfaff bool ,_ecebg string )(*PdfReader ,error ){if _cfdde ==nil {_cfdde =NewReaderOpts ();
|
||
};_ceece :=*_cfdde ;_cegba :=&PdfReader {_eggc :_fgabea ,_efdafe :map[_ce .PdfObject ]struct{}{},_aedda :_dffgda (),_cgbdb :_cfdde .LazyLoad ,_gbffe :_cfdde .ComplianceMode ,_cdffg :_bfaff ,_dcggg :&_ceece };_aceea ,_ffcfb :=_cbfc ("\u0072");if _ffcfb !=nil {return nil ,_ffcfb ;
|
||
};_ffcfb =_gec .Track (_aceea ,_ecebg );if _ffcfb !=nil {return nil ,_ffcfb ;};_cegba ._feegf =_aceea ;var _dfdbc *_ce .PdfParser ;if !_cegba ._gbffe {_dfdbc ,_ffcfb =_ce .NewParser (_fgabea );}else {_dfdbc ,_ffcfb =_ce .NewCompliancePdfParser (_fgabea );
|
||
};if _ffcfb !=nil {return nil ,_ffcfb ;};_cegba ._afda =_dfdbc ;_ffbgg ,_ffcfb :=_cegba .IsEncrypted ();if _ffcfb !=nil {return nil ,_ffcfb ;};if !_ffbgg {_ffcfb =_cegba .loadStructure ();if _ffcfb !=nil {return nil ,_ffcfb ;};}else if _bfaff {_egdac ,_gccga :=_cegba .Decrypt ([]byte (_cfdde .Password ));
|
||
if _gccga !=nil {return nil ,_gccga ;};if !_egdac {return nil ,_ge .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");
|
||
};};_cegba ._fdeb =make (map[*PdfReader ]*PdfReader );_cegba ._eedce =make ([]*PdfReader ,_dfdbc .GetRevisionNumber ());return _cegba ,nil ;};var (_cdgeb =_cd .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
|
||
_bcegc =_cd .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");_cacc =_cd .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");
|
||
_addfe ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_degcb ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_fcaa ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_feegg *PdfPattern )SetContext (ctx PdfModel ){_feegg ._fbea =ctx };
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_deffc *PdfPageResources )SetXObjectImageByName (keyName _ce .PdfObjectName ,ximg *XObjectImage )error {_bfca :=ximg .ToPdfObject ().(*_ce .PdfObjectStream );_agca :=_deffc .SetXObjectByName (keyName ,_bfca );return _agca ;};func (_cgfae *pdfFontType3 )baseFields ()*fontCommon {return &_cgfae .fontCommon };
|
||
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_bgecg *pdfSignDictionary )GetSubFilter ()string {_gadcd :=_bgecg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _gadcd ==nil {return "";};if _abbg ,_bgeef :=_ce .GetNameVal (_gadcd );_bgeef {return _abbg ;};return "";};func (_fdc *PdfReader )newPdfAnnotationFromIndirectObject (_cgad *_ce .PdfIndirectObject )(*PdfAnnotation ,error ){_fbdc ,_fdeg :=_cgad .PdfObject .(*_ce .PdfObjectDictionary );
|
||
if !_fdeg {return nil ,_e .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_fdc ._aedda .GetModelFromPrimitive (_fbdc );model !=nil {_cdda ,_addf :=model .(*PdfAnnotation );if !_addf {return nil ,_e .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
|
||
};return _cdda ,nil ;};_aaee :=&PdfAnnotation {};_aaee ._dec =_cgad ;_fdc ._aedda .Register (_fbdc ,_aaee );if _fcdb :=_fbdc .Get ("\u0054\u0079\u0070\u0065");_fcdb !=nil {_ggd ,_ecfeg :=_fcdb .(*_ce .PdfObjectName );if !_ecfeg {_ff .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",_fcdb );
|
||
}else {if *_ggd !="\u0041\u006e\u006eo\u0074"{_ff .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070\u0065\u0063\u0074\u0065d\u0020\u0054\u0079\u0070\u0065\u0020\u0021=\u0020\u0041\u006e\u006e\u006f\u0074\u0020\u0028\u0025\u0073\u0029",*_ggd );};};};if _abgb :=_fbdc .Get ("\u0052\u0065\u0063\u0074");
|
||
_abgb !=nil {_aaee .Rect =_abgb ;};if _bdcdb :=_fbdc .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bdcdb !=nil {_aaee .Contents =_bdcdb ;};if _bcca :=_fbdc .Get ("\u0050");_bcca !=nil {_aaee .P =_bcca ;};if _bfa :=_fbdc .Get ("\u004e\u004d");
|
||
_bfa !=nil {_aaee .NM =_bfa ;};if _aafd :=_fbdc .Get ("\u004d");_aafd !=nil {_aaee .M =_aafd ;};if _dfgc :=_fbdc .Get ("\u0046");_dfgc !=nil {_aaee .F =_dfgc ;};if _ebc :=_fbdc .Get ("\u0041\u0050");_ebc !=nil {_aaee .AP =_ebc ;};if _ffdf :=_fbdc .Get ("\u0041\u0053");
|
||
_ffdf !=nil {_aaee .AS =_ffdf ;};if _caaf :=_fbdc .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_caaf !=nil {_aaee .Border =_caaf ;};if _adda :=_fbdc .Get ("\u0043");_adda !=nil {_aaee .C =_adda ;};if _bca :=_fbdc .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_bca !=nil {_aaee .StructParent =_bca ;};if _fcge :=_fbdc .Get ("\u004f\u0043");_fcge !=nil {_aaee .OC =_fcge ;};_ede :=_fbdc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _ede ==nil {_ff .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");
|
||
_aaee ._edc =nil ;return _aaee ,nil ;};_bbce ,_egbf :=_ede .(*_ce .PdfObjectName );if !_egbf {_ff .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",_ede );
|
||
return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_ede );};switch *_bbce {case "\u0054\u0065\u0078\u0074":_gcga ,_cfe :=_fdc .newPdfAnnotationTextFromDict (_fbdc );
|
||
if _cfe !=nil {return nil ,_cfe ;};_gcga .PdfAnnotation =_aaee ;_aaee ._edc =_gcga ;return _aaee ,nil ;case "\u004c\u0069\u006e\u006b":_edeg ,_ccga :=_fdc .newPdfAnnotationLinkFromDict (_fbdc );if _ccga !=nil {return nil ,_ccga ;};_edeg .PdfAnnotation =_aaee ;
|
||
_aaee ._edc =_edeg ;return _aaee ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_ecga ,_dbba :=_fdc .newPdfAnnotationFreeTextFromDict (_fbdc );if _dbba !=nil {return nil ,_dbba ;};_ecga .PdfAnnotation =_aaee ;_aaee ._edc =_ecga ;return _aaee ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_gacf ,_ddc :=_fdc .newPdfAnnotationLineFromDict (_fbdc );if _ddc !=nil {return nil ,_ddc ;};_gacf .PdfAnnotation =_aaee ;_aaee ._edc =_gacf ;_ff .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",_aaee ,_aaee );
|
||
_ff .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",_gacf ,_gacf );_ff .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",_gacf .PdfAnnotationMarkup ,_gacf .PdfAnnotationMarkup );
|
||
return _aaee ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_dbgf ,_gabf :=_fdc .newPdfAnnotationSquareFromDict (_fbdc );if _gabf !=nil {return nil ,_gabf ;};_dbgf .PdfAnnotation =_aaee ;_aaee ._edc =_dbgf ;return _aaee ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_fbf ,_gdff :=_fdc .newPdfAnnotationCircleFromDict (_fbdc );
|
||
if _gdff !=nil {return nil ,_gdff ;};_fbf .PdfAnnotation =_aaee ;_aaee ._edc =_fbf ;return _aaee ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_dfe ,_bdfb :=_fdc .newPdfAnnotationPolygonFromDict (_fbdc );if _bdfb !=nil {return nil ,_bdfb ;};_dfe .PdfAnnotation =_aaee ;
|
||
_aaee ._edc =_dfe ;return _aaee ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_fegf ,_cafd :=_fdc .newPdfAnnotationPolyLineFromDict (_fbdc );if _cafd !=nil {return nil ,_cafd ;};_fegf .PdfAnnotation =_aaee ;_aaee ._edc =_fegf ;return _aaee ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_bdbe ,_aeff :=_fdc .newPdfAnnotationHighlightFromDict (_fbdc );if _aeff !=nil {return nil ,_aeff ;};_bdbe .PdfAnnotation =_aaee ;_aaee ._edc =_bdbe ;return _aaee ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_dfd ,_abd :=_fdc .newPdfAnnotationUnderlineFromDict (_fbdc );
|
||
if _abd !=nil {return nil ,_abd ;};_dfd .PdfAnnotation =_aaee ;_aaee ._edc =_dfd ;return _aaee ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_acaa ,_fcgf :=_fdc .newPdfAnnotationSquigglyFromDict (_fbdc );if _fcgf !=nil {return nil ,_fcgf ;
|
||
};_acaa .PdfAnnotation =_aaee ;_aaee ._edc =_acaa ;return _aaee ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_gfb ,_afge :=_fdc .newPdfAnnotationStrikeOut (_fbdc );if _afge !=nil {return nil ,_afge ;};_gfb .PdfAnnotation =_aaee ;_aaee ._edc =_gfb ;
|
||
return _aaee ,nil ;case "\u0043\u0061\u0072e\u0074":_eege ,_gfg :=_fdc .newPdfAnnotationCaretFromDict (_fbdc );if _gfg !=nil {return nil ,_gfg ;};_eege .PdfAnnotation =_aaee ;_aaee ._edc =_eege ;return _aaee ,nil ;case "\u0053\u0074\u0061m\u0070":_fag ,_fac :=_fdc .newPdfAnnotationStampFromDict (_fbdc );
|
||
if _fac !=nil {return nil ,_fac ;};_fag .PdfAnnotation =_aaee ;_aaee ._edc =_fag ;return _aaee ,nil ;case "\u0049\u006e\u006b":_ggb ,_ada :=_fdc .newPdfAnnotationInkFromDict (_fbdc );if _ada !=nil {return nil ,_ada ;};_ggb .PdfAnnotation =_aaee ;_aaee ._edc =_ggb ;
|
||
return _aaee ,nil ;case "\u0050\u006f\u0070u\u0070":_eaag ,_cgf :=_fdc .newPdfAnnotationPopupFromDict (_fbdc );if _cgf !=nil {return nil ,_cgf ;};_eaag .PdfAnnotation =_aaee ;_aaee ._edc =_eaag ;return _aaee ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_gege ,_dfb :=_fdc .newPdfAnnotationFileAttachmentFromDict (_fbdc );
|
||
if _dfb !=nil {return nil ,_dfb ;};_gege .PdfAnnotation =_aaee ;_aaee ._edc =_gege ;return _aaee ,nil ;case "\u0053\u006f\u0075n\u0064":_adb ,_caca :=_fdc .newPdfAnnotationSoundFromDict (_fbdc );if _caca !=nil {return nil ,_caca ;};_adb .PdfAnnotation =_aaee ;
|
||
_aaee ._edc =_adb ;return _aaee ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_cgagg ,_cfa :=_fdc .newPdfAnnotationRichMediaFromDict (_fbdc );if _cfa !=nil {return nil ,_cfa ;};_cgagg .PdfAnnotation =_aaee ;_aaee ._edc =_cgagg ;return _aaee ,nil ;
|
||
case "\u004d\u006f\u0076i\u0065":_cfb ,_agf :=_fdc .newPdfAnnotationMovieFromDict (_fbdc );if _agf !=nil {return nil ,_agf ;};_cfb .PdfAnnotation =_aaee ;_aaee ._edc =_cfb ;return _aaee ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_bcbf ,_aeba :=_fdc .newPdfAnnotationScreenFromDict (_fbdc );
|
||
if _aeba !=nil {return nil ,_aeba ;};_bcbf .PdfAnnotation =_aaee ;_aaee ._edc =_bcbf ;return _aaee ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_bbbg ,_gacg :=_fdc .newPdfAnnotationWidgetFromDict (_fbdc );if _gacg !=nil {return nil ,_gacg ;};_bbbg .PdfAnnotation =_aaee ;
|
||
_aaee ._edc =_bbbg ;return _aaee ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_gbbd ,_cag :=_fdc .newPdfAnnotationPrinterMarkFromDict (_fbdc );if _cag !=nil {return nil ,_cag ;};_gbbd .PdfAnnotation =_aaee ;_aaee ._edc =_gbbd ;
|
||
return _aaee ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_deg ,_aag :=_fdc .newPdfAnnotationTrapNetFromDict (_fbdc );if _aag !=nil {return nil ,_aag ;};_deg .PdfAnnotation =_aaee ;_aaee ._edc =_deg ;return _aaee ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_cfbg ,_aagf :=_fdc .newPdfAnnotationWatermarkFromDict (_fbdc );
|
||
if _aagf !=nil {return nil ,_aagf ;};_cfbg .PdfAnnotation =_aaee ;_aaee ._edc =_cfbg ;return _aaee ,nil ;case "\u0033\u0044":_cgec ,_gaf :=_fdc .newPdfAnnotation3DFromDict (_fbdc );if _gaf !=nil {return nil ,_gaf ;};_cgec .PdfAnnotation =_aaee ;_aaee ._edc =_cgec ;
|
||
return _aaee ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_eab ,_dag :=_fdc .newPdfAnnotationProjectionFromDict (_fbdc );if _dag !=nil {return nil ,_dag ;};_eab .PdfAnnotation =_aaee ;_aaee ._edc =_eab ;return _aaee ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_fgc ,_dedc :=_fdc .newPdfAnnotationRedactFromDict (_fbdc );
|
||
if _dedc !=nil {return nil ,_dedc ;};_fgc .PdfAnnotation =_aaee ;_aaee ._edc =_fgc ;return _aaee ,nil ;};_ff .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",*_bbce );
|
||
return nil ,nil ;};func (_eccd *PdfReader )newPdfActionImportDataFromDict (_dde *_ce .PdfObjectDictionary )(*PdfActionImportData ,error ){_ebaf ,_afaf :=_ecbge (_dde .Get ("\u0046"));if _afaf !=nil {return nil ,_afaf ;};return &PdfActionImportData {F :_ebaf },nil ;
|
||
};func _cfgf (_ffaef *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_ffaef }};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_ce .PdfObjectArray ;Domain *_ce .PdfObjectArray ;Function []PdfFunction ;Extend *_ce .PdfObjectArray ;};func (_gfeag *PdfReader )buildPageList (_efadg *_ce .PdfIndirectObject ,_gcbbg *_ce .PdfIndirectObject ,_ccefc map[_ce .PdfObject ]struct{})error {if _efadg ==nil {return nil ;
|
||
};if _ ,_gdfc :=_ccefc [_efadg ];_gdfc {_ff .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",_efadg .ObjectNumber );
|
||
return nil ;};_ccefc [_efadg ]=struct{}{};_gdbab ,_dcdff :=_efadg .PdfObject .(*_ce .PdfObjectDictionary );if !_dcdff {return _ge .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_fcgeg ,_dcdff :=(*_gdbab ).Get ("\u0054\u0079\u0070\u0065").(*_ce .PdfObjectName );
|
||
if !_dcdff {if _gdbab .Get ("\u004b\u0069\u0064\u0073")==nil {return _ge .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");};_ff .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.");
|
||
_fcgeg =_ce .MakeName ("\u0050\u0061\u0067e\u0073");_gdbab .Set ("\u0054\u0079\u0070\u0065",_fcgeg );};_ff .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",*_fcgeg ,_efadg );
|
||
if *_fcgeg =="\u0050\u0061\u0067\u0065"{_gcfad ,_afgae :=_gfeag .newPdfPageFromDict (_gdbab );if _afgae !=nil {return _afgae ;};_gcfad .setContainer (_efadg );if _gcbbg !=nil {_gdbab .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcbbg );};_gfeag ._cbddb =append (_gfeag ._cbddb ,_efadg );
|
||
_gfeag .PageList =append (_gfeag .PageList ,_gcfad );return nil ;};if *_fcgeg !="\u0050\u0061\u0067e\u0073"{_ff .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",_fcgeg );
|
||
return _ge .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 _gcbbg !=nil {_gdbab .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gcbbg );};if !_gfeag ._cgbdb {_ceeeb :=_gfeag .traverseObjectData (_efadg );if _ceeeb !=nil {return _ceeeb ;};};_eagadf ,_bcbbc :=_gfeag ._afda .Resolve (_gdbab .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _bcbbc !=nil {_ff .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 _bcbbc ;};var _eeafe *_ce .PdfObjectArray ;
|
||
_eeafe ,_dcdff =_eagadf .(*_ce .PdfObjectArray );if !_dcdff {_ecacb ,_cebcd :=_eagadf .(*_ce .PdfIndirectObject );if !_cebcd {return _ge .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};
|
||
_eeafe ,_dcdff =_ecacb .PdfObject .(*_ce .PdfObjectArray );if !_dcdff {return _ge .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");};};_ff .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_eeafe );
|
||
for _afeeb ,_cdab :=range _eeafe .Elements (){_edcba ,_edgdf :=_ce .GetIndirect (_cdab );if !_edgdf {_ff .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",_edcba );
|
||
return _ge .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_eeafe .Set (_afeeb ,_edcba );_bcbbc =_gfeag .buildPageList (_edcba ,_efadg ,_ccefc );if _bcbbc !=nil {return _bcbbc ;
|
||
};};return nil ;};type pdfCIDFontType2 struct{fontCommon ;_edbb *_ce .PdfIndirectObject ;_egbgf _dc .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_ce .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ce .PdfObject ;W _ce .PdfObject ;DW2 _ce .PdfObject ;W2 _ce .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _ce .PdfObject ;_ffgda map[_dc .CharCode ]float64 ;_fbcca float64 ;_bedga map[rune ]int ;};
|
||
|
||
// GetRevision returns the specific version of the PdfReader for the current Pdf document
|
||
func (_cbcg *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_egabd :=_cbcg ._afda .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _egabd {return nil ,_ge .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
|
||
};if revisionNumber ==_egabd {return _cbcg ,nil ;};if _cbcg ._eedce [revisionNumber ]!=nil {return _cbcg ._eedce [revisionNumber ],nil ;};_bcgga :=_cbcg ;for _fabf :=_egabd -1;_fabf >=revisionNumber ;_fabf --{_effab ,_dfcg :=_bcgga .GetPreviousRevision ();
|
||
if _dfcg !=nil {return nil ,_dfcg ;};_cbcg ._eedce [_fabf ]=_effab ;_bcgga =_effab ;};return _bcgga ,nil ;};
|
||
|
||
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
|
||
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_ce .PdfObjectArray ;ExtGState _ce .PdfObject ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_daae *PdfColorCalRGB )C ()float64 {return _daae [2]};
|
||
|
||
// 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 (_ecage *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_baag :=_ecage .actualFont ();if _baag ==nil {_ff .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",_ecage ._dace );
|
||
return _ee .CharMetrics {},false ;};if _dabdb ,_gfged :=_baag .GetRuneMetrics (r );_gfged {return _dabdb ,true ;};if _acfe ,_ddgb :=_ecage .GetFontDescriptor ();_ddgb ==nil &&_acfe !=nil {return _ee .CharMetrics {Wx :_acfe ._abcb },true ;};_ff .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",_ecage );
|
||
return _ee .CharMetrics {},false ;};
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_bb *PdfAction )SetContext (ctx PdfModel ){_bb ._gbf =ctx };
|
||
|
||
// GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_dbgd *PdfAppender )GetDSS ()(_afdg *DSS ){return _dbgd ._gee };
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_fdgdb *PdfPageResources )HasXObjectByName (keyName _ce .PdfObjectName )bool {_bgcdb ,_ :=_fdgdb .GetXObjectByName (keyName );return _bgcdb !=nil ;};
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_fdae *PdfAppender )UpdatePage (page *PdfPage ){_fdae .updateObjectsDeep (page .ToPdfObject (),nil )};
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_gafa *PdfField )PartialName ()string {_bfgaf :="";if _gafa .T !=nil {_bfgaf =_gafa .T .Decoded ();}else {_ff .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 _bfgaf ;};
|
||
|
||
// 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 ;
|
||
|
||
// 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 (_gdfdb *XObjectForm )SetContentStream (content []byte ,encoder _ce .StreamEncoder )error {_dbbfg :=content ;if encoder ==nil {if _gdfdb .Filter !=nil {encoder =_gdfdb .Filter ;}else {encoder =_ce .NewRawEncoder ();};};_abcdc ,_dcagg :=encoder .EncodeBytes (_dbbfg );
|
||
if _dcagg !=nil {return _dcagg ;};_dbbfg =_abcdc ;_gdfdb .Stream =_dbbfg ;_gdfdb .Filter =encoder ;return nil ;};
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_fadafb =author };
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_gefa :=NewPdfAnnotation ();_cfd :=&PdfAnnotationWatermark {};_cfd .PdfAnnotation =_gefa ;_gefa .SetContext (_cfd );return _cfd ;};
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_ce .PdfObjectString ;Author *_ce .PdfObjectString ;Subject *_ce .PdfObjectString ;Keywords *_ce .PdfObjectString ;Creator *_ce .PdfObjectString ;Producer *_ce .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_ce .PdfObjectName ;
|
||
_ecfddd *_ce .PdfObjectDictionary ;};
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bba *PdfAnnotationScreen )ToPdfObject ()_ce .PdfObject {_bba .PdfAnnotation .ToPdfObject ();_cdgb :=_bba ._dec ;_dedd :=_cdgb .PdfObject .(*_ce .PdfObjectDictionary );_dedd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_dedd .SetIfNotNil ("\u0054",_bba .T );_dedd .SetIfNotNil ("\u004d\u004b",_bba .MK );_dedd .SetIfNotNil ("\u0041",_bba .A );_dedd .SetIfNotNil ("\u0041\u0041",_bba .AA );return _cdgb ;};
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_dgeeg *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ce .GetNumberAsFloat (_dgeeg .Ascent );};func (_dbde *PdfReader )newPdfAnnotationRedactFromDict (_cdga *_ce .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_cbg :=PdfAnnotationRedact {};
|
||
_cffg ,_beg :=_dbde .newPdfAnnotationMarkupFromDict (_cdga );if _beg !=nil {return nil ,_beg ;};_cbg .PdfAnnotationMarkup =_cffg ;_cbg .QuadPoints =_cdga .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_cbg .IC =_cdga .Get ("\u0049\u0043");
|
||
_cbg .RO =_cdga .Get ("\u0052\u004f");_cbg .OverlayText =_cdga .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_cbg .Repeat =_cdga .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_cbg .DA =_cdga .Get ("\u0044\u0041");_cbg .Q =_cdga .Get ("\u0051");
|
||
return &_cbg ,nil ;};
|
||
|
||
// VRI represents a Validation-Related Information dictionary.
|
||
// The VRI dictionary contains validation data in the form of
|
||
// certificates, OCSP and CRL information, for a single signature.
|
||
// See ETSI TS 102 778-4 V1.1.1 for more information.
|
||
type VRI struct{Cert []*_ce .PdfObjectStream ;OCSP []*_ce .PdfObjectStream ;CRL []*_ce .PdfObjectStream ;TU *_ce .PdfObjectString ;TS *_ce .PdfObjectString ;};func _fecg (_gcec _ce .PdfObject )(*fontFile ,error ){_ff .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",_gcec );
|
||
_efgaa :=&fontFile {};_gcec =_ce .TraceToDirectObject (_gcec );_cddb ,_adcec :=_gcec .(*_ce .PdfObjectStream );if !_adcec {_ff .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",_gcec );
|
||
return nil ,_ce .ErrTypeError ;};_eedfb :=_cddb .PdfObjectDictionary ;_bdga ,_fadb :=_ce .DecodeStream (_cddb );if _fadb !=nil {return nil ,_fadb ;};_aagcb ,_adcec :=_ce .GetNameVal (_eedfb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_adcec {_efgaa ._cbede =_aagcb ;
|
||
if _aagcb =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ff .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 ;};};_gbbc ,_ :=_ce .GetIntVal (_eedfb .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_abce ,_ :=_ce .GetIntVal (_eedfb .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _gbbc > len (_bdga ){_gbbc =len (_bdga );};
|
||
if _gbbc +_abce > len (_bdga ){_abce =len (_bdga )-_gbbc ;};_abcgf :=_bdga [:_gbbc ];var _ceff []byte ;if _abce > 0{_ceff =_bdga [_gbbc :_gbbc +_abce ];};if _gbbc > 0&&_abce > 0{_cgdea :=_efgaa .loadFromSegments (_abcgf ,_ceff );if _cgdea !=nil {return nil ,_cgdea ;
|
||
};};return _efgaa ,nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_fdgd pdfCIDFontType2 )Encoder ()_dc .TextEncoder {return _fdgd ._egbgf };
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_bbcae *PdfColorCalRGB )A ()float64 {return _bbcae [0]};
|
||
|
||
// 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 (_egegb *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _egegb .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// 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 ;
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_acac *PdfColorspaceCalRGB )ToPdfObject ()_ce .PdfObject {_cecg :=&_ce .PdfObjectArray {};_cecg .Append (_ce .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_aefb :=_ce .MakeDict ();if _acac .WhitePoint !=nil {_ecfdc :=_ce .MakeArray (_ce .MakeFloat (_acac .WhitePoint [0]),_ce .MakeFloat (_acac .WhitePoint [1]),_ce .MakeFloat (_acac .WhitePoint [2]));
|
||
_aefb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ecfdc );}else {_ff .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 _acac .BlackPoint !=nil {_ddacf :=_ce .MakeArray (_ce .MakeFloat (_acac .BlackPoint [0]),_ce .MakeFloat (_acac .BlackPoint [1]),_ce .MakeFloat (_acac .BlackPoint [2]));_aefb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ddacf );
|
||
};if _acac .Gamma !=nil {_fgfc :=_ce .MakeArray (_ce .MakeFloat (_acac .Gamma [0]),_ce .MakeFloat (_acac .Gamma [1]),_ce .MakeFloat (_acac .Gamma [2]));_aefb .Set ("\u0047\u0061\u006dm\u0061",_fgfc );};if _acac .Matrix !=nil {_afade :=_ce .MakeArray (_ce .MakeFloat (_acac .Matrix [0]),_ce .MakeFloat (_acac .Matrix [1]),_ce .MakeFloat (_acac .Matrix [2]),_ce .MakeFloat (_acac .Matrix [3]),_ce .MakeFloat (_acac .Matrix [4]),_ce .MakeFloat (_acac .Matrix [5]),_ce .MakeFloat (_acac .Matrix [6]),_ce .MakeFloat (_acac .Matrix [7]),_ce .MakeFloat (_acac .Matrix [8]));
|
||
_aefb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_afade );};_cecg .Append (_aefb );if _acac ._agbda !=nil {_acac ._agbda .PdfObject =_cecg ;return _acac ._agbda ;};return _cecg ;};
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _ce .PdfObject ;Dest _ce .PdfObject ;H _ce .PdfObject ;PA _ce .PdfObject ;QuadPoints _ce .PdfObject ;BS _ce .PdfObject ;_gbba *PdfAction ;_dge *PdfReader ;};func (_aggdf *PdfReader )buildNameNodes (_dabde *_ce .PdfIndirectObject ,_beec map[_ce .PdfObject ]struct{})error {if _dabde ==nil {return nil ;
|
||
};if _ ,_bdgge :=_beec [_dabde ];_bdgge {_ff .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",_dabde .ObjectNumber );
|
||
return nil ;};_beec [_dabde ]=struct{}{};_cfgb ,_bbege :=_dabde .PdfObject .(*_ce .PdfObjectDictionary );if !_bbege {return _ge .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _abgbgb ,_daec :=_ce .GetDict (_cfgb .Get ("\u0044\u0065\u0073t\u0073"));
|
||
_daec {_cedfe ,_gfggdb :=_ce .GetArray (_abgbgb .Get ("\u004b\u0069\u0064\u0073"));if !_gfggdb {return _ge .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ff .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_cedfe );
|
||
for _dafc ,_edffg :=range _cedfe .Elements (){_ggdd ,_fbcbg :=_ce .GetIndirect (_edffg );if !_fbcbg {_ff .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",_ggdd );
|
||
return _ge .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_cedfe .Set (_dafc ,_ggdd );_deedf :=_aggdf .buildNameNodes (_ggdd ,_beec );if _deedf !=nil {return _deedf ;};
|
||
};};if _bcad ,_bggbe :=_ce .GetDict (_cfgb );_bggbe {if !_ce .IsNullObject (_bcad .Get ("\u004b\u0069\u0064\u0073")){if _fbeeb ,_ccgdc :=_ce .GetArray (_bcad .Get ("\u004b\u0069\u0064\u0073"));_ccgdc {for _gebagc ,_bebbcd :=range _fbeeb .Elements (){if _ecagef ,_gbfb :=_ce .GetIndirect (_bebbcd );
|
||
_gbfb {_fbeeb .Set (_gebagc ,_ecagef );_eeec :=_aggdf .buildNameNodes (_ecagef ,_beec );if _eeec !=nil {return _eeec ;};};};};};};return nil ;};
|
||
|
||
// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
|
||
// object type to number of instances of each.
|
||
func (_eadcf *PdfReader )Inspect ()(map[string ]int ,error ){return _eadcf ._afda .Inspect ()};func (_cffe *PdfReader )newPdfAnnotationInkFromDict (_ecfg *_ce .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_agfg :=PdfAnnotationInk {};_aaag ,_bdfd :=_cffe .newPdfAnnotationMarkupFromDict (_ecfg );
|
||
if _bdfd !=nil {return nil ,_bdfd ;};_agfg .PdfAnnotationMarkup =_aaag ;_agfg .InkList =_ecfg .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_agfg .BS =_ecfg .Get ("\u0042\u0053");return &_agfg ,nil ;};
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_aff :=&PdfBorderStyle {};return _aff };func (_fcec *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};func _abgcc (_efdafg string )map[string ]string {_ffbd :=_caege .Split (_efdafg ,-1);
|
||
_bgcga :=map[string ]string {};for _ ,_aaeae :=range _ffbd {_fbbcf :=_bcegc .FindStringSubmatch (_aaeae );if _fbbcf ==nil {continue ;};_efde ,_afdfe :=_fbbcf [1],_fbbcf [2];_bgcga [_efde ]=_afdfe ;};return _bgcga ;};
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_bbca :=NewPdfAnnotation ();_ffag :=&PdfAnnotationFileAttachment {};_ffag .PdfAnnotation =_bbca ;_ffag .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bbca .SetContext (_ffag );return _ffag ;
|
||
};type pdfFontType0 struct{fontCommon ;_cebdd *_ce .PdfIndirectObject ;_fbfa _dc .TextEncoder ;Encoding _ce .PdfObject ;DescendantFont *PdfFont ;_ggecbf *_ga .CMap ;};
|
||
|
||
// 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 (_cbbf *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cec :=vals [0];if _cec < 0.0||_cec > 1.0{_ff .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 _cec < 0.0{_cec =0.0;}else if _cec > 1.0{_cec =1.0;};return NewPdfColorDeviceGray (_cec ),nil ;};
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_dbee :=NewPdfAnnotation ();_dcb :=&PdfAnnotationLink {};_dcb .PdfAnnotation =_dbee ;_dbee .SetContext (_dcb );return _dcb ;};
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_ddac *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_dgbfc :=range pages {_dgbfc =_dgbfc .Duplicate ();_bfbegf (_dgbfc );_ddac ._ggdc =append (_ddac ._ggdc ,_dgbfc );};};
|
||
|
||
// 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 _ce .PdfObjectArray )(*PdfRectangle ,error ){_fbfba :=PdfRectangle {};if arr .Len ()!=4{return nil ,_ge .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 _ggeag error ;_fbfba .Llx ,_ggeag =_ce .GetNumberAsFloat (arr .Get (0));if _ggeag !=nil {return nil ,_ggeag ;};_fbfba .Lly ,_ggeag =_ce .GetNumberAsFloat (arr .Get (1));if _ggeag !=nil {return nil ,_ggeag ;};_fbfba .Urx ,_ggeag =_ce .GetNumberAsFloat (arr .Get (2));
|
||
if _ggeag !=nil {return nil ,_ggeag ;};_fbfba .Ury ,_ggeag =_ce .GetNumberAsFloat (arr .Get (3));if _ggeag !=nil {return nil ,_ggeag ;};return &_fbfba ,nil ;};func (_ecfa *PdfReader )newPdfActionSoundFromDict (_ddf *_ce .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_ddf .Get ("\u0053\u006f\u0075n\u0064"),Volume :_ddf .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_ddf .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_ddf .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_ddf .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// GetCatalogMarkInfo gets catalog MarkInfo object.
|
||
func (_aeafg *PdfReader )GetCatalogMarkInfo ()(_ce .PdfObject ,bool ){if _aeafg ._cfcdg ==nil {return nil ,false ;};_dgdfc :=_aeafg ._cfcdg .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _dgdfc ,_dgdfc !=nil ;};func _dgbea ()string {_cbcgc .Lock ();
|
||
defer _cbcgc .Unlock ();return _fadafb };func (_acba *PdfWriter )writeString (_ffcfc string ){if _acba ._dcdgg !=nil {return ;};_bfgfd ,_dgadb :=_acba ._cafdf .WriteString (_ffcfc );_acba ._cgdfab +=int64 (_bfgfd );_acba ._dcdgg =_dgadb ;};
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_gfeeg *PdfPage )error ;};func _eegg (_fccee *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_ggfbg ,_gaddfe :=_ce .GetDict (_fccee .AP );if !_gaddfe {return nil ,nil ,_ge .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 _ggfbg ==nil {return nil ,nil ,nil ;};_efff ,_gaddfe :=_ce .GetArray (_fccee .Rect );if !_gaddfe ||_efff .Len ()!=4{return nil ,nil ,_ge .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_dgag ,_fdfd :=NewPdfRectangle (*_efff );
|
||
if _fdfd !=nil {return nil ,nil ,_fdfd ;};_fgad :=_ce .TraceToDirectObject (_ggfbg .Get ("\u004e"));switch _ffaf :=_fgad .(type ){case *_ce .PdfObjectStream :_ffb :=_ffaf ;_affaf ,_bgecd :=NewXObjectFormFromStream (_ffb );return _affaf ,_dgag ,_bgecd ;
|
||
case *_ce .PdfObjectDictionary :_cbbde :=_ffaf ;var _gggf _ce .PdfObject ;_fabe ,_bdfg :=_ce .GetName (_fccee .AS );if _bdfg {_gggf =_cbbde .Get (*_fabe );}else {_gfgg :=_fccee ._dec .PdfObject .(*_ce .PdfObjectDictionary );if _agce :=_gfgg .Get ("\u0056");
|
||
_agce !=nil {_gggf =_cbbde .Get (_ce .PdfObjectName (_agce .String ()));};};if _gggf ==nil {_ff .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 ;};_gbcg ,_bdfg :=_ce .GetStream (_gggf );if !_bdfg {_ff .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",_fabe );
|
||
return nil ,nil ,_ge .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_edcbb ,_ccacc :=NewXObjectFormFromStream (_gbcg );return _edcbb ,_dgag ,_ccacc ;};_ff .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_fgad );
|
||
return nil ,nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_eedb *PdfColorspaceLab )DecodeArray ()[]float64 {_ddb :=[]float64 {0,100};if _eedb .Range !=nil &&len (_eedb .Range )==4{_ddb =append (_ddb ,_eedb .Range ...);}else {_ddb =append (_ddb ,-100,100,-100,100);};return _ddb ;};func (_dccbd *PdfWriter )copyObject (_cbceg _ce .PdfObject ,_gcfec map[_ce .PdfObject ]_ce .PdfObject ,_fbge map[_ce .PdfObject ]struct{},_cbdce bool )_ce .PdfObject {_gbfcf :=!_dccbd ._ddfff &&_fbge !=nil ;
|
||
if _cffdb ,_bacdg :=_gcfec [_cbceg ];_bacdg {if _gbfcf &&!_cbdce {delete (_fbge ,_cbceg );};return _cffdb ;};if _cbceg ==nil {_fdfedf :=_ce .MakeNull ();return _fdfedf ;};_gfefg :=_cbceg ;switch _fecb :=_cbceg .(type ){case *_ce .PdfObjectArray :_daga :=_ce .MakeArray ();
|
||
_gfefg =_daga ;_gcfec [_cbceg ]=_gfefg ;for _ ,_cgbde :=range _fecb .Elements (){_daga .Append (_dccbd .copyObject (_cgbde ,_gcfec ,_fbge ,_cbdce ));};case *_ce .PdfObjectStreams :_afgca :=&_ce .PdfObjectStreams {PdfObjectReference :_fecb .PdfObjectReference };
|
||
_gfefg =_afgca ;_gcfec [_cbceg ]=_gfefg ;for _ ,_beabc :=range _fecb .Elements (){_afgca .Append (_dccbd .copyObject (_beabc ,_gcfec ,_fbge ,_cbdce ));};case *_ce .PdfObjectStream :_bcfcgd :=&_ce .PdfObjectStream {Stream :_fecb .Stream ,PdfObjectReference :_fecb .PdfObjectReference };
|
||
_gfefg =_bcfcgd ;_gcfec [_cbceg ]=_gfefg ;_bcfcgd .PdfObjectDictionary =_dccbd .copyObject (_fecb .PdfObjectDictionary ,_gcfec ,_fbge ,_cbdce ).(*_ce .PdfObjectDictionary );case *_ce .PdfObjectDictionary :var _feacg bool ;if _gbfcf &&!_cbdce {if _fgfff ,_ :=_ce .GetNameVal (_fecb .Get ("\u0054\u0079\u0070\u0065"));
|
||
_fgfff =="\u0050\u0061\u0067\u0065"{_ ,_edggg :=_dccbd ._defec [_fecb ];_cbdce =!_edggg ;_feacg =_cbdce ;};};_gbbe :=_ce .MakeDict ();_gfefg =_gbbe ;_gcfec [_cbceg ]=_gfefg ;for _ ,_ffbbe :=range _fecb .Keys (){_gbbe .Set (_ffbbe ,_dccbd .copyObject (_fecb .Get (_ffbbe ),_gcfec ,_fbge ,_cbdce ));
|
||
};if _feacg {_gfefg =_ce .MakeNull ();_cbdce =false ;};case *_ce .PdfIndirectObject :_gafefd :=&_ce .PdfIndirectObject {PdfObjectReference :_fecb .PdfObjectReference };_gfefg =_gafefd ;_gcfec [_cbceg ]=_gfefg ;_gafefd .PdfObject =_dccbd .copyObject (_fecb .PdfObject ,_gcfec ,_fbge ,_cbdce );
|
||
case *_ce .PdfObjectString :_fgegb :=*_fecb ;_gfefg =&_fgegb ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectName :_gfdbfg :=*_fecb ;_gfefg =&_gfdbfg ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectNull :_gfefg =_ce .MakeNull ();_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectInteger :_daccb :=*_fecb ;
|
||
_gfefg =&_daccb ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectReference :_gfcd :=*_fecb ;_gfefg =&_gfcd ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectFloat :_caeea :=*_fecb ;_gfefg =&_caeea ;_gcfec [_cbceg ]=_gfefg ;case *_ce .PdfObjectBool :_bdfab :=*_fecb ;
|
||
_gfefg =&_bdfab ;_gcfec [_cbceg ]=_gfefg ;case *pdfSignDictionary :_gffaa :=&pdfSignDictionary {PdfObjectDictionary :_ce .MakeDict (),_efaef :_fecb ._efaef ,_gdbgfe :_fecb ._gdbgfe };_gfefg =_gffaa ;_gcfec [_cbceg ]=_gfefg ;for _ ,_ccaef :=range _fecb .Keys (){_gffaa .Set (_ccaef ,_dccbd .copyObject (_fecb .Get (_ccaef ),_gcfec ,_fbge ,_cbdce ));
|
||
};default:_ff .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",_cbceg );
|
||
};if _gbfcf &&_cbdce {_fbge [_cbceg ]=struct{}{};};return _gfefg ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_befbe *PdfPageResourcesColorspaces )ToPdfObject ()_ce .PdfObject {_ebgg :=_ce .MakeDict ();for _ ,_acbde :=range _befbe .Names {_ebgg .Set (_ce .PdfObjectName (_acbde ),_befbe .Colorspaces [_acbde ].ToPdfObject ());};if _befbe ._bcgd !=nil {_befbe ._bcgd .PdfObject =_ebgg ;
|
||
return _befbe ._bcgd ;};return _ebgg ;};func _fcgd (_eggf _ce .PdfObject )(*PdfColorspaceLab ,error ){_dcba :=NewPdfColorspaceLab ();if _gadf ,_bdgd :=_eggf .(*_ce .PdfIndirectObject );_bdgd {_dcba ._eefd =_gadf ;};_eggf =_ce .TraceToDirectObject (_eggf );
|
||
_efga ,_adfc :=_eggf .(*_ce .PdfObjectArray );if !_adfc {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _efga .Len ()!=2{return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_eggf =_ce .TraceToDirectObject (_efga .Get (0));_edgc ,_adfc :=_eggf .(*_ce .PdfObjectName );if !_adfc {return nil ,_e .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if *_edgc !="\u004c\u0061\u0062"{return nil ,_e .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_eggf =_ce .TraceToDirectObject (_efga .Get (1));_dbec ,_adfc :=_eggf .(*_ce .PdfObjectDictionary );
|
||
if !_adfc {return nil ,_e .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};_eggf =_dbec .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
|
||
_eggf =_ce .TraceToDirectObject (_eggf );_cdac ,_adfc :=_eggf .(*_ce .PdfObjectArray );if !_adfc {return nil ,_e .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");};if _cdac .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
|
||
};_gecbb ,_caae :=_cdac .GetAsFloat64Slice ();if _caae !=nil {return nil ,_caae ;};_dcba .WhitePoint =_gecbb ;_eggf =_dbec .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _eggf !=nil {_eggf =_ce .TraceToDirectObject (_eggf );_eafc ,_beffc :=_eggf .(*_ce .PdfObjectArray );
|
||
if !_beffc {return nil ,_e .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _eafc .Len ()!=3{return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");
|
||
};_eceb ,_affed :=_eafc .GetAsFloat64Slice ();if _affed !=nil {return nil ,_affed ;};_dcba .BlackPoint =_eceb ;};_eggf =_dbec .Get ("\u0052\u0061\u006eg\u0065");if _eggf !=nil {_eggf =_ce .TraceToDirectObject (_eggf );_abeaa ,_aagc :=_eggf .(*_ce .PdfObjectArray );
|
||
if !_aagc {_ff .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_e .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _abeaa .Len ()!=4{_ff .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
|
||
return nil ,_e .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_feebc ,_fffe :=_abeaa .GetAsFloat64Slice ();if _fffe !=nil {return nil ,_fffe ;};_dcba .Range =_feebc ;};return _dcba ,nil ;};
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_acfa :=&PdfColorspaceCalGray {};_acfa .BlackPoint =[]float64 {0.0,0.0,0.0};_acfa .Gamma =1;return _acfa ;};func _geca (_gafga *_ce .PdfObjectDictionary )(*PdfShadingType1 ,error ){_fefbc :=PdfShadingType1 {};
|
||
if _feacb :=_gafga .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_feacb !=nil {_feacb =_ce .TraceToDirectObject (_feacb );_ddgdc ,_cdba :=_feacb .(*_ce .PdfObjectArray );if !_cdba {_ff .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",_feacb );
|
||
return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fefbc .Domain =_ddgdc ;};if _feafb :=_gafga .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_feafb !=nil {_feafb =_ce .TraceToDirectObject (_feafb );
|
||
_fadd ,_fceef :=_feafb .(*_ce .PdfObjectArray );if !_fceef {_ff .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",_feafb );return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_fefbc .Matrix =_fadd ;};_cfadc :=_gafga .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cfadc ==nil {_ff .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 ;};_fefbc .Function =[]PdfFunction {};if _agcge ,_ffccf :=_cfadc .(*_ce .PdfObjectArray );_ffccf {for _ ,_dabage :=range _agcge .Elements (){_eddef ,_gbec :=_cegfd (_dabage );if _gbec !=nil {_ff .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",_gbec );
|
||
return nil ,_gbec ;};_fefbc .Function =append (_fefbc .Function ,_eddef );};}else {_dfgdg ,_dfcaf :=_cegfd (_cfadc );if _dfcaf !=nil {_ff .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",_dfcaf );
|
||
return nil ,_dfcaf ;};_fefbc .Function =append (_fefbc .Function ,_dfgdg );};return &_fefbc ,nil ;};func _cbceb (_gdcgf *_ce .PdfObjectDictionary )(*PdfTilingPattern ,error ){_ecgg :=&PdfTilingPattern {};_edaea :=_gdcgf .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
|
||
if _edaea ==nil {_ff .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_gcdbb ,_cdggd :=_edaea .(*_ce .PdfObjectInteger );if !_cdggd {_ff .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",_edaea );
|
||
return nil ,_ce .ErrTypeError ;};_ecgg .PaintType =_gcdbb ;_edaea =_gdcgf .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _edaea ==nil {_ff .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_fdgff ,_cdggd :=_edaea .(*_ce .PdfObjectInteger );if !_cdggd {_ff .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",_edaea );
|
||
return nil ,_ce .ErrTypeError ;};_ecgg .TilingType =_fdgff ;_edaea =_gdcgf .Get ("\u0042\u0042\u006f\u0078");if _edaea ==nil {_ff .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_edaea =_ce .TraceToDirectObject (_edaea );_gefff ,_cdggd :=_edaea .(*_ce .PdfObjectArray );if !_cdggd {_ff .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",_edaea );
|
||
return nil ,_ce .ErrTypeError ;};_daeda ,_dgdbe :=NewPdfRectangle (*_gefff );if _dgdbe !=nil {_ff .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dgdbe );return nil ,_dgdbe ;};_ecgg .BBox =_daeda ;_edaea =_gdcgf .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _edaea ==nil {_ff .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_eddce ,_dgdbe :=_ce .GetNumberAsFloat (_edaea );if _dgdbe !=nil {_ff .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",_eddce );
|
||
return nil ,_dgdbe ;};_ecgg .XStep =_ce .MakeFloat (_eddce );_edaea =_gdcgf .Get ("\u0059\u0053\u0074e\u0070");if _edaea ==nil {_ff .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_ebcgc ,_dgdbe :=_ce .GetNumberAsFloat (_edaea );if _dgdbe !=nil {_ff .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",_ebcgc );
|
||
return nil ,_dgdbe ;};_ecgg .YStep =_ce .MakeFloat (_ebcgc );_edaea =_gdcgf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _edaea ==nil {_ff .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_gdcgf ,_cdggd =_ce .TraceToDirectObject (_edaea ).(*_ce .PdfObjectDictionary );if !_cdggd {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_edaea );
|
||
};_eadgg ,_dgdbe :=NewPdfPageResourcesFromDict (_gdcgf );if _dgdbe !=nil {return nil ,_dgdbe ;};_ecgg .Resources =_eadgg ;if _bbeaf :=_gdcgf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_bbeaf !=nil {_cafcc ,_dabbg :=_bbeaf .(*_ce .PdfObjectArray );if !_dabbg {_ff .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",_bbeaf );
|
||
return nil ,_ce .ErrTypeError ;};_ecgg .Matrix =_cafcc ;};return _ecgg ,nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_degf pdfCIDFontType2 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _dcgbc ,_acgc :=_degf ._ffgda [code ];_acgc {return _ee .CharMetrics {Wx :_dcgbc },true ;};_fbbbc :=rune (code );_degce ,_eebae :=_degf ._bedga [_fbbbc ];if !_eebae {_degce =int (_degf ._fbcca );
|
||
};return _ee .CharMetrics {Wx :float64 (_degce )},true ;};
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;DS *_ce .PdfObjectString ;RV _ce .PdfObject ;MaxLen *_ce .PdfObjectInteger ;};
|
||
|
||
// 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 (_bacgc pdfFontSimple )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _acccf ,_aceba :=_bacgc ._aggce [code ];_aceba {return _ee .CharMetrics {Wx :_acccf },true ;};if _ee .IsStdFont (_ee .StdFontName (_bacgc ._egacd )){return _ee .CharMetrics {Wx :250},true ;
|
||
};return _ee .CharMetrics {},false ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cdg *PdfActionSetOCGState )ToPdfObject ()_ce .PdfObject {_cdg .PdfAction .ToPdfObject ();_eca :=_cdg ._bcc ;_fe :=_eca .PdfObject .(*_ce .PdfObjectDictionary );_fe .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSetOCGState )));_fe .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cdg .State );
|
||
_fe .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_cdg .PreserveRB );return _eca ;};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};
|
||
|
||
// 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 (_gded *PdfReader )CheckAccessRights (password []byte )(bool ,_cca .Permissions ,error ){return _gded ._afda .CheckAccessRights (password );};
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_ggfe *PdfField )IsTerminal ()bool {return len (_ggfe .Kids )==0};
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_faeba *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
|
||
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_ggee :=&PdfAppender {_gbbg :reader ._eggc ,Reader :reader ,_egeb :reader ._afda ,_ccbd :reader ._efdafe };_ecfdd ,_bdd :=_ggee ._gbbg .Seek (0,_gd .SeekEnd );
|
||
if _bdd !=nil {return nil ,_bdd ;};_ggee ._gafg =_ecfdd ;if _ ,_bdd =_ggee ._gbbg .Seek (0,_gd .SeekStart );_bdd !=nil {return nil ,_bdd ;};_ggee ._fcda ,_bdd =NewPdfReaderWithOpts (_ggee ._gbbg ,opts );if _bdd !=nil {return nil ,_bdd ;};for _ ,_gdeg :=range _ggee .Reader .GetObjectNums (){if _ggee ._agac < _gdeg {_ggee ._agac =_gdeg ;
|
||
};};_ggee ._agfe =_ggee ._egeb .GetXrefTable ();_ggee ._gcfe =_ggee ._egeb .GetXrefOffset ();_ggee ._ggdc =append (_ggee ._ggdc ,_ggee ._fcda .PageList ...);_ggee ._acbd =make (map[_ce .PdfObject ]struct{});_ggee ._fadeg =make (map[_ce .PdfObject ]int64 );
|
||
_ggee ._gecg =make (map[_ce .PdfObject ]struct{});_ggee ._fed =_ggee ._fcda .AcroForm ;_ggee ._gee =_ggee ._fcda .DSS ;if opts !=nil {_ggee ._afef =opts .Password ;};if encryptOptions !=nil {_ggee ._debba =encryptOptions ;};return _ggee ,nil ;};
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ceg *PdfAction )ToPdfObject ()_ce .PdfObject {_fbd :=_ceg ._bcc ;_eee :=_fbd .PdfObject .(*_ce .PdfObjectDictionary );_eee .Clear ();_eee .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_eee .SetIfNotNil ("\u0053",_ceg .S );
|
||
_eee .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ceg .Next );return _fbd ;};func (_dbe *PdfReader )newPdfActionSubmitFormFromDict (_gfd *_ce .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_bbe ,_bef :=_ecbge (_gfd .Get ("\u0046"));if _bef !=nil {return nil ,_bef ;
|
||
};return &PdfActionSubmitForm {F :_bbe ,Fields :_gfd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_gfd .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_egb :=NewPdfAction ();_ccd :=&PdfActionGoTo3DView {};_ccd .PdfAction =_egb ;_egb .SetContext (_ccd );return _ccd ;};func (_cfgaf *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
|
||
};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_ffed *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ff .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_becff :=[]float64 {0.0};if _ffed .C0 !=nil {_becff =_ffed .C0 ;};_efag :=[]float64 {1.0};if _ffed .C1 !=nil {_efag =_ffed .C1 ;};var _fadba []float64 ;for _ggccc :=0;_ggccc < len (_becff );_ggccc ++{_edee :=_becff [_ggccc ]+_egg .Pow (x [0],_ffed .N )*(_efag [_ggccc ]-_becff [_ggccc ]);
|
||
_fadba =append (_fadba ,_edee );};return _fadba ,nil ;};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_fde :=NewPdfAction ();_ab :=&PdfActionJavaScript {};_ab .PdfAction =_fde ;_fde .SetContext (_ab );return _ab ;};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_cfbgga *PdfPageResources )SetXObjectByName (keyName _ce .PdfObjectName ,stream *_ce .PdfObjectStream )error {if _cfbgga .XObject ==nil {_cfbgga .XObject =_ce .MakeDict ();};_ggdeg :=_ce .TraceToDirectObject (_cfbgga .XObject );_cdbcg ,_ebada :=_ggdeg .(*_ce .PdfObjectDictionary );
|
||
if !_ebada {_ff .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",_cfbgga .XObject ,_ggdeg );return _ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_cdbcg .Set (keyName ,stream );return nil ;};
|
||
|
||
// ToPdfObject implements model.PdfModel interface.
|
||
func (_gadb *PdfOutputIntent )ToPdfObject ()_ce .PdfObject {if _gadb ._gfdaf ==nil {_gadb ._gfdaf =_ce .MakeDict ();};_cbdgb :=_gadb ._gfdaf ;if _gadb .Type !=""{_cbdgb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName (_gadb .Type ));};_cbdgb .Set ("\u0053",_ce .MakeName (_gadb .S .String ()));
|
||
if _gadb .OutputCondition !=""{_cbdgb .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ce .MakeString (_gadb .OutputCondition ));};_cbdgb .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ce .MakeString (_gadb .OutputConditionIdentifier ));
|
||
_cbdgb .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ce .MakeString (_gadb .RegistryName ));if _gadb .Info !=""{_cbdgb .Set ("\u0049\u006e\u0066\u006f",_ce .MakeString (_gadb .Info ));};if len (_gadb .DestOutputProfile )!=0{_eceae ,_cafda :=_ce .MakeStream (_gadb .DestOutputProfile ,_ce .NewFlateEncoder ());
|
||
if _cafda !=nil {_ff .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",_cafda );
|
||
};_eceae .PdfObjectDictionary .Set ("\u004e",_ce .MakeInteger (int64 (_gadb .ColorComponents )));_gffg :=make ([]float64 ,_gadb .ColorComponents *2);for _cdfd :=0;_cdfd < _gadb .ColorComponents *2;_cdfd ++{_ggdag :=0.0;if _cdfd %2!=0{_ggdag =1.0;};_gffg [_cdfd ]=_ggdag ;
|
||
};_eceae .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ce .MakeArrayFromFloats (_gffg ));_cbdgb .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_eceae );};return _cbdgb ;};func (_adbeec *PdfWriter )writeDocumentVersion (){if _adbeec ._ddfff {_adbeec .writeString ("\u000a");
|
||
}else {_adbeec .writeString (_e .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_adbeec ._facee .Major ,_adbeec ._facee .Minor ));_adbeec .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_gfbcc *PdfPage )GetContentStreams ()([]string ,error ){_facfg :=_gfbcc .GetContentStreamObjs ();var _dbce []string ;for _ ,_gdbea :=range _facfg {_ceee ,_adcdf :=_becbc (_gdbea );if _adcdf !=nil {return nil ,_adcdf ;};_dbce =append (_dbce ,_ceee );
|
||
};return _dbce ,nil ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_cfdbg *PdfWriter )AddPage (page *PdfPage )error {const _gadeb ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_bfbegf (page );_ffege :=page .ToPdfObject ();_ff .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_ff .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ffege );_cfdac ,_cccbd :=_ce .GetIndirect (_ffege );if !_cccbd {return _ge .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");
|
||
};_ff .Log .Trace ("\u0025\u0073",_cfdac );_ff .Log .Trace ("\u0025\u0073",_cfdac .PdfObject );_edfdd ,_cccbd :=_ce .GetDict (_cfdac .PdfObject );if !_cccbd {return _ge .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");
|
||
};_gebae ,_cccbd :=_ce .GetName (_edfdd .Get ("\u0054\u0079\u0070\u0065"));if !_cccbd {return _e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_edfdd .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _gebae .String ()!="\u0050\u0061\u0067\u0065"{return _ge .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");};_aegcb :=[]_ce .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"};
|
||
_babde ,_fgdbc :=_ce .GetIndirect (_edfdd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ff .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_edfdd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_fgdbc );
|
||
for _fgdbc {_ff .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_babde );_fbccc ,_aageb :=_ce .GetDict (_babde .PdfObject );if !_aageb {return _ge .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_edffc :=range _aegcb {_ff .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_edffc );if _edfdd .Get (_edffc )!=nil {_ff .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _bfdag :=_fbccc .Get (_edffc );_bfdag !=nil {_ff .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_edffc );_edfdd .Set (_edffc ,_bfdag );};};_babde ,_fgdbc =_ce .GetIndirect (_fbccc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_ff .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbccc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ff .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_edfdd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cfdbg ._dbdaa );_cfdac .PdfObject =_edfdd ;_daacd ,_cccbd :=_ce .GetDict (_cfdbg ._dbdaa .PdfObject );if !_cccbd {return _ge .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");
|
||
};_defg ,_cccbd :=_ce .GetArray (_daacd .Get ("\u004b\u0069\u0064\u0073"));if !_cccbd {return _ge .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");
|
||
};_defg .Append (_cfdac );_cfdbg ._defec [_edfdd ]=struct{}{};_bbag ,_cccbd :=_ce .GetInt (_daacd .Get ("\u0043\u006f\u0075n\u0074"));if !_cccbd {return _ge .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");
|
||
};*_bbag =*_bbag +1;if page ._cagde ==nil {_dgae :=_gec .Track (_cfdbg ._cbdcb ,_gadeb );if _dgae !=nil {return _dgae ;};}else {_decfc :=_gec .Track (page ._cagde ._feegf ,_gadeb );if _decfc !=nil {return _decfc ;};};_cfdbg .addObject (_cfdac );_addad :=_cfdbg .addObjects (_edfdd );
|
||
if _addad !=nil {return _addad ;};return nil ;};
|
||
|
||
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
|
||
func NewPdfOutputIntentFromPdfObject (object _ce .PdfObject )(*PdfOutputIntent ,error ){_cfdea :=&PdfOutputIntent {};if _bcfbg :=_cfdea .ParsePdfObject (object );_bcfbg !=nil {return nil ,_bcfbg ;};return _cfdea ,nil ;};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_gdee :=NewPdfAnnotation ();_cgaad :=&PdfAnnotationSquare {};_cgaad .PdfAnnotation =_gdee ;_cgaad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gdee .SetContext (_cgaad );return _cgaad ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_bcgaf *PdfOutlineItem )ToPdfObject ()_ce .PdfObject {_aacce :=_bcgaf ._ggcfgf ;_gfedg :=_aacce .PdfObject .(*_ce .PdfObjectDictionary );_gfedg .Set ("\u0054\u0069\u0074l\u0065",_bcgaf .Title );if _bcgaf .A !=nil {_gfedg .Set ("\u0041",_bcgaf .A );
|
||
};if _afeeg :=_gfedg .Get ("\u0053\u0045");_afeeg !=nil {_gfedg .Remove ("\u0053\u0045");};if _bcgaf .C !=nil {_gfedg .Set ("\u0043",_bcgaf .C );};if _bcgaf .Dest !=nil {_gfedg .Set ("\u0044\u0065\u0073\u0074",_bcgaf .Dest );};if _bcgaf .F !=nil {_gfedg .Set ("\u0046",_bcgaf .F );
|
||
};if _bcgaf .Count !=nil {_gfedg .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (*_bcgaf .Count ));};if _bcgaf .Next !=nil {_gfedg .Set ("\u004e\u0065\u0078\u0074",_bcgaf .Next .ToPdfObject ());};if _bcgaf .First !=nil {_gfedg .Set ("\u0046\u0069\u0072s\u0074",_bcgaf .First .ToPdfObject ());
|
||
};if _bcgaf .Prev !=nil {_gfedg .Set ("\u0050\u0072\u0065\u0076",_bcgaf .Prev .GetContext ().GetContainingPdfObject ());};if _bcgaf .Last !=nil {_gfedg .Set ("\u004c\u0061\u0073\u0074",_bcgaf .Last .GetContext ().GetContainingPdfObject ());};if _bcgaf .Parent !=nil {_gfedg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bcgaf .Parent .GetContext ().GetContainingPdfObject ());
|
||
};return _aacce ;};func _dbga (_bfbc _ce .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ff .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",_bfbc .String (),_bfbc );
|
||
_fcb :=NewPdfColorspaceSpecialPattern ();if _cabb ,_fbgfb :=_bfbc .(*_ce .PdfIndirectObject );_fbgfb {_fcb ._eccb =_cabb ;};_bfbc =_ce .TraceToDirectObject (_bfbc );if _geeg ,_agfd :=_bfbc .(*_ce .PdfObjectName );_agfd {if *_geeg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _fcb ,nil ;};_bcfc ,_bedc :=_bfbc .(*_ce .PdfObjectArray );if !_bedc {_ff .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",_bfbc );
|
||
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _bcfc .Len ()!=1&&_bcfc .Len ()!=2{_ff .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",_bcfc );
|
||
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_bfbc =_bcfc .Get (0);if _fcad ,_aecf :=_bfbc .(*_ce .PdfObjectName );_aecf {if *_fcad !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ff .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",_fcad );
|
||
return nil ,_e .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _bcfc .Len ()> 1{_bfbc =_bcfc .Get (1);_bfbc =_ce .TraceToDirectObject (_bfbc );_badg ,_fege :=NewPdfColorspaceFromPdfObject (_bfbc );if _fege !=nil {return nil ,_fege ;
|
||
};_fcb .UnderlyingCS =_badg ;};_ff .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",_fcb .UnderlyingCS );
|
||
return _fcb ,nil ;};
|
||
|
||
// PageCallback callback function used in page loading
|
||
// that could be used to modify the page content.
|
||
//
|
||
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
|
||
type PageCallback func (_edcf int ,_fegef *PdfPage );func (_daeg *PdfReader )buildOutlineTree (_feffe _ce .PdfObject ,_fedd *PdfOutlineTreeNode ,_eeggg *PdfOutlineTreeNode ,_dcbaf map[_ce .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _dcbaf ==nil {_dcbaf =map[_ce .PdfObject ]struct{}{};
|
||
};_dcbaf [_feffe ]=struct{}{};_cddc ,_fcaeg :=_feffe .(*_ce .PdfIndirectObject );if !_fcaeg {return nil ,nil ,_e .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_feffe );
|
||
};_dgbac ,_dacaa :=_cddc .PdfObject .(*_ce .PdfObjectDictionary );if !_dacaa {return nil ,nil ,_ge .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ff .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",_dgbac ,_cddc ,_cddc );
|
||
if _dcdgc :=_dgbac .Get ("\u0054\u0069\u0074l\u0065");_dcdgc !=nil {_bfefc ,_cegfa :=_daeg .newPdfOutlineItemFromIndirectObject (_cddc );if _cegfa !=nil {return nil ,nil ,_cegfa ;};_bfefc .Parent =_fedd ;_bfefc .Prev =_eeggg ;_aedeb :=_ce .ResolveReference (_dgbac .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_becfa :=_dcbaf [_aedeb ];_aedeb !=nil &&_aedeb !=_cddc &&!_becfa {if !_ce .IsNullObject (_aedeb ){_eaab ,_adfee ,_ccacbb :=_daeg .buildOutlineTree (_aedeb ,&_bfefc .PdfOutlineTreeNode ,nil ,_dcbaf );if _ccacbb !=nil {_ff .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",_ccacbb );
|
||
}else {_bfefc .First =_eaab ;_bfefc .Last =_adfee ;};};};_abaga :=_ce .ResolveReference (_dgbac .Get ("\u004e\u0065\u0078\u0074"));if _ ,_fabbae :=_dcbaf [_abaga ];_abaga !=nil &&_abaga !=_cddc &&!_fabbae {if !_ce .IsNullObject (_abaga ){_dadgc ,_dcabf ,_eadagc :=_daeg .buildOutlineTree (_abaga ,_fedd ,&_bfefc .PdfOutlineTreeNode ,_dcbaf );
|
||
if _eadagc !=nil {_ff .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",_eadagc );
|
||
}else {_bfefc .Next =_dadgc ;return &_bfefc .PdfOutlineTreeNode ,_dcabf ,nil ;};};};return &_bfefc .PdfOutlineTreeNode ,&_bfefc .PdfOutlineTreeNode ,nil ;};_fcced ,_begbe :=_dfcde (_cddc );if _begbe !=nil {return nil ,nil ,_begbe ;};_fcced .Parent =_fedd ;
|
||
if _gcdgc :=_dgbac .Get ("\u0046\u0069\u0072s\u0074");_gcdgc !=nil {_gcdgc =_ce .ResolveReference (_gcdgc );if _ ,_edefa :=_dcbaf [_gcdgc ];_gcdgc !=nil &&_gcdgc !=_cddc &&!_edefa {_befd :=_ce .TraceToDirectObject (_gcdgc );if _ ,_dfgcd :=_befd .(*_ce .PdfObjectNull );
|
||
!_dfgcd &&_befd !=nil {_fcdee ,_fcafc ,_ccde :=_daeg .buildOutlineTree (_gcdgc ,&_fcced .PdfOutlineTreeNode ,nil ,_dcbaf );if _ccde !=nil {_ff .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",_ccde );
|
||
}else {_fcced .First =_fcdee ;_fcced .Last =_fcafc ;};};};};return &_fcced .PdfOutlineTreeNode ,&_fcced .PdfOutlineTreeNode ,nil ;};func (_bdcg *PdfAnnotationMarkup )appendToPdfDictionary (_egdb *_ce .PdfObjectDictionary ){_egdb .SetIfNotNil ("\u0054",_bdcg .T );
|
||
if _bdcg .Popup !=nil {_egdb .Set ("\u0050\u006f\u0070u\u0070",_bdcg .Popup .ToPdfObject ());};_egdb .SetIfNotNil ("\u0043\u0041",_bdcg .CA );_egdb .SetIfNotNil ("\u0052\u0043",_bdcg .RC );_egdb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_bdcg .CreationDate );
|
||
_egdb .SetIfNotNil ("\u0049\u0052\u0054",_bdcg .IRT );_egdb .SetIfNotNil ("\u0053\u0075\u0062\u006a",_bdcg .Subj );_egdb .SetIfNotNil ("\u0052\u0054",_bdcg .RT );_egdb .SetIfNotNil ("\u0049\u0054",_bdcg .IT );_egdb .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_bdcg .ExData );
|
||
};
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_age :=NewPdfAction ();_def :=&PdfActionSetOCGState {};_def .PdfAction =_age ;_age .SetContext (_def );return _def ;};func _dffgda ()*modelManager {_gdfd :=modelManager {};_gdfd ._dgefa =map[PdfModel ]_ce .PdfObject {};
|
||
_gdfd ._adbfe =map[_ce .PdfObject ]PdfModel {};return &_gdfd ;};
|
||
|
||
// 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 (_gacbg *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_dedce ,_febd :=color .(*PdfColorPattern );if !_febd {_ff .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 _dedce .Color ==nil {return color ,nil ;};if _gacbg .UnderlyingCS ==nil {return nil ,_ge .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
|
||
return _gacbg .UnderlyingCS .ColorToRGB (_dedce .Color );};
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_beabb DefaultImageHandler )NewImageFromGoImage (goimg _cb .Image )(*Image ,error ){_cfccf ,_bbcec :=_gf .FromGoImage (goimg );if _bbcec !=nil {return nil ,_bbcec ;};_gffee :=_ffba (_cfccf .Base ());return &_gffee ,nil ;};func _ecgcd (_eebb []byte )(_bbeec ,_egefb string ,_bgfg error ){_ff .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_eebb ));
|
||
_bebe :=_cdgeb .FindIndex (_eebb );if _bebe ==nil {_ff .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 "","",_ce .ErrTypeError ;};_gfdge :=_bebe [1];_caeg :=_g .Index (string (_eebb [_gfdge :]),_addfe );if _caeg < 0{_bbeec =string (_eebb [_gfdge :]);return _bbeec ,"",nil ;};_gcdc :=_gfdge +_caeg ;_bbeec =string (_eebb [_gfdge :_gcdc ]);_bcgbb :=_gcdc ;
|
||
_caeg =_g .Index (string (_eebb [_bcgbb :]),_degcb );if _caeg < 0{_ff .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",_bgfg );
|
||
return "","",_ce .ErrTypeError ;};_ccdce :=_bcgbb +_caeg ;_egefb =string (_eebb [_bcgbb :_ccdce ]);return _bbeec ,_egefb ,nil ;};
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};func _baecf (_adadf _ce .PdfObject )(*PdfPattern ,error ){_acbcb :=&PdfPattern {};var _agece *_ce .PdfObjectDictionary ;if _abegc ,_cgfef :=_ce .GetIndirect (_adadf );
|
||
_cgfef {_acbcb ._gadcb =_abegc ;_fdafa ,_eebe :=_abegc .PdfObject .(*_ce .PdfObjectDictionary );if !_eebe {_ff .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",_abegc .PdfObject );
|
||
return nil ,_ce .ErrTypeError ;};_agece =_fdafa ;}else if _beef ,_bafcb :=_ce .GetStream (_adadf );_bafcb {_acbcb ._gadcb =_beef ;_agece =_beef .PdfObjectDictionary ;}else {_ff .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",_adadf );
|
||
return nil ,_ce .ErrTypeError ;};_cbde :=_agece .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _cbde ==nil {_ff .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 ;};_cfcae ,_eddc :=_cbde .(*_ce .PdfObjectInteger );if !_eddc {_ff .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",_cbde );
|
||
return nil ,_ce .ErrTypeError ;};if *_cfcae !=1&&*_cfcae !=2{_ff .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",*_cfcae );return nil ,_ce .ErrRangeError ;
|
||
};_acbcb .PatternType =int64 (*_cfcae );switch *_cfcae {case 1:_agedd ,_ffffg :=_cbceb (_agece );if _ffffg !=nil {return nil ,_ffffg ;};_agedd .PdfPattern =_acbcb ;_acbcb ._fbea =_agedd ;return _acbcb ,nil ;case 2:_fbeaae ,_dcagcd :=_bcea (_agece );if _dcagcd !=nil {return nil ,_dcagcd ;
|
||
};_fbeaae .PdfPattern =_acbcb ;_acbcb ._fbea =_fbeaae ;return _acbcb ,nil ;};return nil ,_ge .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfg *PdfActionMovie )ToPdfObject ()_ce .PdfObject {_dfg .PdfAction .ToPdfObject ();_ffg :=_dfg ._bcc ;_bg :=_ffg .PdfObject .(*_ce .PdfObjectDictionary );_bg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeMovie )));_bg .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_dfg .Annotation );
|
||
_bg .SetIfNotNil ("\u0054",_dfg .T );_bg .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_dfg .Operation );return _ffg ;};func (_eeddb *PdfWriter )checkLicense ()error {_cfcbe :=_gec .GetLicenseKey ();if (_cfcbe ==nil ||!_cfcbe .IsLicensed ())&&!_dbdae {_e .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
|
||
_e .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
|
||
return _ge .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 ;};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;
|
||
XObjectTypePS ;XObjectTypeUnknown ;);func _ddadd (_gaebf *_ce .PdfObjectDictionary ,_daggd *fontCommon )(*pdfFontType3 ,error ){_cgbf :=_eedd (_daggd );_gbfed :=_gaebf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gbfed ==nil {_gbfed =_ce .MakeInteger (0);
|
||
};_cgbf .FirstChar =_gbfed ;_gccgb ,_dgfd :=_ce .GetIntVal (_gbfed );if !_dgfd {_ff .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",_gbfed );
|
||
return nil ,_ce .ErrTypeError ;};_bcaf :=_dc .CharCode (_gccgb );_gbfed =_gaebf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gbfed ==nil {_gbfed =_ce .MakeInteger (255);};_cgbf .LastChar =_gbfed ;_gccgb ,_dgfd =_ce .GetIntVal (_gbfed );
|
||
if !_dgfd {_ff .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",_gbfed );return nil ,_ce .ErrTypeError ;
|
||
};_fffec :=_dc .CharCode (_gccgb );_gbfed =_gaebf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _gbfed !=nil {_cgbf .Resources =_gbfed ;};_gbfed =_gaebf .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _gbfed ==nil {_ff .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",_gbfed );
|
||
return nil ,_ce .ErrNotSupported ;};_cgbf .CharProcs =_gbfed ;_gbfed =_gaebf .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _gbfed ==nil {_ff .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",_gbfed );
|
||
return nil ,_ce .ErrNotSupported ;};_cgbf .FontMatrix =_gbfed ;_cgbf ._afbb =make (map[_dc .CharCode ]float64 );_gbfed =_gaebf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gbfed !=nil {_cgbf .Widths =_gbfed ;_cggb ,_debde :=_ce .GetArray (_gbfed );
|
||
if !_debde {_ff .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",_gbfed );return nil ,_ce .ErrTypeError ;
|
||
};_fcfg ,_dagbff :=_cggb .ToFloat64Array ();if _dagbff !=nil {_ff .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 ,_dagbff ;};if len (_fcfg )!=int (_fffec -_bcaf +1){_ff .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",_fffec -_bcaf +1,len (_fcfg ));
|
||
return nil ,_ce .ErrRangeError ;};_dgbfb ,_debde :=_ce .GetArray (_cgbf .FontMatrix );if !_debde {_ff .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",_dgbfb );
|
||
return nil ,_dagbff ;};_gfbgc ,_dagbff :=_dgbfb .ToFloat64Array ();if _dagbff !=nil {_ff .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 ,_dagbff ;};_cabcd :=_efc .NewMatrix (_gfbgc [0],_gfbgc [1],_gfbgc [2],_gfbgc [3],_gfbgc [4],_gfbgc [5]);for _acbe ,_dgac :=range _fcfg {_faeg ,_ :=_cabcd .Transform (_dgac ,_dgac );_cgbf ._afbb [_bcaf +_dc .CharCode (_acbe )]=_faeg ;};};_cgbf .Encoding =_ce .TraceToDirectObject (_gaebf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
_bgfdf :=_gaebf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _bgfdf !=nil {_cgbf ._bcef =_ce .TraceToDirectObject (_bgfdf );_cebdf ,_feaef :=_ddabd (_cgbf ._bcef ,&_cgbf .fontCommon );if _feaef !=nil {return nil ,_feaef ;};_cgbf ._dgfcg =_cebdf ;
|
||
};if _fccf :=_cgbf ._dgfcg ;_fccf !=nil {_cgbf ._aacfd =_dc .NewCMapEncoder ("",nil ,_fccf );}else {_cgbf ._aacfd =_dc .NewPdfDocEncoder ();};return _cgbf ,nil ;};
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ce .PdfObject ;MK _ce .PdfObject ;A _ce .PdfObject ;AA _ce .PdfObject ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_bfedg *pdfCIDFontType0 )ToPdfObject ()_ce .PdfObject {return _ce .MakeNull ()};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _ce .PdfObjectName ;};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_fcbe *PdfAcroForm )Fill (provider FieldValueProvider )error {return _fcbe .fill (provider ,nil )};func (_facd *PdfReader )newPdfAnnotationSquigglyFromDict (_ffgd *_ce .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_agdg :=PdfAnnotationSquiggly {};
|
||
_dgd ,_eabg :=_facd .newPdfAnnotationMarkupFromDict (_ffgd );if _eabg !=nil {return nil ,_eabg ;};_agdg .PdfAnnotationMarkup =_dgd ;_agdg .QuadPoints =_ffgd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_agdg ,nil ;};
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_dcab *PdfColorDeviceRGB )G ()float64 {return _dcab [1]};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_bfadg *PdfReader )PdfVersion ()_ce .Version {return _bfadg ._afda .PdfVersion ()};func (_ebbcc *PdfReader )lookupPageByObject (_fcfgg _ce .PdfObject )(*PdfPage ,error ){return nil ,_ge .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
|
||
};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_eccb *_ce .PdfIndirectObject ;};
|
||
|
||
// Transform rectangle with the supplied matrix.
|
||
func (_bcega *PdfRectangle )Transform (transformMatrix _efc .Matrix ){_bcega .Llx ,_bcega .Lly =transformMatrix .Transform (_bcega .Llx ,_bcega .Lly );_bcega .Urx ,_bcega .Ury =transformMatrix .Transform (_bcega .Urx ,_bcega .Ury );_bcega .Normalize ();
|
||
};
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_gbdeg *PdfPageResources )GetXObjectImageByName (keyName _ce .PdfObjectName )(*XObjectImage ,error ){_aadbe ,_ggbad :=_gbdeg .GetXObjectByName (keyName );if _aadbe ==nil {return nil ,nil ;};if _ggbad !=XObjectTypeImage {return nil ,_ge .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_cbda ,_dacac :=NewXObjectImageFromStream (_aadbe );if _dacac !=nil {return nil ,_dacac ;};return _cbda ,nil ;};func _bgcg (_abbdd *_ce .PdfObjectDictionary ,_abgab *fontCommon )(*pdfCIDFontType2 ,error ){if _abgab ._baafb !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ff .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",_abgab );
|
||
return nil ,_ce .ErrRangeError ;};_gfbg :=_cfgf (_abgab );_gcfaa ,_fdace :=_ce .GetDict (_abbdd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_fdace {_ff .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",_abgab );
|
||
return nil ,ErrRequiredAttributeMissing ;};_gfbg .CIDSystemInfo =_gcfaa ;_gfbg .DW =_abbdd .Get ("\u0044\u0057");_gfbg .W =_abbdd .Get ("\u0057");_gfbg .DW2 =_abbdd .Get ("\u0044\u0057\u0032");_gfbg .W2 =_abbdd .Get ("\u0057\u0032");_gfbg .CIDToGIDMap =_abbdd .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_gfbg ._fbcca =1000.0;if _bcfbd ,_gaefd :=_ce .GetNumberAsFloat (_gfbg .DW );_gaefd ==nil {_gfbg ._fbcca =_bcfbd ;};_adag ,_dedf :=_baef (_gfbg .W );if _dedf !=nil {return nil ,_dedf ;};if _adag ==nil {_adag =map[_dc .CharCode ]float64 {};};_gfbg ._ffgda =_adag ;
|
||
return _gfbg ,nil ;};
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_bggf :=&PdfColorspaceLab {};_bggf .BlackPoint =[]float64 {0.0,0.0,0.0};_bggf .Range =[]float64 {-100,100,-100,100};return _bggf ;};
|
||
|
||
// 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 _ce .PdfObject ;_adga []byte ;_cbca *_ce .PdfIndirectObject ;};func (_defa *DSS )generateHashMap (_afacc []*_ce .PdfObjectStream )(map[string ]*_ce .PdfObjectStream ,error ){_febe :=map[string ]*_ce .PdfObjectStream {};
|
||
for _ ,_dgff :=range _afacc {_decbc ,_gaffe :=_ce .DecodeStream (_dgff );if _gaffe !=nil {return nil ,_gaffe ;};_agcb ,_gaffe :=_cgcbd (_decbc );if _gaffe !=nil {return nil ,_gaffe ;};_febe [string (_agcb )]=_dgff ;};return _febe ,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 _gd .ReadSeeker )(*PdfReader ,error ){const _cgbga ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _aaegd (rs ,&ReaderOpts {},false ,_cgbga );};
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_dbfgc =title };func (_gcff *PdfReader )newPdfAnnotation3DFromDict (_acadc *_ce .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_cfae :=PdfAnnotation3D {};_cfae .T3DD =_acadc .Get ("\u0033\u0044\u0044");
|
||
_cfae .T3DV =_acadc .Get ("\u0033\u0044\u0056");_cfae .T3DA =_acadc .Get ("\u0033\u0044\u0041");_cfae .T3DI =_acadc .Get ("\u0033\u0044\u0049");_cfae .T3DB =_acadc .Get ("\u0033\u0044\u0042");return &_cfae ,nil ;};
|
||
|
||
// ApplyStandard is used to apply changes required on the document to match the rules required by the input standard.
|
||
// The writer's content would be changed after all the document parts are already established during the Write method.
|
||
// A good example of the StandardApplier could be a PDF/A Profile (i.e.: pdfa.Profile1A). In such a case PdfWriter would
|
||
// set up all rules required by that Profile.
|
||
func (_aebea *PdfWriter )ApplyStandard (optimizer StandardApplier ){_aebea ._dgeef =optimizer };
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_fbfbae *PdfWriter )WriteToFile (outputFilePath string )error {_bbge ,_agccc :=_dd .Create (outputFilePath );if _agccc !=nil {return _agccc ;};defer _bbge .Close ();return _fbfbae .Write (_bbge );};func (_bccaf *PdfReader )newPdfAcroFormFromDict (_gfde *_ce .PdfIndirectObject ,_ffaa *_ce .PdfObjectDictionary )(*PdfAcroForm ,error ){_abcea :=NewPdfAcroForm ();
|
||
if _gfde !=nil {_abcea ._febb =_gfde ;_gfde .PdfObject =_ce .MakeDict ();};if _ddada :=_ffaa .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_ddada !=nil &&!_ce .IsNullObject (_ddada ){_bbgd ,_dgcd :=_ce .GetArray (_ddada );if !_dgcd {return nil ,_e .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_ddada );
|
||
};var _affbf []*PdfField ;for _ ,_aggd :=range _bbgd .Elements (){_ffdc ,_gabffe :=_ce .GetIndirect (_aggd );if !_gabffe {if _ ,_fgbd :=_aggd .(*_ce .PdfObjectNull );_fgbd {_ff .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 ;};_ff .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",_aggd );
|
||
return nil ,_e .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_dafga ,_bcdd :=_bccaf .newPdfFieldFromIndirectObject (_ffdc ,nil );
|
||
if _bcdd !=nil {return nil ,_bcdd ;};_ff .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_dafga );_affbf =append (_affbf ,_dafga );};_abcea .Fields =&_affbf ;};if _fede :=_ffaa .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_fede !=nil {_dcae ,_bgbg :=_ce .GetBool (_fede );if _bgbg {_abcea .NeedAppearances =_dcae ;}else {_ff .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",_fede );
|
||
};};if _ddcf :=_ffaa .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_ddcf !=nil {_ddfdc ,_fafb :=_ce .GetInt (_ddcf );if _fafb {_abcea .SigFlags =_ddfdc ;}else {_ff .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",_ddcf );
|
||
};};if _bcgc :=_ffaa .Get ("\u0043\u004f");_bcgc !=nil {_bgdf ,_agdda :=_ce .GetArray (_bcgc );if _agdda {_abcea .CO =_bgdf ;}else {_ff .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",_bcgc );
|
||
};};if _aeadg :=_ffaa .Get ("\u0044\u0052");_aeadg !=nil {if _fdgfa ,_gead :=_ce .GetDict (_aeadg );_gead {_ecgb ,_cbfg :=NewPdfPageResourcesFromDict (_fdgfa );if _cbfg !=nil {_ff .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_cbfg );
|
||
return nil ,_cbfg ;};_abcea .DR =_ecgb ;}else {_ff .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",_aeadg );};};if _cefbc :=_ffaa .Get ("\u0044\u0041");
|
||
_cefbc !=nil {_cgce ,_cgebf :=_ce .GetString (_cefbc );if _cgebf {_abcea .DA =_cgce ;}else {_ff .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",_cefbc );
|
||
};};if _cebc :=_ffaa .Get ("\u0051");_cebc !=nil {_cgeca ,_dddc :=_ce .GetInt (_cebc );if _dddc {_abcea .Q =_cgeca ;}else {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_cebc );
|
||
};};if _dfbce :=_ffaa .Get ("\u0058\u0046\u0041");_dfbce !=nil {_abcea .XFA =_dfbce ;};if _fafg :=_ffaa .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_fafg !=nil {_abcea .ADBEEchoSign =_fafg ;};_abcea .ToPdfObject ();
|
||
return _abcea ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cgcg *PdfBorderStyle )ToPdfObject ()_ce .PdfObject {_gffa :=_ce .MakeDict ();if _cgcg ._facc !=nil {if _faea ,_efdca :=_cgcg ._facc .(*_ce .PdfIndirectObject );_efdca {_faea .PdfObject =_gffa ;};};_gffa .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _cgcg .W !=nil {_gffa .Set ("\u0057",_ce .MakeFloat (*_cgcg .W ));};if _cgcg .S !=nil {_gffa .Set ("\u0053",_ce .MakeName (_cgcg .S .GetPdfName ()));};if _cgcg .D !=nil {_gffa .Set ("\u0044",_ce .MakeArrayFromIntegers (*_cgcg .D ));};if _cgcg ._facc !=nil {return _cgcg ._facc ;
|
||
};return _gffa ;};
|
||
|
||
// 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 (_bgdcc []_ce .PdfObject )([]_ce .PdfObject ,error );};func (_gdgd *PdfReader )newPdfActionGoTo3DViewFromDict (_gge *_ce .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_gge .Get ("\u0054\u0041"),V :_gge .Get ("\u0056")},nil ;
|
||
};
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _c .Time ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_dfecd =modifiedDate ;};
|
||
|
||
// Items returns all children outline items.
|
||
func (_cdebg *Outline )Items ()[]*OutlineItem {return _cdebg .Entries };
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_agfc *PdfColorspaceSpecialSeparation )ToPdfObject ()_ce .PdfObject {_dgee :=_ce .MakeArray (_ce .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_dgee .Append (_agfc .ColorantName );_dgee .Append (_agfc .AlternateSpace .ToPdfObject ());
|
||
_dgee .Append (_agfc .TintTransform .ToPdfObject ());if _agfc ._bcdf !=nil {_agfc ._bcdf .PdfObject =_dgee ;return _agfc ._bcdf ;};return _dgee ;};
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_gcccb *PdfPageResources )SetColorspaceByName (keyName _ce .PdfObjectName ,cs PdfColorspace )error {_cfbgc ,_eabbd :=_gcccb .GetColorspaces ();if _eabbd !=nil {_ff .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",_eabbd );
|
||
return _eabbd ;};if _cfbgc ==nil {_cfbgc =NewPdfPageResourcesColorspaces ();_gcccb .SetColorSpace (_cfbgc );};_cfbgc .Set (keyName ,cs );return nil ;};
|
||
|
||
// OutlineDest represents the destination of an outline item.
|
||
// It holds the page and the position on the page an outline item points to.
|
||
type OutlineDest struct{PageObj *_ce .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _ce .PdfObject ;};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_dbdd *PdfInfo )CustomKeys ()[]string {if _dbdd ._ecfddd ==nil {return nil ;};_dbdg :=make ([]string ,len (_dbdd ._ecfddd .Keys ()));for _ ,_fdegd :=range _dbdd ._ecfddd .Keys (){_dbdg =append (_dbdg ,_fdegd .String ());};return _dbdg ;};
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_ggc :=NewPdfAnnotation ();_edba :=&PdfAnnotationMovie {};_edba .PdfAnnotation =_ggc ;_ggc .SetContext (_edba );return _edba ;};func (_dfff *PdfReader )newPdfAnnotationTrapNetFromDict (_bbcb *_ce .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_dbc :=PdfAnnotationTrapNet {};
|
||
return &_dbc ,nil ;};func (_dega *PdfFilespec )getDict ()*_ce .PdfObjectDictionary {if _accc ,_fbcf :=_dega ._ddgc .(*_ce .PdfIndirectObject );_fbcf {_eeab ,_bcebd :=_accc .PdfObject .(*_ce .PdfObjectDictionary );if !_bcebd {return nil ;};return _eeab ;
|
||
}else if _adeb ,_bacce :=_dega ._ddgc .(*_ce .PdfObjectDictionary );_bacce {return _adeb ;}else {_ff .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",_dega ._ddgc );
|
||
return nil ;};};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;NewWindow _ce .PdfObject ;T _ce .PdfObject ;};
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_fggf :=&PdfAnnotation {};_fggf ._dec =_ce .MakeIndirectObject (_ce .MakeDict ());return _fggf ;};
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aebef *Permissions )ToPdfObject ()_ce .PdfObject {return _aebef ._ffegb };func (_ebac *DSS )add (_cgddc *[]*_ce .PdfObjectStream ,_dcce map[string ]*_ce .PdfObjectStream ,_dcff [][]byte )([]*_ce .PdfObjectStream ,error ){_fgdgf :=make ([]*_ce .PdfObjectStream ,0,len (_dcff ));
|
||
for _ ,_fbag :=range _dcff {_efcf ,_gdfeb :=_cgcbd (_fbag );if _gdfeb !=nil {return nil ,_gdfeb ;};_aacf ,_afff :=_dcce [string (_efcf )];if !_afff {_aacf ,_gdfeb =_ce .MakeStream (_fbag ,_ce .NewRawEncoder ());if _gdfeb !=nil {return nil ,_gdfeb ;};_dcce [string (_efcf )]=_aacf ;
|
||
*_cgddc =append (*_cgddc ,_aacf );};_fgdgf =append (_fgdgf ,_aacf );};return _fgdgf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gca *PdfActionTrans )ToPdfObject ()_ce .PdfObject {_gca .PdfAction .ToPdfObject ();_gdd :=_gca ._bcc ;_aeb :=_gdd .PdfObject .(*_ce .PdfObjectDictionary );_aeb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeTrans )));_aeb .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_gca .Trans );
|
||
return _gdd ;};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_ggead *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};var ImageHandling ImageHandler =DefaultImageHandler {};func (_cbbba fontCommon )isCIDFont ()bool {if _cbbba ._baafb ==""{_ff .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",_cbbba );
|
||
};_bbcggc :=false ;switch _cbbba ._baafb {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":_bbcggc =true ;};_ff .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",_bbcggc ,_cbbba );
|
||
return _bbcggc ;};func _dccba (_gdgb string )(map[_dc .CharCode ]_dc .GlyphName ,error ){_fgec :=_g .Split (_gdgb ,"\u000a");_cfbgg :=make (map[_dc .CharCode ]_dc .GlyphName );for _ ,_dadaf :=range _fgec {_bcfcf :=_cacc .FindStringSubmatch (_dadaf );if _bcfcf ==nil {continue ;
|
||
};_dedg ,_fecdc :=_bcfcf [1],_bcfcf [2];_adfe ,_fbacg :=_dgb .Atoi (_dedg );if _fbacg !=nil {_ff .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",_dadaf );
|
||
return nil ,_ce .ErrTypeError ;};_cfbgg [_dc .CharCode (_adfe )]=_dc .GlyphName (_fecdc );};_ff .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",_cfbgg );
|
||
return _cfbgg ,nil ;};
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_ad :=NewPdfAction ();_ac :=&PdfActionSubmitForm {};_ac .PdfAction =_ad ;_ad .SetContext (_ac );return _ac ;};
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_dfea :=PdfPage {};_dfea ._cbcaa =_ce .MakeDict ();_dfea .Resources =NewPdfPageResources ();_gcebb :=_ce .PdfIndirectObject {};_gcebb .PdfObject =_dfea ._cbcaa ;_dfea ._acbbb =&_gcebb ;_dfea ._caab =*_dfea ._cbcaa ;return &_dfea ;
|
||
};
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_fbc *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_bgee :=pageNum -1;var _cfge *PdfPage ;for _dbgcc ,_gafe :=range _fbc ._ggdc {if _dbgcc ==_bgee {_cfge =_gafe ;};};if _cfge ==nil {return _e .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
|
||
};if _cfge ._acbbb !=nil &&_cfge ._acbbb .GetParser ()==_fbc ._fcda ._afda {_cfge =_cfge .Duplicate ();_fbc ._ggdc [_bgee ]=_cfge ;};page =page .Duplicate ();_bfbegf (page );_ddeea :=_cedd (_cfge );_fbbfe :=_cedd (page );_gegeg :=make (map[_ce .PdfObjectName ]_ce .PdfObjectName );
|
||
for _gcdb :=range _fbbfe {if _ ,_bcga :=_ddeea [_gcdb ];_bcga {for _faab :=1;true ;_faab ++{_afgf :=_ce .PdfObjectName (string (_gcdb )+_dgb .Itoa (_faab ));if _ ,_agdc :=_ddeea [_afgf ];!_agdc {_gegeg [_gcdb ]=_afgf ;break ;};};};};_gbbdf ,_abab :=page .GetContentStreams ();
|
||
if _abab !=nil {return _abab ;};_egebg ,_abab :=_cfge .GetContentStreams ();if _abab !=nil {return _abab ;};for _aace ,_edg :=range _gbbdf {for _fcce ,_affb :=range _gegeg {_edg =_g .Replace (_edg ,"\u002f"+string (_fcce ),"\u002f"+string (_affb ),-1);
|
||
};_gbbdf [_aace ]=_edg ;};_egebg =append (_egebg ,_gbbdf ...);if _eddd :=_cfge .SetContentStreams (_egebg ,_ce .NewFlateEncoder ());_eddd !=nil {return _eddd ;};_cfge ._gage =append (_cfge ._gage ,page ._gage ...);if _cfge .Resources ==nil {_cfge .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_cfge .Resources .Font =_fbc .mergeResources (_cfge .Resources .Font ,page .Resources .Font ,_gegeg );_cfge .Resources .XObject =_fbc .mergeResources (_cfge .Resources .XObject ,page .Resources .XObject ,_gegeg );_cfge .Resources .Properties =_fbc .mergeResources (_cfge .Resources .Properties ,page .Resources .Properties ,_gegeg );
|
||
if _cfge .Resources .ProcSet ==nil {_cfge .Resources .ProcSet =page .Resources .ProcSet ;};_cfge .Resources .Shading =_fbc .mergeResources (_cfge .Resources .Shading ,page .Resources .Shading ,_gegeg );_cfge .Resources .ExtGState =_fbc .mergeResources (_cfge .Resources .ExtGState ,page .Resources .ExtGState ,_gegeg );
|
||
};_dcbe ,_abab :=_cfge .GetMediaBox ();if _abab !=nil {return _abab ;};_agga ,_abab :=page .GetMediaBox ();if _abab !=nil {return _abab ;};var _fbg bool ;if _dcbe .Llx > _agga .Llx {_dcbe .Llx =_agga .Llx ;_fbg =true ;};if _dcbe .Lly > _agga .Lly {_dcbe .Lly =_agga .Lly ;
|
||
_fbg =true ;};if _dcbe .Urx < _agga .Urx {_dcbe .Urx =_agga .Urx ;_fbg =true ;};if _dcbe .Ury < _agga .Ury {_dcbe .Ury =_agga .Ury ;_fbg =true ;};if _fbg {_cfge .MediaBox =_dcbe ;};return nil ;};
|
||
|
||
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
// Currently, the Outline object can only be used to construct PDF outlines.
|
||
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_dcbac pdfCIDFontType0 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){_ccgae :=_dcbac ._fcae ;if _dbeeb ,_cfaged :=_dcbac ._acbf [code ];_cfaged {_ccgae =_dbeeb ;};return _ee .CharMetrics {Wx :_ccgae },true ;};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_agdb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_afac ,_badf :=color .(*PdfColorDeviceCMYK );if !_badf {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dbcc :=_afac .C ();_cdaf :=_afac .M ();_cdafd :=_afac .Y ();_cgfd :=_afac .K ();_dbcc =_dbcc *(1-_cgfd )+_cgfd ;_cdaf =_cdaf *(1-_cgfd )+_cgfd ;
|
||
_cdafd =_cdafd *(1-_cgfd )+_cgfd ;_fbcc :=1-_dbcc ;_egbeb :=1-_cdaf ;_gcaac :=1-_cdafd ;return NewPdfColorDeviceRGB (_fbcc ,_egbeb ,_gcaac ),nil ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_dged *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_ebgd :=func (_cfeg float64 )float64 {if _cfeg >=6.0/29{return _cfeg *_cfeg *_cfeg ;};return 108.0/841*(_cfeg -4.0/29.0);};_dcgc :=img ._bffb ;if len (_dcgc )!=6{_ff .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");
|
||
_dcgc =_dged .DecodeArray ();};_cbag :=_gb .NewReader (img .getBase ());_fbgf :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._cdecc ,img ._bffb );_aacgc :=_gb .NewWriter (_fbgf );_dbcb :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_agbb :=make ([]uint32 ,3);var (_gabec error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_bggda ,_cabc ,_feef float64 ;);for {_gabec =_cbag .ReadSamples (_agbb );if _gabec ==_gd .EOF {break ;}else if _gabec !=nil {return img ,_gabec ;};Ls =float64 (_agbb [0])/_dbcb ;
|
||
As =float64 (_agbb [1])/_dbcb ;Bs =float64 (_agbb [2])/_dbcb ;Ls =_gf .LinearInterpolate (Ls ,0.0,1.0,_dcgc [0],_dcgc [1]);As =_gf .LinearInterpolate (As ,0.0,1.0,_dcgc [2],_dcgc [3]);Bs =_gf .LinearInterpolate (Bs ,0.0,1.0,_dcgc [4],_dcgc [5]);L =(Ls +16)/116+As /500;
|
||
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_dged .WhitePoint [0]*_ebgd (L );Y =_dged .WhitePoint [1]*_ebgd (M );Z =_dged .WhitePoint [2]*_ebgd (N );_bggda =3.240479*X +-1.537150*Y +-0.498535*Z ;_cabc =-0.969256*X +1.875992*Y +0.041556*Z ;_feef =0.055648*X +-0.204043*Y +1.057311*Z ;
|
||
_bggda =_egg .Min (_egg .Max (_bggda ,0),1.0);_cabc =_egg .Min (_egg .Max (_cabc ,0),1.0);_feef =_egg .Min (_egg .Max (_feef ,0),1.0);_agbb [0]=uint32 (_bggda *_dbcb );_agbb [1]=uint32 (_cabc *_dbcb );_agbb [2]=uint32 (_feef *_dbcb );if _gabec =_aacgc .WriteSamples (_agbb );
|
||
_gabec !=nil {return img ,_gabec ;};};return _ffba (&_fbgf ),nil ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_bdbea *PdfColorspaceDeviceN )GetNumComponents ()int {return _bdbea .ColorantNames .Len ()};
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_acagb *XObjectForm )GetContainingPdfObject ()_ce .PdfObject {return _acagb ._efffe };
|
||
|
||
// 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 (_dgddc *PdfFont )GetCharMetrics (code _dc .CharCode )(CharMetrics ,bool ){var _fdefg _ee .CharMetrics ;switch _gdeea :=_dgddc ._dace .(type ){case *pdfFontSimple :if _cagc ,_dbcbc :=_gdeea .GetCharMetrics (code );_dbcbc {return _cagc ,_dbcbc ;};case *pdfFontType0 :if _ffaccd ,_fgade :=_gdeea .GetCharMetrics (code );
|
||
_fgade {return _ffaccd ,_fgade ;};case *pdfCIDFontType0 :if _dedee ,_fffab :=_gdeea .GetCharMetrics (code );_fffab {return _dedee ,_fffab ;};case *pdfCIDFontType2 :if _fbbcg ,_dabbd :=_gdeea .GetCharMetrics (code );_dabbd {return _fbbcg ,_dabbd ;};case *pdfFontType3 :if _bfba ,_gcef :=_gdeea .GetCharMetrics (code );
|
||
_gcef {return _bfba ,_gcef ;};default:_ff .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",_dgddc ._dace );
|
||
return _fdefg ,false ;};if _dbbg ,_dfdab :=_dgddc .GetFontDescriptor ();_dfdab ==nil &&_dbbg !=nil {return _ee .CharMetrics {Wx :_dbbg ._abcb },true ;};_ff .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",_dgddc );
|
||
return _fdefg ,false ;};
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_bdc :=NewPdfAction ();_eba :=&PdfActionGoToE {};_eba .PdfAction =_bdc ;_bdc .SetContext (_eba );return _eba ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gda *PdfAnnotationMovie )ToPdfObject ()_ce .PdfObject {_gda .PdfAnnotation .ToPdfObject ();_fff :=_gda ._dec ;_bdeef :=_fff .PdfObject .(*_ce .PdfObjectDictionary );_bdeef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_bdeef .SetIfNotNil ("\u0054",_gda .T );_bdeef .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_gda .Movie );_bdeef .SetIfNotNil ("\u0041",_gda .A );return _fff ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gdcd *PdfActionLaunch )ToPdfObject ()_ce .PdfObject {_gdcd .PdfAction .ToPdfObject ();_cggg :=_gdcd ._bcc ;_deb :=_cggg .PdfObject .(*_ce .PdfObjectDictionary );_deb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeLaunch )));if _gdcd .F !=nil {_deb .Set ("\u0046",_gdcd .F .ToPdfObject ());
|
||
};_deb .SetIfNotNil ("\u0057\u0069\u006e",_gdcd .Win );_deb .SetIfNotNil ("\u004d\u0061\u0063",_gdcd .Mac );_deb .SetIfNotNil ("\u0055\u006e\u0069\u0078",_gdcd .Unix );_deb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gdcd .NewWindow );
|
||
return _cggg ;};
|
||
|
||
// 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 ;
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_gbcafe pdfFontType3 )Encoder ()_dc .TextEncoder {return _gbcafe ._aacfd };
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_gbbgb :=PdfWriter {};_gbbgb ._gdaab =map[_ce .PdfObject ]struct{}{};_gbbgb ._adbee =[]_ce .PdfObject {};_gbbgb ._dggcg =map[_ce .PdfObject ][]*_ce .PdfObjectDictionary {};_gbbgb ._daeac =map[_ce .PdfObject ]struct{}{};_gbbgb ._facee .Major =1;
|
||
_gbbgb ._facee .Minor =3;_ggdde :=_ce .MakeDict ();_ggdf :=[]struct{_dfcfg _ce .PdfObjectName ;_aagbb string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_adafdf ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_gebff ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_dgbea ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_gaeg ()},{"\u0054\u0069\u0074l\u0065",_daaef ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_caba ()}};
|
||
for _ ,_efacdd :=range _ggdf {if _efacdd ._aagbb !=""{_ggdde .Set (_efacdd ._dfcfg ,_ce .MakeString (_efacdd ._aagbb ));};};if _ecbgf :=_fbbcd ();!_ecbgf .IsZero (){if _cceff ,_ggga :=NewPdfDateFromTime (_ecbgf );_ggga ==nil {_ggdde .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cceff .ToPdfObject ());
|
||
};};if _cgefd :=_bfffb ();!_cgefd .IsZero (){if _fgcbe ,_gfgbd :=NewPdfDateFromTime (_cgefd );_gfgbd ==nil {_ggdde .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_fgcbe .ToPdfObject ());};};_faffg :=_ce .PdfIndirectObject {};_faffg .PdfObject =_ggdde ;_gbbgb ._dcecd =&_faffg ;
|
||
_gbbgb .addObject (&_faffg );_dafcf :=_ce .PdfIndirectObject {};_ffacg :=_ce .MakeDict ();_ffacg .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_dafcf .PdfObject =_ffacg ;_gbbgb ._bedff =&_dafcf ;_gbbgb .addObject (_gbbgb ._bedff );
|
||
_gacfc ,_abfc :=_cbfc ("\u0077");if _abfc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abfc );};_gbbgb ._cbdcb =_gacfc ;_edege :=_ce .PdfIndirectObject {};_degbdd :=_ce .MakeDict ();_degbdd .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067e\u0073"));
|
||
_edbaa :=_ce .PdfObjectArray {};_degbdd .Set ("\u004b\u0069\u0064\u0073",&_edbaa );_degbdd .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (0));_edege .PdfObject =_degbdd ;_gbbgb ._dbdaa =&_edege ;_gbbgb ._defec =map[_ce .PdfObject ]struct{}{};_gbbgb .addObject (_gbbgb ._dbdaa );
|
||
_ffacg .Set ("\u0050\u0061\u0067e\u0073",&_edege );_gbbgb ._bbef =_ffacg ;_ff .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_dafcf );return _gbbgb ;};func (_bdcd *PdfReader )newPdfActionURIFromDict (_bcfd *_ce .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_bcfd .Get ("\u0055\u0052\u0049"),IsMap :_bcfd .Get ("\u0049\u0073\u004da\u0070")},nil ;
|
||
};
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_fbffe *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _fbffe ._gage !=nil {return _fbffe ._gage ,nil ;};if _fbffe .Annots ==nil {_fbffe ._gage =[]*PdfAnnotation {};return nil ,nil ;};if _fbffe ._cagde ==nil {_fbffe ._gage =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_aadfd ,_abdc :=_fbffe ._cagde .loadAnnotations (_fbffe .Annots );if _abdc !=nil {return nil ,_abdc ;};if _aadfd ==nil {_fbffe ._gage =[]*PdfAnnotation {};};_fbffe ._gage =_aadfd ;return _fbffe ._gage ,nil ;};
|
||
|
||
// GetContext returns the context of the outline tree node, which is either a
|
||
// *PdfOutline or a *PdfOutlineItem. The method returns nil for uninitialized
|
||
// tree nodes.
|
||
func (_aeeag *PdfOutlineTreeNode )GetContext ()PdfModel {if _gbea ,_afgbd :=_aeeag ._edda .(*PdfOutline );_afgbd {return _gbea ;};if _ebceb ,_geff :=_aeeag ._edda .(*PdfOutlineItem );_geff {return _ebceb ;};_ff .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 ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_abaad *PdfShadingPatternType2 )ToPdfObject ()_ce .PdfObject {_abaad .PdfPattern .ToPdfObject ();_bdced :=_abaad .getDict ();if _abaad .Shading !=nil {_bdced .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_abaad .Shading .ToPdfObject ());};if _abaad .Matrix !=nil {_bdced .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_abaad .Matrix );
|
||
};if _abaad .ExtGState !=nil {_bdced .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_abaad .ExtGState );};return _abaad ._gadcb ;};
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_fgabe FieldFlag )Mask ()uint32 {return uint32 (_fgabe )};func (_baad *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};func (_cfde *PdfReader )newPdfAnnotationFileAttachmentFromDict (_gegd *_ce .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_ecaf :=PdfAnnotationFileAttachment {};
|
||
_ebf ,_aeaa :=_cfde .newPdfAnnotationMarkupFromDict (_gegd );if _aeaa !=nil {return nil ,_aeaa ;};_ecaf .PdfAnnotationMarkup =_ebf ;_ecaf .FS =_gegd .Get ("\u0046\u0053");_ecaf .Name =_gegd .Get ("\u004e\u0061\u006d\u0065");return &_ecaf ,nil ;};func _gaeg ()string {_cbcgc .Lock ();
|
||
defer _cbcgc .Unlock ();return _bfdac };
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_gecf :=NewPdfAnnotation ();_effa :=&PdfAnnotationUnderline {};_effa .PdfAnnotation =_gecf ;_effa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gecf .SetContext (_effa );return _effa ;};func _feed (_gacb _ce .PdfObject )(*PdfColorspaceCalGray ,error ){_dffd :=NewPdfColorspaceCalGray ();
|
||
if _gbedc ,_cdbf :=_gacb .(*_ce .PdfIndirectObject );_cdbf {_dffd ._aeadd =_gbedc ;};_gacb =_ce .TraceToDirectObject (_gacb );_edfg ,_eace :=_gacb .(*_ce .PdfObjectArray );if !_eace {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _edfg .Len ()!=2{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_gacb =_ce .TraceToDirectObject (_edfg .Get (0));_faf ,_eace :=_gacb .(*_ce .PdfObjectName );
|
||
if !_eace {return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_faf !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_e .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
|
||
};_gacb =_ce .TraceToDirectObject (_edfg .Get (1));_ecgd ,_eace :=_gacb .(*_ce .PdfObjectDictionary );if !_eace {return nil ,_e .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};_gacb =_ecgd .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gacb =_ce .TraceToDirectObject (_gacb );_badc ,_eace :=_gacb .(*_ce .PdfObjectArray );if !_eace {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
|
||
};if _badc .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_fabb ,_ecfae :=_badc .GetAsFloat64Slice ();
|
||
if _ecfae !=nil {return nil ,_ecfae ;};_dffd .WhitePoint =_fabb ;_gacb =_ecgd .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gacb !=nil {_gacb =_ce .TraceToDirectObject (_gacb );_fbaa ,_faef :=_gacb .(*_ce .PdfObjectArray );if !_faef {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");
|
||
};if _fbaa .Len ()!=3{return nil ,_e .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_ccce ,_bfcb :=_fbaa .GetAsFloat64Slice ();
|
||
if _bfcb !=nil {return nil ,_bfcb ;};_dffd .BlackPoint =_ccce ;};_gacb =_ecgd .Get ("\u0047\u0061\u006dm\u0061");if _gacb !=nil {_gacb =_ce .TraceToDirectObject (_gacb );_eagc ,_egca :=_ce .GetNumberAsFloat (_gacb );if _egca !=nil {return nil ,_e .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
|
||
};_dffd .Gamma =_eagc ;};return _dffd ,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 *_bcd .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_bcd .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_bcd .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_fdfad *PdfAppender ;_dcacf *DSS ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_gacbf *XObjectForm )ToPdfObject ()_ce .PdfObject {_fccdf :=_gacbf ._efffe ;_cccfe :=_fccdf .PdfObjectDictionary ;if _gacbf .Filter !=nil {_cccfe =_gacbf .Filter .MakeStreamDict ();_fccdf .PdfObjectDictionary =_cccfe ;};_cccfe .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_cccfe .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u006f\u0072\u006d"));_cccfe .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_gacbf .FormType );_cccfe .SetIfNotNil ("\u0042\u0042\u006f\u0078",_gacbf .BBox );_cccfe .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_gacbf .Matrix );
|
||
if _gacbf .Resources !=nil {_cccfe .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gacbf .Resources .ToPdfObject ());};_cccfe .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_gacbf .Group );_cccfe .SetIfNotNil ("\u0052\u0065\u0066",_gacbf .Ref );
|
||
_cccfe .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_gacbf .MetaData );_cccfe .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_gacbf .PieceInfo );_cccfe .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_gacbf .LastModified );
|
||
_cccfe .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_gacbf .StructParent );_cccfe .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gacbf .StructParents );_cccfe .SetIfNotNil ("\u004f\u0050\u0049",_gacbf .OPI );
|
||
_cccfe .SetIfNotNil ("\u004f\u0043",_gacbf .OC );_cccfe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gacbf .Name );_cccfe .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_gacbf .Stream ))));_fccdf .Stream =_gacbf .Stream ;return _fccdf ;
|
||
};
|
||
|
||
// 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 (_afada *PdfFont )CharcodesToStrings (charcodes []_dc .CharCode )([]string ,int ,int ){_fecc :=_afada .baseFields ();_fggae :=make ([]string ,0,len (charcodes ));_bgecf :=0;_fcadb :=_afada .Encoder ();_bbecf :=_fecc ._dgfcg !=nil &&_afada .IsSimple ()&&_afada .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_g .Contains (_fecc ._dgfcg .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
|
||
if !_bbecf &&_fcadb !=nil {switch _fgfca :=_fcadb .(type ){case _dc .SimpleEncoder :_cdceg :=_fgfca .BaseName ();if _ ,_befbb :=_fdaee [_cdceg ];_befbb {for _ ,_bbeea :=range charcodes {if _gbcc ,_afdb :=_fcadb .CharcodeToRune (_bbeea );_afdb {_fggae =append (_fggae ,string (_gbcc ));
|
||
}else {_ff .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",_bbeea ,charcodes ,_fecc .isCIDFont (),_afada ,_fcadb );
|
||
_bgecf ++;_fggae =append (_fggae ,_ga .MissingCodeString );};};return _fggae ,len (_fggae ),_bgecf ;};};};for _ ,_cagdb :=range charcodes {if _fecc ._dgfcg !=nil {if _bffa ,_baca :=_fecc ._dgfcg .CharcodeToUnicode (_ga .CharCode (_cagdb ));_baca {_fggae =append (_fggae ,_bffa );
|
||
continue ;};};if _fcadb !=nil {if _ggfef ,_cace :=_fcadb .CharcodeToRune (_cagdb );_cace {_fggae =append (_fggae ,string (_ggfef ));continue ;};};_ff .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",_cagdb ,charcodes ,_fecc .isCIDFont (),_afada ,_fcadb );
|
||
_bgecf ++;_fggae =append (_fggae ,_ga .MissingCodeString );};if _bgecf !=0{_ff .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 ),_bgecf ,_afada );
|
||
};return _fggae ,len (_fggae ),_bgecf ;};
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_bdcgf *PdfShading )GetContext ()PdfModel {return _bdcgf ._aadbc };
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_ebgb *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_gabe :=_gb .NewReader (img .getBase ());_abfe :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_ggbe :=_gb .NewWriter (_abfe );
|
||
_geba :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_ffda :=make ([]uint32 ,3);var (_dcdea error ;_fcga ,_eaga ,_fbdaa ,_gaeb ,_fbba ,_bgc float64 ;);for {_dcdea =_gabe .ReadSamples (_ffda );if _dcdea ==_gd .EOF {break ;}else if _dcdea !=nil {return img ,_dcdea ;
|
||
};_fcga =float64 (_ffda [0])/_geba ;_eaga =float64 (_ffda [1])/_geba ;_fbdaa =float64 (_ffda [2])/_geba ;_gaeb =_ebgb .Matrix [0]*_egg .Pow (_fcga ,_ebgb .Gamma [0])+_ebgb .Matrix [3]*_egg .Pow (_eaga ,_ebgb .Gamma [1])+_ebgb .Matrix [6]*_egg .Pow (_fbdaa ,_ebgb .Gamma [2]);
|
||
_fbba =_ebgb .Matrix [1]*_egg .Pow (_fcga ,_ebgb .Gamma [0])+_ebgb .Matrix [4]*_egg .Pow (_eaga ,_ebgb .Gamma [1])+_ebgb .Matrix [7]*_egg .Pow (_fbdaa ,_ebgb .Gamma [2]);_bgc =_ebgb .Matrix [2]*_egg .Pow (_fcga ,_ebgb .Gamma [0])+_ebgb .Matrix [5]*_egg .Pow (_eaga ,_ebgb .Gamma [1])+_ebgb .Matrix [8]*_egg .Pow (_fbdaa ,_ebgb .Gamma [2]);
|
||
_fcga =3.240479*_gaeb +-1.537150*_fbba +-0.498535*_bgc ;_eaga =-0.969256*_gaeb +1.875992*_fbba +0.041556*_bgc ;_fbdaa =0.055648*_gaeb +-0.204043*_fbba +1.057311*_bgc ;_fcga =_egg .Min (_egg .Max (_fcga ,0),1.0);_eaga =_egg .Min (_egg .Max (_eaga ,0),1.0);
|
||
_fbdaa =_egg .Min (_egg .Max (_fbdaa ,0),1.0);_ffda [0]=uint32 (_fcga *_geba );_ffda [1]=uint32 (_eaga *_geba );_ffda [2]=uint32 (_fbdaa *_geba );if _dcdea =_ggbe .WriteSamples (_ffda );_dcdea !=nil {return img ,_dcdea ;};};return _ffba (&_abfe ),nil ;
|
||
};func (_aeec *PdfReader )newPdfAnnotationSquareFromDict (_bbec *_ce .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_dede :=PdfAnnotationSquare {};_ecca ,_cacf :=_aeec .newPdfAnnotationMarkupFromDict (_bbec );if _cacf !=nil {return nil ,_cacf ;};
|
||
_dede .PdfAnnotationMarkup =_ecca ;_dede .BS =_bbec .Get ("\u0042\u0053");_dede .IC =_bbec .Get ("\u0049\u0043");_dede .BE =_bbec .Get ("\u0042\u0045");_dede .RD =_bbec .Get ("\u0052\u0044");return &_dede ,nil ;};func _debdea (_fdefa _ce .PdfObject )(*PdfFunctionType2 ,error ){_edcec :=&PdfFunctionType2 {};
|
||
var _cggff *_ce .PdfObjectDictionary ;if _adcfb ,_afafd :=_fdefa .(*_ce .PdfIndirectObject );_afafd {_ccacb ,_ggdcc :=_adcfb .PdfObject .(*_ce .PdfObjectDictionary );if !_ggdcc {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_edcec ._gbbb =_adcfb ;_cggff =_ccacb ;}else if _aebb ,_acgfa :=_fdefa .(*_ce .PdfObjectDictionary );_acgfa {_cggff =_aebb ;}else {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ff .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cggff .String ());
|
||
_cgaef ,_debfg :=_ce .TraceToDirectObject (_cggff .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_debfg {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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 _cgaef .Len ()< 0||_cgaef .Len ()%2!=0{_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_eaceb ,_ebed :=_cgaef .ToFloat64Array ();if _ebed !=nil {return nil ,_ebed ;};_edcec .Domain =_eaceb ;_cgaef ,_debfg =_ce .TraceToDirectObject (_cggff .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if _debfg {if _cgaef .Len ()< 0||_cgaef .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_afcfa ,_abaf :=_cgaef .ToFloat64Array ();if _abaf !=nil {return nil ,_abaf ;};_edcec .Range =_afcfa ;};_cgaef ,_debfg =_ce .TraceToDirectObject (_cggff .Get ("\u0043\u0030")).(*_ce .PdfObjectArray );if _debfg {_bedce ,_cfbdc :=_cgaef .ToFloat64Array ();
|
||
if _cfbdc !=nil {return nil ,_cfbdc ;};_edcec .C0 =_bedce ;};_cgaef ,_debfg =_ce .TraceToDirectObject (_cggff .Get ("\u0043\u0031")).(*_ce .PdfObjectArray );if _debfg {_aafc ,_cacgc :=_cgaef .ToFloat64Array ();if _cacgc !=nil {return nil ,_cacgc ;};_edcec .C1 =_aafc ;
|
||
};if len (_edcec .C0 )!=len (_edcec .C1 ){_ff .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_ce .ErrRangeError ;};N ,_ebed :=_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_cggff .Get ("\u004e")));
|
||
if _ebed !=nil {_ff .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",_cggff .String ());return nil ,_ebed ;};_edcec .N =N ;
|
||
return _edcec ,nil ;};
|
||
|
||
// Enable LTV enables the specified signature. The signing certificate
|
||
// chain is extracted from the signature dictionary. Optionally, additional
|
||
// certificates can be specified through the `extraCerts` parameter.
|
||
// The LTV client attempts to build the certificate chain up to a trusted root
|
||
// by downloading any missing certificates.
|
||
func (_becbe *LTV )Enable (sig *PdfSignature ,extraCerts []*_eg .Certificate )error {if _dbbf :=_becbe .validateSig (sig );_dbbf !=nil {return _dbbf ;};_cbbea ,_eedbg :=_becbe .generateVRIKey (sig );if _eedbg !=nil {return _eedbg ;};if _ ,_efbdf :=_becbe ._dcacf .VRI [_cbbea ];
|
||
_efbdf &&_becbe .SkipExisting {return nil ;};_cgef ,_eedbg :=sig .GetCerts ();if _eedbg !=nil {return _eedbg ;};return _becbe .enable (_cgef ,extraCerts ,_cbbea );};func (_bfbfd *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _bfbfd ._afda .GetCrypter ()!=nil &&!_bfbfd ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_bfgf :=_bfbfd ._cfcdg ;_edebb :=_bfgf .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _edebb ==nil {return nil ,nil ;};_fdbg ,_ccecd :=_ce .GetIndirect (_edebb );_edebb =_ce .TraceToDirectObject (_edebb );if _ce .IsNullObject (_edebb ){_ff .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 ;};_bdcda ,_fdee :=_ce .GetDict (_edebb );if !_fdee {_ff .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_edebb );_ff .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_edebb );};_ff .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_ff .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 !_bfbfd ._cgbdb {_daac :=_bfbfd .traverseObjectData (_bdcda );
|
||
if _daac !=nil {_ff .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",_daac );
|
||
return nil ,_daac ;};};_abcd ,_eadfd :=_bfbfd .newPdfAcroFormFromDict (_fdbg ,_bdcda );if _eadfd !=nil {return nil ,_eadfd ;};_abcd ._afab =!_ccecd ;return _abcd ,nil ;};
|
||
|
||
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
|
||
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorDeviceRGB [3]float64 ;
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_caf *PdfActionHide )ToPdfObject ()_ce .PdfObject {_caf .PdfAction .ToPdfObject ();_bccb :=_caf ._bcc ;_aead :=_bccb .PdfObject .(*_ce .PdfObjectDictionary );_aead .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeHide )));_aead .SetIfNotNil ("\u0054",_caf .T );
|
||
_aead .SetIfNotNil ("\u0048",_caf .H );return _bccb ;};func (_ceac *Image )samplesAddPadding (_bbegfa []uint32 )[]uint32 {_ddadf :=_gf .BytesPerLine (int (_ceac .Width ),int (_ceac .BitsPerComponent ),_ceac .ColorComponents )*(8/int (_ceac .BitsPerComponent ));
|
||
_bgde :=_ddadf *int (_ceac .Height );if len (_bbegfa )==_bgde {return _bbegfa ;};_cggbc :=make ([]uint32 ,_bgde );_acbff :=int (_ceac .Width )*_ceac .ColorComponents ;for _efacc :=0;_efacc < int (_ceac .Height );_efacc ++{_edad :=_efacc *int (_ceac .Width );
|
||
_ccaed :=_efacc *_ddadf ;for _aeceb :=0;_aeceb < _acbff ;_aeceb ++{_cggbc [_ccaed +_aeceb ]=_bbegfa [_edad +_aeceb ];};};return _cggbc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dcde *PdfAnnotationWidget )ToPdfObject ()_ce .PdfObject {_dcde .PdfAnnotation .ToPdfObject ();_dgg :=_dcde ._dec ;_ffdg :=_dgg .PdfObject .(*_ce .PdfObjectDictionary );if _dcde ._bbcf {return _dgg ;};_dcde ._bbcf =true ;_ffdg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_ffdg .SetIfNotNil ("\u0048",_dcde .H );_ffdg .SetIfNotNil ("\u004d\u004b",_dcde .MK );_ffdg .SetIfNotNil ("\u0041",_dcde .A );_ffdg .SetIfNotNil ("\u0041\u0041",_dcde .AA );_ffdg .SetIfNotNil ("\u0042\u0053",_dcde .BS );_bebf :=_dcde .Parent ;if _dcde ._bag !=nil {if _dcde ._bag ._aadeb ==_dcde ._dec {_dcde ._bag .ToPdfObject ();
|
||
};_bebf =_dcde ._bag .GetContainingPdfObject ();};if _bebf !=_dgg {_ffdg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_bebf );};_dcde ._bbcf =false ;return _dgg ;};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_affa :=&PdfColorspaceCalRGB {};_affa .BlackPoint =[]float64 {0.0,0.0,0.0};_affa .Gamma =[]float64 {1.0,1.0,1.0};_affa .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _affa ;};
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ce .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ce .PdfObject ;A _ce .PdfObject ;SE _ce .PdfObject ;C _ce .PdfObject ;F _ce .PdfObject ;
|
||
_ggcfgf *_ce .PdfIndirectObject ;};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_bedff *_ce .PdfIndirectObject ;_dbdaa *_ce .PdfIndirectObject ;_defec map[_ce .PdfObject ]struct{};_adbee []_ce .PdfObject ;_gdaab map[_ce .PdfObject ]struct{};_cagg []*_ce .PdfIndirectObject ;_cfcac *PdfOutlineTreeNode ;_bbef *_ce .PdfObjectDictionary ;
|
||
_daeaf []_ce .PdfObject ;_dcecd *_ce .PdfIndirectObject ;_cafdf *_dg .Writer ;_cgdfab int64 ;_dcdgg error ;_cgebe *_ce .PdfCrypt ;_fbfg *_ce .PdfObjectDictionary ;_ggbef *_ce .PdfIndirectObject ;_cbegb *_ce .PdfObjectArray ;_facee _ce .Version ;_aedga *bool ;
|
||
_dggcg map[_ce .PdfObject ][]*_ce .PdfObjectDictionary ;_aabaf *PdfAcroForm ;_bcged Optimizer ;_dgeef StandardApplier ;_abff map[int ]crossReference ;_bffgf int64 ;ObjNumOffset int ;_ddfff bool ;_fegdg _ce .XrefTable ;_efbcg int64 ;_bcefd int64 ;_fdegda map[_ce .PdfObject ]int64 ;
|
||
_daeac map[_ce .PdfObject ]struct{};_cbdcb string ;_dfaac []*PdfOutputIntent ;_aegf bool ;_aecc ,_efbed string ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aged *PdfAnnotationLine )ToPdfObject ()_ce .PdfObject {_aged .PdfAnnotation .ToPdfObject ();_eadg :=_aged ._dec ;_fagdd :=_eadg .PdfObject .(*_ce .PdfObjectDictionary );_aged .PdfAnnotationMarkup .appendToPdfDictionary (_fagdd );_fagdd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_fagdd .SetIfNotNil ("\u004c",_aged .L );_fagdd .SetIfNotNil ("\u0042\u0053",_aged .BS );_fagdd .SetIfNotNil ("\u004c\u0045",_aged .LE );_fagdd .SetIfNotNil ("\u0049\u0043",_aged .IC );_fagdd .SetIfNotNil ("\u004c\u004c",_aged .LL );_fagdd .SetIfNotNil ("\u004c\u004c\u0045",_aged .LLE );
|
||
_fagdd .SetIfNotNil ("\u0043\u0061\u0070",_aged .Cap );_fagdd .SetIfNotNil ("\u0049\u0054",_aged .IT );_fagdd .SetIfNotNil ("\u004c\u004c\u004f",_aged .LLO );_fagdd .SetIfNotNil ("\u0043\u0050",_aged .CP );_fagdd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_aged .Measure );
|
||
_fagdd .SetIfNotNil ("\u0043\u004f",_aged .CO );return _eadg ;};func _caef (_fgdf *_ce .PdfIndirectObject ,_dgea *_ce .PdfObjectDictionary )(*DSS ,error ){if _fgdf ==nil {_fgdf =_ce .MakeIndirectObject (nil );};_fgdf .PdfObject =_ce .MakeDict ();_dcbc :=map[string ]*VRI {};
|
||
if _dbbb ,_gbefg :=_ce .GetDict (_dgea .Get ("\u0056\u0052\u0049"));_gbefg {for _ ,_cabgc :=range _dbbb .Keys (){if _gfaf ,_ffad :=_ce .GetDict (_dbbb .Get (_cabgc ));_ffad {_dcbc [_g .ToUpper (_cabgc .String ())]=_dcgbb (_gfaf );};};};return &DSS {Certs :_aaefeg (_dgea .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_aaefeg (_dgea .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_aaefeg (_dgea .Get ("\u0043\u0052\u004c\u0073")),VRI :_dcbc ,_ecde :_fgdf },nil ;
|
||
};type pdfCIDFontType0 struct{fontCommon ;_dcbcf *_ce .PdfIndirectObject ;_afgge _dc .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_ce .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ce .PdfObject ;W _ce .PdfObject ;DW2 _ce .PdfObject ;W2 _ce .PdfObject ;_acbf map[_dc .CharCode ]float64 ;_fcae float64 ;};
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_dbfg *PdfPage )ToPdfObject ()_ce .PdfObject {_caac :=_dbfg ._acbbb ;_dbfg .GetPageDict ();return _caac ;};func (_gceea *PdfWriter )setHashIDs (_gagce _d .Hash )error {_gafab :=_gagce .Sum (nil );if _gceea ._aecc ==""{_gceea ._aecc =_bd .EncodeToString (_gafab [:8]);
|
||
};_gceea .setDocumentIDs (_gceea ._aecc ,_bd .EncodeToString (_gafab [8:]));return nil ;};func (_dfegd *LTV )getCRLs (_cfaed []*_eg .Certificate )([][]byte ,error ){_gcecd :=make ([][]byte ,0,len (_cfaed ));for _ ,_eaef :=range _cfaed {for _ ,_ffcb :=range _eaef .CRLDistributionPoints {if _dfegd .CertClient .IsCA (_eaef ){continue ;
|
||
};_edbf ,_bcbdf :=_dfegd .CRLClient .MakeRequest (_ffcb ,_eaef );if _bcbdf !=nil {_ff .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",_bcbdf );continue ;
|
||
};_gcecd =append (_gcecd ,_edbf );};};return _gcecd ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_cdcbd *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_dbfcf *PdfSignature )GetContainingPdfObject ()_ce .PdfObject {return _dbfcf ._ggbg };
|
||
|
||
// 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 (_eagfe *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _eagfe .flattenFieldsWithOpts (false ,appgen ,opts );};var _ pdfFont =(*pdfFontType3 )(nil );
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_fdcaa *PdfPage )HasXObjectByName (name _ce .PdfObjectName )bool {_abgea ,_aadee :=_fdcaa .Resources .XObject .(*_ce .PdfObjectDictionary );if !_aadee {return false ;};if _abfd :=_abgea .Get (name );_abfd !=nil {return true ;};return false ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cgdcd *PdfShadingType1 )ToPdfObject ()_ce .PdfObject {_cgdcd .PdfShading .ToPdfObject ();_eagee ,_bafa :=_cgdcd .getShadingDict ();if _bafa !=nil {_ff .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 _cgdcd .Domain !=nil {_eagee .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cgdcd .Domain );};if _cgdcd .Matrix !=nil {_eagee .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgdcd .Matrix );};if _cgdcd .Function !=nil {if len (_cgdcd .Function )==1{_eagee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgdcd .Function [0].ToPdfObject ());
|
||
}else {_ebae :=_ce .MakeArray ();for _ ,_cceeb :=range _cgdcd .Function {_ebae .Append (_cceeb .ToPdfObject ());};_eagee .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ebae );};};return _cgdcd ._agcdg ;};func (_dbcga *PdfWriter )writeObjectsInStreams (_dfbea map[_ce .PdfObject ]bool )error {for _ ,_feda :=range _dbcga ._adbee {if _gbcbf :=_dfbea [_feda ];
|
||
_gbcbf {continue ;};_gecae :=int64 (0);switch _eecgf :=_feda .(type ){case *_ce .PdfIndirectObject :_gecae =_eecgf .ObjectNumber ;case *_ce .PdfObjectStream :_gecae =_eecgf .ObjectNumber ;case *_ce .PdfObjectStreams :_gecae =_eecgf .ObjectNumber ;default:_ff .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",_feda );
|
||
return ErrTypeCheck ;};if _dbcga ._cgebe !=nil &&_feda !=_dbcga ._ggbef {_begd :=_dbcga ._cgebe .Encrypt (_feda ,_gecae ,0);if _begd !=nil {_ff .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",_begd );
|
||
return _begd ;};};_dbcga .writeObject (int (_gecae ),_feda );};return nil ;};func (_geg *PdfReader )newPdfActionNamedFromDict (_gdf *_ce .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_gdf .Get ("\u004e")},nil ;};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_ecc *PdfAction )GetContext ()PdfModel {if _ecc ==nil {return nil ;};return _ecc ._gbf ;};
|
||
|
||
// 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 ){_aaafe ,_gdef :=_dd .Open (filePath );if _gdef !=nil {_ff .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",_gdef );
|
||
return nil ,_gdef ;};defer _aaafe .Close ();return NewPdfFontFromTTF (_aaafe );};
|
||
|
||
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
|
||
func (_agcde *PdfPageResources )HasPatternByName (keyName _ce .PdfObjectName )bool {_ ,_fdacd :=_agcde .GetPatternByName (keyName );return _fdacd ;};func (_cccgfb *PdfWriter )setDocInfo (_gaaca _ce .PdfObject ){if _cccgfb .hasObject (_cccgfb ._dcecd ){delete (_cccgfb ._gdaab ,_cccgfb ._dcecd );
|
||
delete (_cccgfb ._daeac ,_cccgfb ._dcecd );for _gcda ,_caccf :=range _cccgfb ._adbee {if _caccf ==_cccgfb ._dcecd {copy (_cccgfb ._adbee [_gcda :],_cccgfb ._adbee [_gcda +1:]);_cccgfb ._adbee [len (_cccgfb ._adbee )-1]=nil ;_cccgfb ._adbee =_cccgfb ._adbee [:len (_cccgfb ._adbee )-1];
|
||
break ;};};};_bgbdc :=_ce .PdfIndirectObject {};_bgbdc .PdfObject =_gaaca ;_cccgfb ._dcecd =&_bgbdc ;_cccgfb .addObject (&_bgbdc );};
|
||
|
||
// 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 (_fbef *PdfFieldButton )GetType ()ButtonType {_dagc :=ButtonTypeCheckbox ;if _fbef .Ff !=nil {if (uint32 (*_fbef .Ff )&FieldFlagPushbutton .Mask ())> 0{_dagc =ButtonTypePush ;}else if (uint32 (*_fbef .Ff )&FieldFlagRadio .Mask ())> 0{_dagc =ButtonTypeRadio ;
|
||
};};return _dagc ;};func _fgda (_abdga StdFontName )(pdfFontSimple ,error ){_ffbf ,_eedfg :=_ee .NewStdFontByName (_abdga );if !_eedfg {return pdfFontSimple {},ErrFontNotSupported ;};_cbce :=_bcegg (_ffbf );return _cbce ,nil ;};func (_baafd *Image )resampleLowBits (_cddge []uint32 ){_dffgc :=_gf .BytesPerLine (int (_baafd .Width ),int (_baafd .BitsPerComponent ),_baafd .ColorComponents );
|
||
_bacgd :=make ([]byte ,_baafd .ColorComponents *_dffgc *int (_baafd .Height ));_befec :=int (_baafd .BitsPerComponent )*_baafd .ColorComponents *int (_baafd .Width );_fefed :=uint8 (8);var (_cfgg ,_adaf int ;_aecbg uint32 ;);for _gbcdf :=0;_gbcdf < int (_baafd .Height );
|
||
_gbcdf ++{_adaf =_gbcdf *_dffgc ;for _cfda :=0;_cfda < _befec ;_cfda ++{_aecbg =_cddge [_cfgg ];_fefed -=uint8 (_baafd .BitsPerComponent );_bacgd [_adaf ]|=byte (_aecbg )<<_fefed ;if _fefed ==0{_fefed =8;_adaf ++;};_cfgg ++;};};_baafd .Data =_bacgd ;};
|
||
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_cacg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_aecff :=_gb .NewReader (img .getBase ());_fcdd :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._cdecc ,img ._bffb );
|
||
_eacdb :=_gb .NewWriter (_fcdd );_deac :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_acfde :=_cacg .GetNumComponents ();_dffcb :=make ([]uint32 ,_acfde );_cbgd :=make ([]float64 ,_acfde );for {_cgdc :=_aecff .ReadSamples (_dffcb );if _cgdc ==_gd .EOF {break ;
|
||
}else if _cgdc !=nil {return img ,_cgdc ;};for _gccc :=0;_gccc < _acfde ;_gccc ++{_cfegf :=float64 (_dffcb [_gccc ])/_deac ;_cbgd [_gccc ]=_cfegf ;};_gbggb ,_cgdc :=_cacg .TintTransform .Evaluate (_cbgd );if _cgdc !=nil {return img ,_cgdc ;};for _ ,_fdcaf :=range _gbggb {_fdcaf =_egg .Min (_egg .Max (0,_fdcaf ),1.0);
|
||
if _cgdc =_eacdb .WriteSample (uint32 (_fdcaf *_deac ));_cgdc !=nil {return img ,_cgdc ;};};};return _cacg .AlternateSpace .ImageToRGB (_ffba (&_fcdd ));};
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_cffbg :=&PdfAppender {_gbbg :reader ._eggc ,Reader :reader ,_egeb :reader ._afda ,_ccbd :reader ._efdafe };_eead ,_edcbe :=_cffbg ._gbbg .Seek (0,_gd .SeekEnd );if _edcbe !=nil {return nil ,_edcbe ;
|
||
};_cffbg ._gafg =_eead ;if _ ,_edcbe =_cffbg ._gbbg .Seek (0,_gd .SeekStart );_edcbe !=nil {return nil ,_edcbe ;};_cffbg ._fcda ,_edcbe =NewPdfReader (_cffbg ._gbbg );if _edcbe !=nil {return nil ,_edcbe ;};for _ ,_gfee :=range _cffbg .Reader .GetObjectNums (){if _cffbg ._agac < _gfee {_cffbg ._agac =_gfee ;
|
||
};};_cffbg ._agfe =_cffbg ._egeb .GetXrefTable ();_cffbg ._gcfe =_cffbg ._egeb .GetXrefOffset ();_cffbg ._ggdc =append (_cffbg ._ggdc ,_cffbg ._fcda .PageList ...);_cffbg ._acbd =make (map[_ce .PdfObject ]struct{});_cffbg ._fadeg =make (map[_ce .PdfObject ]int64 );
|
||
_cffbg ._gecg =make (map[_ce .PdfObject ]struct{});_cffbg ._fed =_cffbg ._fcda .AcroForm ;_cffbg ._gee =_cffbg ._fcda .DSS ;return _cffbg ,nil ;};
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ce .PdfObject ;};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_fab :=PdfColorCalGray (grayVal );return &_fab ;};func (_fcafb *pdfFontSimple )getFontEncoding ()(_fegde string ,_eeef map[_dc .CharCode ]_dc .GlyphName ,_beeed error ){_fegde ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
|
||
if _gedf ,_bagg :=_dggec [_fcafb ._egacd ];_bagg {_fegde =_gedf ;}else if _fcafb .fontFlags ()&_abda !=0{for _cdcdg ,_agbf :=range _dggec {if _g .Contains (_fcafb ._egacd ,_cdcdg ){_fegde =_agbf ;break ;};};};if _fcafb .Encoding ==nil {return _fegde ,nil ,nil ;
|
||
};switch _adbg :=_fcafb .Encoding .(type ){case *_ce .PdfObjectName :return string (*_adbg ),nil ,nil ;case *_ce .PdfObjectDictionary :_cbaf ,_ggda :=_ce .GetName (_adbg .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _ggda {_fegde =_cbaf .String ();
|
||
};if _dcga :=_adbg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_dcga !=nil {_acbbd ,_gbcbg :=_ce .GetArray (_dcga );if !_gbcbg {_ff .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",_adbg ,_adbg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_ce .ErrTypeError ;};_eeef ,_beeed =_dc .FromFontDifferences (_acbbd );};return _fegde ,_eeef ,_beeed ;default:_ff .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",_fcafb .Encoding ,_fcafb .Encoding );
|
||
return "",nil ,_ce .ErrTypeError ;};};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_edda interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ce .PdfObject ;Name _ce .PdfObject ;State _ce .PdfObject ;StateModel _ce .PdfObject ;};type pdfFont interface{_ee .Font ;
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_ce .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ce .PdfObject ;BS _ce .PdfObject ;};
|
||
|
||
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
|
||
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_ccdc :=&PdfColorPatternType3 {};return _ccdc };
|
||
|
||
// FieldImageProvider provides fields images for specified fields.
|
||
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
|
||
|
||
// 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 (_cgcb *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _abeab []*PdfOutlineTreeNode ;var _gcaf []string ;var _cabea func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_cabea =func (_cgegg *PdfOutlineTreeNode ,_edgbf *[]*PdfOutlineTreeNode ,_agdfd *[]string ,_ebef int ){if _cgegg ==nil {return ;
|
||
};if _cgegg ._edda ==nil {_ff .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 ;};_gacfd ,_aefd :=_cgegg ._edda .(*PdfOutlineItem );if _aefd {*_edgbf =append (*_edgbf ,&_gacfd .PdfOutlineTreeNode );
|
||
_cbbgf :=_g .Repeat ("\u0020",_ebef *2)+_gacfd .Title .Decoded ();*_agdfd =append (*_agdfd ,_cbbgf );};if _cgegg .First !=nil {_fgcc :=_g .Repeat ("\u0020",_ebef *2)+"\u002b";*_agdfd =append (*_agdfd ,_fgcc );_cabea (_cgegg .First ,_edgbf ,_agdfd ,_ebef +1);
|
||
};if _aefd &&_gacfd .Next !=nil {_cabea (_gacfd .Next ,_edgbf ,_agdfd ,_ebef );};};_cabea (_cgcb ._dbbfe ,&_abeab ,&_gcaf ,0);return _abeab ,_gcaf ,nil ;};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_acaae *PdfBorderStyle )SetBorderWidth (width float64 ){_acaae .W =&width };
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_gbbg _gd .ReadSeeker ;_egeb *_ce .PdfParser ;_fcda *PdfReader ;Reader *PdfReader ;_ggdc []*PdfPage ;_fed *PdfAcroForm ;_gee *DSS ;_acec *Permissions ;_agfe _ce .XrefTable ;_gcfe int64 ;_agac int ;_beff []_ce .PdfObject ;_acbd map[_ce .PdfObject ]struct{};
|
||
_fadeg map[_ce .PdfObject ]int64 ;_gecg map[_ce .PdfObject ]struct{};_ccbd map[_ce .PdfObject ]struct{};_gafg int64 ;_fgegg bool ;_afef string ;_debba *EncryptOptions ;_geaf *PdfInfo ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_ggea *PdfColorLab )B ()float64 {return _ggea [2]};
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_dbecf *PdfPageResources )GetShadingByName (keyName _ce .PdfObjectName )(*PdfShading ,bool ){if _dbecf .Shading ==nil {return nil ,false ;};_bdbgb ,_fcgea :=_ce .TraceToDirectObject (_dbecf .Shading ).(*_ce .PdfObjectDictionary );if !_fcgea {_ff .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",_dbecf .Shading );
|
||
return nil ,false ;};if _eeedeb :=_bdbgb .Get (keyName );_eeedeb !=nil {_efbag ,_ffcfe :=_gaefc (_eeedeb );if _ffcfe !=nil {_ff .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",_ffcfe );
|
||
return nil ,false ;};return _efbag ,true ;};return nil ,false ;};func (_ebga *PdfWriter )mapObjectStreams (_gddbc bool )(map[_ce .PdfObject ]bool ,bool ){_acbdce :=make (map[_ce .PdfObject ]bool );for _ ,_afdgfd :=range _ebga ._adbee {if _ccddg ,_ddcfd :=_afdgfd .(*_ce .PdfObjectStreams );
|
||
_ddcfd {_gddbc =true ;for _ ,_bbdeg :=range _ccddg .Elements (){_acbdce [_bbdeg ]=true ;if _cgfed ,_fdgfgg :=_bbdeg .(*_ce .PdfIndirectObject );_fdgfgg {_acbdce [_cgfed .PdfObject ]=true ;};};};};return _acbdce ,_gddbc ;};func (_baggc *PdfPattern )getDict ()*_ce .PdfObjectDictionary {if _afdgg ,_cfefb :=_baggc ._gadcb .(*_ce .PdfIndirectObject );
|
||
_cfefb {_bdeb ,_afadee :=_afdgg .PdfObject .(*_ce .PdfObjectDictionary );if !_afadee {return nil ;};return _bdeb ;}else if _gcea ,_aaacd :=_baggc ._gadcb .(*_ce .PdfObjectStream );_aaacd {return _gcea .PdfObjectDictionary ;}else {_ff .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",_baggc ._gadcb );
|
||
return nil ;};};
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _ce .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _ddfcd *_ce .PdfIndirectObject ;var _fbaf *_ce .PdfObjectName ;var _daf *_ce .PdfObjectArray ;if _eeedg ,_bac :=obj .(*_ce .PdfIndirectObject );
|
||
_bac {_ddfcd =_eeedg ;};obj =_ce .TraceToDirectObject (obj );switch _dafg :=obj .(type ){case *_ce .PdfObjectArray :_daf =_dafg ;case *_ce .PdfObjectName :_fbaf =_dafg ;};if _fbaf !=nil {switch *_fbaf {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:_ff .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",*_fbaf );return nil ,_afga ;};};if _daf !=nil &&_daf .Len ()> 0{var _aaac _ce .PdfObject =_ddfcd ;
|
||
if _ddfcd ==nil {_aaac =_daf ;};if _gfeea ,_bcfeba :=_ce .GetName (_daf .Get (0));_bcfeba {switch _gfeea .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _daf .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _daf .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _daf .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _feed (_aaac );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _adc (_aaac );
|
||
case "\u004c\u0061\u0062":return _fcgd (_aaac );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _gdgff (_aaac );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _dbga (_aaac );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _cefb (_aaac );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _ddce (_aaac );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _eage (_aaac );default:_ff .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",*_gfeea );
|
||
};};};_ff .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 (_cfeaa *PdfWriter )updateObjectNumbers (){_fbece :=_cfeaa .ObjNumOffset ;_fgag :=0;for _ ,_acbcg :=range _cfeaa ._adbee {_gedfa :=int64 (_fgag +1+_fbece );_abcfb :=true ;if _cfeaa ._ddfff {if _efeaa ,_ebfcac :=_cfeaa ._fdegda [_acbcg ];
|
||
_ebfcac {_gedfa =_efeaa ;_abcfb =false ;};};switch _accad :=_acbcg .(type ){case *_ce .PdfIndirectObject :_accad .ObjectNumber =_gedfa ;_accad .GenerationNumber =0;case *_ce .PdfObjectStream :_accad .ObjectNumber =_gedfa ;_accad .GenerationNumber =0;case *_ce .PdfObjectStreams :_accad .ObjectNumber =_gedfa ;
|
||
_accad .GenerationNumber =0;default:_ff .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",_accad );continue ;
|
||
};if _abcfb {_fgag ++;};};_acfcd :=func (_efcgf _ce .PdfObject )int64 {switch _ecfgca :=_efcgf .(type ){case *_ce .PdfIndirectObject :return _ecfgca .ObjectNumber ;case *_ce .PdfObjectStream :return _ecfgca .ObjectNumber ;case *_ce .PdfObjectStreams :return _ecfgca .ObjectNumber ;
|
||
};return 0;};_bf .SliceStable (_cfeaa ._adbee ,func (_cccgdg ,_cacaa int )bool {return _acfcd (_cfeaa ._adbee [_cccgdg ])< _acfcd (_cfeaa ._adbee [_cacaa ])});};func (_ebfa *PdfReader )newPdfAnnotationWatermarkFromDict (_dab *_ce .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_ecfea :=PdfAnnotationWatermark {};
|
||
_ecfea .FixedPrint =_dab .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");return &_ecfea ,nil ;};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_dace pdfFont };
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_cdeeb *PdfColorLab )L ()float64 {return _cdeeb [0]};
|
||
|
||
// Items returns all children outline items.
|
||
func (_gebgc *OutlineItem )Items ()[]*OutlineItem {return _gebgc .Entries };func _bcea (_dfbg *_ce .PdfObjectDictionary )(*PdfShadingPattern ,error ){_cfdfg :=&PdfShadingPattern {};_ecbee :=_dfbg .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _ecbee ==nil {_ff .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_dbaad ,_fadc :=_gaefc (_ecbee );if _fadc !=nil {_ff .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_fadc );return nil ,_fadc ;
|
||
};_cfdfg .Shading =_dbaad ;if _ffcgfe :=_dfbg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_ffcgfe !=nil {_eagbd ,_cdcef :=_ffcgfe .(*_ce .PdfObjectArray );if !_cdcef {_ff .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",_ffcgfe );
|
||
return nil ,_ce .ErrTypeError ;};_cfdfg .Matrix =_eagbd ;};if _eaacf :=_dfbg .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_eaacf !=nil {_cfdfg .ExtGState =_eaacf ;};return _cfdfg ,nil ;};
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_cdag *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _cdag ._gage ==nil {_cdag .GetAnnotations ();};_cdag ._gage =append (_cdag ._gage ,annot );};
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_afg :=NewPdfAction ();_gcf :=&PdfActionHide {};_gcf .PdfAction =_afg ;_afg .SetContext (_gcf );return _gcf ;};func _cedd (_accb *PdfPage )map[_ce .PdfObjectName ]_ce .PdfObject {_cafc :=make (map[_ce .PdfObjectName ]_ce .PdfObject );
|
||
if _accb .Resources ==nil {return _cafc ;};if _accb .Resources .Font !=nil {if _cabg ,_ecfd :=_ce .GetDict (_accb .Resources .Font );_ecfd {for _ ,_ged :=range _cabg .Keys (){_cafc [_ged ]=_cabg .Get (_ged );};};};if _accb .Resources .ExtGState !=nil {if _bbff ,_gdbe :=_ce .GetDict (_accb .Resources .ExtGState );
|
||
_gdbe {for _ ,_dfbc :=range _bbff .Keys (){_cafc [_dfbc ]=_bbff .Get (_dfbc );};};};if _accb .Resources .XObject !=nil {if _gcb ,_afad :=_ce .GetDict (_accb .Resources .XObject );_afad {for _ ,_abgc :=range _gcb .Keys (){_cafc [_abgc ]=_gcb .Get (_abgc );
|
||
};};};if _accb .Resources .Pattern !=nil {if _cgade ,_gegc :=_ce .GetDict (_accb .Resources .Pattern );_gegc {for _ ,_gdgf :=range _cgade .Keys (){_cafc [_gdgf ]=_cgade .Get (_gdgf );};};};if _accb .Resources .Shading !=nil {if _feeb ,_bga :=_ce .GetDict (_accb .Resources .Shading );
|
||
_bga {for _ ,_bfbf :=range _feeb .Keys (){_cafc [_bfbf ]=_feeb .Get (_bfbf );};};};if _accb .Resources .ProcSet !=nil {if _ddcg ,_cgga :=_ce .GetDict (_accb .Resources .ProcSet );_cgga {for _ ,_adea :=range _ddcg .Keys (){_cafc [_adea ]=_ddcg .Get (_adea );
|
||
};};};if _accb .Resources .Properties !=nil {if _caaa ,_ebff :=_ce .GetDict (_accb .Resources .Properties );_ebff {for _ ,_egde :=range _caaa .Keys (){_cafc [_egde ]=_caaa .Get (_egde );};};};return _cafc ;};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_eecag :=&PdfSignature {Type :_ce .MakeName ("\u0053\u0069\u0067"),Handler :handler };_ccfaa :=&pdfSignDictionary {PdfObjectDictionary :_ce .MakeDict (),_efaef :&handler ,_gdbgfe :_eecag };
|
||
_eecag ._ggbg =_ce .MakeIndirectObject (_ccfaa );return _eecag ;};
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_dbbeed *PdfSignature )Initialize ()error {if _dbbeed .Handler ==nil {return _ge .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 _dbbeed .Handler .InitSignature (_dbbeed );};func _acab (_cfdag *XObjectImage )error {if _cfdag .SMask ==nil {return nil ;};_ecgbc ,_ccgb :=_cfdag .SMask .(*_ce .PdfObjectStream );if !_ccgb {_ff .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 _ce .ErrTypeError ;};_fdaef :=_ecgbc .PdfObjectDictionary ;_ceccf :=_fdaef .Get ("\u004d\u0061\u0074t\u0065");if _ceccf ==nil {return nil ;};_aadbfa ,_abcag :=_fceadg (_ceccf .(*_ce .PdfObjectArray ));if _abcag !=nil {return _abcag ;};_dggae :=_ce .MakeArrayFromFloats ([]float64 {_aadbfa });
|
||
_fdaef .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dggae );return nil ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_eeafd *PdfOutline )ToPdfObject ()_ce .PdfObject {_dfdc :=_eeafd ._aedbf ;_bcdba :=_dfdc .PdfObject .(*_ce .PdfObjectDictionary );_bcdba .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _eeafd .First !=nil {_bcdba .Set ("\u0046\u0069\u0072s\u0074",_eeafd .First .ToPdfObject ());
|
||
};if _eeafd .Last !=nil {_bcdba .Set ("\u004c\u0061\u0073\u0074",_eeafd .Last .GetContext ().GetContainingPdfObject ());};if _eeafd .Parent !=nil {_bcdba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eeafd .Parent .GetContext ().GetContainingPdfObject ());
|
||
};if _eeafd .Count !=nil {_bcdba .Set ("\u0043\u006f\u0075n\u0074",_ce .MakeInteger (*_eeafd .Count ));};return _dfdc ;};var _caege =_cd .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");func (_eaaf *PdfReader )newPdfAnnotationUnderlineFromDict (_afe *_ce .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ggec :=PdfAnnotationUnderline {};
|
||
_gcaa ,_adbb :=_eaaf .newPdfAnnotationMarkupFromDict (_afe );if _adbb !=nil {return nil ,_adbb ;};_ggec .PdfAnnotationMarkup =_gcaa ;_ggec .QuadPoints =_afe .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ggec ,nil ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_ccacd *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_ccacd .NumInputs {_ff .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 ,_ge .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _ccacd ._dfcag ==nil {_effac :=_ccacd .processSamples ();if _effac !=nil {return nil ,_effac ;};};_ccbe :=_ccacd .Encode ;if _ccbe ==nil {_ccbe =[]float64 {};
|
||
for _dbea :=0;_dbea < len (_ccacd .Size );_dbea ++{_ccbe =append (_ccbe ,0);_ccbe =append (_ccbe ,float64 (_ccacd .Size [_dbea ]-1));};};_ccgcf :=_ccacd .Decode ;if _ccgcf ==nil {_ccgcf =_ccacd .Range ;};_cfddb :=make ([]int ,len (x ));for _gdfbe :=0;_gdfbe < len (x );
|
||
_gdfbe ++{_cdbc :=x [_gdfbe ];_dggee :=_egg .Min (_egg .Max (_cdbc ,_ccacd .Domain [2*_gdfbe ]),_ccacd .Domain [2*_gdfbe +1]);_efffb :=_gf .LinearInterpolate (_dggee ,_ccacd .Domain [2*_gdfbe ],_ccacd .Domain [2*_gdfbe +1],_ccbe [2*_gdfbe ],_ccbe [2*_gdfbe +1]);
|
||
_beeedb :=_egg .Min (_egg .Max (_efffb ,0),float64 (_ccacd .Size [_gdfbe ]-1));_ggaage :=int (_egg .Floor (_beeedb +0.5));if _ggaage < 0{_ggaage =0;}else if _ggaage > _ccacd .Size [_gdfbe ]{_ggaage =_ccacd .Size [_gdfbe ]-1;};_cfddb [_gdfbe ]=_ggaage ;
|
||
};_fcab :=_cfddb [0];for _cbdg :=1;_cbdg < _ccacd .NumInputs ;_cbdg ++{_geefe :=_cfddb [_cbdg ];for _cefc :=0;_cefc < _cbdg ;_cefc ++{_geefe *=_ccacd .Size [_cefc ];};_fcab +=_geefe ;};_fcab *=_ccacd .NumOutputs ;var _ccef []float64 ;for _ffga :=0;_ffga < _ccacd .NumOutputs ;
|
||
_ffga ++{_fbde :=_fcab +_ffga ;if _fbde >=len (_ccacd ._dfcag ){_ff .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 ;};_bgbb :=_ccacd ._dfcag [_fbde ];_ecaad :=_gf .LinearInterpolate (float64 (_bgbb ),0,_egg .Pow (2,float64 (_ccacd .BitsPerSample )),_ccgcf [2*_ffga ],_ccgcf [2*_ffga +1]);_fgbg :=_egg .Min (_egg .Max (_ecaad ,_ccacd .Range [2*_ffga ]),_ccacd .Range [2*_ffga +1]);
|
||
_ccef =append (_ccef ,_fgbg );};return _ccef ,nil ;};
|
||
|
||
// GetColorspaces loads PdfPageResourcesColorspaces from `r.ColorSpace` and returns an error if there
|
||
// is a problem loading. Once loaded, the same object is returned on multiple calls.
|
||
func (_dffbg *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _dffbg ._acffc !=nil {return _dffbg ._acffc ,nil ;};if _dffbg .ColorSpace ==nil {return nil ,nil ;};_fffc ,_bgdcb :=_cccf (_dffbg .ColorSpace );if _bgdcb !=nil {return nil ,_bgdcb ;
|
||
};_dffbg ._acffc =_fffc ;return _dffbg ._acffc ,nil ;};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_edcc *PdfFieldButton )IsCheckbox ()bool {return _edcc .GetType ()==ButtonTypeCheckbox };
|
||
|
||
// GetNameDictionary returns the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_cgacb *PdfReader )GetNameDictionary ()(_ce .PdfObject ,error ){_bfdcc :=_ce .ResolveReference (_cgacb ._cfcdg .Get ("\u004e\u0061\u006de\u0073"));if _bfdcc ==nil {return nil ,nil ;};if !_cgacb ._cgbdb {_ebeda :=_cgacb .traverseObjectData (_bfdcc );
|
||
if _ebeda !=nil {return nil ,_ebeda ;};};return _bfdcc ,nil ;};func (_effcf *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _effcf ._daebd };
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_cfgd *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_bfaf *modelManager )Register (primitive _ce .PdfObject ,model PdfModel ){_bfaf ._dgefa [model ]=primitive ;_bfaf ._adbfe [primitive ]=model ;};
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _ce .PdfObject ;IsMap _ce .PdfObject ;};
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _ce .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ce .PdfObject ;Contents _ce .PdfObject ;
|
||
Rotate *int64 ;Group _ce .PdfObject ;Thumb _ce .PdfObject ;B _ce .PdfObject ;Dur _ce .PdfObject ;Trans _ce .PdfObject ;AA _ce .PdfObject ;Metadata _ce .PdfObject ;PieceInfo _ce .PdfObject ;StructParents _ce .PdfObject ;ID _ce .PdfObject ;PZ _ce .PdfObject ;
|
||
SeparationInfo _ce .PdfObject ;Tabs _ce .PdfObject ;TemplateInstantiated _ce .PdfObject ;PresSteps _ce .PdfObject ;UserUnit _ce .PdfObject ;VP _ce .PdfObject ;Annots _ce .PdfObject ;_gage []*PdfAnnotation ;_cbcaa *_ce .PdfObjectDictionary ;_acbbb *_ce .PdfIndirectObject ;
|
||
_caab _ce .PdfObjectDictionary ;_cagde *PdfReader ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_fcfb *PdfSignatureReference )GetContainingPdfObject ()_ce .PdfObject {return _fcfb ._bggef };func _cgcbd (_ccbg []byte )([]byte ,error ){_gacad :=_f .New ();if _ ,_dcfc :=_gd .Copy (_gacad ,_ag .NewReader (_ccbg ));_dcfc !=nil {return nil ,_dcfc ;
|
||
};return _gacad .Sum (nil ),nil ;};
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_bbdfc *PdfWriter )GetOptimizer ()Optimizer {return _bbdfc ._bcged };
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_cfdf *PdfOutlineItem )GetContainingPdfObject ()_ce .PdfObject {return _cfdf ._ggcfgf };
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ce .PdfObject ;LE _ce .PdfObject ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;IT _ce .PdfObject ;Measure _ce .PdfObject ;};func _ecbge (_ffgg _ce .PdfObject )(*PdfFilespec ,error ){if _ffgg ==nil {return nil ,nil ;
|
||
};return NewPdfFilespecFromObj (_ffgg );};func _bfbegf (_ecfcg *PdfPage ){_gfgda :=_gec .GetLicenseKey ();if _gfgda !=nil &&_gfgda .IsLicensed (){return ;};_cdebf :=_ce .PdfObjectName ("\u0055\u0046\u0031");if !_ecfcg .Resources .HasFontByName (_cdebf ){_ecfcg .Resources .SetFontByName (_cdebf ,DefaultFont ().ToPdfObject ());
|
||
};var _aefgg []string ;_aefgg =append (_aefgg ,"\u0071");_aefgg =append (_aefgg ,"\u0042\u0054");_aefgg =append (_aefgg ,_e .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_cdebf .String ()));_aefgg =append (_aefgg ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
|
||
_aefgg =append (_aefgg ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_aegaa :="\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";
|
||
_aefgg =append (_aefgg ,_e .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_aegaa ));_aefgg =append (_aefgg ,"\u0045\u0054");_aefgg =append (_aefgg ,"\u0051");_cebgc :=_g .Join (_aefgg ,"\u000a");_ecfcg .AddContentStreamByString (_cebgc );_ecfcg .ToPdfObject ();
|
||
};
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_dfc *PdfAppender )WriteToFile (outputPath string )error {_faeb ,_ceae :=_dd .Create (outputPath );if _ceae !=nil {return _ceae ;};defer _faeb .Close ();return _dfc .Write (_faeb );};
|
||
|
||
// 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 ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_ggfb *PdfColorspaceCalGray )GetNumComponents ()int {return 1};func _acdb (_gbbcc *_ce .PdfObjectDictionary )(*PdfShadingType5 ,error ){_aeadc :=PdfShadingType5 {};_aaefed :=_gbbcc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _aaefed ==nil {_ff .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 ;};_cedag ,_egdbg :=_aaefed .(*_ce .PdfObjectInteger );if !_egdbg {_ff .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",_aaefed );
|
||
return nil ,_ce .ErrTypeError ;};_aeadc .BitsPerCoordinate =_cedag ;_aaefed =_gbbcc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aaefed ==nil {_ff .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 ;};_cedag ,_egdbg =_aaefed .(*_ce .PdfObjectInteger );if !_egdbg {_ff .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",_aaefed );
|
||
return nil ,_ce .ErrTypeError ;};_aeadc .BitsPerComponent =_cedag ;_aaefed =_gbbcc .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _aaefed ==nil {_ff .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 ;};_cedag ,_egdbg =_aaefed .(*_ce .PdfObjectInteger );if !_egdbg {_ff .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",_aaefed );
|
||
return nil ,_ce .ErrTypeError ;};_aeadc .VerticesPerRow =_cedag ;_aaefed =_gbbcc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aaefed ==nil {_ff .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 ;};_gcgae ,_egdbg :=_aaefed .(*_ce .PdfObjectArray );if !_egdbg {_ff .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",_aaefed );
|
||
return nil ,_ce .ErrTypeError ;};_aeadc .Decode =_gcgae ;if _cdcgd :=_gbbcc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_cdcgd !=nil {_aeadc .Function =[]PdfFunction {};if _acfgf ,_ggccf :=_cdcgd .(*_ce .PdfObjectArray );_ggccf {for _ ,_cgagd :=range _acfgf .Elements (){_gefca ,_gbdd :=_cegfd (_cgagd );
|
||
if _gbdd !=nil {_ff .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",_gbdd );return nil ,_gbdd ;};_aeadc .Function =append (_aeadc .Function ,_gefca );
|
||
};}else {_adggb ,_ecffe :=_cegfd (_cdcgd );if _ecffe !=nil {_ff .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",_ecffe );return nil ,_ecffe ;
|
||
};_aeadc .Function =append (_aeadc .Function ,_adggb );};};return &_aeadc ,nil ;};type pdfFontType3 struct{fontCommon ;_degaa *_ce .PdfIndirectObject ;
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _ce .PdfObject ;Encoding _ce .PdfObject ;FontBBox _ce .PdfObject ;FontMatrix _ce .PdfObject ;FirstChar _ce .PdfObject ;LastChar _ce .PdfObject ;Widths _ce .PdfObject ;Resources _ce .PdfObject ;_afbb map[_dc .CharCode ]float64 ;_aacfd _dc .TextEncoder ;
|
||
};func (_adce *pdfFontType0 )subsetRegistered ()error {_gddcb ,_bfgd :=_adce .DescendantFont ._dace .(*pdfCIDFontType2 );if !_bfgd {_ff .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",_adce .DescendantFont );
|
||
return nil ;};if _gddcb ==nil {return nil ;};if _gddcb ._daebd ==nil {_ff .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 _adce ._fbfa ==nil {_ff .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 ;};_cdeba ,_bfgd :=_ce .GetStream (_gddcb ._daebd .FontFile2 );if !_bfgd {_ff .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 _ge .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_fcfa ,_dffg :=_ce .DecodeStream (_cdeba );if _dffg !=nil {_ff .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_dffg );
|
||
return _dffg ;};_dggb ,_dffg :=_eb .Parse (_ag .NewReader (_fcfa ));if _dffg !=nil {_ff .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 (_cdeba .Stream ));
|
||
return _dffg ;};var _gaaee []rune ;var _dcdab *_eb .Font ;switch _fedg :=_adce ._fbfa .(type ){case *_dc .TrueTypeFontEncoder :_gaaee =_fedg .RegisteredRunes ();_dcdab ,_dffg =_dggb .SubsetKeepRunes (_gaaee );if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );
|
||
return _dffg ;};_fedg .SubsetRegistered ();case *_dc .IdentityEncoder :_gaaee =_fedg .RegisteredRunes ();_abgae :=make ([]_eb .GlyphIndex ,len (_gaaee ));for _fbfb ,_bcgg :=range _gaaee {_abgae [_fbfb ]=_eb .GlyphIndex (_bcgg );};_dcdab ,_dffg =_dggb .SubsetKeepIndices (_abgae );
|
||
if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );return _dffg ;};case _dc .SimpleEncoder :_afgb :=_fedg .Charcodes ();for _ ,_dgddf :=range _afgb {_becb ,_dbaea :=_fedg .CharcodeToRune (_dgddf );if !_dbaea {_ff .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",_dgddf );
|
||
continue ;};_gaaee =append (_gaaee ,_becb );};default:return _e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_adce ._fbfa );
|
||
};var _dfbd _ag .Buffer ;_dffg =_dcdab .Write (&_dfbd );if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );return _dffg ;};if _adce ._dgfcg !=nil {_dded :=make (map[_ga .CharCode ]rune ,len (_gaaee ));for _ ,_aceb :=range _gaaee {_ggfac ,_egea :=_adce ._fbfa .RuneToCharcode (_aceb );
|
||
if !_egea {continue ;};_dded [_ga .CharCode (_ggfac )]=_aceb ;};_adce ._dgfcg =_ga .NewToUnicodeCMap (_dded );};_cdeba ,_dffg =_ce .MakeStream (_dfbd .Bytes (),_ce .NewFlateEncoder ());if _dffg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dffg );
|
||
return _dffg ;};_cdeba .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (_dfbd .Len ())));if _ddef ,_dcbeb :=_ce .GetStream (_gddcb ._daebd .FontFile2 );_dcbeb {*_ddef =*_cdeba ;}else {_gddcb ._daebd .FontFile2 =_cdeba ;};_cddg :=_gfdb ();
|
||
if len (_adce ._egacd )> 0{_adce ._egacd =_cbac (_adce ._egacd ,_cddg );};if len (_gddcb ._egacd )> 0{_gddcb ._egacd =_cbac (_gddcb ._egacd ,_cddg );};if len (_adce ._bdae )> 0{_adce ._bdae =_cbac (_adce ._bdae ,_cddg );};if _gddcb ._daebd !=nil {_cddgb ,_beaab :=_ce .GetName (_gddcb ._daebd .FontName );
|
||
if _beaab &&len (_cddgb .String ())> 0{_dfaf :=_cbac (_cddgb .String (),_cddg );_gddcb ._daebd .FontName =_ce .MakeName (_dfaf );};};return nil ;};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_daed *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_dbeb :=&PdfFilespec {};_dbeb ._ddgc =_ce .MakeIndirectObject (_ce .MakeDict ());return _dbeb ;};
|
||
|
||
// 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 *_ce .PdfIndirectObject ;SV *_ce .PdfIndirectObject ;};
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_gfae :=PdfColorCalRGB {a ,b ,c };return &_gfae ;};
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_efdafe :map[_ce .PdfObject ]struct{}{},_aedda :_dffgda (),_afda :_ce .NewParserFromString (txt )};};
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_dcgca :=&PdfPageResources {};_dcgca ._gceda =_ce .MakeDict ();return _dcgca ;};func _daaef ()string {_cbcgc .Lock ();defer _cbcgc .Unlock ();return _dbfgc };
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_befba *PdfFunctionType2 )ToPdfObject ()_ce .PdfObject {_bdfcc :=_ce .MakeDict ();_bdfcc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (2));_eeccc :=&_ce .PdfObjectArray {};for _ ,_caaab :=range _befba .Domain {_eeccc .Append (_ce .MakeFloat (_caaab ));
|
||
};_bdfcc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_eeccc );if _befba .Range !=nil {_aaafef :=&_ce .PdfObjectArray {};for _ ,_bgedb :=range _befba .Range {_aaafef .Append (_ce .MakeFloat (_bgedb ));};_bdfcc .Set ("\u0052\u0061\u006eg\u0065",_aaafef );
|
||
};if _befba .C0 !=nil {_ebaac :=&_ce .PdfObjectArray {};for _ ,_dgaa :=range _befba .C0 {_ebaac .Append (_ce .MakeFloat (_dgaa ));};_bdfcc .Set ("\u0043\u0030",_ebaac );};if _befba .C1 !=nil {_acebe :=&_ce .PdfObjectArray {};for _ ,_bfegg :=range _befba .C1 {_acebe .Append (_ce .MakeFloat (_bfegg ));
|
||
};_bdfcc .Set ("\u0043\u0031",_acebe );};_bdfcc .Set ("\u004e",_ce .MakeFloat (_befba .N ));if _befba ._gbbb !=nil {_befba ._gbbb .PdfObject =_bdfcc ;return _befba ._gbbb ;};return _bdfcc ;};func _cfcg (_dfaea *PdfField ,_ceabb _ce .PdfObject )error {switch _dfaea .GetContext ().(type ){case *PdfFieldText :switch _gebg :=_ceabb .(type ){case *_ce .PdfObjectName :_fdfed :=_gebg ;
|
||
_ff .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",_fdfed .String ());
|
||
_dfaea .V =_ce .MakeEncodedString (_gebg .String (),true );case *_ce .PdfObjectString :_dfaea .V =_ce .MakeEncodedString (_gebg .String (),true );default:_ff .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",_gebg ,_gebg );
|
||
};case *PdfFieldButton :switch _ceabb .(type ){case *_ce .PdfObjectName :if len (_ceabb .String ())> 0{_dfaea .V =_ceabb ;_bbecd (_dfaea ,_ceabb );};case *_ce .PdfObjectString :if len (_ceabb .String ())> 0{_dfaea .V =_ce .MakeName (_ceabb .String ());
|
||
_bbecd (_dfaea ,_dfaea .V );};default:_ff .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",_dfaea .PartialName (),_ceabb );_dfaea .V =_ceabb ;
|
||
};case *PdfFieldChoice :switch _ceabb .(type ){case *_ce .PdfObjectName :if len (_ceabb .String ())> 0{_dfaea .V =_ce .MakeString (_ceabb .String ());_bbecd (_dfaea ,_ceabb );};case *_ce .PdfObjectString :if len (_ceabb .String ())> 0{_dfaea .V =_ceabb ;
|
||
_bbecd (_dfaea ,_ce .MakeName (_ceabb .String ()));};default:_ff .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",_dfaea .PartialName (),_ceabb );
|
||
_dfaea .V =_ceabb ;};case *PdfFieldSignature :_ff .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",_dfaea .PartialName (),_ceabb );
|
||
};return nil ;};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_dcdbd DefaultImageHandler )Read (reader _gd .Reader )(*Image ,error ){_fadf ,_ ,_gebeb :=_cb .Decode (reader );if _gebeb !=nil {_ff .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_gebeb );
|
||
return nil ,_gebeb ;};return _dcdbd .NewImageFromGoImage (_fadf );};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_cgfbc *PdfReader )GetPageLabels ()(_ce .PdfObject ,error ){_ecbf :=_ce .ResolveReference (_cgfbc ._cfcdg .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _ecbf ==nil {return nil ,nil ;};if !_cgfbc ._cgbdb {_deffb :=_cgfbc .traverseObjectData (_ecbf );
|
||
if _deffb !=nil {return nil ,_deffb ;};};return _ecbf ,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 ;_badbg *_ce .PdfIndirectObject ;};
|
||
|
||
// GetStructRoot gets the StructTreeRoot object
|
||
func (_ffbdd *PdfPage )GetStructTreeRoot ()(*_ce .PdfObject ,bool ){_cfbda ,_ecbcf :=_ffbdd ._cagde .GetCatalogStructTreeRoot ();return &_cfbda ,_ecbcf ;};
|
||
|
||
// 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 (_bafe *Image )Resample (targetBitsPerComponent int64 ){if _bafe .BitsPerComponent ==targetBitsPerComponent {return ;};_ggbd :=_bafe .GetSamples ();if targetBitsPerComponent < _bafe .BitsPerComponent {_cgffb :=_bafe .BitsPerComponent -targetBitsPerComponent ;
|
||
for _gfbb :=range _ggbd {_ggbd [_gfbb ]>>=uint (_cgffb );};}else if targetBitsPerComponent > _bafe .BitsPerComponent {_aeadf :=targetBitsPerComponent -_bafe .BitsPerComponent ;for _cccb :=range _ggbd {_ggbd [_cccb ]<<=uint (_aeadf );};};_bafe .BitsPerComponent =targetBitsPerComponent ;
|
||
if _bafe .BitsPerComponent < 8{_bafe .resampleLowBits (_ggbd );return ;};_aaged :=_gf .BytesPerLine (int (_bafe .Width ),int (_bafe .BitsPerComponent ),_bafe .ColorComponents );_gacfad :=make ([]byte ,_aaged *int (_bafe .Height ));var (_ecdeg ,_caeb ,_ebbbd ,_deebg int ;
|
||
_cfac uint32 ;);for _ebbbd =0;_ebbbd < int (_bafe .Height );_ebbbd ++{_ecdeg =_ebbbd *_aaged ;_caeb =(_ebbbd +1)*_aaged -1;_cgdfa :=_gb .ResampleUint32 (_ggbd [_ecdeg :_caeb ],int (targetBitsPerComponent ),8);for _deebg ,_cfac =range _cgdfa {_gacfad [_deebg +_ecdeg ]=byte (_cfac );
|
||
};};_bafe .Data =_gacfad ;};
|
||
|
||
// 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 (_cebea *Image )SetSamples (samples []uint32 ){if _cebea .BitsPerComponent < 8{samples =_cebea .samplesAddPadding (samples );};_eaffa :=_gb .ResampleUint32 (samples ,int (_cebea .BitsPerComponent ),8);_caedc :=make ([]byte ,len (_eaffa ));for _dacf ,_bbdea :=range _eaffa {_caedc [_dacf ]=byte (_bbdea );
|
||
};_cebea .Data =_caedc ;};func (_cfbff *PdfWriter )hasObject (_cbgfd _ce .PdfObject )bool {_ ,_bddcb :=_cfbff ._gdaab [_cbgfd ];return _bddcb ;};
|
||
|
||
// 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 (_dbbef DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ce .PdfObject ;Name _ce .PdfObject ;};
|
||
|
||
// 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 ,_dc .SimpleEncoder ,error ){_gbbf ,_ggfa :=_fgda (basefont );if _ggfa !=nil {return nil ,nil ,_ggfa ;};_adfg ,_bdff :=_gbbf .Encoder ().(_dc .SimpleEncoder );if !_bdff {return nil ,nil ,_e .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_gbbf .Encoder ());
|
||
};_dgge :=make (map[rune ]_dc .GlyphName );for _faed :=range alphabet {if _ ,_dbdb :=_adfg .RuneToCharcode (_faed );!_dbdb {_ ,_fccg :=_gbbf ._cabcg .Read (_faed );if !_fccg {_ff .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",_faed ,_faed );
|
||
continue ;};_fgdd ,_fccg :=_dc .RuneToGlyph (_faed );if !_fccg {_ff .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_faed ,_faed );continue ;};if len (_dgge )>=255{return nil ,nil ,_ge .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");
|
||
};_dgge [_faed ]=_fgdd ;};};var (_gabb []_dc .CharCode ;_fdced []_dc .CharCode ;);for _bgaa :=_dc .CharCode (1);_bgaa <=0xff;_bgaa ++{_bfdce ,_efeg :=_adfg .CharcodeToRune (_bgaa );if !_efeg {_gabb =append (_gabb ,_bgaa );continue ;};if _ ,_efeg =alphabet [_bfdce ];
|
||
!_efeg {_fdced =append (_fdced ,_bgaa );};};_afbgb :=append (_gabb ,_fdced ...);if len (_afbgb )< len (_dgge ){return nil ,nil ,_e .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_dgge ),len (_afbgb ));
|
||
};_deae :=make ([]rune ,0,len (_dgge ));for _ffffa :=range _dgge {_deae =append (_deae ,_ffffa );};_bf .Slice (_deae ,func (_ccba ,_aggc int )bool {return _deae [_ccba ]< _deae [_aggc ]});_cdge :=make (map[_dc .CharCode ]_dc .GlyphName ,len (_deae ));for _ ,_gefg :=range _deae {_cfgc :=_afbgb [0];
|
||
_afbgb =_afbgb [1:];_cdge [_cfgc ]=_dgge [_gefg ];};_adfg =_dc .ApplyDifferences (_adfg ,_cdge );_gbbf .SetEncoder (_adfg );return &PdfFont {_dace :&_gbbf },_adfg ,nil ;};func _fgdc (_dadgf *XObjectForm )(*PdfRectangle ,bool ,error ){if _ccec ,_cfgea :=_dadgf .BBox .(*_ce .PdfObjectArray );
|
||
_cfgea {_dbfc ,_decfd :=NewPdfRectangle (*_ccec );if _decfd !=nil {return nil ,false ,_decfd ;};if _cgddb ,_gdfa :=_dadgf .Matrix .(*_ce .PdfObjectArray );_gdfa {_bfad ,_faec :=_cgddb .ToFloat64Array ();if _faec !=nil {return nil ,false ,_faec ;};_egcag :=_efc .IdentityMatrix ();
|
||
if len (_bfad )==6{_egcag =_efc .NewMatrix (_bfad [0],_bfad [1],_bfad [2],_bfad [3],_bfad [4],_bfad [5]);};_dbfc .Transform (_egcag );return _dbfc ,true ,nil ;};return _dbfc ,false ,nil ;};return nil ,false ,_ge .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");
|
||
};func _ggab (_afag _ce .PdfObject ,_ffbcf *PdfReader )(*OutlineDest ,error ){_fbefe ,_bcdaf :=_ce .GetArray (_afag );if !_bcdaf {return nil ,_ge .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");
|
||
};_fbcfg :=_fbefe .Len ();if _fbcfg < 2{return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_fbcfg );
|
||
};_dgdga :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_ecddb :=_fbefe .Get (0);if _ffde ,_ebfc :=_ce .GetIndirect (_ecddb );_ebfc {if _ ,_abaed ,_aadgd :=_ffbcf .PageFromIndirectObject (_ffde );_aadgd ==nil {_dgdga .Page =int64 (_abaed -1);}else {_ff .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",_ffde );
|
||
};_dgdga .PageObj =_ffde ;}else if _bfbeg ,_gcfcc :=_ce .GetIntVal (_ecddb );_gcfcc {if _bfbeg >=0&&_bfbeg < len (_ffbcf .PageList ){_dgdga .PageObj =_ffbcf .PageList [_bfbeg ].GetPageAsIndirectObject ();}else {_ff .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",_bfbeg );
|
||
};_dgdga .Page =int64 (_bfbeg );}else {return nil ,_e .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_ecddb );};_degag ,_bcdaf :=_ce .GetNameVal (_fbefe .Get (1));
|
||
if !_bcdaf {_ff .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",_fbefe .Get (1));
|
||
return _dgdga ,nil ;};switch _degag {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _fbcfg > 2{_dgdga .Y ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _fbcfg > 2{_dgdga .X ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _fbcfg > 4{_dgdga .X ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (2)));_dgdga .Y ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (3)));_dgdga .Zoom ,_ =_ce .GetNumberAsFloat (_ce .TraceToDirectObject (_fbefe .Get (4)));
|
||
};default:_degag ="\u0046\u0069\u0074";};_dgdga .Mode =_degag ;return _dgdga ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abc *PdfActionGoTo3DView )ToPdfObject ()_ce .PdfObject {_abc .PdfAction .ToPdfObject ();_efg :=_abc ._bcc ;_ccg :=_efg .PdfObject .(*_ce .PdfObjectDictionary );_ccg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoTo3DView )));_ccg .SetIfNotNil ("\u0054\u0041",_abc .TA );
|
||
_ccg .SetIfNotNil ("\u0056",_abc .V );return _efg ;};func (_bff *PdfReader )newPdfActionGotoRFromDict (_defd *_ce .PdfObjectDictionary )(*PdfActionGoToR ,error ){_acb ,_bad :=_ecbge (_defd .Get ("\u0046"));if _bad !=nil {return nil ,_bad ;};return &PdfActionGoToR {D :_defd .Get ("\u0044"),NewWindow :_defd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_acb },nil ;
|
||
};func (_aagg *PdfWriter )setCatalogVersion (){_aagg ._bbef .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ce .MakeName (_e .Sprintf ("\u0025\u0064\u002e%\u0064",_aagg ._facee .Major ,_aagg ._facee .Minor )));};
|
||
|
||
// 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 (_ddaa *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_dffce ,_ ,_aagbg :=_ddaa .CharcodesToUnicodeWithStats (_ddaa .BytesToCharcodes (data ));_acedf :=_dc .ExpandLigatures (_dffce );return _acedf ,_ca .RuneCountInString (_acedf ),_aagbg ;
|
||
};
|
||
|
||
// 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 (_cebcgd *CompliancePdfReader )error ;};
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_cagd :=PdfColorDeviceGray (grayVal );return &_cagd ;};func _faadb (_aefg *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_aefg }};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_fagea *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eebf *PdfAnnotationCaret )ToPdfObject ()_ce .PdfObject {_eebf .PdfAnnotation .ToPdfObject ();_bae :=_eebf ._dec ;_fage :=_bae .PdfObject .(*_ce .PdfObjectDictionary );_eebf .PdfAnnotationMarkup .appendToPdfDictionary (_fage );_fage .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_fage .SetIfNotNil ("\u0052\u0044",_eebf .RD );_fage .SetIfNotNil ("\u0053\u0079",_eebf .Sy );return _bae ;};func (_cbbc *PdfWriter )writeXRefStreams (_efbcb int ,_cdbcf int64 )error {_gaced :=_efbcb +1;_cbbc ._abff [_gaced ]=crossReference {Type :1,ObjectNumber :_gaced ,Offset :_cdbcf };
|
||
_cbaca :=_ag .NewBuffer (nil );_dcdcd :=_ce .MakeArray ();for _debgg :=0;_debgg <=_efbcb ;{for ;_debgg <=_efbcb ;_debgg ++{_gged ,_gfeed :=_cbbc ._abff [_debgg ];if _gfeed &&(!_cbbc ._ddfff ||_cbbc ._ddfff &&(_gged .Type ==1&&_gged .Offset >=_cbbc ._bcefd ||_gged .Type ==0)){break ;
|
||
};};var _bbceeg int ;for _bbceeg =_debgg +1;_bbceeg <=_efbcb ;_bbceeg ++{_cceegg ,_geedf :=_cbbc ._abff [_bbceeg ];if _geedf &&(!_cbbc ._ddfff ||_cbbc ._ddfff &&(_cceegg .Type ==1&&_cceegg .Offset > _cbbc ._bcefd )){continue ;};break ;};_dcdcd .Append (_ce .MakeInteger (int64 (_debgg )),_ce .MakeInteger (int64 (_bbceeg -_debgg )));
|
||
for _cacbb :=_debgg ;_cacbb < _bbceeg ;_cacbb ++{_acbfc :=_cbbc ._abff [_cacbb ];switch _acbfc .Type {case 0:_be .Write (_cbaca ,_be .BigEndian ,byte (0));_be .Write (_cbaca ,_be .BigEndian ,uint32 (0));_be .Write (_cbaca ,_be .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_be .Write (_cbaca ,_be .BigEndian ,byte (1));_be .Write (_cbaca ,_be .BigEndian ,uint32 (_acbfc .Offset ));_be .Write (_cbaca ,_be .BigEndian ,uint16 (_acbfc .Generation ));case 2:_be .Write (_cbaca ,_be .BigEndian ,byte (2));_be .Write (_cbaca ,_be .BigEndian ,uint32 (_acbfc .ObjectNumber ));
|
||
_be .Write (_cbaca ,_be .BigEndian ,uint16 (_acbfc .Index ));};};_debgg =_bbceeg +1;};_cegfe ,_deebb :=_ce .MakeStream (_cbaca .Bytes (),_ce .NewFlateEncoder ());if _deebb !=nil {return _deebb ;};_cegfe .ObjectNumber =int64 (_gaced );_cegfe .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_cegfe .PdfObjectDictionary .Set ("\u0057",_ce .MakeArray (_ce .MakeInteger (1),_ce .MakeInteger (4),_ce .MakeInteger (2)));_cegfe .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_dcdcd );_cegfe .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ce .MakeInteger (int64 (_gaced )));
|
||
_cegfe .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_cbbc ._dcecd );_cegfe .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_cbbc ._bedff );if _cbbc ._ddfff &&_cbbc ._efbcg > 0{_cegfe .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ce .MakeInteger (_cbbc ._efbcg ));
|
||
};if _cbbc ._cgebe !=nil {_cegfe .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cbbc ._ggbef );};if _cbbc ._cbegb ==nil &&_cbbc ._aecc !=""&&_cbbc ._efbed !=""{_cbbc ._cbegb =_ce .MakeArray (_ce .MakeHexString (_cbbc ._aecc ),_ce .MakeHexString (_cbbc ._efbed ));
|
||
};if _cbbc ._cbegb !=nil {_ff .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cbbc ._cbegb );_cegfe .Set ("\u0049\u0044",_cbbc ._cbegb );};_cbbc .writeObject (int (_cegfe .ObjectNumber ),_cegfe );return nil ;};
|
||
|
||
// GetVersion gets the document version.
|
||
func (_ebeg *PdfWriter )GetVersion ()_ce .Version {return _ebeg ._facee };
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_bgef *PdfFieldButton )IsRadio ()bool {return _bgef .GetType ()==ButtonTypeRadio };
|
||
|
||
// 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 *_ce .PdfObjectInteger ;TilingType *_ce .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ce .PdfObjectFloat ;YStep *_ce .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ce .PdfObjectArray ;};
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_daegg *PdfRectangle )ToPdfObject ()_ce .PdfObject {return _ce .MakeArray (_ce .MakeFloat (_daegg .Llx ),_ce .MakeFloat (_daegg .Lly ),_ce .MakeFloat (_daegg .Urx ),_ce .MakeFloat (_daegg .Ury ));};func (_ebdd fontCommon )fontFlags ()int {if _ebdd ._daebd ==nil {return 0;
|
||
};return _ebdd ._daebd ._cgfb ;};func (_fbegg *PdfWriter )adjustXRefAffectedVersion (_adcgb bool ){if _adcgb &&_fbegg ._facee .Major ==1&&_fbegg ._facee .Minor < 5{_fbegg ._facee .Minor =5;};};
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_gg :=NewPdfAction ();_df :=&PdfActionThread {};_df .PdfAction =_gg ;_gg .SetContext (_df );return _df ;};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_aceg *PdfFont )String ()string {_fedc :="";if _aceg ._dace .Encoder ()!=nil {_fedc =_aceg ._dace .Encoder ().String ();};return _e .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_aceg ._dace ,_aceg .baseFields ().coreString (),_fedc );
|
||
};
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_debb :=NewPdfAnnotation ();_ebd :=&PdfAnnotationText {};_ebd .PdfAnnotation =_debb ;_ebd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_debb .SetContext (_ebd );return _ebd ;};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_ededg *PdfPageResources )HasFontByName (keyName _ce .PdfObjectName )bool {_ ,_dacff :=_ededg .GetFontByName (keyName );return _dacff ;};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_cdfdd *PdfReader )GetIndirectObjectByNumber (number int )(_ce .PdfObject ,error ){_ggegd ,_efdee :=_cdfdd ._afda .LookupByNumber (number );return _ggegd ,_efdee ;};
|
||
|
||
// 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 ,_gfdaf :_ce .MakeDict (),ColorComponents :colorComponents };
|
||
};
|
||
|
||
// 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 _ce .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {var _caafg error ;encoder ,_caafg =img .getSuitableEncoder ();if _caafg !=nil {_ff .Log .Debug ("F\u0061\u0069l\u0075\u0072\u0065\u0020\u006f\u006e\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0069\u0074\u0061b\u006c\u0065\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072,\u0020\u0066\u0061\u006c\u006c\u0062\u0061\u0063\u006b\u0020\u0074\u006f\u0020R\u0061\u0077\u0045\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_caafg );
|
||
encoder =_ce .NewRawEncoder ();};};encoder .UpdateParams (img .GetParamsDict ());_efcge ,_ggbeg :=encoder .EncodeBytes (img .Data );if _ggbeg !=nil {_ff .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ggbeg );
|
||
return nil ,_ggbeg ;};_ddadac :=NewXObjectImage ();_ggfbf :=img .Width ;_acafb :=img .Height ;_ddadac .Width =&_ggfbf ;_ddadac .Height =&_acafb ;_cdded :=img .BitsPerComponent ;_ddadac .BitsPerComponent =&_cdded ;_ddadac .Filter =encoder ;_ddadac .Stream =_efcge ;
|
||
if cs ==nil {if img .ColorComponents ==1{_ddadac .ColorSpace =NewPdfColorspaceDeviceGray ();if img .BitsPerComponent ==16{switch encoder .(type ){case *_ce .DCTEncoder :_ddadac .ColorSpace =NewPdfColorspaceDeviceRGB ();_cdded =8;_ddadac .BitsPerComponent =&_cdded ;
|
||
};};}else if img .ColorComponents ==3{_ddadac .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{switch encoder .(type ){case *_ce .DCTEncoder :_ddadac .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_ddadac .ColorSpace =NewPdfColorspaceDeviceCMYK ();
|
||
};}else {return nil ,_ge .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ddadac .ColorSpace =cs ;};if len (img ._cdecc )!=0{_ddca :=NewXObjectImage ();_ddca .Filter =encoder ;_fcdbe ,_dffdae :=encoder .EncodeBytes (img ._cdecc );
|
||
if _dffdae !=nil {_ff .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_dffdae );return nil ,_dffdae ;};_ddca .Stream =_fcdbe ;_ddca .BitsPerComponent =_ddadac .BitsPerComponent ;
|
||
_ddca .Width =&img .Width ;_ddca .Height =&img .Height ;_ddca .ColorSpace =NewPdfColorspaceDeviceGray ();_ddadac .SMask =_ddca .ToPdfObject ();}else {_ddadac .SMask =xobjIn .SMask ;_ddadac .ImageMask =xobjIn .ImageMask ;if _ddadac .ColorSpace .GetNumComponents ()==1{_acab (_ddadac );
|
||
};};return _ddadac ,nil ;};
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_decd *PdfFieldSignature )ToPdfObject ()_ce .PdfObject {if _decd .PdfAnnotationWidget !=nil {_decd .PdfAnnotationWidget .ToPdfObject ();};_decd .PdfField .ToPdfObject ();_eeafa :=_decd ._aadeb ;_bcbb :=_eeafa .PdfObject .(*_ce .PdfObjectDictionary );
|
||
_bcbb .SetIfNotNil ("\u0046\u0054",_ce .MakeName ("\u0053\u0069\u0067"));_bcbb .SetIfNotNil ("\u004c\u006f\u0063\u006b",_decd .Lock );_bcbb .SetIfNotNil ("\u0053\u0056",_decd .SV );if _decd .V !=nil {_bcbb .SetIfNotNil ("\u0056",_decd .V .ToPdfObject ());
|
||
};return _eeafa ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_daa *PdfAnnotationPolyLine )ToPdfObject ()_ce .PdfObject {_daa .PdfAnnotation .ToPdfObject ();_bcce :=_daa ._dec ;_eeda :=_bcce .PdfObject .(*_ce .PdfObjectDictionary );_daa .PdfAnnotationMarkup .appendToPdfDictionary (_eeda );_eeda .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_eeda .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_daa .Vertices );_eeda .SetIfNotNil ("\u004c\u0045",_daa .LE );_eeda .SetIfNotNil ("\u0042\u0053",_daa .BS );_eeda .SetIfNotNil ("\u0049\u0043",_daa .IC );_eeda .SetIfNotNil ("\u0042\u0045",_daa .BE );
|
||
_eeda .SetIfNotNil ("\u0049\u0054",_daa .IT );_eeda .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_daa .Measure );return _bcce ;};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_edc PdfModel ;Rect _ce .PdfObject ;Contents _ce .PdfObject ;P _ce .PdfObject ;NM _ce .PdfObject ;M _ce .PdfObject ;F _ce .PdfObject ;AP _ce .PdfObject ;AS _ce .PdfObject ;Border _ce .PdfObject ;C _ce .PdfObject ;StructParent _ce .PdfObject ;
|
||
OC _ce .PdfObject ;_dec *_ce .PdfIndirectObject ;};
|
||
|
||
// 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 *_aef .DiffResults ;IsCrlFound bool ;IsOcspFound bool ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _c .Time ;};func (_eccc *PdfReader )newPdfAnnotationMarkupFromDict (_gbgc *_ce .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_fagd :=&PdfAnnotationMarkup {};if _gce :=_gbgc .Get ("\u0054");_gce !=nil {_fagd .T =_gce ;};if _dgeb :=_gbgc .Get ("\u0050\u006f\u0070u\u0070");
|
||
_dgeb !=nil {_badb ,_dcaf :=_dgeb .(*_ce .PdfIndirectObject );if !_dcaf {if _ ,_dad :=_dgeb .(*_ce .PdfObjectNull );!_dad {return nil ,_ge .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 {_gadd ,_afd :=_eccc .newPdfAnnotationFromIndirectObject (_badb );if _afd !=nil {return nil ,_afd ;};if _gadd !=nil {_adbe ,_aaae :=_gadd ._edc .(*PdfAnnotationPopup );if !_aaae {return nil ,_ge .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");
|
||
};_fagd .Popup =_adbe ;};};};if _dcbd :=_gbgc .Get ("\u0043\u0041");_dcbd !=nil {_fagd .CA =_dcbd ;};if _bgfbd :=_gbgc .Get ("\u0052\u0043");_bgfbd !=nil {_fagd .RC =_bgfbd ;};if _efea :=_gbgc .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_efea !=nil {_fagd .CreationDate =_efea ;};if _ddee :=_gbgc .Get ("\u0049\u0052\u0054");_ddee !=nil {_fagd .IRT =_ddee ;};if _fcc :=_gbgc .Get ("\u0053\u0075\u0062\u006a");_fcc !=nil {_fagd .Subj =_fcc ;};if _fge :=_gbgc .Get ("\u0052\u0054");_fge !=nil {_fagd .RT =_fge ;
|
||
};if _gea :=_gbgc .Get ("\u0049\u0054");_gea !=nil {_fagd .IT =_gea ;};if _cafg :=_gbgc .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cafg !=nil {_fagd .ExData =_cafg ;};return _fagd ,nil ;};
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_fbdcg *PdfPattern )IsTiling ()bool {return _fbdcg .PatternType ==1};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_gga :=NewPdfAnnotation ();_acbb :=&PdfAnnotationPopup {};_acbb .PdfAnnotation =_gga ;_gga .SetContext (_acbb );return _acbb ;};func _ccfe (_afdbb _ce .PdfObject )(*PdfFontDescriptor ,error ){_ceca :=&PdfFontDescriptor {};
|
||
_afdbb =_ce .ResolveReference (_afdbb );if _fcag ,_eeccf :=_afdbb .(*_ce .PdfIndirectObject );_eeccf {_ceca ._dbbbgg =_fcag ;_afdbb =_fcag .PdfObject ;};_aeade ,_fbccd :=_ce .GetDict (_afdbb );if !_fbccd {_ff .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",_afdbb );
|
||
return nil ,_ce .ErrTypeError ;};if _gabdb :=_aeade .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_gabdb !=nil {_ceca .FontName =_gabdb ;}else {_ff .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");
|
||
};_fgbc ,_ :=_ce .GetName (_ceca .FontName );if _bacg :=_aeade .Get ("\u0054\u0079\u0070\u0065");_bacg !=nil {_cdbg ,_cgadd :=_bacg .(*_ce .PdfObjectName );if !_cgadd ||string (*_cdbg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ff .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",_bacg ,_fgbc ,_ceca .FontName );
|
||
};}else {_ff .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",_fgbc ,_ceca .FontName );
|
||
};_ceca .FontFamily =_aeade .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_ceca .FontStretch =_aeade .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_ceca .FontWeight =_aeade .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_ceca .Flags =_aeade .Get ("\u0046\u006c\u0061g\u0073");_ceca .FontBBox =_aeade .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_ceca .ItalicAngle =_aeade .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_ceca .Ascent =_aeade .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_ceca .Descent =_aeade .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_ceca .Leading =_aeade .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_ceca .CapHeight =_aeade .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_ceca .XHeight =_aeade .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_ceca .StemV =_aeade .Get ("\u0053\u0074\u0065m\u0056");_ceca .StemH =_aeade .Get ("\u0053\u0074\u0065m\u0048");_ceca .AvgWidth =_aeade .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_ceca .MaxWidth =_aeade .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_ceca .MissingWidth =_aeade .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_ceca .FontFile =_aeade .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_ceca .FontFile2 =_aeade .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_ceca .FontFile3 =_aeade .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_ceca .CharSet =_aeade .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_ceca .Style =_aeade .Get ("\u0053\u0074\u0079l\u0065");_ceca .Lang =_aeade .Get ("\u004c\u0061\u006e\u0067");
|
||
_ceca .FD =_aeade .Get ("\u0046\u0044");_ceca .CIDSet =_aeade .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _ceca .Flags !=nil {if _baafc ,_bcbe :=_ce .GetIntVal (_ceca .Flags );_bcbe {_ceca ._cgfb =_baafc ;};};if _ceca .MissingWidth !=nil {if _eaed ,_ddfd :=_ce .GetNumberAsFloat (_ceca .MissingWidth );
|
||
_ddfd ==nil {_ceca ._abcb =_eaed ;};};if _ceca .FontFile !=nil {_gfgga ,_fcff :=_fecg (_ceca .FontFile );if _fcff !=nil {return _ceca ,_fcff ;};_ff .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_gfgga );_ceca .fontFile =_gfgga ;
|
||
};if _ceca .FontFile2 !=nil {_caaed ,_egff :=_ee .NewFontFile2FromPdfObject (_ceca .FontFile2 );if _egff !=nil {return _ceca ,_egff ;};_ff .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_caaed .String ());_ceca ._cdfe =&_caaed ;
|
||
};return _ceca ,nil ;};func (_cbgf fontCommon )coreString ()string {_bbdb :="";if _cbgf ._daebd !=nil {_bbdb =_cbgf ._daebd .String ();};return _e .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_cbgf ._baafb ,_cbgf ._egacd ,_cbgf ._bdae ,_cbgf ._edcbg ,_cbgf ._bcef !=nil ,_cbgf .fontFlags (),_bbdb );
|
||
};
|
||
|
||
// 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 *_ce .PdfObjectName ;Colorants _ce .PdfObject ;Process _ce .PdfObject ;MixingHints _ce .PdfObject ;_dcggf *_ce .PdfIndirectObject ;};
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_cddf *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_ge .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");
|
||
};_faggb ,_abba :=_gf .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdecc ,img ._bffb );if _abba !=nil {return img ,_abba ;};_ffge ,_abba :=_gf .NRGBAConverter .Convert (_faggb );if _abba !=nil {return img ,_abba ;
|
||
};_cedcc :=_ffba (_ffge .Base ());_ff .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ff .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_ff .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_cedcc .Data );
|
||
_ff .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_cedcc );return _cedcc ,nil ;};
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};func (_bacge *PdfReader )newPdfOutlineItemFromIndirectObject (_fdab *_ce .PdfIndirectObject )(*PdfOutlineItem ,error ){_fcbd ,_aaceb :=_fdab .PdfObject .(*_ce .PdfObjectDictionary );if !_aaceb {return nil ,_e .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_aaead :=NewPdfOutlineItem ();_bdce :=_fcbd .Get ("\u0054\u0069\u0074l\u0065");if _bdce ==nil {return nil ,_e .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
|
||
};_efbg ,_dabcg :=_ce .GetString (_bdce );if !_dabcg {return nil ,_e .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_bdce );};_aaead .Title =_efbg ;if _aebcg :=_fcbd .Get ("\u0043\u006f\u0075n\u0074");
|
||
_aebcg !=nil {_fbaef ,_ddbbg :=_aebcg .(*_ce .PdfObjectInteger );if !_ddbbg {return nil ,_e .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_aebcg );};_aadbf :=int64 (*_fbaef );
|
||
_aaead .Count =&_aadbf ;};if _afec :=_fcbd .Get ("\u0044\u0065\u0073\u0074");_afec !=nil {_aaead .Dest =_ce .ResolveReference (_afec );if !_bacge ._cgbdb {_dgcg :=_bacge .traverseObjectData (_aaead .Dest );if _dgcg !=nil {return nil ,_dgcg ;};};};if _fbcdd :=_fcbd .Get ("\u0041");
|
||
_fbcdd !=nil {_aaead .A =_ce .ResolveReference (_fbcdd );if !_bacge ._cgbdb {_cdegb :=_bacge .traverseObjectData (_aaead .A );if _cdegb !=nil {return nil ,_cdegb ;};};};if _fbbad :=_fcbd .Get ("\u0053\u0045");_fbbad !=nil {_aaead .SE =nil ;};if _dgdc :=_fcbd .Get ("\u0043");
|
||
_dgdc !=nil {_aaead .C =_ce .ResolveReference (_dgdc );};if _afece :=_fcbd .Get ("\u0046");_afece !=nil {_aaead .F =_ce .ResolveReference (_afece );};return _aaead ,nil ;};
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_dca :=NewPdfAction ();_bee :=&PdfActionSound {};_bee .PdfAction =_dca ;_dca .SetContext (_bee );return _bee ;};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_ffcff *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_cgdcb :=NewPdfOutlineItem ();_cgdcb .Title =_ce .MakeEncodedString (_ffcff .Title ,true );_cgdcb .Dest =_ffcff .Dest .ToPdfObject ();var _agbdg []*PdfOutlineItem ;var _gdeeb int64 ;
|
||
var _ffaab *PdfOutlineItem ;for _ ,_gdacf :=range _ffcff .Entries {_fbcee ,_bdgba :=_gdacf .ToPdfOutlineItem ();_fbcee .Parent =&_cgdcb .PdfOutlineTreeNode ;if _ffaab !=nil {_ffaab .Next =&_fbcee .PdfOutlineTreeNode ;_fbcee .Prev =&_ffaab .PdfOutlineTreeNode ;
|
||
};_agbdg =append (_agbdg ,_fbcee );_gdeeb +=_bdgba ;_ffaab =_fbcee ;};_fadgb :=len (_agbdg );_gdeeb +=int64 (_fadgb );if _fadgb > 0{_cgdcb .First =&_agbdg [0].PdfOutlineTreeNode ;_cgdcb .Last =&_agbdg [_fadgb -1].PdfOutlineTreeNode ;_cgdcb .Count =&_gdeeb ;
|
||
};return _cgdcb ,_gdeeb ;};
|
||
|
||
// 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 *_ce .PdfObjectName ;P *_ce .PdfObjectInteger ;V *_ce .PdfObjectName ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_decdc *PdfOutlineTreeNode )ToPdfObject ()_ce .PdfObject {return _decdc .GetContext ().ToPdfObject ();};func (_dbbc *LTV )generateVRIKey (_gefb *PdfSignature )(string ,error ){_gaefdc ,_daggde :=_cgcbd (_gefb .Contents .Bytes ());if _daggde !=nil {return "",_daggde ;
|
||
};return _g .ToUpper (_bd .EncodeToString (_gaefdc )),nil ;};
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_dda :=NewPdfAction ();_cge :=&PdfActionMovie {};_cge .PdfAction =_dda ;_dda .SetContext (_cge );return _cge ;};func _cbac (_bebg ,_eefb string )string {if _g .Contains (_bebg ,"\u002b"){_cbdc :=_g .Split (_bebg ,"\u002b");
|
||
if len (_cbdc )==2{_bebg =_cbdc [1];};};return _eefb +"\u002b"+_bebg ;};
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_eaac :=NewPdfAnnotation ();_befb :=&PdfAnnotationSound {};_befb .PdfAnnotation =_eaac ;_befb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eaac .SetContext (_befb );return _befb ;};
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_ffdgf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ffdgf .Filter .UpdateParams (img .GetParamsDict ());_cafcb ,_fgeda :=_ffdgf .Filter .EncodeBytes (img .Data );if _fgeda !=nil {return _fgeda ;};_ffdgf .Stream =_cafcb ;_gfebc :=img .Width ;
|
||
_ffdgf .Width =&_gfebc ;_febbd :=img .Height ;_ffdgf .Height =&_febbd ;_ddffb :=img .BitsPerComponent ;_ffdgf .BitsPerComponent =&_ddffb ;if cs ==nil {if img .ColorComponents ==1{_ffdgf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ffdgf .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_ffdgf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _ge .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ffdgf .ColorSpace =cs ;};return nil ;
|
||
};
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_caa .PSProgram ;_acedfd *_caa .PSExecutor ;_caec []byte ;_ebecf *_ce .PdfObjectStream ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_cdeg *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffdfa ,_ccdf :=_ce .GetNumbersAsFloat (objects );
|
||
if _ccdf !=nil {return nil ,_ccdf ;};return _cdeg .ColorFromFloats (_ffdfa );};const (_afdc =0x00001;_bcffa =0x00002;_abda =0x00004;_abeg =0x00008;_ecef =0x00020;_egdef =0x00040;_fgcba =0x10000;_gfaa =0x20000;_gccfg =0x40000;);
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_gcc :=NewPdfAction ();_dgf :=&PdfActionImportData {};_dgf .PdfAction =_gcc ;_gcc .SetContext (_dgf );return _dgf ;};
|
||
|
||
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
|
||
func NewPdfInfoFromObject (obj _ce .PdfObject )(*PdfInfo ,error ){var _afggb PdfInfo ;_cddaf ,_bfde :=obj .(*_ce .PdfObjectDictionary );if !_bfde {return nil ,_e .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 _ ,_dbab :=range _cddaf .Keys (){switch _dbab {case "\u0054\u0069\u0074l\u0065":_afggb .Title ,_ =_ce .GetString (_cddaf .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_afggb .Author ,_ =_ce .GetString (_cddaf .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
|
||
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_afggb .Subject ,_ =_ce .GetString (_cddaf .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_afggb .Keywords ,_ =_ce .GetString (_cddaf .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
|
||
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_afggb .Creator ,_ =_ce .GetString (_cddaf .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_afggb .Producer ,_ =_ce .GetString (_cddaf .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
|
||
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_afggb .Trapped ,_ =_ce .GetName (_cddaf .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _dagg ,_bedb :=_ce .GetString (_cddaf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
|
||
_bedb &&_dagg .String ()!=""{_cfce ,_bgbdd :=NewPdfDate (_dagg .String ());if _bgbdd !=nil {return nil ,_e .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",_bgbdd );
|
||
};_afggb .CreationDate =&_cfce ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _aede ,_cceab :=_ce .GetString (_cddaf .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_cceab &&_aede .String ()!=""{_aabg ,_ebaga :=NewPdfDate (_aede .String ());if _ebaga !=nil {return nil ,_e .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_ebaga );
|
||
};_afggb .ModifiedDate =&_aabg ;};default:_fgdec ,_ :=_ce .GetString (_cddaf .Get (_dbab ));if _afggb ._ecfddd ==nil {_afggb ._ecfddd =_ce .MakeDict ();};_afggb ._ecfddd .Set (_dbab ,_fgdec );};};return &_afggb ,nil ;};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_fdgac *PdfReader )GetEncryptionMethod ()string {_eefbb :=_fdgac ._afda .GetCrypter ();return _eefbb .String ();};
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};func (_dfcf *PdfReader )flattenFieldsWithOpts (_ccafc bool ,_bfacb FieldAppearanceGenerator ,_cebgg *FieldFlattenOpts )error {if _cebgg ==nil {_cebgg =&FieldFlattenOpts {};
|
||
};var _afae bool ;_dedcg :=map[*PdfAnnotation ]bool {};{var _gadcg []*PdfField ;_efgf :=_dfcf .AcroForm ;if _efgf !=nil {if _cebgg .FilterFunc !=nil {_gadcg =_efgf .filteredFields (_cebgg .FilterFunc ,true );_afae =_efgf .Fields !=nil &&len (*_efgf .Fields )> 0;
|
||
}else {_gadcg =_efgf .AllFields ();};};for _ ,_cecd :=range _gadcg {if len (_cecd .Annotations )< 1{_ff .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",_cecd .PartialName ());
|
||
for _abef ,_bcfebc :=range _cecd .Kids {for _ ,_fbec :=range _bcfebc .Annotations {_dedcg [_fbec .PdfAnnotation ]=_cecd .V !=nil ;if _bcfebc .V ==nil {_bcfebc .V =_cecd .V ;};if _bcfebc .T ==nil {_bcfebc .T =_ce .MakeString (_e .Sprintf ("\u0025\u0073\u0023%\u0064",_cecd .PartialName (),_abef ));
|
||
};if _bfacb !=nil {_gebfe ,_bcfef :=_bfacb .GenerateAppearanceDict (_efgf ,_bcfebc ,_fbec );if _bcfef !=nil {return _bcfef ;};_fbec .AP =_gebfe ;};};};};for _ ,_ddff :=range _cecd .Annotations {_dedcg [_ddff .PdfAnnotation ]=_cecd .V !=nil ;if _bfacb !=nil {_bafg ,_gbgee :=_bfacb .GenerateAppearanceDict (_efgf ,_cecd ,_ddff );
|
||
if _gbgee !=nil {return _gbgee ;};_ddff .AP =_bafg ;};};};};if _ccafc {for _ ,_dfbb :=range _dfcf .PageList {_agba ,_fbee :=_dfbb .GetAnnotations ();if _fbee !=nil {return _fbee ;};for _ ,_dcbca :=range _agba {_dedcg [_dcbca ]=true ;};};};for _ ,_ccge :=range _dfcf .PageList {_gbcab :=_ccge .flattenFieldsWithOpts (_bfacb ,_cebgg ,_dedcg );
|
||
if _gbcab !=nil {return _gbcab ;};};if !_afae {_dfcf .AcroForm =nil ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gcffe *PdfAnnotationCircle )ToPdfObject ()_ce .PdfObject {_gcffe .PdfAnnotation .ToPdfObject ();_cbd :=_gcffe ._dec ;_gefc :=_cbd .PdfObject .(*_ce .PdfObjectDictionary );_gcffe .PdfAnnotationMarkup .appendToPdfDictionary (_gefc );_gefc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_gefc .SetIfNotNil ("\u0042\u0053",_gcffe .BS );_gefc .SetIfNotNil ("\u0049\u0043",_gcffe .IC );_gefc .SetIfNotNil ("\u0042\u0045",_gcffe .BE );_gefc .SetIfNotNil ("\u0052\u0044",_gcffe .RD );return _cbd ;};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an initialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_febb :_ce .MakeIndirectObject (_ce .MakeDict ())};};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gafb *PdfColorLab )ToInteger (bits int )[3]uint32 {_gced :=_egg .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gced *_gafb .L ()),uint32 (_gced *_gafb .A ()),uint32 (_gced *_gafb .B ())};};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_dfgce *PdfSignature )GetCerts ()([]*_eg .Certificate ,error ){var _dgfb []func ()([]*_eg .Certificate ,error );switch _abad ,_ :=_ce .GetNameVal (_dfgce .SubFilter );_abad {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":_dgfb =append (_dgfb ,_dfgce .extractChainFromPKCS7 ,_dfgce .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_dgfb =append (_dgfb ,_dfgce .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_dgfb =append (_dgfb ,_dfgce .extractChainFromPKCS7 );
|
||
default:return nil ,_e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_abad );};for _ ,_aggfb :=range _dgfb {_eeafc ,_aaebg :=_aggfb ();if _aaebg !=nil {return nil ,_aaebg ;
|
||
};if len (_eeafc )> 0{return _eeafc ,nil ;};};return nil ,ErrSignNoCertificates ;};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_cfdeb *PdfTilingPattern )IsColored ()bool {if _cfdeb .PaintType !=nil &&*_cfdeb .PaintType ==1{return true ;};return false ;};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_edcgg *fontFile )String ()string {_cedf :="\u005b\u004e\u006f\u006e\u0065\u005d";if _edcgg ._bagea !=nil {_cedf =_edcgg ._bagea .String ();};return _e .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_edcgg ._abdd ,_cedf );
|
||
};
|
||
|
||
// 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 (_bbffe *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_ccee :=_bbffe .fill (provider ,appGen );if _ccee !=nil {return _ccee ;};if _ ,_gaaae :=provider .(FieldImageProvider );_gaaae {_ccee =_bbffe .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
|
||
};return _ccee ;};
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ce .PdfObjectBool ;SigFlags *_ce .PdfObjectInteger ;CO *_ce .PdfObjectArray ;DR *PdfPageResources ;DA *_ce .PdfObjectString ;Q *_ce .PdfObjectInteger ;XFA _ce .PdfObject ;
|
||
|
||
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
|
||
ADBEEchoSign _ce .PdfObject ;_febb *_ce .PdfIndirectObject ;_afab bool ;};func (_gefga *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _aadb :=_gefga ._daebd ;_aadb !=nil {return _aadb ;};return _gefga ._cdcd ;};
|
||
|
||
// HasShadingByName checks whether a shading is defined by the specified keyName.
|
||
func (_aabcg *PdfPageResources )HasShadingByName (keyName _ce .PdfObjectName )bool {_ ,_aagd :=_aabcg .GetShadingByName (keyName );return _aagd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_caga *PdfSignature )ToPdfObject ()_ce .PdfObject {_dgdgf :=_caga ._ggbg ;var _fbfbd *_ce .PdfObjectDictionary ;if _gcabe ,_egec :=_dgdgf .PdfObject .(*pdfSignDictionary );_egec {_fbfbd =_gcabe .PdfObjectDictionary ;}else {_fbfbd =_dgdgf .PdfObject .(*_ce .PdfObjectDictionary );
|
||
};_fbfbd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_caga .Type );_fbfbd .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_caga .Filter );_fbfbd .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_caga .SubFilter );_fbfbd .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_caga .ByteRange );
|
||
_fbfbd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_caga .Contents );_fbfbd .SetIfNotNil ("\u0043\u0065\u0072\u0074",_caga .Cert );_fbfbd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_caga .Name );_fbfbd .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_caga .Reason );
|
||
_fbfbd .SetIfNotNil ("\u004d",_caga .M );_fbfbd .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_caga .Reference );_fbfbd .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_caga .Changes );_fbfbd .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_caga .ContactInfo );
|
||
return _dgdgf ;};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_ecde :_ce .MakeIndirectObject (_ce .MakeDict ()),VRI :map[string ]*VRI {}};};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_gbfg *PdfSignature )SetReason (reason string ){_gbfg .Reason =_ce .MakeEncodedString (reason ,true );};func _adafdf ()string {_cbcgc .Lock ();defer _cbcgc .Unlock ();_adca :=_gec .GetLicenseKey ();if len (_cdgba )> 0&&(_adca .IsLicensed ()||_dbdae ){return _cdgba ;
|
||
};return _e .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_cfdcf (),_adca .TypeToString ());};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_fagbc *PdfSignature )SetLocation (location string ){_fagbc .Location =_ce .MakeString (location )};
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_ce .PdfObjectDictionary )(*PdfPageResources ,error ){_afgcgg :=NewPdfPageResources ();if _aeed :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_aeed !=nil {_afgcgg .ExtGState =_aeed ;};if _fged :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_fged !=nil &&!_ce .IsNullObject (_fged ){_afgcgg .ColorSpace =_fged ;};if _fbcfb :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_fbcfb !=nil {_afgcgg .Pattern =_fbcfb ;};if _eaabb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_eaabb !=nil {_afgcgg .Shading =_eaabb ;
|
||
};if _bbeeg :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_bbeeg !=nil {_afgcgg .XObject =_bbeeg ;};if _bfgdb :=_ce .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_bfgdb !=nil {_afgcgg .Font =_bfgdb ;};if _aedg :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_aedg !=nil {_afgcgg .ProcSet =_aedg ;};if _bfcbg :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_bfcbg !=nil {_afgcgg .Properties =_bfcbg ;};return _afgcgg ,nil ;};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_fagg *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fagg .updateObjectsDeep (dss .ToPdfObject (),nil );};_fagg ._gee =dss ;};
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_dgbff :=NewPdfOutline ();_dgbff ._edda =&_dgbff ;return _dgbff ;};func (_ebedc *Image )samplesTrimPadding (_becce []uint32 )[]uint32 {_aedd :=_ebedc .ColorComponents *int (_ebedc .Width )*int (_ebedc .Height );if len (_becce )==_aedd {return _becce ;
|
||
};_cadcb :=make ([]uint32 ,_aedd );_bdaed :=int (_ebedc .Width )*_ebedc .ColorComponents ;var _bccce ,_bbdc ,_ebcgd ,_gcbbe int ;_cbaece :=_gf .BytesPerLine (int (_ebedc .Width ),int (_ebedc .BitsPerComponent ),_ebedc .ColorComponents );for _bccce =0;_bccce < int (_ebedc .Height );
|
||
_bccce ++{_bbdc =_bccce *int (_ebedc .Width );_ebcgd =_bccce *_cbaece ;for _gcbbe =0;_gcbbe < _bdaed ;_gcbbe ++{_cadcb [_bbdc +_gcbbe ]=_becce [_ebcgd +_gcbbe ];};};return _cadcb ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_cgbg *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_aggee *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_gfgc ,_aaaa :=color .(*PdfColorCalRGB );if !_aaaa {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gcgd :=_gfgc .A ();_befa :=_gfgc .B ();_ebdb :=_gfgc .C ();X :=_aggee .Matrix [0]*_egg .Pow (_gcgd ,_aggee .Gamma [0])+_aggee .Matrix [3]*_egg .Pow (_befa ,_aggee .Gamma [1])+_aggee .Matrix [6]*_egg .Pow (_ebdb ,_aggee .Gamma [2]);
|
||
Y :=_aggee .Matrix [1]*_egg .Pow (_gcgd ,_aggee .Gamma [0])+_aggee .Matrix [4]*_egg .Pow (_befa ,_aggee .Gamma [1])+_aggee .Matrix [7]*_egg .Pow (_ebdb ,_aggee .Gamma [2]);Z :=_aggee .Matrix [2]*_egg .Pow (_gcgd ,_aggee .Gamma [0])+_aggee .Matrix [5]*_egg .Pow (_befa ,_aggee .Gamma [1])+_aggee .Matrix [8]*_egg .Pow (_ebdb ,_aggee .Gamma [2]);
|
||
_fceb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_faaa :=-0.969256*X +1.875992*Y +0.041556*Z ;_ddg :=0.055648*X +-0.204043*Y +1.057311*Z ;_fceb =_egg .Min (_egg .Max (_fceb ,0),1.0);_faaa =_egg .Min (_egg .Max (_faaa ,0),1.0);_ddg =_egg .Min (_egg .Max (_ddg ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_fceb ,_faaa ,_ddg ),nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gbgba *PdfShading )ToPdfObject ()_ce .PdfObject {_egba :=_gbgba ._agcdg ;_fagbd ,_cdeca :=_gbgba .getShadingDict ();if _cdeca !=nil {_ff .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 _gbgba .ShadingType !=nil {_fagbd .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_gbgba .ShadingType );};if _gbgba .ColorSpace !=nil {_fagbd .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_gbgba .ColorSpace .ToPdfObject ());
|
||
};if _gbgba .Background !=nil {_fagbd .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_gbgba .Background );};if _gbgba .BBox !=nil {_fagbd .Set ("\u0042\u0042\u006f\u0078",_gbgba .BBox .ToPdfObject ());};if _gbgba .AntiAlias !=nil {_fagbd .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_gbgba .AntiAlias );
|
||
};return _egba ;};
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;};
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_aagfg *PdfPageResources )GenerateXObjectName ()_ce .PdfObjectName {_ddbd :=1;for {_caefe :=_ce .MakeName (_e .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_ddbd ));if !_aagfg .HasXObjectByName (*_caefe ){return *_caefe ;};_ddbd ++;};};
|
||
|
||
// 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 };};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gecb *PdfActionGoToE )ToPdfObject ()_ce .PdfObject {_gecb .PdfAction .ToPdfObject ();_gdb :=_gecb ._bcc ;_ecb :=_gdb .PdfObject .(*_ce .PdfObjectDictionary );_ecb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoToE )));if _gecb .F !=nil {_ecb .Set ("\u0046",_gecb .F .ToPdfObject ());
|
||
};_ecb .SetIfNotNil ("\u0044",_gecb .D );_ecb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_gecb .NewWindow );_ecb .SetIfNotNil ("\u0054",_gecb .T );return _gdb ;};func (_aaefba *PdfSignature )extractChainFromCert ()([]*_eg .Certificate ,error ){var _bgffa *_ce .PdfObjectArray ;
|
||
switch _gbdcb :=_aaefba .Cert .(type ){case *_ce .PdfObjectString :_bgffa =_ce .MakeArray (_gbdcb );case *_ce .PdfObjectArray :_bgffa =_gbdcb ;default:return nil ,_e .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_gbdcb );
|
||
};var _facae _ag .Buffer ;for _ ,_fedfg :=range _bgffa .Elements (){_acgec ,_cdfaf :=_ce .GetString (_fedfg );if !_cdfaf {return nil ,_e .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_fedfg );
|
||
};if _ ,_ebafbc :=_facae .Write (_acgec .Bytes ());_ebafbc !=nil {return nil ,_ebafbc ;};};return _eg .ParseCertificates (_facae .Bytes ());};
|
||
|
||
// 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 (_dgdb *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdab ,_bbd :=_ce .GetNumbersAsFloat (objects );
|
||
if _bbd !=nil {return nil ,_bbd ;};return _dgdb .ColorFromFloats (_gdab );};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _ce .PdfObject ;ColorSpace _ce .PdfObject ;Pattern _ce .PdfObject ;Shading _ce .PdfObject ;XObject _ce .PdfObject ;Font _ce .PdfObject ;ProcSet _ce .PdfObject ;Properties _ce .PdfObject ;_gceda *_ce .PdfObjectDictionary ;
|
||
_acffc *PdfPageResourcesColorspaces ;};func (_bgfe *PdfReader )newPdfActionResetFormFromDict (_bed *_ce .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_bed .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bed .Get ("\u0046\u006c\u0061g\u0073")},nil ;
|
||
};func (_bbbcb *PdfReader )loadStructure ()error {if _bbbcb ._afda .GetCrypter ()!=nil &&!_bbbcb ._afda .IsAuthenticated (){return _e .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_ebeba :=_bbbcb ._afda .GetTrailer ();if _ebeba ==nil {return _e .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dggc ,_gaccb :=_ebeba .Get ("\u0052\u006f\u006f\u0074").(*_ce .PdfObjectReference );if !_gaccb {return _e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_ebeba );
|
||
};_gddgc ,_adbcb :=_bbbcb ._afda .LookupByReference (*_dggc );if _adbcb !=nil {_ff .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",_adbcb );
|
||
return _adbcb ;};_fgbdd ,_gaccb :=_gddgc .(*_ce .PdfIndirectObject );if !_gaccb {_ff .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",_gddgc ,*_ebeba );
|
||
return _ge .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_cgea ,_gaccb :=(*_fgbdd ).PdfObject .(*_ce .PdfObjectDictionary );if !_gaccb {_ff .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",_fgbdd .PdfObject );
|
||
return _ge .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ff .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_cgea );_degca ,_gaccb :=_cgea .Get ("\u0050\u0061\u0067e\u0073").(*_ce .PdfObjectReference );
|
||
if !_gaccb {return _ge .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");};_fffdg ,_adbcb :=_bbbcb ._afda .LookupByReference (*_degca );
|
||
if _adbcb !=nil {_ff .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 _adbcb ;};_fgada ,_gaccb :=_fffdg .(*_ce .PdfIndirectObject );if !_gaccb {_ff .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");
|
||
_ff .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_fgada );return _ge .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fdbb ,_gaccb :=_fgada .PdfObject .(*_ce .PdfObjectDictionary );if !_gaccb {_ff .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",_fgada );
|
||
return _ge .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ecbbd ,_gaccb :=_ce .GetInt (_fdbb .Get ("\u0043\u006f\u0075n\u0074"));if !_gaccb {_ff .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 _ge .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_gaccb =_ce .GetName (_fdbb .Get ("\u0054\u0079\u0070\u0065"));!_gaccb {_ff .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");
|
||
_fdbb .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050\u0061\u0067e\u0073"));};if _bfcfd ,_gdbb :=_ce .GetInt (_fdbb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_gdbb {_dbedgg :=int64 (*_bfcfd );_bbbcb .Rotate =&_dbedgg ;};_bbbcb ._eecdg =_dggc ;
|
||
_bbbcb ._cfcdg =_cgea ;_bbbcb ._eaedf =_fdbb ;_bbbcb ._bcgea =_fgada ;_bbbcb ._ebcc =int (*_ecbbd );_bbbcb ._cbddb =[]*_ce .PdfIndirectObject {};_bfebb :=map[_ce .PdfObject ]struct{}{};_adbcb =_bbbcb .buildPageList (_fgada ,nil ,_bfebb );if _adbcb !=nil {return _adbcb ;
|
||
};_ff .Log .Trace ("\u002d\u002d\u002d");_ff .Log .Trace ("\u0054\u004f\u0043");_ff .Log .Trace ("\u0050\u0061\u0067e\u0073");_ff .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_bbbcb ._cbddb ),_bbbcb ._cbddb );_bbbcb ._dbbfe ,_adbcb =_bbbcb .loadOutlines ();
|
||
if _adbcb !=nil {_ff .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",_adbcb );
|
||
return _adbcb ;};_bbbcb .AcroForm ,_adbcb =_bbbcb .loadForms ();if _adbcb !=nil {return _adbcb ;};_bbbcb .DSS ,_adbcb =_bbbcb .loadDSS ();if _adbcb !=nil {return _adbcb ;};_bbbcb ._addg ,_adbcb =_bbbcb .loadPerms ();if _adbcb !=nil {return _adbcb ;};return nil ;
|
||
};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_fafd pdfFontType0 )Encoder ()_dc .TextEncoder {return _fafd ._fbfa };
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_cbbga *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=_cbbga .GetNumComponents (){return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaddf ,_ffacc :=_ce .GetNumbersAsFloat (objects );
|
||
if _ffacc !=nil {return nil ,_ffacc ;};return _cbbga .ColorFromFloats (_gaddf );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_eaaca *PdfAnnotation )ToPdfObject ()_ce .PdfObject {_ffe :=_eaaca ._dec ;_fce :=_ffe .PdfObject .(*_ce .PdfObjectDictionary );_fce .Clear ();_fce .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0041\u006e\u006eo\u0074"));_fce .SetIfNotNil ("\u0052\u0065\u0063\u0074",_eaaca .Rect );
|
||
_fce .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_eaaca .Contents );_fce .SetIfNotNil ("\u0050",_eaaca .P );_fce .SetIfNotNil ("\u004e\u004d",_eaaca .NM );_fce .SetIfNotNil ("\u004d",_eaaca .M );_fce .SetIfNotNil ("\u0046",_eaaca .F );
|
||
_fce .SetIfNotNil ("\u0041\u0050",_eaaca .AP );_fce .SetIfNotNil ("\u0041\u0053",_eaaca .AS );_fce .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_eaaca .Border );_fce .SetIfNotNil ("\u0043",_eaaca .C );_fce .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_eaaca .StructParent );
|
||
_fce .SetIfNotNil ("\u004f\u0043",_eaaca .OC );return _ffe ;};func (_bead *LTV )getCerts (_aabgf []*_eg .Certificate )([][]byte ,error ){_fead :=make ([][]byte ,0,len (_aabgf ));for _ ,_eefdf :=range _aabgf {_fead =append (_fead ,_eefdf .Raw );};return _fead ,nil ;
|
||
};func _dcgbb (_ebad *_ce .PdfObjectDictionary )*VRI {_bcfdf ,_ :=_ce .GetString (_ebad .Get ("\u0054\u0055"));_ggcg ,_ :=_ce .GetString (_ebad .Get ("\u0054\u0053"));return &VRI {Cert :_aaefeg (_ebad .Get ("\u0043\u0065\u0072\u0074")),OCSP :_aaefeg (_ebad .Get ("\u004f\u0043\u0053\u0050")),CRL :_aaefeg (_ebad .Get ("\u0043\u0052\u004c")),TU :_bcfdf ,TS :_ggcg };
|
||
};func (_dbebc *PdfWriter )writeOutputIntents ()error {if len (_dbebc ._dfaac )==0{return nil ;};_becfab :=make ([]_ce .PdfObject ,len (_dbebc ._dfaac ));for _fdbfb ,_dggbg :=range _dbebc ._dfaac {_dffda :=_dggbg .ToPdfObject ();_becfab [_fdbfb ]=_ce .MakeIndirectObject (_dffda );
|
||
};_cbdcg :=_ce .MakeIndirectObject (_ce .MakeArray (_becfab ...));_dbebc ._bbef .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_cbdcg );if _cfegc :=_dbebc .addObjects (_cbdcg );_cfegc !=nil {return _cfegc ;};return nil ;
|
||
};
|
||
|
||
// NewPdfColorPattern returns an empty color pattern.
|
||
func NewPdfColorPattern ()*PdfColorPattern {_beee :=&PdfColorPattern {};return _beee };
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_dfa :=NewPdfAnnotation ();_bfe :=&PdfAnnotationStamp {};_bfe .PdfAnnotation =_dfa ;_bfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfa .SetContext (_bfe );return _bfe ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gaec *PdfShadingType5 )ToPdfObject ()_ce .PdfObject {_gaec .PdfShading .ToPdfObject ();_gfad ,_cefbg :=_gaec .getShadingDict ();if _cefbg !=nil {_ff .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 _gaec .BitsPerCoordinate !=nil {_gfad .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gaec .BitsPerCoordinate );};if _gaec .BitsPerComponent !=nil {_gfad .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gaec .BitsPerComponent );
|
||
};if _gaec .VerticesPerRow !=nil {_gfad .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_gaec .VerticesPerRow );};if _gaec .Decode !=nil {_gfad .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gaec .Decode );};if _gaec .Function !=nil {if len (_gaec .Function )==1{_gfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gaec .Function [0].ToPdfObject ());
|
||
}else {_egbfg :=_ce .MakeArray ();for _ ,_daefd :=range _gaec .Function {_egbfg .Append (_daefd .ToPdfObject ());};_gfad .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egbfg );};};return _gaec ._agcdg ;};
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
|
||
);
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_fccb *PdfPage )GetXObjectByName (name _ce .PdfObjectName )(_ce .PdfObject ,bool ){_afcb ,_agcg :=_fccb .Resources .XObject .(*_ce .PdfObjectDictionary );if !_agcg {return nil ,false ;};if _gfbe :=_afcb .Get (name );_gfbe !=nil {return _gfbe ,true ;
|
||
};return nil ,false ;};
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_ccgca *PdfRectangle )Height ()float64 {return _egg .Abs (_ccgca .Ury -_ccgca .Lly )};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ce .PdfObject ;BS _ce .PdfObject ;LE _ce .PdfObject ;IC _ce .PdfObject ;LL _ce .PdfObject ;LLE _ce .PdfObject ;Cap _ce .PdfObject ;IT _ce .PdfObject ;LLO _ce .PdfObject ;CP _ce .PdfObject ;
|
||
Measure _ce .PdfObject ;CO _ce .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_acg *PdfActionNamed )ToPdfObject ()_ce .PdfObject {_acg .PdfAction .ToPdfObject ();_aba :=_acg ._bcc ;_edb :=_aba .PdfObject .(*_ce .PdfObjectDictionary );_edb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeNamed )));_edb .SetIfNotNil ("\u004e",_acg .N );
|
||
return _aba ;};func (_dgbag *pdfFontType0 )baseFields ()*fontCommon {return &_dgbag .fontCommon };
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_ced :=NewPdfAction ();_bdb :=&PdfActionGoTo {};_bdb .PdfAction =_ced ;_ced .SetContext (_bdb );return _bdb ;};
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_bgdb *PdfPage )GetContentStreamObjs ()[]_ce .PdfObject {if _bgdb .Contents ==nil {return nil ;};_cbea :=_ce .TraceToDirectObject (_bgdb .Contents );if _cfcd ,_gcfae :=_cbea .(*_ce .PdfObjectArray );_gcfae {return _cfcd .Elements ();};return []_ce .PdfObject {_cbea };
|
||
};func (_ggegc *PdfWriter )optimizeDocument ()error {if _ggegc ._dgeef ==nil {return nil ;};_egefg ,_cceec :=_ce .GetDict (_ggegc ._dcecd );if !_cceec {return _ge .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");
|
||
};_cgaff :=_ffa .Document {ID :[2]string {_ggegc ._aecc ,_ggegc ._efbed },Version :_ggegc ._facee ,Objects :_ggegc ._adbee ,Info :_egefg ,Crypt :_ggegc ._cgebe ,UseHashBasedID :_ggegc ._aegf };if _aagea :=_ggegc ._dgeef .ApplyStandard (&_cgaff );_aagea !=nil {return _aagea ;
|
||
};_ggegc ._aecc ,_ggegc ._efbed =_cgaff .ID [0],_cgaff .ID [1];_ggegc ._facee =_cgaff .Version ;_ggegc ._adbee =_cgaff .Objects ;_ggegc ._dcecd .PdfObject =_cgaff .Info ;_ggegc ._aegf =_cgaff .UseHashBasedID ;_ggegc ._cgebe =_cgaff .Crypt ;_afcgc :=make (map[_ce .PdfObject ]struct{},len (_ggegc ._adbee ));
|
||
for _ ,_bbdegd :=range _ggegc ._adbee {_afcgc [_bbdegd ]=struct{}{};};_ggegc ._gdaab =_afcgc ;return nil ;};func (_cfag *PdfReader )newPdfAnnotationWidgetFromDict (_fec *_ce .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_cffd :=PdfAnnotationWidget {};
|
||
_cffd .H =_fec .Get ("\u0048");_cffd .MK =_fec .Get ("\u004d\u004b");_cffd .A =_fec .Get ("\u0041");_cffd .AA =_fec .Get ("\u0041\u0041");_cffd .BS =_fec .Get ("\u0042\u0053");_cffd .Parent =_fec .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_cffd ,nil ;
|
||
};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_cbef *PdfWriter )SetOCProperties (ocProperties _ce .PdfObject )error {_dbbaa :=_cbef ._bbef ;if ocProperties !=nil {_ff .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_dbbaa .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _cbef .addObjects (ocProperties );};return nil ;};func (_fba *PdfReader )newPdfActionFromIndirectObject (_db *_ce .PdfIndirectObject )(*PdfAction ,error ){_ebab ,_eff :=_db .PdfObject .(*_ce .PdfObjectDictionary );
|
||
if !_eff {return nil ,_e .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_fba ._aedda .GetModelFromPrimitive (_ebab );model !=nil {_fgf ,_geb :=model .(*PdfAction );if !_geb {return nil ,_e .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
|
||
};return _fgf ,nil ;};_cebb :=&PdfAction {};_cebb ._bcc =_db ;_fba ._aedda .Register (_ebab ,_cebb );if _ded :=_ebab .Get ("\u0054\u0079\u0070\u0065");_ded !=nil {_cac ,_fdd :=_ded .(*_ce .PdfObjectName );if !_fdd {_ff .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",_ded );
|
||
}else {if *_cac !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ff .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",*_cac );
|
||
};_cebb .Type =_cac ;};};if _fbac :=_ebab .Get ("\u004e\u0065\u0078\u0074");_fbac !=nil {_cebb .Next =_fbac ;};if _aeag :=_ebab .Get ("\u0053");_aeag !=nil {_cebb .S =_aeag ;};_gag ,_bbb :=_cebb .S .(*_ce .PdfObjectName );if !_bbb {_ff .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",_cebb .S );
|
||
return nil ,_e .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_cebb .S );};_gfe :=PdfActionType (_gag .String ());
|
||
switch _gfe {case ActionTypeGoTo :_ecbg ,_cdgd :=_fba .newPdfActionGotoFromDict (_ebab );if _cdgd !=nil {return nil ,_cdgd ;};_ecbg .PdfAction =_cebb ;_cebb ._gbf =_ecbg ;return _cebb ,nil ;case ActionTypeGoToR :_caad ,_efe :=_fba .newPdfActionGotoRFromDict (_ebab );
|
||
if _efe !=nil {return nil ,_efe ;};_caad .PdfAction =_cebb ;_cebb ._gbf =_caad ;return _cebb ,nil ;case ActionTypeGoToE :_aab ,_ccb :=_fba .newPdfActionGotoEFromDict (_ebab );if _ccb !=nil {return nil ,_ccb ;};_aab .PdfAction =_cebb ;_cebb ._gbf =_aab ;
|
||
return _cebb ,nil ;case ActionTypeLaunch :_cedc ,_dee :=_fba .newPdfActionLaunchFromDict (_ebab );if _dee !=nil {return nil ,_dee ;};_cedc .PdfAction =_cebb ;_cebb ._gbf =_cedc ;return _cebb ,nil ;case ActionTypeThread :_gad ,_dce :=_fba .newPdfActionThreadFromDict (_ebab );
|
||
if _dce !=nil {return nil ,_dce ;};_gad .PdfAction =_cebb ;_cebb ._gbf =_gad ;return _cebb ,nil ;case ActionTypeURI :_bcf ,_ecfe :=_fba .newPdfActionURIFromDict (_ebab );if _ecfe !=nil {return nil ,_ecfe ;};_bcf .PdfAction =_cebb ;_cebb ._gbf =_bcf ;return _cebb ,nil ;
|
||
case ActionTypeSound :_ead ,_adf :=_fba .newPdfActionSoundFromDict (_ebab );if _adf !=nil {return nil ,_adf ;};_ead .PdfAction =_cebb ;_cebb ._gbf =_ead ;return _cebb ,nil ;case ActionTypeMovie :_bdgc ,_eaf :=_fba .newPdfActionMovieFromDict (_ebab );if _eaf !=nil {return nil ,_eaf ;
|
||
};_bdgc .PdfAction =_cebb ;_cebb ._gbf =_bdgc ;return _cebb ,nil ;case ActionTypeHide :_eegc ,_gfc :=_fba .newPdfActionHideFromDict (_ebab );if _gfc !=nil {return nil ,_gfc ;};_eegc .PdfAction =_cebb ;_cebb ._gbf =_eegc ;return _cebb ,nil ;case ActionTypeNamed :_gbd ,_cgag :=_fba .newPdfActionNamedFromDict (_ebab );
|
||
if _cgag !=nil {return nil ,_cgag ;};_gbd .PdfAction =_cebb ;_cebb ._gbf =_gbd ;return _cebb ,nil ;case ActionTypeSubmitForm :_ffac ,_cae :=_fba .newPdfActionSubmitFormFromDict (_ebab );if _cae !=nil {return nil ,_cae ;};_ffac .PdfAction =_cebb ;_cebb ._gbf =_ffac ;
|
||
return _cebb ,nil ;case ActionTypeResetForm :_eeff ,_cba :=_fba .newPdfActionResetFormFromDict (_ebab );if _cba !=nil {return nil ,_cba ;};_eeff .PdfAction =_cebb ;_cebb ._gbf =_eeff ;return _cebb ,nil ;case ActionTypeImportData :_egf ,_eaa :=_fba .newPdfActionImportDataFromDict (_ebab );
|
||
if _eaa !=nil {return nil ,_eaa ;};_egf .PdfAction =_cebb ;_cebb ._gbf =_egf ;return _cebb ,nil ;case ActionTypeSetOCGState :_abe ,_dbg :=_fba .newPdfActionSetOCGStateFromDict (_ebab );if _dbg !=nil {return nil ,_dbg ;};_abe .PdfAction =_cebb ;_cebb ._gbf =_abe ;
|
||
return _cebb ,nil ;case ActionTypeRendition :_bdf ,_aad :=_fba .newPdfActionRenditionFromDict (_ebab );if _aad !=nil {return nil ,_aad ;};_bdf .PdfAction =_cebb ;_cebb ._gbf =_bdf ;return _cebb ,nil ;case ActionTypeTrans :_cgc ,_eccg :=_fba .newPdfActionTransFromDict (_ebab );
|
||
if _eccg !=nil {return nil ,_eccg ;};_cgc .PdfAction =_cebb ;_cebb ._gbf =_cgc ;return _cebb ,nil ;case ActionTypeGoTo3DView :_beb ,_bgf :=_fba .newPdfActionGoTo3DViewFromDict (_ebab );if _bgf !=nil {return nil ,_bgf ;};_beb .PdfAction =_cebb ;_cebb ._gbf =_beb ;
|
||
return _cebb ,nil ;case ActionTypeJavaScript :_cgaa ,_fgg :=_fba .newPdfActionJavaScriptFromDict (_ebab );if _fgg !=nil {return nil ,_fgg ;};_cgaa .PdfAction =_cebb ;_cebb ._gbf =_cgaa ;return _cebb ,nil ;};_ff .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",_gfe );
|
||
return nil ,nil ;};type modelManager struct{_dgefa map[PdfModel ]_ce .PdfObject ;_adbfe map[_ce .PdfObject ]PdfModel ;};
|
||
|
||
// Val returns the color value.
|
||
func (_cgfa *PdfColorDeviceGray )Val ()float64 {return float64 (*_cgfa )};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_ggcfa *PdfFont )Subtype ()string {_bgaf :=_ggcfa .baseFields ()._baafb ;if _bbee ,_eafba :=_ggcfa ._dace .(*pdfFontType0 );_eafba {_bgaf =_bgaf +"\u003a"+_bbee .DescendantFont .Subtype ();};return _bgaf ;};func _bfddba (_dcdadc *_ce .PdfObjectDictionary )(*PdfShadingType3 ,error ){_cgfga :=PdfShadingType3 {};
|
||
_bfcbb :=_dcdadc .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _bfcbb ==nil {_ff .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 ;};_fbga ,_gcdbg :=_bfcbb .(*_ce .PdfObjectArray );if !_gcdbg {_ff .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",_bfcbb );
|
||
return nil ,_ce .ErrTypeError ;};if _fbga .Len ()!=6{_ff .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",_fbga .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_cgfga .Coords =_fbga ;if _cacfe :=_dcdadc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cacfe !=nil {_cacfe =_ce .TraceToDirectObject (_cacfe );_eacb ,_adbbe :=_cacfe .(*_ce .PdfObjectArray );if !_adbbe {_ff .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",_cacfe );
|
||
return nil ,_ce .ErrTypeError ;};_cgfga .Domain =_eacb ;};_bfcbb =_dcdadc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bfcbb ==nil {_ff .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 ;};_cgfga .Function =[]PdfFunction {};if _fagb ,_ceced :=_bfcbb .(*_ce .PdfObjectArray );_ceced {for _ ,_cffagb :=range _fagb .Elements (){_faag ,_gefe :=_cegfd (_cffagb );if _gefe !=nil {_ff .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",_gefe );
|
||
return nil ,_gefe ;};_cgfga .Function =append (_cgfga .Function ,_faag );};}else {_adfb ,_bdcde :=_cegfd (_bfcbb );if _bdcde !=nil {_ff .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",_bdcde );
|
||
return nil ,_bdcde ;};_cgfga .Function =append (_cgfga .Function ,_adfb );};if _aecgd :=_dcdadc .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_aecgd !=nil {_aecgd =_ce .TraceToDirectObject (_aecgd );_edec ,_bbeefe :=_aecgd .(*_ce .PdfObjectArray );if !_bbeefe {_ff .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",_aecgd );
|
||
return nil ,_ce .ErrTypeError ;};if _edec .Len ()!=2{_ff .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",_edec .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_cgfga .Extend =_edec ;};return &_cgfga ,nil ;};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_ce .PdfObject ,error );};
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_cabe :=NewPdfAnnotation ();_gcg :=&PdfAnnotationCaret {};_gcg .PdfAnnotation =_cabe ;_gcg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cabe .SetContext (_gcg );return _gcg ;};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _ce .PdfObject ;Popup *PdfAnnotationPopup ;CA _ce .PdfObject ;RC _ce .PdfObject ;CreationDate _ce .PdfObject ;IRT _ce .PdfObject ;Subj _ce .PdfObject ;RT _ce .PdfObject ;IT _ce .PdfObject ;ExData _ce .PdfObject ;};
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_ce .PdfObjectArray ;Domain *_ce .PdfObjectArray ;Function []PdfFunction ;Extend *_ce .PdfObjectArray ;};
|
||
|
||
// 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 ){_fdgab ,_bgadc :=_gdc .ParsePdfTime (dateStr );if _bgadc !=nil {return PdfDate {},_bgadc ;};return NewPdfDateFromTime (_fdgab );};
|
||
|
||
// GetNamedDestinations returns the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_egffe *PdfReader )GetNamedDestinations ()(_ce .PdfObject ,error ){_ccefb :=_ce .ResolveReference (_egffe ._cfcdg .Get ("\u0044\u0065\u0073t\u0073"));if _ccefb ==nil {return nil ,nil ;};if !_egffe ._cgbdb {_caeae :=_egffe .traverseObjectData (_ccefb );
|
||
if _caeae !=nil {return nil ,_caeae ;};};return _ccefb ,nil ;};func (_afba *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
|
||
|
||
// 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 ;_ggbg *_ce .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_ce .PdfObjectName ;Filter *_ce .PdfObjectName ;SubFilter *_ce .PdfObjectName ;Contents *_ce .PdfObjectString ;Cert _ce .PdfObject ;ByteRange *_ce .PdfObjectArray ;Reference *_ce .PdfObjectArray ;Changes *_ce .PdfObjectArray ;Name *_ce .PdfObjectString ;
|
||
M *_ce .PdfObjectString ;Location *_ce .PdfObjectString ;Reason *_ce .PdfObjectString ;ContactInfo *_ce .PdfObjectString ;R *_ce .PdfObjectInteger ;V *_ce .PdfObjectInteger ;PropBuild *_ce .PdfObjectDictionary ;PropAuthTime *_ce .PdfObjectInteger ;PropAuthType *_ce .PdfObjectName ;
|
||
};
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_fgbcd *PdfTilingPattern )SetContentStream (content []byte ,encoder _ce .StreamEncoder )error {_fgeaa ,_eeede :=_fgbcd ._gadcb .(*_ce .PdfObjectStream );if !_eeede {_ff .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",_fgbcd ._gadcb );
|
||
return _ce .ErrTypeError ;};if encoder ==nil {encoder =_ce .NewRawEncoder ();};_gbgec :=_fgeaa .PdfObjectDictionary ;_accf :=encoder .MakeStreamDict ();_gbgec .Merge (_accf );_afbead ,_aaaag :=encoder .EncodeBytes (content );if _aaaag !=nil {return _aaaag ;
|
||
};_gbgec .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_afbead ))));_fgeaa .Stream =_afbead ;return nil ;};
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_beca *PdfAcroForm )ToPdfObject ()_ce .PdfObject {_cdfeg :=_beca ._febb ;_acgb :=_cdfeg .PdfObject .(*_ce .PdfObjectDictionary );if _beca .Fields !=nil {_ggaag :=_ce .PdfObjectArray {};for _ ,_aafdc :=range *_beca .Fields {_bagf :=_aafdc .GetContext ();
|
||
if _bagf !=nil {_ggaag .Append (_bagf .ToPdfObject ());}else {_ggaag .Append (_aafdc .ToPdfObject ());};};_acgb .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_ggaag );};if _beca .NeedAppearances !=nil {_acgb .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_beca .NeedAppearances );
|
||
}else {if _geab :=_acgb .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_geab !=nil {_acgb .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _beca .SigFlags !=nil {_acgb .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_beca .SigFlags );
|
||
};if _beca .CO !=nil {_acgb .Set ("\u0043\u004f",_beca .CO );};if _beca .DR !=nil {_acgb .Set ("\u0044\u0052",_beca .DR .ToPdfObject ());};if _beca .DA !=nil {_acgb .Set ("\u0044\u0041",_beca .DA );};if _beca .Q !=nil {_acgb .Set ("\u0051",_beca .Q );};
|
||
if _beca .XFA !=nil {_acgb .Set ("\u0058\u0046\u0041",_beca .XFA );};if _beca .ADBEEchoSign !=nil {_acgb .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_beca .ADBEEchoSign );};return _cdfeg ;};
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;BitsPerFlag *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_fdabc *PdfOutlineTreeNode )GetContainingPdfObject ()_ce .PdfObject {return _fdabc .GetContext ().GetContainingPdfObject ();};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_adeaaa *PdfPageResources )SetShadingByName (keyName _ce .PdfObjectName ,shadingObj _ce .PdfObject )error {if _adeaaa .Shading ==nil {_adeaaa .Shading =_ce .MakeDict ();};_agag ,_bedf :=_ce .GetDict (_adeaaa .Shading );if !_bedf {return _ce .ErrTypeError ;
|
||
};_agag .Set (keyName ,shadingObj );return nil ;};
|
||
|
||
// IsValid checks if the given pdf output intent type is valid.
|
||
func (_dbbfa PdfOutputIntentType )IsValid ()bool {return _dbbfa >=PdfOutputIntentTypeA1 &&_dbbfa <=PdfOutputIntentTypeX ;};func (_cad *PdfAppender )addNewObject (_fdag _ce .PdfObject ){if _ ,_bcbfb :=_cad ._acbd [_fdag ];!_bcbfb {_cad ._beff =append (_cad ._beff ,_fdag );
|
||
_cad ._acbd [_fdag ]=struct{}{};};};var (_cbcgc _b .Mutex ;_fadafb ="";_faegc _c .Time ;_daadg ="";_babb ="";_dfecd _c .Time ;_cdgba ="";_bfdac ="";_dbfgc ="";);
|
||
|
||
// 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 ;_fbea PdfModel ;_gadcb _ce .PdfObject ;};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_bcab *VRI )ToPdfObject ()*_ce .PdfObjectDictionary {_befe :=_ce .MakeDict ();_befe .SetIfNotNil (_ce .PdfObjectName ("\u0043\u0065\u0072\u0074"),_gegfc (_bcab .Cert ));_befe .SetIfNotNil (_ce .PdfObjectName ("\u004f\u0043\u0053\u0050"),_gegfc (_bcab .OCSP ));
|
||
_befe .SetIfNotNil (_ce .PdfObjectName ("\u0043\u0052\u004c"),_gegfc (_bcab .CRL ));_befe .SetIfNotNil ("\u0054\u0055",_bcab .TU );_befe .SetIfNotNil ("\u0054\u0053",_bcab .TS );return _befe ;};
|
||
|
||
// String returns a string representation of PdfTransformParamsDocMDP.
|
||
func (_ecad *PdfTransformParamsDocMDP )String ()string {return _e .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_ecad .Type ,_ecad .P ,_ecad .V );};func (_adfed *PdfReader )loadPerms ()(*Permissions ,error ){if _fcee :=_adfed ._cfcdg .Get ("\u0050\u0065\u0072m\u0073");
|
||
_fcee !=nil {if _dfefe ,_eface :=_ce .GetDict (_fcee );_eface {_dggf :=_dfefe .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _dggf ==nil {return nil ,nil ;};if _ddda ,_eegbd :=_ce .GetIndirect (_dggf );_eegbd {_ggfcc ,_acdgd :=_adfed .newPdfSignatureFromIndirect (_ddda );
|
||
if _acdgd !=nil {return nil ,_acdgd ;};return NewPermissions (_ggfcc ),nil ;};return nil ,_e .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
|
||
};return nil ,nil ;};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_deee *PdfPageResources )AddExtGState (gsName _ce .PdfObjectName ,gsDict _ce .PdfObject )error {if _deee .ExtGState ==nil {_deee .ExtGState =_ce .MakeDict ();};_gcgda :=_deee .ExtGState ;_ecfdb ,_gggfg :=_ce .TraceToDirectObject (_gcgda ).(*_ce .PdfObjectDictionary );
|
||
if !_gggfg {_ff .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",_gcgda ,_ce .TraceToDirectObject (_gcgda ));
|
||
return _ce .ErrTypeError ;};_ecfdb .Set (gsName ,gsDict );return nil ;};func (_fdce *PdfReader )newPdfAnnotationStrikeOut (_fgeg *_ce .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_bebb :=PdfAnnotationStrikeOut {};_ccaa ,_dbbd :=_fdce .newPdfAnnotationMarkupFromDict (_fgeg );
|
||
if _dbbd !=nil {return nil ,_dbbd ;};_bebb .PdfAnnotationMarkup =_ccaa ;_bebb .QuadPoints =_fgeg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_bebb ,nil ;};type fontCommon struct{_egacd string ;_baafb string ;_bdae string ;
|
||
_bcef _ce .PdfObject ;_dgfcg *_ga .CMap ;_daebd *PdfFontDescriptor ;_edcbg int64 ;};
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_dadeg PdfDate )ToGoTime ()_c .Time {_gebaf :=int (_dadeg ._gbbfe *60*60+_dadeg ._cfcf *60);switch _dadeg ._accgd {case '-':_gebaf =-_gebaf ;case 'Z':_gebaf =0;};_bedd :=_e .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_dadeg ._accgd ,_dadeg ._gbbfe ,_dadeg ._cfcf );
|
||
_dcfga :=_c .FixedZone (_bedd ,_gebaf );return _c .Date (int (_dadeg ._cbacb ),_c .Month (_dadeg ._adeec ),int (_dadeg ._eeegb ),int (_dadeg ._gbcf ),int (_dadeg ._ecebf ),int (_dadeg ._cdbfg ),0,_dcfga );};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_aeef *PdfReader )IsEncrypted ()(bool ,error ){return _aeef ._afda .IsEncrypted ()};func (_egcaf *PdfWriter )addObject (_cdfc _ce .PdfObject )bool {_gecfda :=_egcaf .hasObject (_cdfc );if !_gecfda {_fdeef :=_ce .ResolveReferencesDeep (_cdfc ,_egcaf ._daeac );
|
||
if _fdeef !=nil {_ff .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_fdeef );};_egcaf ._adbee =append (_egcaf ._adbee ,_cdfc );_egcaf ._gdaab [_cdfc ]=struct{}{};return true ;};return false ;
|
||
};
|
||
|
||
// 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 (_cfaa *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_bgaeg :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_edgcf ,_eaefe :=_cfaa .GetNumPages ();if _eaefe !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eaefe );
|
||
return nil ,_eaefe ;};for _cdca :=1;_cdca <=_edgcf ;_cdca ++{_dbcad ,_cfdc :=_cfaa .GetPage (_cdca );if _cfdc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfdc );return nil ,_cfdc ;};if opts .PageProcessCallback !=nil {_cfdc =opts .PageProcessCallback (_cdca ,_dbcad );
|
||
if _cfdc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfdc );return nil ,_cfdc ;};}else if opts .PageCallback !=nil {opts .PageCallback (_cdca ,_dbcad );};_cfdc =_bgaeg .AddPage (_dbcad );if _cfdc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cfdc );
|
||
return nil ,_cfdc ;};};_bgaeg ._facee =_cfaa .PdfVersion ();if !opts .SkipInfo {_abfdb ,_dgfga :=_cfaa .GetPdfInfo ();if _dgfga !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgfga );}else {_bgaeg ._dcecd .PdfObject =_abfdb .ToPdfObject ();
|
||
};};if !opts .SkipMetadata {if _dggebe :=_cfaa ._cfcdg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dggebe !=nil {if _fgdfg :=_bgaeg .SetCatalogMetadata (_dggebe );_fgdfg !=nil {return nil ,_fgdfg ;};};};if !opts .SkipAcroForm {_caaac :=_bgaeg .SetForms (_cfaa .AcroForm );
|
||
if _caaac !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_caaac );return nil ,_caaac ;};};if !opts .SkipOutlines {_bgaeg .AddOutlineTree (_cfaa .GetOutlineTree ());};if !opts .SkipOCProperties {_eaegb ,_geaedd :=_cfaa .GetOCProperties ();
|
||
if _geaedd !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_geaedd );}else {_geaedd =_bgaeg .SetOCProperties (_eaegb );if _geaedd !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_geaedd );};};};if !opts .SkipPageLabels {_babe ,_egbfc :=_cfaa .GetPageLabels ();
|
||
if _egbfc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egbfc );}else {_egbfc =_bgaeg .SetPageLabels (_babe );if _egbfc !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egbfc );};};};if !opts .SkipNamedDests {_dbbgg ,_abdb :=_cfaa .GetNamedDestinations ();
|
||
if _abdb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abdb );}else {_abdb =_bgaeg .SetNamedDestinations (_dbbgg );if _abdb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abdb );};};};if !opts .SkipNameDictionary {_gacgcd ,_gddgb :=_cfaa .GetNameDictionary ();
|
||
if _gddgb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gddgb );}else {_gddgb =_bgaeg .SetNameDictionary (_gacgcd );if _gddgb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gddgb );};};};if !opts .SkipRotation &&_cfaa .Rotate !=nil {if _bfdgfb :=_bgaeg .SetRotation (*_cfaa .Rotate );
|
||
_bfdgfb !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bfdgfb );};};return &_bgaeg ,nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_fefe pdfFontType0 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _fefe .DescendantFont ==nil {_ff .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",_fefe );
|
||
return _ee .CharMetrics {},false ;};return _fefe .DescendantFont .GetCharMetrics (code );};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_cfff *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_fbdd :=_egg .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_fbdd *_cfff .C ()),uint32 (_fbdd *_cfff .M ()),uint32 (_fbdd *_cfff .Y ()),uint32 (_fbdd *_cfff .K ())};};
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_gcdcg *Outline )ToPdfOutline ()*PdfOutline {_bbfgb :=NewPdfOutline ();var _fbaac []*PdfOutlineItem ;var _abbcg int64 ;var _ebda *PdfOutlineItem ;for _ ,_abcgd :=range _gcdcg .Entries {_fafed ,_bfgbd :=_abcgd .ToPdfOutlineItem ();_fafed .Parent =&_bbfgb .PdfOutlineTreeNode ;
|
||
if _ebda !=nil {_ebda .Next =&_fafed .PdfOutlineTreeNode ;_fafed .Prev =&_ebda .PdfOutlineTreeNode ;};_fbaac =append (_fbaac ,_fafed );_abbcg +=_bfgbd ;_ebda =_fafed ;};_acfec :=int64 (len (_fbaac ));_abbcg +=_acfec ;if _acfec > 0{_bbfgb .First =&_fbaac [0].PdfOutlineTreeNode ;
|
||
_bbfgb .Last =&_fbaac [_acfec -1].PdfOutlineTreeNode ;_bbfgb .Count =&_abbcg ;};return _bbfgb ;};
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_ccdd *PdfPage )HasFontByName (name _ce .PdfObjectName )bool {_dcec ,_bdege :=_ccdd .Resources .Font .(*_ce .PdfObjectDictionary );if !_bdege {return false ;};if _bfdcd :=_dcec .Get (name );_bfdcd !=nil {return true ;};return false ;};
|
||
|
||
// AddCerts adds certificates to DSS.
|
||
func (_ddba *DSS )AddCerts (certs [][]byte )([]*_ce .PdfObjectStream ,error ){return _ddba .add (&_ddba .Certs ,_ddba ._daad ,certs );};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_bfega *PdfFunctionType4 )ToPdfObject ()_ce .PdfObject {_dbbecb :=_bfega ._ebecf ;if _dbbecb ==nil {_bfega ._ebecf =&_ce .PdfObjectStream {};_dbbecb =_bfega ._ebecf ;};_dbeee :=_ce .MakeDict ();_dbeee .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (4));
|
||
_efeae :=&_ce .PdfObjectArray {};for _ ,_fbgd :=range _bfega .Domain {_efeae .Append (_ce .MakeFloat (_fbgd ));};_dbeee .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_efeae );_aegb :=&_ce .PdfObjectArray {};for _ ,_cacef :=range _bfega .Range {_aegb .Append (_ce .MakeFloat (_cacef ));
|
||
};_dbeee .Set ("\u0052\u0061\u006eg\u0065",_aegb );if _bfega ._caec ==nil &&_bfega .Program !=nil {_bfega ._caec =[]byte (_bfega .Program .String ());};_dbeee .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_bfega ._caec ))));
|
||
_dbbecb .Stream =_bfega ._caec ;_dbbecb .PdfObjectDictionary =_dbeee ;return _dbbecb ;};func _aggb (_beaff *PdfField )[]*PdfField {_cdaff :=[]*PdfField {_beaff };for _ ,_bfdb :=range _beaff .Kids {_cdaff =append (_cdaff ,_aggb (_bfdb )...);};return _cdaff ;
|
||
};
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_baegc *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _baegc ._acedfd ==nil {_baegc ._acedfd =_caa .NewPSExecutor (_baegc .Program );};var _eddeg []_caa .PSObject ;for _ ,_cead :=range xVec {_eddeg =append (_eddeg ,_caa .MakeReal (_cead ));
|
||
};_cfcbd ,_deeb :=_baegc ._acedfd .Execute (_eddeg );if _deeb !=nil {return nil ,_deeb ;};_agff ,_deeb :=_caa .PSObjectArrayToFloat64Array (_cfcbd );if _deeb !=nil {return nil ,_deeb ;};return _agff ,nil ;};
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;IC _ce .PdfObject ;RO _ce .PdfObject ;OverlayText _ce .PdfObject ;Repeat _ce .PdfObject ;DA _ce .PdfObject ;Q _ce .PdfObject ;};func (_aecad *PdfShading )getShadingDict ()(*_ce .PdfObjectDictionary ,error ){_gdfgd :=_aecad ._agcdg ;
|
||
if _dgaf ,_eaedb :=_gdfgd .(*_ce .PdfIndirectObject );_eaedb {_fccec ,_abcec :=_dgaf .PdfObject .(*_ce .PdfObjectDictionary );if !_abcec {return nil ,_ce .ErrTypeError ;};return _fccec ,nil ;}else if _deeeg ,_dbacg :=_gdfgd .(*_ce .PdfObjectStream );_dbacg {return _deeeg .PdfObjectDictionary ,nil ;
|
||
}else if _adee ,_fddaa :=_gdfgd .(*_ce .PdfObjectDictionary );_fddaa {return _adee ,nil ;}else {_ff .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 ,_ce .ErrTypeError ;};};func _ddabd (_ebaaf _ce .PdfObject ,_ffce *fontCommon )(*_ga .CMap ,error ){_fccag ,_fffae :=_ce .GetStream (_ebaaf );if !_fffae {_ff .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",_ebaaf );
|
||
return nil ,_ce .ErrTypeError ;};_ddffd ,_eccbf :=_ce .DecodeStream (_fccag );if _eccbf !=nil {return nil ,_eccbf ;};_bced ,_eccbf :=_ga .LoadCmapFromData (_ddffd ,!_ffce .isCIDFont ());if _eccbf !=nil {_ff .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",_fccag .ObjectNumber ,_eccbf );
|
||
};return _bced ,_eccbf ;};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
/*
|
||
Format: [/DeviceN names alternateSpace tintTransform]
|
||
or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
*/
|
||
func (_ffeb *PdfColorspaceDeviceN )ToPdfObject ()_ce .PdfObject {_ebaa :=_ce .MakeArray (_ce .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_ebaa .Append (_ffeb .ColorantNames );_ebaa .Append (_ffeb .AlternateSpace .ToPdfObject ());_ebaa .Append (_ffeb .TintTransform .ToPdfObject ());
|
||
if _ffeb .Attributes !=nil {_ebaa .Append (_ffeb .Attributes .ToPdfObject ());};if _ffeb ._gedd !=nil {_ffeb ._gedd .PdfObject =_ebaa ;return _ffeb ._gedd ;};return _ebaa ;};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_fbcdb *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _fbcdb .MediaBox !=nil {return _fbcdb .MediaBox ,nil ;};_cebae :=_fbcdb .Parent ;for _cebae !=nil {_cacea ,_daaeg :=_ce .GetDict (_cebae );if !_daaeg {return nil ,_ge .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 _cbdgc :=_cacea .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_cbdgc !=nil {_bbbf ,_egcfa :=_ce .GetArray (_cbdgc );if !_egcfa {return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_gebce ,_cbcag :=NewPdfRectangle (*_bbbf );if _cbcag !=nil {return nil ,_cbcag ;};return _gebce ,nil ;};_cebae =_cacea .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_ge .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};func (_cbgbe *PdfWriter )flushWriter ()error {if _cbgbe ._dcdgg ==nil {_cbgbe ._dcdgg =_cbgbe ._cafdf .Flush ();};return _cbgbe ._dcdgg ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_dfgff *PdfColorspaceSpecialPattern )ToPdfObject ()_ce .PdfObject {if _dfgff .UnderlyingCS ==nil {return _ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_acd :=_ce .MakeArray (_ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_acd .Append (_dfgff .UnderlyingCS .ToPdfObject ());
|
||
if _dfgff ._eccb !=nil {_dfgff ._eccb .PdfObject =_acd ;return _dfgff ._eccb ;};return _acd ;};
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_babc FieldFlag )Has (fl FieldFlag )bool {return (_babc .Mask ()&fl .Mask ())> 0};
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_abfda *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _abfda ._afda .GetCrypter ()!=nil &&!_abfda ._afda .IsAuthenticated (){return nil ,_e .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};if len (_abfda ._cbddb )< pageNumber {return nil ,_ge .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");
|
||
};_bfgbde :=pageNumber -1;if _bfgbde < 0{return nil ,_e .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_bddc :=_abfda .PageList [_bfgbde ];
|
||
return _bddc ,nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_ebfge pdfFontSimple )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){if _ebfge ._cabcg !=nil {_cdbb ,_adbeg :=_ebfge ._cabcg .Read (r );if _adbeg {return _cdbb ,true ;};};_ffeg :=_ebfge .Encoder ();if _ffeg ==nil {_ff .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_ebfge );
|
||
return _ee .CharMetrics {},false ;};_aadg ,_bafb :=_ffeg .RuneToCharcode (r );if !_bafb {if r !=' '{_ff .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 ,_ebfge );
|
||
};return _ee .CharMetrics {},false ;};_afdfg ,_gadad :=_ebfge .GetCharMetrics (_aadg );return _afdfg ,_gadad ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_bbed *DSS )ToPdfObject ()_ce .PdfObject {_dbfa :=_bbed ._ecde .PdfObject .(*_ce .PdfObjectDictionary );_dbfa .Clear ();_eagf :=_ce .MakeDict ();for _ggdgb ,_fgaee :=range _bbed .VRI {_eagf .Set (*_ce .MakeName (_ggdgb ),_fgaee .ToPdfObject ());};
|
||
_dbfa .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_gegfc (_bbed .Certs ));_dbfa .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_gegfc (_bbed .OCSPs ));_dbfa .SetIfNotNil ("\u0043\u0052\u004c\u0073",_gegfc (_bbed .CRLs ));_dbfa .Set ("\u0056\u0052\u0049",_eagf );
|
||
return _bbed ._ecde ;};func _afee (_gbced _ce .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_decb :=&PdfColorspaceDeviceNAttributes {};var _dfeg *_ce .PdfObjectDictionary ;switch _aeca :=_gbced .(type ){case *_ce .PdfIndirectObject :_decb ._dcggf =_aeca ;
|
||
var _gfdgf bool ;_dfeg ,_gfdgf =_aeca .PdfObject .(*_ce .PdfObjectDictionary );if !_gfdgf {_ff .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 ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ce .PdfObjectDictionary :_dfeg =_aeca ;case *_ce .PdfObjectReference :_ebafb :=_aeca .Resolve ();return _afee (_ebafb );default:_ff .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 ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _aefe :=_dfeg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_aefe !=nil {_fggc ,_bdbbg :=_ce .TraceToDirectObject (_aefe ).(*_ce .PdfObjectName );if !_bdbbg {_ff .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 ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_decb .Subtype =_fggc ;};if _bbdg :=_dfeg .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_bbdg !=nil {_decb .Colorants =_bbdg ;};if _dgad :=_dfeg .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_dgad !=nil {_decb .Process =_dgad ;};if _cede :=_dfeg .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_cede !=nil {_decb .MixingHints =_cede ;};return _decb ,nil ;};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _ce .PdfObject ;V _ce .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abea *PdfAnnotationLink )ToPdfObject ()_ce .PdfObject {_abea .PdfAnnotation .ToPdfObject ();_ccgd :=_abea ._dec ;_cgge :=_ccgd .PdfObject .(*_ce .PdfObjectDictionary );_cgge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _abea ._gbba !=nil &&_abea ._gbba ._gbf !=nil {_cgge .Set ("\u0041",_abea ._gbba ._gbf .ToPdfObject ());}else if _abea .A !=nil {_cgge .Set ("\u0041",_abea .A );};_cgge .SetIfNotNil ("\u0044\u0065\u0073\u0074",_abea .Dest );_cgge .SetIfNotNil ("\u0048",_abea .H );
|
||
_cgge .SetIfNotNil ("\u0050\u0041",_abea .PA );_cgge .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_abea .QuadPoints );_cgge .SetIfNotNil ("\u0042\u0053",_abea .BS );return _ccgd ;};
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_aggf *PdfPageResources )SetFontByName (keyName _ce .PdfObjectName ,obj _ce .PdfObject )error {if _aggf .Font ==nil {_aggf .Font =_ce .MakeDict ();};_bggfg ,_dcfde :=_ce .TraceToDirectObject (_aggf .Font ).(*_ce .PdfObjectDictionary );if !_dcfde {_ff .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",_ce .TraceToDirectObject (_aggf .Font ));
|
||
return _ce .ErrTypeError ;};_bggfg .Set (keyName ,obj );return nil ;};func (_dbedg *LTV )getOCSPs (_cdgg []*_eg .Certificate ,_fafdd map[string ]*_eg .Certificate )([][]byte ,error ){_cgefa :=make ([][]byte ,0,len (_cdgg ));for _ ,_bebfa :=range _cdgg {for _ ,_bfgdf :=range _bebfa .OCSPServer {if _dbedg .CertClient .IsCA (_bebfa ){continue ;
|
||
};_dbaf ,_fbgc :=_fafdd [_bebfa .Issuer .CommonName ];if !_fbgc {_ff .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 ;};_ ,_accdg ,_degfe :=_dbedg .OCSPClient .MakeRequest (_bfgdf ,_bebfa ,_dbaf );if _degfe !=nil {_ff .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",_degfe );
|
||
continue ;};_cgefa =append (_cgefa ,_accdg );};};return _cgefa ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_eecaa *PdfPageResources )ToPdfObject ()_ce .PdfObject {_cfee :=_eecaa ._gceda ;_cfee .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eecaa .ExtGState );if _eecaa ._acffc !=nil {_eecaa .ColorSpace =_eecaa ._acffc .ToPdfObject ();};_cfee .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_eecaa .ColorSpace );
|
||
_cfee .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_eecaa .Pattern );_cfee .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eecaa .Shading );_cfee .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_eecaa .XObject );_cfee .SetIfNotNil ("\u0046\u006f\u006e\u0074",_eecaa .Font );
|
||
_cfee .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_eecaa .ProcSet );_cfee .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_eecaa .Properties );return _cfee ;};func _becbc (_dadfgc _ce .PdfObject )(string ,error ){_dadfgc =_ce .TraceToDirectObject (_dadfgc );
|
||
switch _cfdab :=_dadfgc .(type ){case *_ce .PdfObjectString :return _cfdab .Str (),nil ;case *_ce .PdfObjectStream :_daabg ,_dbad :=_ce .DecodeStream (_cfdab );if _dbad !=nil {return "",_dbad ;};return string (_daabg ),nil ;};return "",_e .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_dadfgc );
|
||
};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_cffea *OutlineItem )Add (item *OutlineItem ){_cffea .Entries =append (_cffea .Entries ,item )};
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_gacdg *PdfAcroForm )AllFields ()[]*PdfField {if _gacdg ==nil {return nil ;};var _eafd []*PdfField ;if _gacdg .Fields !=nil {for _ ,_ffgb :=range *_gacdg .Fields {_eafd =append (_eafd ,_aggb (_ffgb )...);};};return _eafd ;};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_ffbb *PdfFont )ToUnicode ()string {if _ffbb .baseFields ()._dgfcg ==nil {return "";};return _ffbb .baseFields ()._dgfcg .Name ();};
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_bbeef *PdfPage )GetPageAsIndirectObject ()*_ce .PdfIndirectObject {return _bbeef ._acbbb };
|
||
|
||
// 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 (_cdb *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdce :=vals [0];if _gdce < 0.0||_gdce > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdce );
|
||
return nil ,ErrColorOutOfRange ;};_cedcf :=vals [1];if _cedcf < 0.0||_cedcf > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdce );return nil ,ErrColorOutOfRange ;
|
||
};_feb :=vals [2];if _feb < 0.0||_feb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdce );return nil ,ErrColorOutOfRange ;};_gbef :=NewPdfColorDeviceRGB (_gdce ,_cedcf ,_feb );
|
||
return _gbef ,nil ;};
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_cfbf :=PdfColorDeviceRGB {r ,g ,b };return &_cfbf ;};var _fdaee =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":{}};
|
||
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_fbad *PdfPage )AddContentStreamByString (contentStr string )error {_dabdf ,_geaed :=_ce .MakeStream ([]byte (contentStr ),_ce .NewFlateEncoder ());if _geaed !=nil {return _geaed ;};if _fbad .Contents ==nil {_fbad .Contents =_dabdf ;}else {_agbc :=_ce .TraceToDirectObject (_fbad .Contents );
|
||
_fcbdd ,_eefc :=_agbc .(*_ce .PdfObjectArray );if !_eefc {_fcbdd =_ce .MakeArray (_agbc );};_fcbdd .Append (_dabdf );_fbad .Contents =_fcbdd ;};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_bcec *PdfColorspaceDeviceCMYK )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_dgcaf *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ggeadg ,_beagb :=_ce .GetNumbersAsFloat (objects );
|
||
if _beagb !=nil {return nil ,_beagb ;};return _dgcaf .ColorFromFloats (_ggeadg );};
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_gacd *PdfField )FullName ()(string ,error ){var _dgdd _ag .Buffer ;_aeecb :=[]string {};if _gacd .T !=nil {_aeecb =append (_aeecb ,_gacd .T .Decoded ());};_gbggf :=map[*PdfField ]bool {};_gbggf [_gacd ]=true ;_fdccf :=_gacd .Parent ;for _fdccf !=nil {if _ ,_feae :=_gbggf [_fdccf ];
|
||
_feae {return _dgdd .String (),_ge .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _fdccf .T ==nil {return _dgdd .String (),_ge .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");
|
||
};_aeecb =append (_aeecb ,_fdccf .T .Decoded ());_gbggf [_fdccf ]=true ;_fdccf =_fdccf .Parent ;};for _gebda :=len (_aeecb )-1;_gebda >=0;_gebda --{_dgdd .WriteString (_aeecb [_gebda ]);if _gebda > 0{_dgdd .WriteString ("\u002e");};};return _dgdd .String (),nil ;
|
||
};
|
||
|
||
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};
|
||
|
||
// 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 (_gdabf *PdfPage )SetContentStreams (cStreams []string ,encoder _ce .StreamEncoder )error {if len (cStreams )==0{_gdabf .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ce .NewRawEncoder ();};var _bedgc []*_ce .PdfObjectStream ;for _ ,_cedfa :=range cStreams {_ceef :=&_ce .PdfObjectStream {};
|
||
_bcgab :=encoder .MakeStreamDict ();_gcdg ,_fafaf :=encoder .EncodeBytes ([]byte (_cedfa ));if _fafaf !=nil {return _fafaf ;};_bcgab .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_gcdg ))));_ceef .PdfObjectDictionary =_bcgab ;
|
||
_ceef .Stream =_gcdg ;_bedgc =append (_bedgc ,_ceef );};if len (_bedgc )==1{_gdabf .Contents =_bedgc [0];}else {_aedc :=_ce .MakeArray ();for _ ,_bdab :=range _bedgc {_aedc .Append (_bdab );};_gdabf .Contents =_aedc ;};return nil ;};
|
||
|
||
// NewReaderOpts generates a default `ReaderOpts` instance.
|
||
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_gacfa *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_ge .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");
|
||
};_gadae ,_afgcg :=_gf .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdecc ,img ._bffb );if _afgcg !=nil {return img ,_afgcg ;};_gafeg ,_afgcg :=_gf .GrayConverter .Convert (_gadae );
|
||
if _afgcg !=nil {return img ,_afgcg ;};return _ffba (_gafeg .Base ()),nil ;};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_cafb *PdfPage )AppendContentStream (contentStr string )error {_ggabe ,_ceaag :=_cafb .GetContentStreams ();if _ceaag !=nil {return _ceaag ;};if len (_ggabe )==0{_ggabe =[]string {contentStr };return _cafb .SetContentStreams (_ggabe ,_ce .NewFlateEncoder ());
|
||
};var _bbecg _ag .Buffer ;_bbecg .WriteString (_ggabe [len (_ggabe )-1]);_bbecg .WriteString ("\u000a");_bbecg .WriteString (contentStr );_ggabe [len (_ggabe )-1]=_bbecg .String ();return _cafb .SetContentStreams (_ggabe ,_ce .NewFlateEncoder ());};func (_bbbe *PdfAcroForm )fillImageWithAppearance (_efcfe FieldImageProvider ,_geadc FieldAppearanceGenerator )error {if _bbbe ==nil {return nil ;
|
||
};_eabf ,_cabbd :=_efcfe .FieldImageValues ();if _cabbd !=nil {return _cabbd ;};for _ ,_dafa :=range _bbbe .AllFields (){_feeg :=_dafa .PartialName ();_aadad ,_bdbf :=_eabf [_feeg ];if !_bdbf {if _fdgee ,_fcace :=_dafa .FullName ();_fcace ==nil {_aadad ,_bdbf =_eabf [_fdgee ];
|
||
};};if !_bdbf {_ff .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",_feeg );
|
||
continue ;};switch _bfea :=_dafa .GetContext ().(type ){case *PdfFieldButton :if _bfea .IsPush (){_bfea .SetFillImage (_aadad );};};if _geadc ==nil {continue ;};for _ ,_cgabg :=range _dafa .Annotations {_afeab ,_cbafg :=_geadc .GenerateAppearanceDict (_bbbe ,_dafa ,_cgabg );
|
||
if _cbafg !=nil {return _cbafg ;};_cgabg .AP =_afeab ;_cgabg .ToPdfObject ();};};return nil ;};
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_cbacb int64 ;_adeec int64 ;_eeegb int64 ;_gbcf int64 ;_ecebf int64 ;_cdbfg int64 ;_accgd byte ;_gbbfe int64 ;_cfcf int64 ;};func (_eabaf *PdfAcroForm )filteredFields (_ecfege FieldFilterFunc ,_afffc bool )[]*PdfField {if _eabaf ==nil {return nil ;
|
||
};return _agdgb (_eabaf .Fields ,_ecfege ,_afffc );};
|
||
|
||
// 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 _gd .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _gdaae ="\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 _aaegd (rs ,opts ,true ,_gdaae );
|
||
};
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _c .Time )(PdfDate ,error ){_fgaed :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_deeeb ,_ :=_dgb .ParseInt (_fgaed [1:3],10,32);_gdefa ,_ :=_dgb .ParseInt (_fgaed [4:6],10,32);return PdfDate {_cbacb :int64 (timeObj .Year ()),_adeec :int64 (timeObj .Month ()),_eeegb :int64 (timeObj .Day ()),_gbcf :int64 (timeObj .Hour ()),_ecebf :int64 (timeObj .Minute ()),_cdbfg :int64 (timeObj .Second ()),_accgd :_fgaed [0],_gbbfe :_deeeb ,_cfcf :_gdefa },nil ;
|
||
};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_degaf *PdfFont )BaseFont ()string {return _degaf .baseFields ()._egacd };
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_ceea *PdfWriter )SetForms (form *PdfAcroForm )error {_ceea ._aabaf =form ;return nil };
|
||
|
||
// SetSubtype sets the Subtype S for given PdfOutputIntent.
|
||
func (_efcdd *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _ge .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");
|
||
};_efcdd .S =subtype ;return nil ;};
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_eedf *PdfColorDeviceRGB )R ()float64 {return _eedf [0]};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_fadaa *PdfField )GetContext ()PdfModel {return _fadaa ._dcagc };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_deda *PdfAnnotationProjection )ToPdfObject ()_ce .PdfObject {_deda .PdfAnnotation .ToPdfObject ();_efdc :=_deda ._dec ;_eefe :=_efdc .PdfObject .(*_ce .PdfObjectDictionary );_deda .PdfAnnotationMarkup .appendToPdfDictionary (_eefe );return _efdc ;
|
||
};
|
||
|
||
// 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 (_badbae *PdfSignature ,_gcebbb Hasher ,_ebgf SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
|
||
|
||
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
|
||
//
|
||
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
|
||
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
|
||
//
|
||
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
|
||
// If using package creator, use its EnableFontSubsetting method instead.
|
||
func (_dgfed *PdfFont )SubsetRegistered ()error {switch _adab :=_dgfed ._dace .(type ){case *pdfFontType0 :_ecbe :=_adab .subsetRegistered ();if _ecbe !=nil {_ff .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ecbe );
|
||
return _ecbe ;};if _adab ._cebdd !=nil {if _adab ._fbfa !=nil {_adab ._fbfa .ToPdfObject ();};_adab .ToPdfObject ();};default:_ff .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",_adab );
|
||
};return nil ;};func _cfea (_afde *_ce .PdfObjectDictionary )(*PdfShadingType7 ,error ){_ebdbb :=PdfShadingType7 {};_fgcf :=_afde .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fgcf ==nil {_ff .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 ;};_cbecg ,_ffgaf :=_fgcf .(*_ce .PdfObjectInteger );if !_ffgaf {_ff .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",_fgcf );
|
||
return nil ,_ce .ErrTypeError ;};_ebdbb .BitsPerCoordinate =_cbecg ;_fgcf =_afde .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fgcf ==nil {_ff .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 ;};_cbecg ,_ffgaf =_fgcf .(*_ce .PdfObjectInteger );if !_ffgaf {_ff .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",_fgcf );
|
||
return nil ,_ce .ErrTypeError ;};_ebdbb .BitsPerComponent =_cbecg ;_fgcf =_afde .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fgcf ==nil {_ff .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 ;};_cbecg ,_ffgaf =_fgcf .(*_ce .PdfObjectInteger );if !_ffgaf {_ff .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",_fgcf );
|
||
return nil ,_ce .ErrTypeError ;};_ebdbb .BitsPerComponent =_cbecg ;_fgcf =_afde .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fgcf ==nil {_ff .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 ;};_ddecaf ,_ffgaf :=_fgcf .(*_ce .PdfObjectArray );if !_ffgaf {_ff .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",_fgcf );
|
||
return nil ,_ce .ErrTypeError ;};_ebdbb .Decode =_ddecaf ;if _baed :=_afde .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_baed !=nil {_ebdbb .Function =[]PdfFunction {};if _gdbgg ,_bbbfc :=_baed .(*_ce .PdfObjectArray );_bbbfc {for _ ,_bgged :=range _gdbgg .Elements (){_aafe ,_egeef :=_cegfd (_bgged );
|
||
if _egeef !=nil {_ff .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",_egeef );return nil ,_egeef ;};_ebdbb .Function =append (_ebdbb .Function ,_aafe );
|
||
};}else {_addab ,_cgcbe :=_cegfd (_baed );if _cgcbe !=nil {_ff .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",_cgcbe );return nil ,_cgcbe ;
|
||
};_ebdbb .Function =append (_ebdbb .Function ,_addab );};};return &_ebdbb ,nil ;};func _gfdb ()string {_dbef :="\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 _ggbedd _ag .Buffer ;for _dbae :=0;_dbae < 6;_dbae ++{_ggbedd .WriteRune (rune (_dbef [_fb .Intn (len (_dbef ))]));};return _ggbedd .String ();};
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_cde :=NewPdfAnnotation ();_ccf :=&PdfAnnotationSquiggly {};_ccf .PdfAnnotation =_cde ;_ccf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cde .SetContext (_ccf );return _ccf ;};func (_cgfbf *PdfPage )getParentResources ()(*PdfPageResources ,error ){_fegfc :=_cgfbf .Parent ;
|
||
for _fegfc !=nil {_ffagc ,_babdb :=_ce .GetDict (_fegfc );if !_babdb {_ff .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 ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if _gdege :=_ffagc .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gdege !=nil {_abacg ,_ggcef :=_ce .GetDict (_gdege );if !_ggcef {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");
|
||
};_bacgdd ,_bccca :=NewPdfPageResourcesFromDict (_abacg );if _bccca !=nil {return nil ,_bccca ;};return _bacgdd ,nil ;};_fegfc =_ffagc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_eaad *PdfShadingType4 )ToPdfObject ()_ce .PdfObject {_eaad .PdfShading .ToPdfObject ();_bfeda ,_gaede :=_eaad .getShadingDict ();if _gaede !=nil {_ff .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 _eaad .BitsPerCoordinate !=nil {_bfeda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_eaad .BitsPerCoordinate );};if _eaad .BitsPerComponent !=nil {_bfeda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_eaad .BitsPerComponent );
|
||
};if _eaad .BitsPerFlag !=nil {_bfeda .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_eaad .BitsPerFlag );};if _eaad .Decode !=nil {_bfeda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_eaad .Decode );};if _eaad .Function !=nil {if len (_eaad .Function )==1{_bfeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eaad .Function [0].ToPdfObject ());
|
||
}else {_gafbb :=_ce .MakeArray ();for _ ,_agdbgb :=range _eaad .Function {_gafbb .Append (_agdbgb .ToPdfObject ());};_bfeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gafbb );};};return _eaad ._agcdg ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";
|
||
TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);func (_ebcgda *PdfWriter )writeObject (_ffcec int ,_ffdaa _ce .PdfObject ){_ff .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_ffcec );
|
||
if _aaecg ,_gbeg :=_ffdaa .(*_ce .PdfIndirectObject );_gbeg {_ebcgda ._abff [_ffcec ]=crossReference {Type :1,Offset :_ebcgda ._cgdfab ,Generation :_aaecg .GenerationNumber };_cfacd :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffcec );
|
||
if _gedgf ,_eccec :=_aaecg .PdfObject .(*pdfSignDictionary );_eccec {_gedgf ._efccb =_ebcgda ._cgdfab +int64 (len (_cfacd ));};if _aaecg .PdfObject ==nil {_ff .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");
|
||
_aaecg .PdfObject =_ce .MakeNull ();};_cfacd +=_aaecg .PdfObject .WriteString ();_cfacd +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_ebcgda .writeString (_cfacd );return ;};if _eedddc ,_ddadae :=_ffdaa .(*_ce .PdfObjectStream );_ddadae {_ebcgda ._abff [_ffcec ]=crossReference {Type :1,Offset :_ebcgda ._cgdfab ,Generation :_eedddc .GenerationNumber };
|
||
_aabfg :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffcec );_aabfg +=_eedddc .PdfObjectDictionary .WriteString ();_aabfg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ebcgda .writeString (_aabfg );_ebcgda .writeBytes (_eedddc .Stream );
|
||
_ebcgda .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _bgafb ,_dgaagc :=_ffdaa .(*_ce .PdfObjectStreams );_dgaagc {_ebcgda ._abff [_ffcec ]=crossReference {Type :1,Offset :_ebcgda ._cgdfab ,Generation :_bgafb .GenerationNumber };
|
||
_afbc :=_e .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_ffcec );var _adfaf []string ;var _ffbcd string ;var _fegefc int64 ;for _aggfd ,_bdcaf :=range _bgafb .Elements (){_dccfe ,_cafgg :=_bdcaf .(*_ce .PdfIndirectObject );if !_cafgg {_ff .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",_ffcec ,_bdcaf );
|
||
continue ;};_fgfebb :=_dccfe .PdfObject .WriteString ()+"\u0020";_ffbcd =_ffbcd +_fgfebb ;_adfaf =append (_adfaf ,_e .Sprintf ("\u0025\u0064\u0020%\u0064",_dccfe .ObjectNumber ,_fegefc ));_ebcgda ._abff [int (_dccfe .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_ffcec ,Index :_aggfd };
|
||
_fegefc =_fegefc +int64 (len ([]byte (_fgfebb )));};_agddg :=_g .Join (_adfaf ,"\u0020")+"\u0020";_daced :=_ce .NewFlateEncoder ();_dcaab :=_daced .MakeStreamDict ();_dcaab .Set (_ce .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ce .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_bcefa :=int64 (_bgafb .Len ());_dcaab .Set (_ce .PdfObjectName ("\u004e"),_ce .MakeInteger (_bcefa ));_agcfc :=int64 (len (_agddg ));_dcaab .Set (_ce .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ce .MakeInteger (_agcfc ));_abecc ,_ :=_daced .EncodeBytes ([]byte (_agddg +_ffbcd ));
|
||
_edadf :=int64 (len (_abecc ));_dcaab .Set (_ce .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ce .MakeInteger (_edadf ));_afbc +=_dcaab .WriteString ();_afbc +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_ebcgda .writeString (_afbc );
|
||
_ebcgda .writeBytes (_abecc );_ebcgda .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_ebcgda .writeString (_ffdaa .WriteString ());};
|
||
|
||
// GetXHeight returns the XHeight of the font `descriptor`.
|
||
func (_bdfdg *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _ce .GetNumberAsFloat (_bdfdg .XHeight );};
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};func (_ebdde *LTV )enable (_cbgcg ,_gaac []*_eg .Certificate ,_fdad string )error {_caadeb ,_caafa ,_afbf :=_ebdde .buildCertChain (_cbgcg ,_gaac );if _afbf !=nil {return _afbf ;
|
||
};_edgb ,_afbf :=_ebdde .getCerts (_caadeb );if _afbf !=nil {return _afbf ;};var _ffcgb ,_cffaa [][]byte ;if _ebdde .OCSPClient !=nil {_ffcgb ,_afbf =_ebdde .getOCSPs (_caadeb ,_caafa );if _afbf !=nil {return _afbf ;};};if _ebdde .CRLClient !=nil {_cffaa ,_afbf =_ebdde .getCRLs (_caadeb );
|
||
if _afbf !=nil {return _afbf ;};};_cagf :=_ebdde ._dcacf ;_fcffb ,_afbf :=_cagf .AddCerts (_edgb );if _afbf !=nil {return _afbf ;};_cbfgb ,_afbf :=_cagf .AddOCSPs (_ffcgb );if _afbf !=nil {return _afbf ;};_abcf ,_afbf :=_cagf .AddCRLs (_cffaa );if _afbf !=nil {return _afbf ;
|
||
};if _fdad !=""{_cagf .VRI [_fdad ]=&VRI {Cert :_fcffb ,OCSP :_cbfgb ,CRL :_abcf };};_ebdde ._fdfad .SetDSS (_cagf );return nil ;};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_bdgff *PdfPageResources )HasExtGState (keyName _ce .PdfObjectName )bool {_ ,_beccg :=_bdgff .GetFontByName (keyName );return _beccg ;};
|
||
|
||
// 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 ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_dfad *PdfShadingPattern )ToPdfObject ()_ce .PdfObject {_dfad .PdfPattern .ToPdfObject ();_bbcd :=_dfad .getDict ();if _dfad .Shading !=nil {_bbcd .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_dfad .Shading .ToPdfObject ());};if _dfad .Matrix !=nil {_bbcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dfad .Matrix );
|
||
};if _dfad .ExtGState !=nil {_bbcd .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_dfad .ExtGState );};return _dfad ._gadcb ;};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_aeegf *PdfAppender )Write (w _gd .Writer )error {if _aeegf ._fgegg {return _ge .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");
|
||
};_ecag :=NewPdfWriter ();_degc ,_aebc :=_ce .GetDict (_ecag ._dbdaa );if !_aebc {return _ge .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");
|
||
};_aafb ,_aebc :=_degc .Get ("\u004b\u0069\u0064\u0073").(*_ce .PdfObjectArray );if !_aebc {return _ge .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");
|
||
};_cbeg ,_aebc :=_degc .Get ("\u0043\u006f\u0075n\u0074").(*_ce .PdfObjectInteger );if !_aebc {return _ge .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");
|
||
};_dddf :=_aeegf ._fcda ._afda ;_aed :=_dddf .GetTrailer ();if _aed ==nil {return _ge .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_cfef ,_aebc :=_ce .GetIndirect (_aed .Get ("\u0052\u006f\u006f\u0074"));if !_aebc {return _ge .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");
|
||
};_gbed ,_aebc :=_ce .GetDict (_cfef );if !_aebc {_ff .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",_cfef ,*_aed );
|
||
return _ge .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ggef :=false ;for _ ,_ebeaa :=range _aeegf ._fcda .AcroForm .signatureFields (){if _ebeaa .Lock !=nil {_ggef =true ;break ;};};if _ggef {_ecag ._bedff =_cfef ;
|
||
};for _ ,_cbae :=range _gbed .Keys (){if _ecag ._bbef .Get (_cbae )==nil {_bgba :=_gbed .Get (_cbae );_ecag ._bbef .Set (_cbae ,_bgba );};};if _aeegf ._fed !=nil {if _aeegf ._fed ._afab {if _gcfag :=_ce .TraceToDirectObject (_aeegf ._fed .ToPdfObject ());
|
||
!_ce .IsNullObject (_gcfag ){_ecag ._bbef .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_gcfag );_aeegf .updateObjectsDeep (_gcfag ,nil );}else {_ff .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 {_ecag ._bbef .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_aeegf ._fed .ToPdfObject ());_aeegf .updateObjectsDeep (_aeegf ._fed .ToPdfObject (),nil );};};if _aeegf ._gee !=nil {_aeegf .updateObjectsDeep (_aeegf ._gee .ToPdfObject (),nil );
|
||
_ecag ._bbef .Set ("\u0044\u0053\u0053",_aeegf ._gee .GetContainingPdfObject ());};if _aeegf ._acec !=nil {_ecag ._bbef .Set ("\u0050\u0065\u0072m\u0073",_aeegf ._acec .ToPdfObject ());_aeegf .updateObjectsDeep (_aeegf ._acec .ToPdfObject (),nil );};if _ecag ._facee .Major < 2{_ecag .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
|
||
_ecag .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _ebb ,_fada :=_ce .GetDict (_aed .Get ("\u0049\u006e\u0066\u006f"));_fada {if _deag ,_begb :=_ce .GetDict (_ecag ._dcecd );_begb {for _ ,_fadg :=range _ebb .Keys (){if _deag .Get (_fadg )==nil {_deag .Set (_fadg ,_ebb .Get (_fadg ));
|
||
};};};};if _aeegf ._geaf !=nil {_ecag ._dcecd =_ce .MakeIndirectObject (_aeegf ._geaf .ToPdfObject ());};_aeegf .updateObjectsDeep (_ecag ._dcecd ,nil );_aeegf .updateObjectsDeep (_ecag ._bedff ,nil );_acee :=false ;if len (_aeegf ._fcda .PageList )!=len (_aeegf ._ggdc ){_acee =true ;
|
||
}else {for _baeb :=range _aeegf ._fcda .PageList {switch {case _aeegf ._ggdc [_baeb ]==_aeegf ._fcda .PageList [_baeb ]:case _aeegf ._ggdc [_baeb ]==_aeegf .Reader .PageList [_baeb ]:default:_acee =true ;};if _acee {break ;};};};if _acee {_aeegf .updateObjectsDeep (_ecag ._dbdaa ,nil );
|
||
}else {_aeegf ._gecg [_ecag ._dbdaa ]=struct{}{};};_ecag ._dbdaa .ObjectNumber =_aeegf .Reader ._bcgea .ObjectNumber ;_aeegf ._fadeg [_ecag ._dbdaa ]=_aeegf .Reader ._bcgea .ObjectNumber ;_egcd :=[]_ce .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 _ ,_fbbe :=range _aeegf ._ggdc {_fbbg :=_fbbe .ToPdfObject ();*_cbeg =*_cbeg +1;if _gbge ,_dgcf :=_fbbg .(*_ce .PdfIndirectObject );_dgcf &&_gbge .GetParser ()==_aeegf ._fcda ._afda {_aafb .Append (&_gbge .PdfObjectReference );continue ;};if _gdbee ,_acga :=_ce .GetDict (_fbbg );
|
||
_acga {_cffc ,_ccaf :=_gdbee .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ce .PdfIndirectObject );for _ccaf {_ff .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cffc );_ecce ,_cbec :=_cffc .PdfObject .(*_ce .PdfObjectDictionary );
|
||
if !_cbec {return _ge .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_gada :=range _egcd {_ff .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gada );if _eadag :=_gdbee .Get (_gada );
|
||
_eadag !=nil {_ff .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_fbbe ._caab .Keys ())> 0&&!_acee {_dcdeg :=_fbbe ._caab ;if _afgfb :=_dcdeg .Get (_gada );_afgfb !=nil {if _eadag !=_afgfb {_ff .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",_gada ,_afgfb );
|
||
_gdbee .Set (_gada ,_afgfb );};};};continue ;};if _dabag :=_ecce .Get (_gada );_dabag !=nil {_ff .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_gada );_gdbee .Set (_gada ,_dabag );
|
||
};};_cffc ,_ccaf =_ecce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ce .PdfIndirectObject );_ff .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_ecce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};
|
||
if _acee {_gdbee .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ecag ._dbdaa );};};_aeegf .updateObjectsDeep (_fbbg ,nil );_aafb .Append (_fbbg );};if _ ,_cfagd :=_aeegf ._gbbg .Seek (0,_gd .SeekStart );_cfagd !=nil {return _cfagd ;};_eafg :=make (map[SignatureHandler ]_gd .Writer );
|
||
_dbcf :=_ce .MakeArray ();for _ ,_cdcg :=range _aeegf ._beff {if _eaba ,_fcde :=_ce .GetIndirect (_cdcg );_fcde {if _dgda ,_bdfe :=_eaba .PdfObject .(*pdfSignDictionary );_bdfe {_fdcd :=*_dgda ._efaef ;var _begf error ;_eafg [_fdcd ],_begf =_fdcd .NewDigest (_dgda ._gdbgfe );
|
||
if _begf !=nil {return _begf ;};_dbcf .Append (_ce .MakeInteger (0xfffff),_ce .MakeInteger (0xfffff));};};};if _dbcf .Len ()> 0{_dbcf .Append (_ce .MakeInteger (0xfffff),_ce .MakeInteger (0xfffff));};for _ ,_dcbb :=range _aeegf ._beff {if _gbfe ,_dffc :=_ce .GetIndirect (_dcbb );
|
||
_dffc {if _edge ,_fbda :=_gbfe .PdfObject .(*pdfSignDictionary );_fbda {_edge .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_dbcf );};};};_eded :=len (_eafg )> 0;var _gcge _gd .Reader =_aeegf ._gbbg ;if _eded {_fcaf :=make ([]_gd .Writer ,0,len (_eafg ));
|
||
for _ ,_bce :=range _eafg {_fcaf =append (_fcaf ,_bce );};_gcge =_gd .TeeReader (_aeegf ._gbbg ,_gd .MultiWriter (_fcaf ...));};_ggecf ,_eeebd :=_gd .Copy (w ,_gcge );if _eeebd !=nil {return _eeebd ;};if len (_aeegf ._beff )==0{return nil ;};_ecag ._bffgf =_ggecf ;
|
||
_ecag .ObjNumOffset =_aeegf ._agac ;_ecag ._ddfff =true ;_ecag ._fegdg =_aeegf ._agfe ;_ecag ._efbcg =_aeegf ._gcfe ;_ecag ._bcefd =_aeegf ._gafg ;_ecag ._facee =_aeegf ._fcda .PdfVersion ();_ecag ._fdegda =_aeegf ._fadeg ;_ecag ._cgebe =_aeegf ._egeb .GetCrypter ();
|
||
_ecag ._ggbef =_aeegf ._egeb .GetEncryptObj ();_gddb :=_aeegf ._egeb .GetXrefType ();if _gddb !=nil {_abfg :=*_gddb ==_ce .XrefTypeObjectStream ;_ecag ._aedga =&_abfg ;};_ecag ._gdaab =map[_ce .PdfObject ]struct{}{};_ecag ._adbee =[]_ce .PdfObject {};for _ ,_befg :=range _aeegf ._beff {if _ ,_bfff :=_aeegf ._gecg [_befg ];
|
||
_bfff {continue ;};_ecag .addObject (_befg );};_bggd :=w ;if _eded {_bggd =_ag .NewBuffer (nil );};if _aeegf ._afef !=""&&_ecag ._cgebe ==nil {_ecag .Encrypt ([]byte (_aeegf ._afef ),[]byte (_aeegf ._afef ),_aeegf ._debba );};if _agbd :=_aed .Get ("\u0049\u0044");
|
||
_agbd !=nil {if _eafb ,_fgde :=_ce .GetArray (_agbd );_fgde {_ecag ._cbegb =_eafb ;};};if _cgcfc :=_ecag .Write (_bggd );_cgcfc !=nil {return _cgcfc ;};if _eded {_aeg :=_bggd .(*_ag .Buffer ).Bytes ();_egbge :=_ce .MakeArray ();var _cgaca []*pdfSignDictionary ;
|
||
var _gfeg int64 ;for _ ,_abfa :=range _ecag ._adbee {if _eecc ,_bfbe :=_ce .GetIndirect (_abfa );_bfbe {if _agge ,_fcfd :=_eecc .PdfObject .(*pdfSignDictionary );_fcfd {_cgaca =append (_cgaca ,_agge );_egcf :=_agge ._efccb +int64 (_agge ._debdg );_egbge .Append (_ce .MakeInteger (_gfeg ),_ce .MakeInteger (_egcf -_gfeg ));
|
||
_gfeg =_agge ._efccb +int64 (_agge ._eadgf );};};};_egbge .Append (_ce .MakeInteger (_gfeg ),_ce .MakeInteger (_ggecf +int64 (len (_aeg ))-_gfeg ));_fdgf :=[]byte (_egbge .WriteString ());for _ ,_cffag :=range _cgaca {_bbac :=int (_cffag ._efccb -_ggecf );
|
||
for _cgadg :=_cffag ._fgee ;_cgadg < _cffag ._dfdea ;_cgadg ++{_aeg [_bbac +_cgadg ]=' ';};_cea :=_aeg [_bbac +_cffag ._fgee :_bbac +_cffag ._dfdea ];copy (_cea ,_fdgf );};var _cda int ;for _ ,_eega :=range _cgaca {_dae :=int (_eega ._efccb -_ggecf );_eaeb :=_aeg [_cda :_dae +_eega ._debdg ];
|
||
_dfgf :=*_eega ._efaef ;_eafg [_dfgf ].Write (_eaeb );_cda =_dae +_eega ._eadgf ;};for _ ,_bccf :=range _cgaca {_gceg :=_aeg [_cda :];_bbea :=*_bccf ._efaef ;_eafg [_bbea ].Write (_gceg );};for _ ,_deff :=range _cgaca {_fdf :=int (_deff ._efccb -_ggecf );
|
||
_gece :=*_deff ._efaef ;_gagc :=_eafg [_gece ];if _fffd :=_gece .Sign (_deff ._gdbgfe ,_gagc );_fffd !=nil {return _fffd ;};_deff ._gdbgfe .ByteRange =_egbge ;_gdgfe :=[]byte (_deff ._gdbgfe .Contents .WriteString ());for _ffee :=_deff ._fgee ;_ffee < _deff ._dfdea ;
|
||
_ffee ++{_aeg [_fdf +_ffee ]=' ';};for _adbd :=_deff ._debdg ;_adbd < _deff ._eadgf ;_adbd ++{_aeg [_fdf +_adbd ]=' ';};_bda :=_aeg [_fdf +_deff ._fgee :_fdf +_deff ._dfdea ];copy (_bda ,_fdgf );_bda =_aeg [_fdf +_deff ._debdg :_fdf +_deff ._eadgf ];copy (_bda ,_gdgfe );
|
||
};_daab :=_ag .NewBuffer (_aeg );_ ,_eeebd =_gd .Copy (w ,_daab );if _eeebd !=nil {return _eeebd ;};};_aeegf ._fgegg =true ;return nil ;};type pdfSignDictionary struct{*_ce .PdfObjectDictionary ;_efaef *SignatureHandler ;_gdbgfe *PdfSignature ;_efccb int64 ;
|
||
_debdg int ;_eadgf int ;_fgee int ;_dfdea int ;};var (CourierName =_ee .CourierName ;CourierBoldName =_ee .CourierBoldName ;CourierObliqueName =_ee .CourierObliqueName ;CourierBoldObliqueName =_ee .CourierBoldObliqueName ;HelveticaName =_ee .HelveticaName ;
|
||
HelveticaBoldName =_ee .HelveticaBoldName ;HelveticaObliqueName =_ee .HelveticaObliqueName ;HelveticaBoldObliqueName =_ee .HelveticaBoldObliqueName ;SymbolName =_ee .SymbolName ;ZapfDingbatsName =_ee .ZapfDingbatsName ;TimesRomanName =_ee .TimesRomanName ;
|
||
TimesBoldName =_ee .TimesBoldName ;TimesItalicName =_ee .TimesItalicName ;TimesBoldItalicName =_ee .TimesBoldItalicName ;);
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_eafbb *PdfColorspaceICCBased )ToPdfObject ()_ce .PdfObject {_dgbaa :=&_ce .PdfObjectArray {};_dgbaa .Append (_ce .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _fdca *_ce .PdfObjectStream ;if _eafbb ._gcgc !=nil {_fdca =_eafbb ._gcgc ;
|
||
}else {_fdca =&_ce .PdfObjectStream {};};_cfcc :=_ce .MakeDict ();_cfcc .Set ("\u004e",_ce .MakeInteger (int64 (_eafbb .N )));if _eafbb .Alternate !=nil {_cfcc .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_eafbb .Alternate .ToPdfObject ());};if _eafbb .Metadata !=nil {_cfcc .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_eafbb .Metadata );
|
||
};if _eafbb .Range !=nil {var _cffdf []_ce .PdfObject ;for _ ,_bdeg :=range _eafbb .Range {_cffdf =append (_cffdf ,_ce .MakeFloat (_bdeg ));};_cfcc .Set ("\u0052\u0061\u006eg\u0065",_ce .MakeArray (_cffdf ...));};_cfcc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_eafbb .Data ))));
|
||
_fdca .Stream =_eafbb .Data ;_fdca .PdfObjectDictionary =_cfcc ;_dgbaa .Append (_fdca );if _eafbb ._fedfe !=nil {_eafbb ._fedfe .PdfObject =_dgbaa ;return _eafbb ._fedfe ;};return _dgbaa ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;
|
||
FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);
|
||
FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<26);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);
|
||
FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););func _agdgb (_gffed *[]*PdfField ,_ddfg FieldFilterFunc ,_acag bool )[]*PdfField {if _gffed ==nil {return nil ;
|
||
};_cbba :=*_gffed ;if len (*_gffed )==0{return nil ;};_dcdad :=_cbba [:0];if _ddfg ==nil {_ddfg =func (*PdfField )bool {return true };};var _dggeb []*PdfField ;for _ ,_fbafb :=range _cbba {_dacg :=_ddfg (_fbafb );if _dacg {_dggeb =append (_dggeb ,_fbafb );
|
||
if len (_fbafb .Kids )> 0{_dggeb =append (_dggeb ,_agdgb (&_fbafb .Kids ,_ddfg ,_acag )...);};};if !_acag ||!_dacg ||len (_fbafb .Kids )> 0{_dcdad =append (_dcdad ,_fbafb );};};*_gffed =_dcdad ;return _dggeb ;};func (_dcg *PdfReader )newPdfAnnotationCaretFromDict (_dgc *_ce .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_cce :=PdfAnnotationCaret {};
|
||
_gffe ,_ccae :=_dcg .newPdfAnnotationMarkupFromDict (_dgc );if _ccae !=nil {return nil ,_ccae ;};_cce .PdfAnnotationMarkup =_gffe ;_cce .RD =_dgc .Get ("\u0052\u0044");_cce .Sy =_dgc .Get ("\u0053\u0079");return &_cce ,nil ;};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;func _cefb (_dcda _ce .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_dabac :=NewPdfColorspaceSpecialIndexed ();if _adcf ,_cgaae :=_dcda .(*_ce .PdfIndirectObject );_cgaae {_dabac ._cbca =_adcf ;};_dcda =_ce .TraceToDirectObject (_dcda );
|
||
_edce ,_egcb :=_dcda .(*_ce .PdfObjectArray );if !_egcb {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _edce .Len ()!=4{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
|
||
};_dcda =_edce .Get (0);_bbffa ,_egcb :=_dcda .(*_ce .PdfObjectName );if !_egcb {return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_bbffa !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_dcda =_edce .Get (1);_ccbc ,_ecge :=DetermineColorspaceNameFromPdfObject (_dcda );if _ecge !=nil {return nil ,_ecge ;};if _ccbc =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_ccbc =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ff .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",_ccbc );
|
||
return nil ,_afga ;};_dcdf ,_ecge :=NewPdfColorspaceFromPdfObject (_dcda );if _ecge !=nil {return nil ,_ecge ;};_dabac .Base =_dcdf ;_dcda =_edce .Get (2);_beeb ,_ecge :=_ce .GetNumberAsInt64 (_dcda );if _ecge !=nil {return nil ,_ecge ;};if _beeb > 255{return nil ,_e .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_dabac .HiVal =int (_beeb );_dcda =_edce .Get (3);_dabac .Lookup =_dcda ;_dcda =_ce .TraceToDirectObject (_dcda );var _dcf []byte ;if _aaef ,_baac :=_dcda .(*_ce .PdfObjectString );_baac {_dcf =_aaef .Bytes ();_ff .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",_dcf );
|
||
}else if _cfagdf ,_gaae :=_dcda .(*_ce .PdfObjectStream );_gaae {_ff .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_dcda .String ());_ff .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_cfagdf .Stream ),_cfagdf .Stream );
|
||
_eabd ,_gafgg :=_ce .DecodeStream (_cfagdf );if _gafgg !=nil {return nil ,_gafgg ;};_ff .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_eabd ),_eabd );_dcf =_eabd ;}else {_ff .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dcda );
|
||
return nil ,_e .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_dcf )< _dabac .Base .GetNumComponents ()*(_dabac .HiVal +1){_ff .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");
|
||
_ff .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 (_dcf ),_dabac .Base .GetNumComponents (),_dabac .HiVal );
|
||
}else {_dcf =_dcf [:_dabac .Base .GetNumComponents ()*(_dabac .HiVal +1)];};_dabac ._adga =_dcf ;return _dabac ,nil ;};
|
||
|
||
// 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 ;};func (_fafe *PdfReader )newPdfFieldFromIndirectObject (_gdae *_ce .PdfIndirectObject ,_dabcb *PdfField )(*PdfField ,error ){if _abagd ,_eedcd :=_fafe ._aedda .GetModelFromPrimitive (_gdae ).(*PdfField );_eedcd {return _abagd ,nil ;
|
||
};_gbbdg ,_bged :=_ce .GetDict (_gdae );if !_bged {return nil ,_e .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_dbaa :=NewPdfField ();_dbaa ._aadeb =_gdae ;_dbaa ._aadeb .PdfObject =_gbbdg ;if _decc ,_bccg :=_ce .GetName (_gbbdg .Get ("\u0046\u0054"));_bccg {_dbaa .FT =_decc ;};if _dabcb !=nil {_dbaa .Parent =_dabcb ;};_dbaa .T ,_ =_gbbdg .Get ("\u0054").(*_ce .PdfObjectString );
|
||
_dbaa .TU ,_ =_gbbdg .Get ("\u0054\u0055").(*_ce .PdfObjectString );_dbaa .TM ,_ =_gbbdg .Get ("\u0054\u004d").(*_ce .PdfObjectString );_dbaa .Ff ,_ =_gbbdg .Get ("\u0046\u0066").(*_ce .PdfObjectInteger );_dbaa .V =_gbbdg .Get ("\u0056");_dbaa .DV =_gbbdg .Get ("\u0044\u0056");
|
||
_dbaa .AA =_gbbdg .Get ("\u0041\u0041");if DA :=_gbbdg .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ce .GetString (DA );_dbaa .VariableText =&VariableText {DA :DA };Q ,_ :=_gbbdg .Get ("\u0051").(*_ce .PdfObjectInteger );DS ,_ :=_gbbdg .Get ("\u0044\u0053").(*_ce .PdfObjectString );
|
||
RV :=_gbbdg .Get ("\u0052\u0056");_dbaa .VariableText .Q =Q ;_dbaa .VariableText .DS =DS ;_dbaa .VariableText .RV =RV ;};_eddge :=_dbaa .FT ;if _eddge ==nil &&_dabcb !=nil {_eddge =_dabcb .FT ;};if _eddge !=nil {switch *_eddge {case "\u0054\u0078":_dabd ,_egef :=_gabd (_gbbdg );
|
||
if _egef !=nil {return nil ,_egef ;};_dabd .PdfField =_dbaa ;_dbaa ._dcagc =_dabd ;case "\u0043\u0068":_bacc ,_aaefe :=_agdgd (_gbbdg );if _aaefe !=nil {return nil ,_aaefe ;};_bacc .PdfField =_dbaa ;_dbaa ._dcagc =_bacc ;case "\u0042\u0074\u006e":_ecea ,_gcgeg :=_bgfbde (_gbbdg );
|
||
if _gcgeg !=nil {return nil ,_gcgeg ;};_ecea .PdfField =_dbaa ;_dbaa ._dcagc =_ecea ;case "\u0053\u0069\u0067":_ecba ,_cfgdd :=_fafe .newPdfFieldSignatureFromDict (_gbbdg );if _cfgdd !=nil {return nil ,_cfgdd ;};_ecba .PdfField =_dbaa ;_dbaa ._dcagc =_ecba ;
|
||
default:_ff .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",*_dbaa .FT );return nil ,_ge .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
|
||
};};if _cgaga ,_dfcc :=_ce .GetName (_gbbdg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_dfcc {if *_cgaga =="\u0057\u0069\u0064\u0067\u0065\u0074"{_bdag ,_adae :=_fafe .newPdfAnnotationFromIndirectObject (_gdae );if _adae !=nil {return nil ,_adae ;
|
||
};_cfccc ,_bfdc :=_bdag .GetContext ().(*PdfAnnotationWidget );if !_bfdc {return nil ,_ge .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_cfccc ._bag =_dbaa ;_cfccc .Parent =_dbaa ._aadeb ;
|
||
_dbaa .Annotations =append (_dbaa .Annotations ,_cfccc );return _dbaa ,nil ;};};_bdcfc :=true ;if _ebbb ,_agbeg :=_ce .GetArray (_gbbdg .Get ("\u004b\u0069\u0064\u0073"));_agbeg {_dgfe :=make ([]*_ce .PdfIndirectObject ,0,_ebbb .Len ());for _ ,_aagad :=range _ebbb .Elements (){_gcgbf ,_aacgb :=_ce .GetIndirect (_aagad );
|
||
if !_aacgb {_efad ,_acge :=_ce .GetStream (_aagad );if _acge &&_efad .PdfObjectDictionary !=nil {_edcce ,_gbbag :=_ce .GetNameVal (_efad .Get ("\u0054\u0079\u0070\u0065"));if _gbbag &&_edcce =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ff .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 ,_ge .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");};_dfddg ,_eadcd :=_ce .GetDict (_gcgbf );
|
||
if !_eadcd {return nil ,ErrTypeCheck ;};if _bdcfc {_bdcfc =!_bdfdd (_dfddg );};_dgfe =append (_dgfe ,_gcgbf );};for _ ,_bfae :=range _dgfe {if _bdcfc {_gbfd ,_bbeba :=_fafe .newPdfAnnotationFromIndirectObject (_bfae );if _bbeba !=nil {_ff .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",_bbeba );
|
||
return nil ,_bbeba ;};_caeed ,_cgbe :=_gbfd ._edc .(*PdfAnnotationWidget );if !_cgbe {return nil ,ErrTypeCheck ;};_caeed ._bag =_dbaa ;_dbaa .Annotations =append (_dbaa .Annotations ,_caeed );}else {_beebc ,_dceg :=_fafe .newPdfFieldFromIndirectObject (_bfae ,_dbaa );
|
||
if _dceg !=nil {_ff .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",_dceg );return nil ,_dceg ;};_dbaa .Kids =append (_dbaa .Kids ,_beebc );
|
||
};};};return _dbaa ,nil ;};
|
||
|
||
// GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array.
|
||
// Each sample is represented by BitsPerComponent consecutive bits in the raw data.
|
||
// NOTE: The method resamples the image byte data before returning the result and
|
||
// this could lead to high memory usage, especially on large images. It should
|
||
// be avoided, when possible. It is recommended to access the Data field of the
|
||
// image directly or use the ColorAt method to extract individual pixels.
|
||
func (_gebe *Image )GetSamples ()[]uint32 {_dfef :=_gb .ResampleBytes (_gebe .Data ,int (_gebe .BitsPerComponent ));if _gebe .BitsPerComponent < 8{_dfef =_gebe .samplesTrimPadding (_dfef );};_egag :=int (_gebe .Width )*int (_gebe .Height )*_gebe .ColorComponents ;
|
||
if len (_dfef )< _egag {_ff .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 (_dfef ),_egag );
|
||
return _dfef ;}else if len (_dfef )> _egag {_ff .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 (_dfef ),_egag );
|
||
_dfef =_dfef [:_egag ];};return _dfef ;};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_cccab *Image )SetDecode (decode []float64 ){_cccab ._bffb =decode };func _eage (_gdba _ce .PdfObject )(*PdfColorspaceDeviceN ,error ){_ebec :=NewPdfColorspaceDeviceN ();if _gcbb ,_bbgf :=_gdba .(*_ce .PdfIndirectObject );_bbgf {_ebec ._gedd =_gcbb ;
|
||
};_gdba =_ce .TraceToDirectObject (_gdba );_eeeba ,_afcd :=_gdba .(*_ce .PdfObjectArray );if !_afcd {return nil ,_e .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if _eeeba .Len ()!=4&&_eeeba .Len ()!=5{return nil ,_e .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_gdba =_eeeba .Get (0);
|
||
_acgaa ,_afcd :=_gdba .(*_ce .PdfObjectName );if !_afcd {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_acgaa !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_e .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_gdba =_eeeba .Get (1);
|
||
_gdba =_ce .TraceToDirectObject (_gdba );_bebc ,_afcd :=_gdba .(*_ce .PdfObjectArray );if !_afcd {return nil ,_e .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_ebec .ColorantNames =_bebc ;_gdba =_eeeba .Get (2);_dcgf ,_dba :=NewPdfColorspaceFromPdfObject (_gdba );if _dba !=nil {return nil ,_dba ;};_ebec .AlternateSpace =_dcgf ;_dfcd ,_dba :=_cegfd (_eeeba .Get (3));if _dba !=nil {return nil ,_dba ;};_ebec .TintTransform =_dfcd ;
|
||
if _eeeba .Len ()==5{_dfda ,_bbgcd :=_afee (_eeeba .Get (4));if _bbgcd !=nil {return nil ,_bbgcd ;};_ebec .Attributes =_dfda ;};return _ebec ,nil ;};var _gfaee =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":{}};
|
||
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _ce .PdfObject ;PreserveRB _ce .PdfObject ;};
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_dbca *PdfFieldButton )ToPdfObject ()_ce .PdfObject {_dbca .PdfField .ToPdfObject ();_eefff :=_dbca ._aadeb ;_bggde :=_eefff .PdfObject .(*_ce .PdfObjectDictionary );_bggde .Set ("\u0046\u0054",_ce .MakeName ("\u0042\u0074\u006e"));if _dbca .Opt !=nil {_bggde .Set ("\u004f\u0070\u0074",_dbca .Opt );
|
||
};return _eefff ;};func (_bfbce *pdfFontSimple )addEncoding ()error {var (_ecaac string ;_egbebb map[_dc .CharCode ]_dc .GlyphName ;_afcg _dc .SimpleEncoder ;);if _bfbce .Encoder ()!=nil {_fefc ,_eecg :=_bfbce .Encoder ().(_dc .SimpleEncoder );if _eecg &&_fefc !=nil {_ecaac =_fefc .BaseName ();
|
||
};};if _bfbce .Encoding !=nil {_cgab ,_ggaf ,_gcbg :=_bfbce .getFontEncoding ();if _gcbg !=nil {_ff .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",_bfbce ._egacd ,_bfbce ._baafb ,_bfbce .Encoding ,_bfbce .Encoding ,_gcbg );
|
||
return _gcbg ;};if _cgab !=""{_ecaac =_cgab ;};_egbebb =_ggaf ;_afcg ,_gcbg =_dc .NewSimpleTextEncoder (_ecaac ,_egbebb );if _gcbg !=nil {return _gcbg ;};};if _afcg ==nil {_gbaba :=_bfbce ._daebd ;if _gbaba !=nil {switch _bfbce ._baafb {case "\u0054\u0079\u0070e\u0031":if _gbaba .fontFile !=nil &&_gbaba .fontFile ._bagea !=nil {_ff .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_afcg =_gbaba .fontFile ._bagea ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _gbaba ._cdfe !=nil {_ff .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_cbecb ,_cbbe :=_gbaba ._cdfe .MakeEncoder ();
|
||
if _cbbe ==nil {_afcg =_cbecb ;};if _bfbce ._dgfcg ==nil {_bfbce ._dgfcg =_gbaba ._cdfe .MakeToUnicode ();};};};};};if _afcg !=nil {if _egbebb !=nil {_ff .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_egbebb ,_bfbce .baseFields ());
|
||
_afcg =_dc .ApplyDifferences (_afcg ,_egbebb );};_bfbce .SetEncoder (_afcg );};return nil ;};
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_gebag *PdfInfo )GetCustomInfo (name string )*_ce .PdfObjectString {var _gbaa *_ce .PdfObjectString ;if _gebag ._ecfddd ==nil {return _gbaa ;};if _abga ,_cegc :=_gebag ._ecfddd .Get (*_ce .MakeName (name )).(*_ce .PdfObjectString );_cegc {_gbaa =_abga ;
|
||
};return _gbaa ;};
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_cdfea *PdfShading )SetContext (ctx PdfModel ){_cdfea ._aadbc =ctx };
|
||
|
||
// 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 (_gcfbe byte )byte ;
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_gab :=NewPdfAnnotation ();_gfdd :=&PdfAnnotationHighlight {};_gfdd .PdfAnnotation =_gab ;_gfdd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gab .SetContext (_gfdd );return _gfdd ;};
|
||
|
||
// 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 (_bfbfe *Image )ConvertToBinary ()error {if _bfbfe .ColorComponents ==1&&_bfbfe .BitsPerComponent ==1{return nil ;};_dcfg ,_dgagb :=_bfbfe .ToGoImage ();if _dgagb !=nil {return _dgagb ;};_aadfc ,_dgagb :=_gf .MonochromeConverter .Convert (_dcfg );
|
||
if _dgagb !=nil {return _dgagb ;};_bfbfe .Data =_aadfc .Base ().Data ;_bfbfe ._cdecc ,_dgagb =_gf .ScaleAlphaToMonochrome (_bfbfe ._cdecc ,int (_bfbfe .Width ),int (_bfbfe .Height ));if _dgagb !=nil {return _dgagb ;};_bfbfe .BitsPerComponent =1;_bfbfe .ColorComponents =1;
|
||
_bfbfe ._bffb =nil ;return nil ;};
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_gaed *PdfColorspaceICCBased )GetNumComponents ()int {return _gaed .N };
|
||
|
||
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
|
||
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_abacb :=&PdfColorPatternType2 {};return _abacb ;};
|
||
|
||
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
|
||
func (_eeag *PdfReader )GetCatalogStructTreeRoot ()(_ce .PdfObject ,bool ){if _eeag ._cfcdg ==nil {return nil ,false ;};_efec :=_eeag ._cfcdg .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _efec ,_efec !=nil ;
|
||
};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_fgffd *XObjectForm )GetContentStream ()([]byte ,error ){_fegdd ,_gddf :=_ce .DecodeStream (_fgffd ._efffe );if _gddf !=nil {return nil ,_gddf ;};return _fegdd ,nil ;};func (_dadf *pdfCIDFontType2 )baseFields ()*fontCommon {return &_dadf .fontCommon };
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egcee *PdfTransformParamsDocMDP )ToPdfObject ()_ce .PdfObject {_badde :=_ce .MakeDict ();_badde .SetIfNotNil ("\u0054\u0079\u0070\u0065",_egcee .Type );_badde .SetIfNotNil ("\u0056",_egcee .V );_badde .SetIfNotNil ("\u0050",_egcee .P );return _badde ;
|
||
};
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_fecdg *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_efgc ,_cffcc :=_fecdg .GetMediaBox ();if _cffcc !=nil {return _cffcc ;};_gccgc :=_efgc .Urx -_efgc .Llx ;_ceadd :=_efgc .Ury -_efgc .Lly ;_gbda :=float64 (*ximg .Width );
|
||
_dgfff :=(_gccgc -_gbda )/2;if opt .FitToWidth {_gbda =_gccgc ;_dgfff =0;};_edeac :=_ceadd ;_eaaeb :=float64 (0);if opt .PreserveAspectRatio {_edeac =_gbda *float64 (*ximg .Height )/float64 (*ximg .Width );_eaaeb =(_ceadd -_edeac )/2;};if _fecdg .Resources ==nil {_fecdg .Resources =NewPdfPageResources ();
|
||
};_aabgfe :=0;_bfffd :=_ce .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_aabgfe ));for _fecdg .Resources .HasXObjectByName (_bfffd ){_aabgfe ++;_bfffd =_ce .PdfObjectName (_e .Sprintf ("\u0049\u006d\u0077%\u0064",_aabgfe ));};_cffcc =_fecdg .AddImageResource (_bfffd ,ximg );
|
||
if _cffcc !=nil {return _cffcc ;};_aabgfe =0;_bcba :=_ce .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_aabgfe ));for _fecdg .HasExtGState (_bcba ){_aabgfe ++;_bcba =_ce .PdfObjectName (_e .Sprintf ("\u0047\u0053\u0025\u0064",_aabgfe ));};_ffbaa :=_ce .MakeDict ();
|
||
_ffbaa .Set ("\u0042\u004d",_ce .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_ffbaa .Set ("\u0043\u0041",_ce .MakeFloat (opt .Alpha ));_ffbaa .Set ("\u0063\u0061",_ce .MakeFloat (opt .Alpha ));_cffcc =_fecdg .AddExtGState (_bcba ,_ffbaa );if _cffcc !=nil {return _cffcc ;
|
||
};_afffcc :=_e .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_bcba ,_gbda ,_edeac ,_dgfff ,_eaaeb ,_bfffd );
|
||
_fecdg .AddContentStreamByString (_afffcc );return nil ;};
|
||
|
||
// GetPdfVersion gets the version of the PDF used within this document.
|
||
func (_gafbf *PdfWriter )GetPdfVersion ()string {return _gafbf .getPdfVersion ()};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ce .PdfObject ;LE _ce .PdfObject ;BS _ce .PdfObject ;IC _ce .PdfObject ;BE _ce .PdfObject ;IT _ce .PdfObject ;Measure _ce .PdfObject ;};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;func _afdfee (_fbcef _ce .PdfObject )(*PdfFunctionType3 ,error ){_dadfa :=&PdfFunctionType3 {};var _afgbf *_ce .PdfObjectDictionary ;if _dgcb ,_dbbee :=_fbcef .(*_ce .PdfIndirectObject );_dbbee {_cfgfc ,_bcbd :=_dgcb .PdfObject .(*_ce .PdfObjectDictionary );
|
||
if !_bcbd {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dadfa ._badbg =_dgcb ;_afgbf =_cfgfc ;}else if _acgca ,_aabf :=_fbcef .(*_ce .PdfObjectDictionary );_aabf {_afgbf =_acgca ;}else {return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_ebbeb ,_ccda :=_ce .TraceToDirectObject (_afgbf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_ccda {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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 _ebbeb .Len ()!=2{_ff .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bdega ,_cagca :=_ebbeb .ToFloat64Array ();
|
||
if _cagca !=nil {return nil ,_cagca ;};_dadfa .Domain =_bdega ;_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if _ccda {if _ebbeb .Len ()< 0||_ebbeb .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_gadgc ,_fdacb :=_ebbeb .ToFloat64Array ();if _fdacb !=nil {return nil ,_fdacb ;};_dadfa .Range =_gadgc ;};_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ce .PdfObjectArray );if !_ccda {_ff .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 ,_ge .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");};_dadfa .Functions =[]PdfFunction {};
|
||
for _ ,_gfdde :=range _ebbeb .Elements (){_cffgb ,_ddbb :=_cegfd (_gfdde );if _ddbb !=nil {return nil ,_ddbb ;};_dadfa .Functions =append (_dadfa .Functions ,_cffgb );};_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ce .PdfObjectArray );
|
||
if !_ccda {_ff .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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");
|
||
};_dadaa ,_cagca :=_ebbeb .ToFloat64Array ();if _cagca !=nil {return nil ,_cagca ;};_dadfa .Bounds =_dadaa ;if len (_dadfa .Bounds )!=len (_dadfa .Functions )-1{_ff .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 (_dadfa .Bounds ),len (_dadfa .Functions ));
|
||
return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebbeb ,_ccda =_ce .TraceToDirectObject (_afgbf .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );if !_ccda {_ff .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_ge .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");};_eggfg ,_cagca :=_ebbeb .ToFloat64Array ();
|
||
if _cagca !=nil {return nil ,_cagca ;};_dadfa .Encode =_eggfg ;if len (_dadfa .Encode )!=2*len (_dadfa .Functions ){_ff .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 (_dadfa .Encode ),len (_dadfa .Functions ));
|
||
return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _dadfa ,nil ;};
|
||
|
||
// NewPdfReaderLazy creates a new PdfReader for `rs` in lazy-loading mode. The difference
|
||
// from NewPdfReader is that in lazy-loading mode, objects are only loaded into memory when needed
|
||
// rather than entire structure being loaded into memory on reader creation.
|
||
// Note that it may make sense to use the lazy-load reader when processing only parts of files,
|
||
// rather than loading entire file into memory. Example: splitting a few pages from a large PDF file.
|
||
func NewPdfReaderLazy (rs _gd .ReadSeeker )(*PdfReader ,error ){const _fcece ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _aaegd (rs ,&ReaderOpts {LazyLoad :true },false ,_fcece );
|
||
};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_cffagc *PdfDate )ToPdfObject ()_ce .PdfObject {_ffgef :=_e .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_cffagc ._cbacb ,_cffagc ._adeec ,_cffagc ._eeegb ,_cffagc ._gbcf ,_cffagc ._ecebf ,_cffagc ._cdbfg ,_cffagc ._accgd ,_cffagc ._gbbfe ,_cffagc ._cfcf );
|
||
return _ce .MakeString (_ffgef );};func (_dacfd *PdfWriter )writeBytes (_afca []byte ){if _dacfd ._dcdgg !=nil {return ;};_eadfb ,_gfgbg :=_dacfd ._cafdf .Write (_afca );_dacfd ._cgdfab +=int64 (_eadfb );_dacfd ._dcdgg =_gfgbg ;};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";);
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_edga *PdfColorLab )GetNumComponents ()int {return 3};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_baec *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_baec .Base .GetNumComponents ();_gffeb :=int (vals [0])*N ;
|
||
if _gffeb < 0||(_gffeb +N -1)>=len (_baec ._adga ){_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gffeb );return nil ,ErrColorOutOfRange ;};_bceb :=_baec ._adga [_gffeb :_gffeb +N ];
|
||
var _aabc []float64 ;for _ ,_aeea :=range _bceb {_aabc =append (_aabc ,float64 (_aeea )/255.0);};_dddb ,_dbbec :=_baec .Base .ColorFromFloats (_aabc );if _dbbec !=nil {return nil ,_dbbec ;};return _dddb ,nil ;};
|
||
|
||
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
|
||
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _ce .PdfObjectName ;};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_geede *PdfReader )PageFromIndirectObject (ind *_ce .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_geede .PageList )!=len (_geede ._cbddb ){return nil ,0,_ge .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _cdgebb ,_efdaa :=range _geede ._cbddb {if _efdaa ==ind {return _geede .PageList [_cdgebb ],_cdgebb +1,nil ;};};return nil ,0,_ge .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_adac *PdfPattern )GetContainingPdfObject ()_ce .PdfObject {return _adac ._gadcb };func _gebff ()string {_cbcgc .Lock ();defer _cbcgc .Unlock ();if len (_daadg )> 0{return _daadg ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
|
||
};func _aaefeg (_abfgb _ce .PdfObject )[]*_ce .PdfObjectStream {if _abfgb ==nil {return nil ;};_acega ,_aega :=_ce .GetArray (_abfgb );if !_aega ||_acega .Len ()==0{return nil ;};_feedc :=make ([]*_ce .PdfObjectStream ,0,_acega .Len ());for _ ,_febac :=range _acega .Elements (){if _ccfga ,_aeaea :=_ce .GetStream (_febac );
|
||
_aeaea {_feedc =append (_feedc ,_ccfga );};};return _feedc ;};
|
||
|
||
// 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 (_cdcbb *PdfReader )GetObjectNums ()[]int {return _cdcbb ._afda .GetObjectNums ()};
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_bdbg FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_bdbg .Mask ()|fl .Mask ())};func (_addbd *PdfWriter )getPdfVersion ()string {return _e .Sprintf ("\u0025\u0064\u002e%\u0064",_addbd ._facee .Major ,_addbd ._facee .Minor );};func _cfdcf ()string {return _ff .Version };
|
||
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_fcfdc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_cefbcc ,_effg :=_ce .GetDict (_fcfdc ._bbef .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_effg {_cefbcc =_ce .MakeDict ();_fcfdc ._bbef .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_cefbcc );
|
||
};_bfgaff ,_effg :=_ce .GetDict (_cefbcc .Get (_ce .PdfObjectName (extName )));if !_effg {_bfgaff =_ce .MakeDict ();_cefbcc .Set (_ce .PdfObjectName (extName ),_bfgaff );};if _ecgcf ,_ :=_ce .GetNameVal (_bfgaff .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_ecgcf !=baseVersion {_bfgaff .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ce .MakeName (baseVersion ));};if _egeafa ,_ :=_ce .GetIntVal (_bfgaff .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_egeafa !=extLevel {_bfgaff .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ce .MakeInteger (int64 (extLevel )));};};
|
||
|
||
// 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 (_fabeg *PdfPage )Size ()(float64 ,float64 ,error ){_ceeda ,_acfc :=_fabeg .GetMediaBox ();if _acfc !=nil {return 0,0,_acfc ;};_fdfb ,_bbad :=_ceeda .Width (),_ceeda .Height ();_bcfbc ,_acfc :=_fabeg .GetRotate ();if _acfc !=nil {_ff .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",_acfc .Error ());
|
||
};if _abbf :=_bcfbc ;_abbf %360!=0&&_abbf %90==0{if _adcdc :=(360+_abbf %360)%360;_adcdc ==90||_adcdc ==270{_fdfb ,_bbad =_bbad ,_fdfb ;};};return _fdfb ,_bbad ,nil ;};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ce .PdfObject ;Name _ce .PdfObject ;};
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ce .PdfObject ;Q _ce .PdfObject ;RC _ce .PdfObject ;DS _ce .PdfObject ;CL _ce .PdfObject ;IT _ce .PdfObject ;BE _ce .PdfObject ;RD _ce .PdfObject ;BS _ce .PdfObject ;LE _ce .PdfObject ;
|
||
};func _fceadg (_fbdagg *_ce .PdfObjectArray )(float64 ,error ){_abgbc ,_caeeg :=_fbdagg .ToFloat64Array ();if _caeeg !=nil {_ff .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",_fbdagg ,_caeeg );
|
||
};switch len (_abgbc ){case 1:return _abgbc [0],nil ;case 3:_aefda :=PdfColorspaceDeviceRGB {};_gdggf ,_efdcfb :=_aefda .ColorFromFloats (_abgbc );if _efdcfb !=nil {return 0.0,_efdcfb ;};return _gdggf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_ggagf :=PdfColorspaceDeviceCMYK {};
|
||
_cbfbd ,_cbgg :=_ggagf .ColorFromFloats (_abgbc );if _cbgg !=nil {return 0.0,_cbgg ;};_adadb ,_cbgg :=_ggagf .ColorToRGB (_cbfbd .(*PdfColorDeviceCMYK ));if _cbgg !=nil {return 0.0,_cbgg ;};return _adadb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_caeeg =_ge .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");
|
||
_ff .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_fbdagg ,_caeeg );return 0.0,_caeeg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gafc *PdfAnnotationRedact )ToPdfObject ()_ce .PdfObject {_gafc .PdfAnnotation .ToPdfObject ();_abgd :=_gafc ._dec ;_gfa :=_abgd .PdfObject .(*_ce .PdfObjectDictionary );_gafc .PdfAnnotationMarkup .appendToPdfDictionary (_gfa );_gfa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_gfa .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gafc .QuadPoints );_gfa .SetIfNotNil ("\u0049\u0043",_gafc .IC );_gfa .SetIfNotNil ("\u0052\u004f",_gafc .RO );_gfa .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_gafc .OverlayText );
|
||
_gfa .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_gafc .Repeat );_gfa .SetIfNotNil ("\u0044\u0041",_gafc .DA );_gfa .SetIfNotNil ("\u0051",_gafc .Q );return _abgd ;};
|
||
|
||
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
|
||
func NewPdfShadingType3 ()*PdfShadingType3 {_adbbf :=&PdfShadingType3 {};_adbbf .PdfShading =&PdfShading {};_adbbf .PdfShading ._agcdg =_ce .MakeIndirectObject (_ce .MakeDict ());_adbbf .PdfShading ._aadbc =_adbbf ;return _adbbf ;};
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_gcd *PdfAnnotation )SetContext (ctx PdfModel ){_gcd ._edc =ctx };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgfg *PdfAnnotationPolygon )ToPdfObject ()_ce .PdfObject {_dgfg .PdfAnnotation .ToPdfObject ();_fcf :=_dgfg ._dec ;_bab :=_fcf .PdfObject .(*_ce .PdfObjectDictionary );_dgfg .PdfAnnotationMarkup .appendToPdfDictionary (_bab );_bab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_bab .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_dgfg .Vertices );_bab .SetIfNotNil ("\u004c\u0045",_dgfg .LE );_bab .SetIfNotNil ("\u0042\u0053",_dgfg .BS );_bab .SetIfNotNil ("\u0049\u0043",_dgfg .IC );_bab .SetIfNotNil ("\u0042\u0045",_dgfg .BE );
|
||
_bab .SetIfNotNil ("\u0049\u0054",_dgfg .IT );_bab .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_dgfg .Measure );return _fcf ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_ccbaa *pdfFontType3 )ToPdfObject ()_ce .PdfObject {if _ccbaa ._degaa ==nil {_ccbaa ._degaa =&_ce .PdfIndirectObject {};};_bbae :=_ccbaa .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_ccbaa ._degaa .PdfObject =_bbae ;if _ccbaa .FirstChar !=nil {_bbae .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_ccbaa .FirstChar );
|
||
};if _ccbaa .LastChar !=nil {_bbae .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_ccbaa .LastChar );};if _ccbaa .Widths !=nil {_bbae .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_ccbaa .Widths );};if _ccbaa .Encoding !=nil {_bbae .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ccbaa .Encoding );
|
||
}else if _ccbaa ._aacfd !=nil {_bdca :=_ccbaa ._aacfd .ToPdfObject ();if _bdca !=nil {_bbae .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_bdca );};};if _ccbaa .FontBBox !=nil {_bbae .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_ccbaa .FontBBox );
|
||
};if _ccbaa .FontMatrix !=nil {_bbae .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_ccbaa .FontMatrix );};if _ccbaa .CharProcs !=nil {_bbae .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_ccbaa .CharProcs );};if _ccbaa .Resources !=nil {_bbae .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ccbaa .Resources );
|
||
};return _ccbaa ._degaa ;};
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_fega *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _fega ._fbea .(*PdfShadingPattern );};
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_bcfa *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_bcfa ._facee .Major =majorVersion ;_bcfa ._facee .Minor =minorVersion ;};func _baef (_ebbd _ce .PdfObject )(map[_dc .CharCode ]float64 ,error ){if _ebbd ==nil {return nil ,nil ;};_ageg ,_ggge :=_ce .GetArray (_ebbd );
|
||
if !_ggge {return nil ,nil ;};_bdfee :=map[_dc .CharCode ]float64 {};_fdcae :=_ageg .Len ();for _ddae :=0;_ddae < _fdcae -1;_ddae ++{_eagad :=_ce .TraceToDirectObject (_ageg .Get (_ddae ));_feba ,_bfdf :=_ce .GetIntVal (_eagad );if !_bfdf {return nil ,_e .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_ddae ,_eagad );
|
||
};_ddae ++;if _ddae > _fdcae -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ageg );};_edgad :=_ce .TraceToDirectObject (_ageg .Get (_ddae ));
|
||
switch _edgad .(type ){case *_ce .PdfObjectArray :_cbcac ,_ :=_ce .GetArray (_edgad );if _afdff ,_cgbd :=_cbcac .ToFloat64Array ();_cgbd ==nil {for _fgace :=0;_fgace < len (_afdff );_fgace ++{_bdfee [_dc .CharCode (_feba +_fgace )]=_afdff [_fgace ];};}else {return nil ,_e .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_ddae ,_edgad );
|
||
};case *_ce .PdfObjectInteger :_egaba ,_defdb :=_ce .GetIntVal (_edgad );if !_defdb {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_ddae ,_edgad );
|
||
};_ddae ++;if _ddae > _fdcae -1{return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_ageg );};_beebg :=_ageg .Get (_ddae );_fcfde ,_ggdea :=_ce .GetNumberAsFloat (_beebg );
|
||
if _ggdea !=nil {return nil ,_e .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_ddae ,_beebg );};for _ffcgf :=_feba ;_ffcgf <=_egaba ;
|
||
_ffcgf ++{_bdfee [_dc .CharCode (_ffcgf )]=_fcfde ;};default:return nil ,_e .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_ddae ,_edgad );
|
||
};};return _bdfee ,nil ;};
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_badcc *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ff .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_ge .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_bdfeg *PdfFont )IsCID ()bool {return _bdfeg .baseFields ().isCIDFont ()};
|
||
|
||
// SetNameDictionary sets the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_fdadf *PdfWriter )SetNameDictionary (names _ce .PdfObject )error {if names ==nil {return nil ;};_ff .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_fdadf ._bbef .Set ("\u004e\u0061\u006de\u0073",names );return _fdadf .addObjects (names );};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_acff *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gebdc ,_dcdc :=_ce .GetNumbersAsFloat (objects );
|
||
if _dcdc !=nil {return nil ,_dcdc ;};return _acff .ColorFromFloats (_gebdc );};
|
||
|
||
// 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 (_cceg *pdfFontSimple )SetEncoder (encoder _dc .TextEncoder ){_cceg ._bbaf =encoder };
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_gdda *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_beabd :=_gb .NewReader (img .getBase ());_efcc :=_gf .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_gdda .AlternateSpace .GetNumComponents (),nil ,img ._cdecc ,nil );
|
||
_ggfc :=_gb .NewWriter (_efcc );_afgcc :=_egg .Pow (2,float64 (img .BitsPerComponent ))-1;_ff .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");
|
||
_ff .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_gdda .TintTransform );_afbe :=_gdda .AlternateSpace .DecodeArray ();var (_abeb uint32 ;_bgbf error ;);for {_abeb ,_bgbf =_beabd .ReadSample ();
|
||
if _bgbf ==_gd .EOF {break ;};if _bgbf !=nil {return img ,_bgbf ;};_ecbc :=float64 (_abeb )/_afgcc ;_ecccb ,_ffca :=_gdda .TintTransform .Evaluate ([]float64 {_ecbc });if _ffca !=nil {return img ,_ffca ;};for _dfab ,_bagd :=range _ecccb {_ecbd :=_gf .LinearInterpolate (_bagd ,_afbe [_dfab *2],_afbe [_dfab *2+1],0,1);
|
||
if _ffca =_ggfc .WriteSample (uint32 (_ecbd *_afgcc ));_ffca !=nil {return img ,_ffca ;};};};return _gdda .AlternateSpace .ImageToRGB (_ffba (&_efcc ));};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_ggf :=NewPdfAction ();_cegg :=&PdfActionRendition {};_cegg .PdfAction =_ggf ;_ggf .SetContext (_cegg );return _cegg ;};
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_fafc *PdfPageResources )SetXObjectFormByName (keyName _ce .PdfObjectName ,xform *XObjectForm )error {_efeea :=xform .ToPdfObject ().(*_ce .PdfObjectStream );_abdgc :=_fafc .SetXObjectByName (keyName ,_efeea );return _abdgc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cef *PdfAnnotationStrikeOut )ToPdfObject ()_ce .PdfObject {_cef .PdfAnnotation .ToPdfObject ();_acgfb :=_cef ._dec ;_cfg :=_acgfb .PdfObject .(*_ce .PdfObjectDictionary );_cef .PdfAnnotationMarkup .appendToPdfDictionary (_cfg );_cfg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_cfg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cef .QuadPoints );return _acgfb ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_geef *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_ffbcc *PdfPageResources )SetPatternByName (keyName _ce .PdfObjectName ,pattern _ce .PdfObject )error {if _ffbcc .Pattern ==nil {_ffbcc .Pattern =_ce .MakeDict ();};_egffc ,_cbaba :=_ce .GetDict (_ffbcc .Pattern );if !_cbaba {return _ce .ErrTypeError ;
|
||
};_egffc .Set (keyName ,pattern );return nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_gaaa *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _gaaa .Range };type pdfFontSimple struct{fontCommon ;_bgaae *_ce .PdfIndirectObject ;_aggce map[_dc .CharCode ]float64 ;_bbaf _dc .TextEncoder ;_bccdg _dc .TextEncoder ;_cdcd *PdfFontDescriptor ;
|
||
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _ce .PdfObject ;LastChar _ce .PdfObject ;Widths _ce .PdfObject ;Encoding _ce .PdfObject ;_cabcg *_ee .RuneCharSafeMap ;};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_dacfe *PdfReader )GetOCProperties ()(_ce .PdfObject ,error ){_ddefe :=_dacfe ._cfcdg ;_ecab :=_ddefe .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_ecab =_ce .ResolveReference (_ecab );if !_dacfe ._cgbdb {_debbgf :=_dacfe .traverseObjectData (_ecab );
|
||
if _debbgf !=nil {return nil ,_debbgf ;};};return _ecab ,nil ;};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ce .PdfObject ;};var (ErrRequiredAttributeMissing =_ge .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 =_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_afga =_ge .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
||
ErrEncrypted =_ge .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 =_ge .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
ErrFontNotSupported =_ffae .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ce .ErrNotSupported );ErrType1CFontNotSupported =_ffae .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",_ce .ErrNotSupported );
|
||
ErrType3FontNotSupported =_ffae .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",_ce .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_ffae .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",_ce .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_ffae .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 =_ffae .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"););
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_bbfa *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ff .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ff .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 );
|
||
_ff .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ff .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_ggeg ,_ffcf :=_gf .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._cdecc ,img ._bffb );if _ffcf !=nil {return Image {},_ffcf ;};_edgf ,_ffcf :=_gf .NRGBAConverter .Convert (_ggeg );if _ffcf !=nil {return Image {},_ffcf ;
|
||
};return _ffba (_edgf .Base ()),nil ;};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_abbfd *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _abbfd ._fbea .(*PdfTilingPattern );};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_dabc *PdfColorCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_bebed :=&XObjectForm {};_cbfgf :=&_ce .PdfObjectStream {};_cbfgf .PdfObjectDictionary =_ce .MakeDict ();_bebed ._efffe =_cbfgf ;return _bebed ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gaef *PdfColorDeviceGray )ToInteger (bits int )uint32 {_bdfc :=_egg .Pow (2,float64 (bits ))-1;return uint32 (_bdfc *_gaef .Val ());};func _aga (_fae _ce .PdfObject )(*PdfBorderStyle ,error ){_faa :=&PdfBorderStyle {};_faa ._facc =_fae ;var _ccea *_ce .PdfObjectDictionary ;
|
||
_fae =_ce .TraceToDirectObject (_fae );_ccea ,_eabb :=_fae .(*_ce .PdfObjectDictionary );if !_eabb {return nil ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _acfd :=_ccea .Get ("\u0054\u0079\u0070\u0065");_acfd !=nil {_gdbg ,_bfdg :=_acfd .(*_ce .PdfObjectName );
|
||
if !_bfdg {_ff .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",_acfd );
|
||
}else {if *_gdbg !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ff .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",*_gdbg );};};};if _dagd :=_ccea .Get ("\u0057");
|
||
_dagd !=nil {_gbgg ,_agbgc :=_ce .GetNumberAsFloat (_dagd );if _agbgc !=nil {_ff .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_agbgc );return nil ,_agbgc ;};_faa .W =&_gbgg ;
|
||
};if _geae :=_ccea .Get ("\u0053");_geae !=nil {_cbe ,_gddc :=_geae .(*_ce .PdfObjectName );if !_gddc {return nil ,_ge .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 _eae BorderStyle ;switch *_cbe {case "\u0053":_eae =BorderStyleSolid ;case "\u0044":_eae =BorderStyleDashed ;case "\u0042":_eae =BorderStyleBeveled ;case "\u0049":_eae =BorderStyleInset ;case "\u0055":_eae =BorderStyleUnderline ;default:_ff .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_cbe );
|
||
return nil ,_ge .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_faa .S =&_eae ;};if _ceba :=_ccea .Get ("\u0044");_ceba !=nil {_eeaf ,_fgga :=_ceba .(*_ce .PdfObjectArray );
|
||
if !_fgga {_ff .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",_ceba );return nil ,_ge .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_adbf ,_eeae :=_eeaf .ToIntegerArray ();if _eeae !=nil {_ff .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",_eeae );
|
||
return nil ,_eeae ;};_faa .D =&_adbf ;};return _faa ,nil ;};func (_ddace *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};func (_gaddfec *pdfCIDFontType0 )baseFields ()*fontCommon {return &_gaddfec .fontCommon };
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_aedeg *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _aedeg .AcroForm ==nil {return nil ,nil ;};if _aedeg .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_affac *PdfSignature ;
|
||
_aaagg *PdfField ;_ecfba SignatureHandler ;};var _abggb []*sigFieldPair ;for _ ,_daacf :=range _aedeg .AcroForm .AllFields (){if _daacf .V ==nil {continue ;};if _bcag ,_afcdgg :=_ce .GetDict (_daacf .V );_afcdgg {if _gagg ,_dffdb :=_ce .GetNameVal (_bcag .Get ("\u0054\u0079\u0070\u0065"));
|
||
_dffdb &&(_gagg =="\u0053\u0069\u0067"||_gagg =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_gdgg ,_cegd :=_ce .GetIndirect (_daacf .V );if !_cegd {_ff .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 ;};_bdcef ,_fbgdg :=_aedeg .newPdfSignatureFromIndirect (_gdgg );if _fbgdg !=nil {return nil ,_fbgdg ;};var _ddbbf SignatureHandler ;for _ ,_cdecd :=range handlers {if _cdecd .IsApplicable (_bdcef ){_ddbbf =_cdecd ;break ;};};_abggb =append (_abggb ,&sigFieldPair {_affac :_bdcef ,_aaagg :_daacf ,_ecfba :_ddbbf });
|
||
};};};var _gcbbc []SignatureValidationResult ;for _ ,_fgff :=range _abggb {_ecbda :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_fgff ._aaagg }};if _fgff ._ecfba ==nil {_ecbda .Errors =append (_ecbda .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
||
_gcbbc =append (_gcbbc ,_ecbda );continue ;};_cgfgf ,_adfa :=_fgff ._ecfba .NewDigest (_fgff ._affac );if _adfa !=nil {_ecbda .Errors =append (_ecbda .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_adfa .Error ());_gcbbc =append (_gcbbc ,_ecbda );
|
||
continue ;};_gagd :=_fgff ._affac .ByteRange ;if _gagd ==nil {_ecbda .Errors =append (_ecbda .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_gcbbc =append (_gcbbc ,_ecbda );continue ;};for _abegae :=0;
|
||
_abegae < _gagd .Len ();_abegae =_abegae +2{_agagd ,_ :=_ce .GetNumberAsInt64 (_gagd .Get (_abegae ));_gcce ,_ :=_ce .GetIntVal (_gagd .Get (_abegae +1));if _ ,_dadd :=_aedeg ._eggc .Seek (_agagd ,_gd .SeekStart );_dadd !=nil {return nil ,_dadd ;};_fgede :=make ([]byte ,_gcce );
|
||
if _ ,_deafe :=_aedeg ._eggc .Read (_fgede );_deafe !=nil {return nil ,_deafe ;};_cgfgf .Write (_fgede );};var _fggd SignatureValidationResult ;if _gbcbc ,_ebbfb :=_fgff ._ecfba .(SignatureHandlerDocMDP );_ebbfb {_fggd ,_adfa =_gbcbc .ValidateWithOpts (_fgff ._affac ,_cgfgf ,SignatureHandlerDocMDPParams {Parser :_aedeg ._afda });
|
||
}else {_fggd ,_adfa =_fgff ._ecfba .Validate (_fgff ._affac ,_cgfgf );};if _adfa !=nil {_ff .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_adfa ,_fgff ._ecfba );_fggd .Errors =append (_fggd .Errors ,_adfa .Error ());
|
||
};_fggd .Name =_fgff ._affac .Name .Decoded ();_fggd .Reason =_fgff ._affac .Reason .Decoded ();if _fgff ._affac .M !=nil {_cdafb ,_fddcg :=NewPdfDate (_fgff ._affac .M .String ());if _fddcg !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fddcg );
|
||
_fggd .Errors =append (_fggd .Errors ,_fddcg .Error ());continue ;};_fggd .Date =_cdafb ;};_fggd .ContactInfo =_fgff ._affac .ContactInfo .Decoded ();_fggd .Location =_fgff ._affac .Location .Decoded ();_fggd .Fields =_ecbda .Fields ;_gcbbc =append (_gcbbc ,_fggd );
|
||
};return _gcbbc ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aaa *PdfActionImportData )ToPdfObject ()_ce .PdfObject {_aaa .PdfAction .ToPdfObject ();_eda :=_aaa ._bcc ;_ea :=_eda .PdfObject .(*_ce .PdfObjectDictionary );_ea .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeImportData )));if _aaa .F !=nil {_ea .Set ("\u0046",_aaa .F .ToPdfObject ());
|
||
};return _eda ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abcg *PdfAnnotationFileAttachment )ToPdfObject ()_ce .PdfObject {_abcg .PdfAnnotation .ToPdfObject ();_fggg :=_abcg ._dec ;_daba :=_fggg .PdfObject .(*_ce .PdfObjectDictionary );_abcg .PdfAnnotationMarkup .appendToPdfDictionary (_daba );_daba .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_daba .SetIfNotNil ("\u0046\u0053",_abcg .FS );_daba .SetIfNotNil ("\u004e\u0061\u006d\u0065",_abcg .Name );return _fggg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebfca *PdfSignatureReference )ToPdfObject ()_ce .PdfObject {_cfdgd :=_ce .MakeDict ();_cfdgd .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ebfca .Type );_cfdgd .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_ebfca .TransformMethod );
|
||
_cfdgd .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_ebfca .TransformParams );_cfdgd .SetIfNotNil ("\u0044\u0061\u0074\u0061",_ebfca .Data );_cfdgd .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_ebfca .DigestMethod );
|
||
return _cfdgd ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _ce .PdfObject ;FS _ce .PdfObject ;F _ce .PdfObject ;UF _ce .PdfObject ;DOS _ce .PdfObject ;Mac _ce .PdfObject ;Unix _ce .PdfObject ;ID _ce .PdfObject ;V _ce .PdfObject ;EF _ce .PdfObject ;RF _ce .PdfObject ;Desc _ce .PdfObject ;
|
||
CI _ce .PdfObject ;_ddgc _ce .PdfObject ;};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_gebeba *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_baecb ,_bdgg :=_gebeba .GetTrailer ();if _bdgg !=nil {return nil ,_bdgg ;};var _adfdg *_ce .PdfObjectDictionary ;_gcffee :=_baecb .Get ("\u0049\u006e\u0066\u006f");switch _dbfab :=_gcffee .(type ){case *_ce .PdfObjectReference :_gfefea :=_dbfab ;
|
||
_gcffee ,_bdgg =_gebeba .GetIndirectObjectByNumber (int (_gfefea .ObjectNumber ));_gcffee =_ce .TraceToDirectObject (_gcffee );if _bdgg !=nil {return nil ,_bdgg ;};_adfdg ,_ =_gcffee .(*_ce .PdfObjectDictionary );case *_ce .PdfObjectDictionary :_adfdg =_dbfab ;
|
||
};if _adfdg ==nil {return nil ,_ge .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_fabc ,_bdgg :=NewPdfInfoFromObject (_adfdg );if _bdgg !=nil {return nil ,_bdgg ;
|
||
};return _fabc ,nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_eaea *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// GetPerms returns the Permissions dictionary
|
||
func (_dfccf *PdfReader )GetPerms ()*Permissions {return _dfccf ._addg };func (_ggdae *PdfWriter )copyObjects (){_fgdef :=make (map[_ce .PdfObject ]_ce .PdfObject );_fegea :=make ([]_ce .PdfObject ,0,len (_ggdae ._adbee ));_fcdf :=make (map[_ce .PdfObject ]struct{},len (_ggdae ._adbee ));
|
||
_dfaag :=make (map[_ce .PdfObject ]struct{});for _ ,_bgdba :=range _ggdae ._adbee {_eadce :=_ggdae .copyObject (_bgdba ,_fgdef ,_dfaag ,false );if _ ,_fdeee :=_dfaag [_bgdba ];_fdeee {continue ;};_fegea =append (_fegea ,_eadce );_fcdf [_eadce ]=struct{}{};
|
||
};_ggdae ._adbee =_fegea ;_ggdae ._gdaab =_fcdf ;_ggdae ._dcecd =_ggdae .copyObject (_ggdae ._dcecd ,_fgdef ,nil ,false ).(*_ce .PdfIndirectObject );_ggdae ._bedff =_ggdae .copyObject (_ggdae ._bedff ,_fgdef ,nil ,false ).(*_ce .PdfIndirectObject );if _ggdae ._ggbef !=nil {_ggdae ._ggbef =_ggdae .copyObject (_ggdae ._ggbef ,_fgdef ,nil ,false ).(*_ce .PdfIndirectObject );
|
||
};if _ggdae ._ddfff {_ebcde :=make (map[_ce .PdfObject ]int64 );for _gfbec ,_ebaba :=range _ggdae ._fdegda {if _bcafc ,_cdecf :=_fgdef [_gfbec ];_cdecf {_ebcde [_bcafc ]=_ebaba ;}else {_ff .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");
|
||
};};_ggdae ._fdegda =_ebcde ;};};
|
||
|
||
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
|
||
// flags are specific.
|
||
type FieldFlag uint32 ;
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_efffc *PdfShading )GetContainingPdfObject ()_ce .PdfObject {return _efffc ._agcdg };
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_bddb *PdfPageResources )GetXObjectByName (keyName _ce .PdfObjectName )(*_ce .PdfObjectStream ,XObjectType ){if _bddb .XObject ==nil {return nil ,XObjectTypeUndefined ;};_ddge ,_dadfd :=_ce .TraceToDirectObject (_bddb .XObject ).(*_ce .PdfObjectDictionary );
|
||
if !_dadfd {_ff .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",_ce .TraceToDirectObject (_bddb .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _dfbbd :=_ddge .Get (keyName );_dfbbd !=nil {_fdbcf ,_fgbdg :=_ce .GetStream (_dfbbd );if !_fgbdg {_ff .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",_dfbbd );
|
||
return nil ,XObjectTypeUndefined ;};_daccd :=_fdbcf .PdfObjectDictionary ;_ccddc ,_fgbdg :=_ce .TraceToDirectObject (_daccd .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ce .PdfObjectName );if !_fgbdg {_ff .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",_daccd .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_ccddc =="\u0049\u006d\u0061g\u0065"{return _fdbcf ,XObjectTypeImage ;}else if *_ccddc =="\u0046\u006f\u0072\u006d"{return _fdbcf ,XObjectTypeForm ;}else if *_ccddc =="\u0050\u0053"{return _fdbcf ,XObjectTypePS ;
|
||
}else {_ff .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",*_ccddc );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
|
||
};};func _beaa (_eaeba *_ce .PdfObjectDictionary ){_dcfd ,_ccff :=_ce .GetArray (_eaeba .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_egeg ,_ffbc :=_ce .GetIntVal (_eaeba .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_cceaa ,_dgebe :=_ce .GetIntVal (_eaeba .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));
|
||
if _ccff &&_ffbc &&_dgebe {_abgag :=_dcfd .Len ();if _abgag !=_cceaa -_egeg +1{_ff .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",_abgag ,_cceaa );
|
||
_aggg :=_ce .PdfObjectInteger (_egeg +_abgag -1);_eaeba .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_aggg );};};};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_bbgc *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_debbab ,_acef :=color .(*PdfColorDeviceGray );if !_acef {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_debbab ),float64 (*_debbab ),float64 (*_debbab )),nil ;};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_ce .PdfIndirectObject )*PdfOutlineItem {_ffebd :=PdfOutlineItem {};_ffebd ._edda =&_ffebd ;_ffebd .Title =_ce .MakeString (title );_dfabc :=_ce .MakeArray ();_dfabc .Append (page );_dfabc .Append (_ce .MakeName ("\u0046\u0069\u0074"));
|
||
_ffebd .Dest =_dfabc ;return &_ffebd ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_dfdd *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
|
||
|
||
// Write writes out the PDF.
|
||
func (_fefea *PdfWriter )Write (writer _gd .Writer )error {_ff .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_gdaef :=_fefea .checkLicense ();if _gdaef !=nil {return _gdaef ;};if _gdaef =_fefea .writeOutlines ();_gdaef !=nil {return _gdaef ;};if _gdaef =_fefea .writeAcroFormFields ();
|
||
_gdaef !=nil {return _gdaef ;};_fefea .checkPendingObjects ();if _gdaef =_fefea .writeOutputIntents ();_gdaef !=nil {return _gdaef ;};_fefea .setCatalogVersion ();_fefea .copyObjects ();if _gdaef =_fefea .optimize ();_gdaef !=nil {return _gdaef ;};if _gdaef =_fefea .optimizeDocument ();
|
||
_gdaef !=nil {return _gdaef ;};var _ecgge _d .Hash ;if _fefea ._aegf {_ecgge =_ae .New ();writer =_gd .MultiWriter (_ecgge ,writer );};_fefea .setWriter (writer );_dege :=_fefea .checkCrossReferenceStream ();_cgdfba ,_dege :=_fefea .mapObjectStreams (_dege );
|
||
_fefea .adjustXRefAffectedVersion (_dege );_fefea .writeDocumentVersion ();_fefea .updateObjectNumbers ();_fefea .writeObjects ();if _gdaef =_fefea .writeObjectsInStreams (_cgdfba );_gdaef !=nil {return _gdaef ;};_gefge :=_fefea ._cgdfab ;var _bgab int ;
|
||
for _dbfdc :=range _fefea ._abff {if _dbfdc > _bgab {_bgab =_dbfdc ;};};if _fefea ._aegf {if _gdaef =_fefea .setHashIDs (_ecgge );_gdaef !=nil {return _gdaef ;};};if _dege {if _gdaef =_fefea .writeXRefStreams (_bgab ,_gefge );_gdaef !=nil {return _gdaef ;
|
||
};}else {_fefea .writeTrailer (_bgab );};_fefea .makeOffSetReference (_gefge );if _gdaef =_fefea .flushWriter ();_gdaef !=nil {return _gdaef ;};return nil ;};
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_de :=NewPdfAction ();_ceb :=&PdfActionLaunch {};_ceb .PdfAction =_de ;_de .SetContext (_ceb );return _ceb ;};func (_bcb *PdfAnnotation )String ()string {_bfd :="";_aeac ,_ace :=_bcb .ToPdfObject ().(*_ce .PdfIndirectObject );
|
||
if _ace {_bfd =_e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_bcb ._edc ,_aeac .PdfObject .String ());};return _bfd ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cbega *PdfShadingType7 )ToPdfObject ()_ce .PdfObject {_cbega .PdfShading .ToPdfObject ();_cafa ,_decdb :=_cbega .getShadingDict ();if _decdb !=nil {_ff .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 _cbega .BitsPerCoordinate !=nil {_cafa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cbega .BitsPerCoordinate );};if _cbega .BitsPerComponent !=nil {_cafa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cbega .BitsPerComponent );
|
||
};if _cbega .BitsPerFlag !=nil {_cafa .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cbega .BitsPerFlag );};if _cbega .Decode !=nil {_cafa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cbega .Decode );};if _cbega .Function !=nil {if len (_cbega .Function )==1{_cafa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cbega .Function [0].ToPdfObject ());
|
||
}else {_cegcg :=_ce .MakeArray ();for _ ,_bbfe :=range _cbega .Function {_cegcg .Append (_bbfe .ToPdfObject ());};_cafa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cegcg );};};return _cbega ._agcdg ;};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_fddc *PdfFieldButton )IsPush ()bool {return _fddc .GetType ()==ButtonTypePush };
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_adfd *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_adfd .HiVal )};};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_ggae :=&PdfFieldSignature {};_ggae .PdfField =NewPdfField ();_ggae .PdfField .SetContext (_ggae );_ggae .PdfAnnotationWidget =NewPdfAnnotationWidget ();_ggae .PdfAnnotationWidget .SetContext (_ggae );
|
||
_ggae .PdfAnnotationWidget ._dec =_ggae .PdfField ._aadeb ;_ggae .T =_ce .MakeString ("");_ggae .F =_ce .MakeInteger (132);_ggae .V =signature ;return _ggae ;};
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _cca .Permissions ;Algorithm EncryptionAlgorithm ;};
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_ecac *PdfReader )GetOutlines ()(*Outline ,error ){if _ecac ==nil {return nil ,_ge .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");
|
||
};_bfbfea :=_ecac .GetOutlineTree ();if _bfbfea ==nil {return nil ,_ge .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 _acfdea func (_ddcca *PdfOutlineTreeNode ,_cdbe *[]*OutlineItem );_acfdea =func (_baagc *PdfOutlineTreeNode ,_abcaee *[]*OutlineItem ){if _baagc ==nil {return ;};if _baagc ._edda ==nil {_ff .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 _efgca *OutlineItem ;if _eadcg ,_ecbgg :=_baagc ._edda .(*PdfOutlineItem );_ecbgg {_cbfe :=_eadcg .Dest ;if (_cbfe ==nil ||_ce .IsNullObject (_cbfe ))&&_eadcg .A !=nil {if _bfcfb ,_cdgf :=_ce .GetDict (_eadcg .A );_cdgf {if _adgf ,_efdg :=_ce .GetArray (_bfcfb .Get ("\u0044"));
|
||
_efdg {_cbfe =_adgf ;}else {_afddd ,_dgfea :=_ce .GetString (_bfcfb .Get ("\u0044"));if !_dgfea {return ;};_cedfc ,_dgfea :=_ecac ._cfcdg .Get ("\u004e\u0061\u006de\u0073").(*_ce .PdfObjectReference );if !_dgfea {return ;};_dcgdb ,_edgdb :=_ecac ._afda .LookupByReference (*_cedfc );
|
||
if _edgdb !=nil {_ff .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",_edgdb .Error ());
|
||
return ;};_aggcee ,_dgfea :=_dcgdb .(*_ce .PdfIndirectObject );if !_dgfea {return ;};_ebebaa :=map[_ce .PdfObject ]struct{}{};_edgdb =_ecac .buildNameNodes (_aggcee ,_ebebaa );if _edgdb !=nil {_ff .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",_edgdb .Error ());
|
||
return ;};for _beeg :=range _ebebaa {_dceb ,_fbecc :=_ce .GetDict (_beeg );if !_fbecc {continue ;};_cfed ,_fbecc :=_ce .GetArray (_dceb .Get ("\u004e\u0061\u006de\u0073"));if !_fbecc {continue ;};for _dacgc ,_gbgf :=range _cfed .Elements (){switch _gbgf .(type ){case *_ce .PdfObjectString :if _gbgf .String ()==_afddd .String (){if _dfde :=_cfed .Get (_dacgc +1);
|
||
_dfde !=nil {if _cacec ,_ddabb :=_ce .GetDict (_dfde );_ddabb {_cbfe =_cacec .Get ("\u0044");break ;};};};};};};};};};var _dcdbb OutlineDest ;if _cbfe !=nil &&!_ce .IsNullObject (_cbfe ){if _adegg ,_ecfgc :=_ggab (_cbfe ,_ecac );_ecfgc ==nil {_dcdbb =*_adegg ;
|
||
}else {_ff .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",_cbfe ,_ecfgc );
|
||
};};_efgca =NewOutlineItem (_eadcg .Title .Decoded (),_dcdbb );*_abcaee =append (*_abcaee ,_efgca );if _eadcg .Next !=nil {_acfdea (_eadcg .Next ,_abcaee );};};if _baagc .First !=nil {if _efgca !=nil {_abcaee =&_efgca .Entries ;};_acfdea (_baagc .First ,_abcaee );
|
||
};};_gadfc :=NewOutline ();_acfdea (_bfbfea ,&_gadfc .Entries );return _gadfc ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gacgd *PdfAnnotationInk )ToPdfObject ()_ce .PdfObject {_gacgd .PdfAnnotation .ToPdfObject ();_cfca :=_gacgd ._dec ;_ddec :=_cfca .PdfObject .(*_ce .PdfObjectDictionary );_gacgd .PdfAnnotationMarkup .appendToPdfDictionary (_ddec );_ddec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0049\u006e\u006b"));
|
||
_ddec .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_gacgd .InkList );_ddec .SetIfNotNil ("\u0042\u0053",_gacgd .BS );return _cfca ;};func (_bebbf *PdfReader )newPdfAnnotationMovieFromDict (_dcgb *_ce .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_fdcf :=PdfAnnotationMovie {};
|
||
_fdcf .T =_dcgb .Get ("\u0054");_fdcf .Movie =_dcgb .Get ("\u004d\u006f\u0076i\u0065");_fdcf .A =_dcgb .Get ("\u0041");return &_fdcf ,nil ;};func _eacebe (_dgfef _ce .PdfObject ){_ff .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_dgfef ,_dgfef .String ());
|
||
if _eafbbf ,_eegcb :=_dgfef .(*_ce .PdfObjectStream );_eegcb {_fccde ,_ebfab :=_ce .DecodeStream (_eafbbf );if _ebfab !=nil {_ff .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_ebfab );return ;};_ff .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_fccde );
|
||
}else if _faff ,_accbe :=_dgfef .(*_ce .PdfIndirectObject );_accbe {_ff .Log .Debug ("\u0025\u0054\u0020%\u0076",_faff .PdfObject ,_faff .PdfObject );_ff .Log .Debug ("\u0025\u0073",_faff .PdfObject .String ());};};
|
||
|
||
// 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 (_cfefc PdfOutputIntentType )String ()string {switch _cfefc {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";};};
|
||
|
||
// 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 (_ddfb *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_ge .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");
|
||
};_aaab :=&PdfColorPattern {};_gaca ,_ebce :=objects [len (objects )-1].(*_ce .PdfObjectName );if !_ebce {_ff .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 ;};_aaab .PatternName =*_gaca ;if len (objects )> 1{_gfcb :=objects [0:len (objects )-1];if _ddfb .UnderlyingCS ==nil {_ff .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 ,_ge .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_bbeca ,_cbbb :=_ddfb .UnderlyingCS .ColorFromPdfObjects (_gfcb );if _cbbb !=nil {_ff .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",_cbbb );
|
||
return nil ,_cbbb ;};_aaab .Color =_bbeca ;};return _aaab ,nil ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_cbff *Outline )ToPdfObject ()_ce .PdfObject {return _cbff .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
|
||
// a higher level access to work with PDF structure and information, such as the page structure etc.
|
||
type PdfReader struct{_afda *_ce .PdfParser ;_eecdg _ce .PdfObject ;_bcgea *_ce .PdfIndirectObject ;_eaedf *_ce .PdfObjectDictionary ;_cbddb []*_ce .PdfIndirectObject ;PageList []*PdfPage ;_ebcc int ;_cfcdg *_ce .PdfObjectDictionary ;_dbbfe *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_addg *Permissions ;_fdeb map[*PdfReader ]*PdfReader ;_eedce []*PdfReader ;_aedda *modelManager ;_cgbdb bool ;_efdafe map[_ce .PdfObject ]struct{};_eggc _gd .ReadSeeker ;_feegf string ;_gbffe bool ;_dcggg *ReaderOpts ;
|
||
_cdffg bool ;};
|
||
|
||
// 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 (_ffeda *LTV )EnableAll (extraCerts []*_eg .Certificate )error {_faadg :=_ffeda ._fdfad ._fcda .AcroForm ;for _ ,_degb :=range _faadg .AllFields (){_eabda ,_ :=_degb .GetContext ().(*PdfFieldSignature );if _eabda ==nil {continue ;};_agcc :=_eabda .V ;
|
||
if _eegd :=_ffeda .validateSig (_agcc );_eegd !=nil {_ff .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",_eegd );
|
||
};if _feagc :=_ffeda .Enable (_agcc ,extraCerts );_feagc !=nil {return _feagc ;};};return nil ;};func (_deca *PdfReader )newPdfAnnotationPolyLineFromDict (_cggf *_ce .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_gdga :=PdfAnnotationPolyLine {};
|
||
_aeeg ,_gfge :=_deca .newPdfAnnotationMarkupFromDict (_cggf );if _gfge !=nil {return nil ,_gfge ;};_gdga .PdfAnnotationMarkup =_aeeg ;_gdga .Vertices =_cggf .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gdga .LE =_cggf .Get ("\u004c\u0045");
|
||
_gdga .BS =_cggf .Get ("\u0042\u0053");_gdga .IC =_cggf .Get ("\u0049\u0043");_gdga .BE =_cggf .Get ("\u0042\u0045");_gdga .IT =_cggf .Get ("\u0049\u0054");_gdga .Measure =_cggf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gdga ,nil ;};
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_acbba *PdfInfo )ToPdfObject ()_ce .PdfObject {_affg :=_ce .MakeDict ();_affg .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_acbba .Title );_affg .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_acbba .Author );_affg .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_acbba .Subject );
|
||
_affg .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_acbba .Keywords );_affg .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_acbba .Creator );_affg .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_acbba .Producer );
|
||
_affg .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_acbba .Trapped );if _acbba .CreationDate !=nil {_affg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_acbba .CreationDate .ToPdfObject ());};if _acbba .ModifiedDate !=nil {_affg .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_acbba .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_gadaec :=range _acbba ._ecfddd .Keys (){_affg .SetIfNotNil (_gadaec ,_acbba ._ecfddd .Get (_gadaec ));};return _affg ;};
|
||
|
||
// 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 (_gcgde *PdfFont )CharcodesToUnicode (charcodes []_dc .CharCode )[]rune {_fggge ,_ ,_ :=_gcgde .CharcodesToUnicodeWithStats (charcodes );return _fggge ;};
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _ce .PdfObject ;H _ce .PdfObject ;};func (_ffaga *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _ffaga ._daebd ==nil &&_ffaga .DescendantFont !=nil {return _ffaga .DescendantFont .FontDescriptor ();};return _ffaga ._daebd ;
|
||
};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func _eefcd (_gcba *_ce .PdfObjectDictionary )(*PdfShadingType4 ,error ){_dacgf :=PdfShadingType4 {};_dabbf :=_gcba .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _dabbf ==nil {_ff .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 ;};_ddaaf ,_dedfe :=_dabbf .(*_ce .PdfObjectInteger );if !_dedfe {_ff .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",_dabbf );
|
||
return nil ,_ce .ErrTypeError ;};_dacgf .BitsPerCoordinate =_ddaaf ;_dabbf =_gcba .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dabbf ==nil {_ff .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 ;};_ddaaf ,_dedfe =_dabbf .(*_ce .PdfObjectInteger );if !_dedfe {_ff .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",_dabbf );
|
||
return nil ,_ce .ErrTypeError ;};_dacgf .BitsPerComponent =_ddaaf ;_dabbf =_gcba .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dabbf ==nil {_ff .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 ;};_ddaaf ,_dedfe =_dabbf .(*_ce .PdfObjectInteger );if !_dedfe {_ff .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",_dabbf );
|
||
return nil ,_ce .ErrTypeError ;};_dacgf .BitsPerComponent =_ddaaf ;_dabbf =_gcba .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dabbf ==nil {_ff .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 ;};_bfeef ,_dedfe :=_dabbf .(*_ce .PdfObjectArray );if !_dedfe {_ff .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",_dabbf );
|
||
return nil ,_ce .ErrTypeError ;};_dacgf .Decode =_bfeef ;_dabbf =_gcba .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _dabbf ==nil {_ff .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 ;};_dacgf .Function =[]PdfFunction {};if _bfaee ,_faebe :=_dabbf .(*_ce .PdfObjectArray );_faebe {for _ ,_aeedg :=range _bfaee .Elements (){_eggd ,_eebc :=_cegfd (_aeedg );if _eebc !=nil {_ff .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",_eebc );
|
||
return nil ,_eebc ;};_dacgf .Function =append (_dacgf .Function ,_eggd );};}else {_acagcg ,_fdefb :=_cegfd (_dabbf );if _fdefb !=nil {_ff .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",_fdefb );
|
||
return nil ,_fdefb ;};_dacgf .Function =append (_dacgf .Function ,_acagcg );};return &_dacgf ,nil ;};
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_afgcb *Image )AlphaMap (mapFunc AlphaMapFunc ){for _bgca ,_fbbgf :=range _afgcb ._cdecc {_afgcb ._cdecc [_bgca ]=mapFunc (_fbbgf );};};
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_cdgbf *Image )SetAlpha (alpha []byte ){_cdgbf ._cdecc =alpha };
|
||
|
||
// 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 (_abdg *PdfColorspaceLab )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgca ,_gbab :=_ce .GetNumbersAsFloat (objects );
|
||
if _gbab !=nil {return nil ,_gbab ;};return _abdg .ColorFromFloats (_dgca );};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_aaec *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fcfe *PdfAnnotationHighlight )ToPdfObject ()_ce .PdfObject {_fcfe .PdfAnnotation .ToPdfObject ();_ffc :=_fcfe ._dec ;_egbc :=_ffc .PdfObject .(*_ce .PdfObjectDictionary );_fcfe .PdfAnnotationMarkup .appendToPdfDictionary (_egbc );_egbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_egbc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fcfe .QuadPoints );return _ffc ;};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_acacb *Outline )Insert (index uint ,item *OutlineItem ){_cegca :=uint (len (_acacb .Entries ));if index > _cegca {index =_cegca ;};_acacb .Entries =append (_acacb .Entries [:index ],append ([]*OutlineItem {item },_acacb .Entries [index :]...)...);
|
||
};
|
||
|
||
// 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 (_cdec *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _efbc []_dc .TextEncoder ;var _adeac _dc .CMapEncoder ;if _bdad :=_cdec .baseFields ()._dgfcg ;_bdad !=nil {_adeac =_dc .NewCMapEncoder ("",nil ,_bdad );};_cadc :=_cdec .Encoder ();
|
||
if _cadc !=nil {switch _dabb :=_cadc .(type ){case _dc .SimpleEncoder :_gfac :=_dabb .BaseName ();if _ ,_ggcgc :=_fdaee [_gfac ];_ggcgc {_efbc =append (_efbc ,_cadc );};};};if len (_efbc )==0{if _cdec .baseFields ()._dgfcg !=nil {_efbc =append (_efbc ,_adeac );
|
||
};if _cadc !=nil {_efbc =append (_efbc ,_cadc );};};var _afce _ag .Buffer ;var _cegf int ;for _ ,_fgacf :=range data {var _ecgf bool ;for _ ,_efbb :=range _efbc {if _daca :=_efbb .Encode (string (_fgacf ));len (_daca )> 0{_afce .Write (_daca );_ecgf =true ;
|
||
break ;};};if !_ecgf {_ff .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",_fgacf );
|
||
_cegf ++;};};if _cegf !=0{_ff .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 ),_cegf ,_cdec ,_efbc );
|
||
};return _afce .Bytes (),_cegf ;};
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_eefd *_ce .PdfIndirectObject ;};
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_eeefg *Image )ColorAt (x ,y int )(_cc .Color ,error ){_fcgg :=_gf .BytesPerLine (int (_eeefg .Width ),int (_eeefg .BitsPerComponent ),_eeefg .ColorComponents );switch _eeefg .ColorComponents {case 1:return _gf .ColorAtGrayscale (x ,y ,int (_eeefg .BitsPerComponent ),_fcgg ,_eeefg .Data ,_eeefg ._bffb );
|
||
case 3:return _gf .ColorAtNRGBA (x ,y ,int (_eeefg .Width ),_fcgg ,int (_eeefg .BitsPerComponent ),_eeefg .Data ,_eeefg ._cdecc ,_eeefg ._bffb );case 4:return _gf .ColorAtCMYK (x ,y ,int (_eeefg .Width ),_eeefg .Data ,_eeefg ._bffb );};_ff .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",_eeefg .ColorComponents ,_eeefg .BitsPerComponent );
|
||
return nil ,_ge .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");};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_cbdf pdfFontType3 )GetCharMetrics (code _dc .CharCode )(_ee .CharMetrics ,bool ){if _cbgdb ,_afdgf :=_cbdf ._afbb [code ];_afdgf {return _ee .CharMetrics {Wx :_cbgdb },true ;};if _ee .IsStdFont (_ee .StdFontName (_cbdf ._egacd )){return _ee .CharMetrics {Wx :250},true ;
|
||
};return _ee .CharMetrics {},false ;};
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ce .PdfObject ;Open _ce .PdfObject ;};
|
||
|
||
// 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{_bggef *_ce .PdfObjectDictionary ;Type *_ce .PdfObjectName ;TransformMethod *_ce .PdfObjectName ;TransformParams _ce .PdfObject ;Data _ce .PdfObject ;DigestMethod *_ce .PdfObjectName ;};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_degdc *PdfWriter )SetDocInfo (info *PdfInfo ){_degdc .setDocInfo (info .ToPdfObject ())};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_gdde *pdfFontType0 )ToPdfObject ()_ce .PdfObject {if _gdde ._cebdd ==nil {_gdde ._cebdd =&_ce .PdfIndirectObject {};};_cbaa :=_gdde .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_gdde ._cebdd .PdfObject =_cbaa ;if _gdde .Encoding !=nil {_cbaa .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gdde .Encoding );
|
||
}else if _gdde ._fbfa !=nil {_cbaa .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gdde ._fbfa .ToPdfObject ());};if _gdde .DescendantFont !=nil {_cbaa .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ce .MakeArray (_gdde .DescendantFont .ToPdfObject ()));
|
||
};return _gdde ._cebdd ;};
|
||
|
||
// 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 _ce .StreamEncoder )(*XObjectImage ,error ){_bfafg :=NewXObjectImage ();return UpdateXObjectImageFromImage (_bfafg ,img ,cs ,encoder );};func _ffaba (_gbcgd *_ce .PdfObjectDictionary ,_ceafg *fontCommon ,_degff _dc .TextEncoder )(*pdfFontSimple ,error ){_egdbd :=_faadb (_ceafg );
|
||
_egdbd ._bccdg =_degff ;if _degff ==nil {_gbac :=_gbcgd .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _gbac ==nil {_gbac =_ce .MakeInteger (0);};_egdbd .FirstChar =_gbac ;_cgcga ,_bfdgf :=_ce .GetIntVal (_gbac );if !_bfdgf {_ff .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",_gbac );
|
||
return nil ,_ce .ErrTypeError ;};_bdgdb :=_dc .CharCode (_cgcga );_gbac =_gbcgd .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _gbac ==nil {_gbac =_ce .MakeInteger (255);};_egdbd .LastChar =_gbac ;_cgcga ,_bfdgf =_ce .GetIntVal (_gbac );if !_bfdgf {_ff .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",_gbac );
|
||
return nil ,_ce .ErrTypeError ;};_bcgb :=_dc .CharCode (_cgcga );_egdbd ._aggce =make (map[_dc .CharCode ]float64 );_gbac =_gbcgd .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _gbac !=nil {_egdbd .Widths =_gbac ;_gedg ,_efdaf :=_ce .GetArray (_gbac );
|
||
if !_efdaf {_ff .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",_gbac );return nil ,_ce .ErrTypeError ;
|
||
};_cbed ,_caeab :=_gedg .ToFloat64Array ();if _caeab !=nil {_ff .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 ,_caeab ;};if len (_cbed )!=int (_bcgb -_bdgdb +1){_ff .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",_bcgb -_bdgdb +1,len (_cbed ));
|
||
return nil ,_ce .ErrRangeError ;};for _acce ,_fbcd :=range _cbed {_egdbd ._aggce [_bdgdb +_dc .CharCode (_acce )]=_fbcd ;};};};_egdbd .Encoding =_ce .TraceToDirectObject (_gbcgd .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _egdbd ,nil ;
|
||
};func (_bffbf *PdfReader )newPdfPageFromDict (_fcead *_ce .PdfObjectDictionary )(*PdfPage ,error ){_ecae :=NewPdfPage ();_ecae ._cbcaa =_fcead ;_ecae ._caab =*_fcead ;_agaag :=*_fcead ;_eadb ,_ceabf :=_agaag .Get ("\u0054\u0079\u0070\u0065").(*_ce .PdfObjectName );
|
||
if !_ceabf {return nil ,_ge .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 *_eadb !="\u0050\u0061\u0067\u0065"{return nil ,_ge .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 _dbdgg :=_agaag .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dbdgg !=nil {_ecae .Parent =_dbdgg ;};if _bbafe :=_agaag .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_bbafe !=nil {_ecdc ,_eccdg :=_ce .GetString (_bbafe );
|
||
if !_eccdg {return nil ,_ge .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");};
|
||
_bbgfd ,_dcffb :=NewPdfDate (_ecdc .Str ());if _dcffb !=nil {return nil ,_dcffb ;};_ecae .LastModified =&_bbgfd ;};if _gdfae :=_agaag .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_gdfae !=nil &&!_ce .IsNullObject (_gdfae ){_efcb ,_gfefe :=_ce .GetDict (_gdfae );
|
||
if !_gfefe {return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_gdfae );};var _dcbag error ;_ecae .Resources ,_dcbag =NewPdfPageResourcesFromDict (_efcb );
|
||
if _dcbag !=nil {return nil ,_dcbag ;};}else {_ffggd ,_ccfa :=_ecae .getParentResources ();if _ccfa !=nil {return nil ,_ccfa ;};if _ffggd ==nil {_ffggd =NewPdfPageResources ();};_ecae .Resources =_ffggd ;};if _bgcae :=_agaag .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_bgcae !=nil {_gdbdd ,_beabbc :=_ce .GetArray (_bgcae );if !_beabbc {return nil ,_ge .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 _abcge error ;
|
||
_ecae .MediaBox ,_abcge =NewPdfRectangle (*_gdbdd );if _abcge !=nil {return nil ,_abcge ;};};if _fabbc :=_agaag .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_fabbc !=nil {_fbefc ,_gecfa :=_ce .GetArray (_fabbc );if !_gecfa {return nil ,_ge .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _fffaef error ;_ecae .CropBox ,_fffaef =NewPdfRectangle (*_fbefc );if _fffaef !=nil {return nil ,_fffaef ;};};if _efgee :=_agaag .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_efgee !=nil {_fffda ,_gdbae :=_ce .GetArray (_efgee );if !_gdbae {return nil ,_ge .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 _geaaa error ;_ecae .BleedBox ,_geaaa =NewPdfRectangle (*_fffda );if _geaaa !=nil {return nil ,_geaaa ;};};if _gegdd :=_agaag .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_gegdd !=nil {_dbedc ,_eedg :=_ce .GetArray (_gegdd );if !_eedg {return nil ,_ge .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _fgba error ;_ecae .TrimBox ,_fgba =NewPdfRectangle (*_dbedc );if _fgba !=nil {return nil ,_fgba ;};};if _agbdaa :=_agaag .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_agbdaa !=nil {_dfag ,_cgcgad :=_ce .GetArray (_agbdaa );if !_cgcgad {return nil ,_ge .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _gfefc error ;_ecae .ArtBox ,_gfefc =NewPdfRectangle (*_dfag );if _gfefc !=nil {return nil ,_gfefc ;};};if _ggag :=_agaag .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_ggag !=nil {_ecae .BoxColorInfo =_ggag ;};if _edcee :=_agaag .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
|
||
_edcee !=nil {_ecae .Contents =_edcee ;};if _caafae :=_agaag .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_caafae !=nil {_ebbgf ,_gfcae :=_ce .GetNumberAsInt64 (_caafae );if _gfcae !=nil {return nil ,_ge .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");
|
||
};_ecae .Rotate =&_ebbgf ;};if _cade :=_agaag .Get ("\u0047\u0072\u006fu\u0070");_cade !=nil {_ecae .Group =_cade ;};if _eagab :=_agaag .Get ("\u0054\u0068\u0075m\u0062");_eagab !=nil {_ecae .Thumb =_eagab ;};if _fafdf :=_agaag .Get ("\u0042");_fafdf !=nil {_ecae .B =_fafdf ;
|
||
};if _egee :=_agaag .Get ("\u0044\u0075\u0072");_egee !=nil {_ecae .Dur =_egee ;};if _gcdfa :=_agaag .Get ("\u0054\u0072\u0061n\u0073");_gcdfa !=nil {_ecae .Trans =_gcdfa ;};if _ceec :=_agaag .Get ("\u0041\u0041");_ceec !=nil {_ecae .AA =_ceec ;};if _dageg :=_agaag .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");
|
||
_dageg !=nil {_ecae .Metadata =_dageg ;};if _ggegg :=_agaag .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ggegg !=nil {_ecae .PieceInfo =_ggegg ;};if _adggd :=_agaag .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
|
||
_adggd !=nil {_ecae .StructParents =_adggd ;};if _fgaa :=_agaag .Get ("\u0049\u0044");_fgaa !=nil {_ecae .ID =_fgaa ;};if _bdaea :=_agaag .Get ("\u0050\u005a");_bdaea !=nil {_ecae .PZ =_bdaea ;};if _efab :=_agaag .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
|
||
_efab !=nil {_ecae .SeparationInfo =_efab ;};if _bbfaf :=_agaag .Get ("\u0054\u0061\u0062\u0073");_bbfaf !=nil {_ecae .Tabs =_bbfaf ;};if _eecde :=_agaag .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
|
||
_eecde !=nil {_ecae .TemplateInstantiated =_eecde ;};if _fegfa :=_agaag .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_fegfa !=nil {_ecae .PresSteps =_fegfa ;};if _fgfb :=_agaag .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_fgfb !=nil {_ecae .UserUnit =_fgfb ;
|
||
};if _dcgaf :=_agaag .Get ("\u0056\u0050");_dcgaf !=nil {_ecae .VP =_dcgaf ;};if _bcddc :=_agaag .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_bcddc !=nil {_ecae .Annots =_bcddc ;};_ecae ._cagde =_bffbf ;return _ecae ,nil ;};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_adbef *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_adbef .Base .GetNumComponents ();if N < 1{return Image {},_e .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
|
||
};_fdgfg :=_gf .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._cdecc ,img ._bffb );_bcgag :=_gb .NewReader (img .getBase ());_aadf :=_gb .NewWriter (_fdgfg );var (_ddfeg uint32 ;_cgde int ;_dcagf error ;);for {_ddfeg ,_dcagf =_bcgag .ReadSample ();
|
||
if _dcagf ==_gd .EOF {break ;}else if _dcagf !=nil {return img ,_dcagf ;};_cgde =int (_ddfeg );_ff .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",_cgde ,N ,len (_adbef ._adga ));
|
||
if (_cgde +1)*N > len (_adbef ._adga ){_cgde =len (_adbef ._adga )/N -1;_ff .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_cgde );if _cgde < 0{_ff .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 _baea :=_cgde *N ;_baea < (_cgde +1)*N ;_baea ++{if _dcagf =_aadf .WriteSample (uint32 (_adbef ._adga [_baea ]));_dcagf !=nil {return img ,_dcagf ;};};};return _adbef .Base .ImageToRGB (_ffba (&_fdgfg ));};
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_fceae *PdfPage )Duplicate ()*PdfPage {_acfg :=*_fceae ;_acfg ._cbcaa =_ce .MakeDict ();_acfg ._acbbb =_ce .MakeIndirectObject (_acfg ._cbcaa );_acfg ._caab =*_acfg ._cbcaa ;return &_acfg ;};
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_bbccf *PdfAcroForm )GetContainingPdfObject ()_ce .PdfObject {return _bbccf ._febb };
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_ce .PdfObjectArray ;_ffff *Image ;};
|
||
|
||
// 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 *_ce .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ce .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ce .PdfObjectBool ;_aadbc PdfModel ;_agcdg _ce .PdfObject ;};
|
||
|
||
// 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 *_ce .PdfParser ;DiffPolicy _aef .DiffPolicy ;};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_daceg *PdfPage )HasExtGState (name _ce .PdfObjectName )bool {if _daceg .Resources ==nil {return false ;};if _daceg .Resources .ExtGState ==nil {return false ;};_eedbge ,_bgdae :=_ce .TraceToDirectObject (_daceg .Resources .ExtGState ).(*_ce .PdfObjectDictionary );
|
||
if !_bgdae {_ff .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",_ce .TraceToDirectObject (_daceg .Resources .ExtGState ));
|
||
return false ;};_bfgc :=_eedbge .Get (name );_agbeb :=_bfgc !=nil ;return _agbeb ;};
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_ggba *PdfColorDeviceCMYK )K ()float64 {return _ggba [3]};func _gfabd (_abege *_ce .PdfObjectDictionary )(*PdfShadingType2 ,error ){_fdeff :=PdfShadingType2 {};_aagcg :=_abege .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _aagcg ==nil {_ff .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 ;};_agcee ,_abbe :=_aagcg .(*_ce .PdfObjectArray );if !_abbe {_ff .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",_aagcg );
|
||
return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _agcee .Len ()!=4{_ff .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",_agcee .Len ());
|
||
return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_fdeff .Coords =_agcee ;if _bcfcfa :=_abege .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_bcfcfa !=nil {_bcfcfa =_ce .TraceToDirectObject (_bcfcfa );
|
||
_egagd ,_egacde :=_bcfcfa .(*_ce .PdfObjectArray );if !_egacde {_ff .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",_bcfcfa );return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_fdeff .Domain =_egagd ;};_aagcg =_abege .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _aagcg ==nil {_ff .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 ;};_fdeff .Function =[]PdfFunction {};if _ddedf ,_bcefg :=_aagcg .(*_ce .PdfObjectArray );_bcefg {for _ ,_ccdeb :=range _ddedf .Elements (){_dgefc ,_cbeae :=_cegfd (_ccdeb );if _cbeae !=nil {_ff .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",_cbeae );
|
||
return nil ,_cbeae ;};_fdeff .Function =append (_fdeff .Function ,_dgefc );};}else {_ddgba ,_gbdggf :=_cegfd (_aagcg );if _gbdggf !=nil {_ff .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",_gbdggf );
|
||
return nil ,_gbdggf ;};_fdeff .Function =append (_fdeff .Function ,_ddgba );};if _ffbe :=_abege .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ffbe !=nil {_ffbe =_ce .TraceToDirectObject (_ffbe );_abfga ,_cbaef :=_ffbe .(*_ce .PdfObjectArray );if !_cbaef {_ff .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",_ffbe );
|
||
return nil ,_ce .ErrTypeError ;};if _abfga .Len ()!=2{_ff .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",_abfga .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_fdeff .Extend =_abfga ;};return &_fdeff ,nil ;};
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_cbbdf *PdfWriter )SetOptimizer (optimizer Optimizer ){_cbbdf ._bcged =optimizer };
|
||
|
||
// 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 (_decag *LTV )EnableChain (chain []*_eg .Certificate )error {return _decag .enable (nil ,chain ,"")};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ggeeb *pdfFontSimple )Encoder ()_dc .TextEncoder {if _ggeeb ._bbaf !=nil {return _ggeeb ._bbaf ;};if _ggeeb ._bccdg !=nil {return _ggeeb ._bccdg ;};_agaa ,_ :=_dc .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _agaa ;};
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_bea *PdfColorspaceCalGray )ToPdfObject ()_ce .PdfObject {_dcef :=&_ce .PdfObjectArray {};_dcef .Append (_ce .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_cgae :=_ce .MakeDict ();if _bea .WhitePoint !=nil {_cgae .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ce .MakeArray (_ce .MakeFloat (_bea .WhitePoint [0]),_ce .MakeFloat (_bea .WhitePoint [1]),_ce .MakeFloat (_bea .WhitePoint [2])));
|
||
}else {_ff .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 _bea .BlackPoint !=nil {_cgae .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ce .MakeArray (_ce .MakeFloat (_bea .BlackPoint [0]),_ce .MakeFloat (_bea .BlackPoint [1]),_ce .MakeFloat (_bea .BlackPoint [2])));
|
||
};_cgae .Set ("\u0047\u0061\u006dm\u0061",_ce .MakeFloat (_bea .Gamma ));_dcef .Append (_cgae );if _bea ._aeadd !=nil {_bea ._aeadd .PdfObject =_dcef ;return _bea ._aeadd ;};return _dcef ;};func (_eadc *PdfReader )newPdfAnnotationSoundFromDict (_agbe *_ce .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_gfdg :=PdfAnnotationSound {};
|
||
_gffef ,_cacfd :=_eadc .newPdfAnnotationMarkupFromDict (_agbe );if _cacfd !=nil {return nil ,_cacfd ;};_gfdg .PdfAnnotationMarkup =_gffef ;_gfdg .Name =_agbe .Get ("\u004e\u0061\u006d\u0065");_gfdg .Sound =_agbe .Get ("\u0053\u006f\u0075n\u0064");return &_gfdg ,nil ;
|
||
};
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_ddea :=&PdfPageResourcesColorspaces {};_ddea .Names =[]string {};_ddea .Colorspaces =map[string ]PdfColorspace {};_ddea ._bcgd =&_ce .PdfIndirectObject {};return _ddea ;};
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_cfba *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _cfba .UnderlyingCS .GetNumComponents ();};
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_gccg *PdfFieldChoice )ToPdfObject ()_ce .PdfObject {_gccg .PdfField .ToPdfObject ();_fggeg :=_gccg ._aadeb ;_facbg :=_fggeg .PdfObject .(*_ce .PdfObjectDictionary );_facbg .Set ("\u0046\u0054",_ce .MakeName ("\u0043\u0068"));if _gccg .Opt !=nil {_facbg .Set ("\u004f\u0070\u0074",_gccg .Opt );
|
||
};if _gccg .TI !=nil {_facbg .Set ("\u0054\u0049",_gccg .TI );};if _gccg .I !=nil {_facbg .Set ("\u0049",_gccg .I );};return _fggeg ;};
|
||
|
||
// GetRotate gets the inheritable rotate value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_adafd *PdfPage )GetRotate ()(int64 ,error ){if _adafd .Rotate !=nil {return *_adafd .Rotate ,nil ;};_ffafa :=_adafd .Parent ;for _ffafa !=nil {_ecbga ,_cdbfb :=_ce .GetDict (_ffafa );if !_cdbfb {return 0,_ge .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 _acea :=_ecbga .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_acea !=nil {_fgfga ,_ffffd :=_ce .GetInt (_acea );if !_ffffd {return 0,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _fgfga !=nil {return int64 (*_fgfga ),nil ;
|
||
};return 0,_ge .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_ffafa =_ecbga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_ge .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_bgbba *pdfSignDictionary )WriteString ()string {_bgbba ._debdg =0;_bgbba ._eadgf =0;_bgbba ._fgee =0;_bgbba ._dfdea =0;_bbgcb :=_ag .NewBuffer (nil );_bbgcb .WriteString ("\u003c\u003c");for _ ,_gcegce :=range _bgbba .Keys (){_bcfeg :=_bgbba .Get (_gcegce );
|
||
switch _gcegce {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bbgcb .WriteString (_gcegce .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._fgee =_bbgcb .Len ();_bbgcb .WriteString (_bcfeg .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._dfdea =_bbgcb .Len ()-1;
|
||
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bbgcb .WriteString (_gcegce .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._debdg =_bbgcb .Len ();_bbgcb .WriteString (_bcfeg .WriteString ());_bbgcb .WriteString ("\u0020");_bgbba ._eadgf =_bbgcb .Len ()-1;
|
||
default:_bbgcb .WriteString (_gcegce .WriteString ());_bbgcb .WriteString ("\u0020");_bbgcb .WriteString (_bcfeg .WriteString ());};};_bbgcb .WriteString ("\u003e\u003e");return _bbgcb .String ();};func (_aada *PdfReader )newPdfActionTransFromDict (_bge *_ce .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_bge .Get ("\u0054\u0072\u0061n\u0073")},nil ;
|
||
};func (_gdabdc *PdfWriter )makeOffSetReference (_gggdd int64 ){_gaebd :=_e .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_gggdd );_gdabdc .writeString (_gaebd );_gdabdc .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");
|
||
};
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_ee .CharMetrics ;
|
||
|
||
// 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 ){_bdfa ,_afefd :=_dd .Open (filePath );if _afefd !=nil {_ff .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_afefd );
|
||
return nil ,_afefd ;};defer _bdfa .Close ();return NewCompositePdfFontFromTTF (_bdfa );};
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_fffa PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _fffa ._dace .getFontDescriptor (),nil ;};func _dgfda (_bacd *_ce .PdfObjectStream )(*PdfFunctionType0 ,error ){_efgaf :=&PdfFunctionType0 {};_efgaf ._ffgdd =_bacd ;_eaebc :=_bacd .PdfObjectDictionary ;
|
||
_cbaec ,_gdfb :=_ce .TraceToDirectObject (_eaebc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_gdfb {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ge .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 _cbaec .Len ()< 0||_cbaec .Len ()%2!=0{_ff .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_efgaf .NumInputs =_cbaec .Len ()/2;_dceea ,_fbce :=_cbaec .ToFloat64Array ();if _fbce !=nil {return nil ,_fbce ;};_efgaf .Domain =_dceea ;_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );if !_gdfb {_ff .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_ge .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 _cbaec .Len ()< 0||_cbaec .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_efgaf .NumOutputs =_cbaec .Len ()/2;_eefa ,_fbce :=_cbaec .ToFloat64Array ();if _fbce !=nil {return nil ,_fbce ;};_efgaf .Range =_eefa ;_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0053\u0069\u007a\u0065")).(*_ce .PdfObjectArray );if !_gdfb {_ff .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_ge .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");};_fcebc ,_fbce :=_cbaec .ToIntegerArray ();
|
||
if _fbce !=nil {return nil ,_fbce ;};if len (_fcebc )!=_efgaf .NumInputs {_ff .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 ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efgaf .Size =_fcebc ;_babg ,_gdfb :=_ce .TraceToDirectObject (_eaebc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ce .PdfObjectInteger );
|
||
if !_gdfb {_ff .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 ,_ge .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 *_babg !=1&&*_babg !=2&&*_babg !=4&&*_babg !=8&&*_babg !=12&&*_babg !=16&&*_babg !=24&&*_babg !=32{_ff .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",*_babg );
|
||
return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efgaf .BitsPerSample =int (*_babg );_efgaf .Order =1;_fbbce ,_gdfb :=_ce .TraceToDirectObject (_eaebc .Get ("\u004f\u0072\u0064e\u0072")).(*_ce .PdfObjectInteger );
|
||
if _gdfb {if *_fbbce !=1&&*_fbbce !=3{_ff .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_fbbce );return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_efgaf .Order =int (*_fbbce );
|
||
};_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );if _gdfb {_deab ,_gfdbf :=_cbaec .ToFloat64Array ();if _gfdbf !=nil {return nil ,_gfdbf ;};_efgaf .Encode =_deab ;};_cbaec ,_gdfb =_ce .TraceToDirectObject (_eaebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ce .PdfObjectArray );
|
||
if _gdfb {_gebge ,_abbc :=_cbaec .ToFloat64Array ();if _abbc !=nil {return nil ,_abbc ;};_efgaf .Decode =_gebge ;};_aecb ,_fbce :=_ce .DecodeStream (_bacd );if _fbce !=nil {return nil ,_fbce ;};_efgaf ._becgb =_aecb ;return _efgaf ,nil ;};
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_cdgba =producer };func (_bgbda *PdfWriter )seekByName (_egabaf _ce .PdfObject ,_edca []string ,_fccbd string )([]_ce .PdfObject ,error ){_ff .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_egabaf );
|
||
var _agfcf []_ce .PdfObject ;if _cdedb ,_eagd :=_egabaf .(*_ce .PdfIndirectObject );_eagd {return _bgbda .seekByName (_cdedb .PdfObject ,_edca ,_fccbd );};if _efcbe ,_adeggd :=_egabaf .(*_ce .PdfObjectStream );_adeggd {return _bgbda .seekByName (_efcbe .PdfObjectDictionary ,_edca ,_fccbd );
|
||
};if _bfced ,_gbcec :=_egabaf .(*_ce .PdfObjectDictionary );_gbcec {_ff .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_efcaf :=range _bfced .Keys (){_deeg :=_bfced .Get (_efcaf );if string (_efcaf )==_fccbd {_agfcf =append (_agfcf ,_deeg );};for _ ,_geceb :=range _edca {if string (_efcaf )==_geceb {_ff .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_geceb );
|
||
_gcegg ,_eeee :=_bgbda .seekByName (_deeg ,_edca ,_fccbd );if _eeee !=nil {return _agfcf ,_eeee ;};_agfcf =append (_agfcf ,_gcegg ...);break ;};};};return _agfcf ,nil ;};return _agfcf ,nil ;};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_ebbf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_ebbf ;};
|
||
|
||
// ToImage converts an object to an Image which can be transformed or saved out.
|
||
// The image data is decoded and the Image returned.
|
||
func (_dcaaa *XObjectImage )ToImage ()(*Image ,error ){_aecbga :=&Image {};if _dcaaa .Height ==nil {return nil ,_ge .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_aecbga .Height =*_dcaaa .Height ;if _dcaaa .Width ==nil {return nil ,_ge .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_aecbga .Width =*_dcaaa .Width ;if _dcaaa .BitsPerComponent ==nil {switch _dcaaa .Filter .(type ){case *_ce .CCITTFaxEncoder ,*_ce .JBIG2Encoder :_aecbga .BitsPerComponent =1;
|
||
case *_ce .LZWEncoder ,*_ce .RunLengthEncoder :_aecbga .BitsPerComponent =8;default:return nil ,_ge .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 {_aecbga .BitsPerComponent =*_dcaaa .BitsPerComponent ;};_aecbga .ColorComponents =_dcaaa .ColorSpace .GetNumComponents ();_dcaaa ._gefdf .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_aecbga .ColorComponents )));
|
||
_dgcaff ,_aaagga :=_ce .DecodeStream (_dcaaa ._gefdf );if _aaagga !=nil {return nil ,_aaagga ;};_aecbga .Data =_dgcaff ;if _dcaaa .Decode !=nil {_ffcbf ,_ffaad :=_dcaaa .Decode .(*_ce .PdfObjectArray );if !_ffaad {_ff .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_ge .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_ebadd ,_dceeg :=_ffcbf .ToFloat64Array ();if _dceeg !=nil {return nil ,_dceeg ;};switch _dcaaa .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_addfd :=_dcaaa .ColorSpace .DecodeArray ();
|
||
if _addfd [0]==_ebadd [0]&&_addfd [1]==_ebadd [1]&&_addfd [2]==_ebadd [2]&&_addfd [3]==_ebadd [3]{_aecbga ._bffb =_ebadd ;};default:_aecbga ._bffb =_ebadd ;};};return _aecbga ,nil ;};
|
||
|
||
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
|
||
func (_bgfbb *PdfWriter )SetCatalogMetadata (meta _ce .PdfObject )error {if meta ==nil {_bgfbb ._bbef .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_ccabe ,_cccgd :=_ce .GetStream (meta );if !_cccgd {return _ge .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");
|
||
};_bgfbb .addObject (_ccabe );_bgfbb ._bbef .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ccabe );return nil ;};
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_fcdaf *PdfAppender )RemovePage (pageNum int ){_afed :=pageNum -1;_fcdaf ._ggdc =append (_fcdaf ._ggdc [0:_afed ],_fcdaf ._ggdc [pageNum :]...);};func _bcegg (_feff _ee .StdFont )pdfFontSimple {_afcdg :=_feff .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_baafb :"\u0054\u0079\u0070e\u0031",_egacd :_feff .Name ()},_cabcg :_feff .GetMetricsTable (),_cdcd :&PdfFontDescriptor {FontName :_ce .MakeName (string (_afcdg .Name )),FontFamily :_ce .MakeName (_afcdg .Family ),FontWeight :_ce .MakeFloat (float64 (_afcdg .Weight )),Flags :_ce .MakeInteger (int64 (_afcdg .Flags )),FontBBox :_ce .MakeArrayFromFloats (_afcdg .BBox [:]),ItalicAngle :_ce .MakeFloat (_afcdg .ItalicAngle ),Ascent :_ce .MakeFloat (_afcdg .Ascent ),Descent :_ce .MakeFloat (_afcdg .Descent ),CapHeight :_ce .MakeFloat (_afcdg .CapHeight ),XHeight :_ce .MakeFloat (_afcdg .XHeight ),StemV :_ce .MakeFloat (_afcdg .StemV ),StemH :_ce .MakeFloat (_afcdg .StemH )},_bccdg :_feff .Encoder ()};
|
||
};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _ce .PdfObject ;AN _ce .PdfObject ;OP _ce .PdfObject ;JS _ce .PdfObject ;};
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_ce .PdfObjectArray ;TI *_ce .PdfObjectInteger ;I *_ce .PdfObjectArray ;};
|
||
|
||
// 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 _gd .ReadSeeker )(*PdfFont ,error ){const _cafdd =_dc .CharCode (32);const _gadg =_dc .CharCode (255);_ecee ,_ebeb :=_fcg .ReadAll (r );if _ebeb !=nil {_ff .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",_ebeb );
|
||
return nil ,_ebeb ;};_afdbe ,_ebeb :=_ee .TtfParse (_ag .NewReader (_ecee ));if _ebeb !=nil {_ff .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",_ebeb );
|
||
return nil ,_ebeb ;};_cgdg :=&pdfFontSimple {_aggce :make (map[_dc .CharCode ]float64 ),fontCommon :fontCommon {_baafb :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_cgdg ._bbaf =_dc .NewWinAnsiEncoder ();_cgdg ._egacd =_afdbe .PostScriptName ;
|
||
_cgdg .FirstChar =_ce .MakeInteger (int64 (_cafdd ));_cgdg .LastChar =_ce .MakeInteger (int64 (_gadg ));_gdbec :=1000.0/float64 (_afdbe .UnitsPerEm );if len (_afdbe .Widths )<=0{return nil ,_ge .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");
|
||
};_cbbgb :=_gdbec *float64 (_afdbe .Widths [0]);_dccff :=make ([]float64 ,0,_gadg -_cafdd +1);for _cgaac :=_cafdd ;_cgaac <=_gadg ;_cgaac ++{_ffceb ,_fdaff :=_cgdg .Encoder ().CharcodeToRune (_cgaac );if !_fdaff {_ff .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_cgaac );
|
||
_dccff =append (_dccff ,_cbbgb );continue ;};_befaa ,_bgdag :=_afdbe .Chars [_ffceb ];if !_bgdag {_ff .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_dccff =append (_dccff ,_cbbgb );
|
||
continue ;};_fbbed :=_gdbec *float64 (_afdbe .Widths [_befaa ]);_dccff =append (_dccff ,_fbbed );};_cgdg .Widths =_ce .MakeIndirectObject (_ce .MakeArrayFromFloats (_dccff ));if len (_dccff )< int (_gadg -_cafdd +1){_ff .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 (_dccff ),255-32+1);
|
||
return nil ,_ce .ErrRangeError ;};for _cfbe :=_cafdd ;_cfbe <=_gadg ;_cfbe ++{_cgdg ._aggce [_cfbe ]=_dccff [_cfbe -_cafdd ];};_cgdg .Encoding =_ce .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_fdb :=&PdfFontDescriptor {};
|
||
_fdb .FontName =_ce .MakeName (_afdbe .PostScriptName );_fdb .Ascent =_ce .MakeFloat (_gdbec *float64 (_afdbe .TypoAscender ));_fdb .Descent =_ce .MakeFloat (_gdbec *float64 (_afdbe .TypoDescender ));_fdb .CapHeight =_ce .MakeFloat (_gdbec *float64 (_afdbe .CapHeight ));
|
||
_fdb .FontBBox =_ce .MakeArrayFromFloats ([]float64 {_gdbec *float64 (_afdbe .Xmin ),_gdbec *float64 (_afdbe .Ymin ),_gdbec *float64 (_afdbe .Xmax ),_gdbec *float64 (_afdbe .Ymax )});_fdb .ItalicAngle =_ce .MakeFloat (_afdbe .ItalicAngle );_fdb .MissingWidth =_ce .MakeFloat (_gdbec *float64 (_afdbe .Widths [0]));
|
||
_gfeb ,_ebeb :=_ce .MakeStream (_ecee ,_ce .NewFlateEncoder ());if _ebeb !=nil {_ff .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",_ebeb );
|
||
return nil ,_ebeb ;};_gfeb .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ce .MakeInteger (int64 (len (_ecee ))));_fdb .FontFile2 =_gfeb ;if _afdbe .Bold {_fdb .StemV =_ce .MakeInteger (120);}else {_fdb .StemV =_ce .MakeInteger (70);
|
||
};_gaeff :=_ecef ;if _afdbe .IsFixedPitch {_gaeff |=_afdc ;};if _afdbe .ItalicAngle !=0{_gaeff |=_egdef ;};_fdb .Flags =_ce .MakeInteger (int64 (_gaeff ));_cgdg ._daebd =_fdb ;_fbfd :=&PdfFont {_dace :_cgdg };return _fbfd ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgbf *PdfActionResetForm )ToPdfObject ()_ce .PdfObject {_dgbf .PdfAction .ToPdfObject ();_cebg :=_dgbf ._bcc ;_eeed :=_cebg .PdfObject .(*_ce .PdfObjectDictionary );_eeed .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeResetForm )));_eeed .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dgbf .Fields );
|
||
_eeed .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dgbf .Flags );return _cebg ;};func (_afgc *PdfReader )newPdfActionSetOCGStateFromDict (_ffd *_ce .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_ffd .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_ffd .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_egcdfb *PdfFunctionType0 )ToPdfObject ()_ce .PdfObject {if _egcdfb ._ffgdd ==nil {_egcdfb ._ffgdd =&_ce .PdfObjectStream {};};_egce :=_ce .MakeDict ();_egce .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (0));
|
||
_gdaa :=&_ce .PdfObjectArray {};for _ ,_dfede :=range _egcdfb .Domain {_gdaa .Append (_ce .MakeFloat (_dfede ));};_egce .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gdaa );_effag :=&_ce .PdfObjectArray {};for _ ,_gcag :=range _egcdfb .Range {_effag .Append (_ce .MakeFloat (_gcag ));
|
||
};_egce .Set ("\u0052\u0061\u006eg\u0065",_effag );_cagb :=&_ce .PdfObjectArray {};for _ ,_egfd :=range _egcdfb .Size {_cagb .Append (_ce .MakeInteger (int64 (_egfd )));};_egce .Set ("\u0053\u0069\u007a\u0065",_cagb );_egce .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ce .MakeInteger (int64 (_egcdfb .BitsPerSample )));
|
||
if _egcdfb .Order !=1{_egce .Set ("\u004f\u0072\u0064e\u0072",_ce .MakeInteger (int64 (_egcdfb .Order )));};_egce .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ce .MakeInteger (int64 (len (_egcdfb ._becgb ))));_egcdfb ._ffgdd .Stream =_egcdfb ._becgb ;
|
||
_egcdfb ._ffgdd .PdfObjectDictionary =_egce ;return _egcdfb ._ffgdd ;};
|
||
|
||
// 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 (_gefag *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bgfae []*PdfField ;_fdfdb :=map[*_ce .PdfIndirectObject ]struct{}{};for _ ,_bdac :=range _gefag .PageList {_cedca ,_ababg :=_bdac .GetAnnotations ();if _ababg !=nil {return _ababg ;
|
||
};for _ ,_dgcdc :=range _cedca {var _bfddb *PdfField ;switch _ccafcd :=_dgcdc .GetContext ().(type ){case *PdfAnnotationWidget :if _ccafcd ._bag !=nil {_bfddb =_ccafcd ._bag ;break ;};if _bgdfd ,_abdcc :=_ce .GetIndirect (_ccafcd .Parent );_abdcc {_bfddb ,_ababg =_gefag .newPdfFieldFromIndirectObject (_bgdfd ,nil );
|
||
if _ababg ==nil {break ;};_ff .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",_bgdfd ,_ababg );
|
||
};if _ccafcd ._dec !=nil {_bfddb ,_ababg =_gefag .newPdfFieldFromIndirectObject (_ccafcd ._dec ,nil );if _ababg ==nil {break ;};_ff .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",_ccafcd ._dec ,_ababg );
|
||
};};if _bfddb ==nil {continue ;};if _ ,_egad :=_fdfdb [_bfddb ._aadeb ];_egad {continue ;};_fdfdb [_bfddb ._aadeb ]=struct{}{};_bgfae =append (_bgfae ,_bfddb );};};if len (_bgfae )==0{return nil ;};if _gefag .AcroForm ==nil {_gefag .AcroForm =NewPdfAcroForm ();
|
||
};_gefag .AcroForm .Fields =&_bgfae ;return nil ;};
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_ade :=NewPdfAnnotation ();_agec :=&PdfAnnotationTrapNet {};_agec .PdfAnnotation =_ade ;_ade .SetContext (_agec );return _agec ;};func _abaa (_edae _ce .PdfObject ,_cgcd bool )(*PdfFont ,error ){_fbaca ,_abfef ,_gagcd :=_bbgfg (_edae );
|
||
if _fbaca !=nil {_beaa (_fbaca );};if _gagcd !=nil {if _gagcd ==ErrType1CFontNotSupported {_cbfd ,_faad :=_ffaba (_fbaca ,_abfef ,nil );if _faad !=nil {_ff .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",_abfef ,_faad );
|
||
return nil ,_gagcd ;};return &PdfFont {_dace :_cbfd },_gagcd ;};return nil ,_gagcd ;};_bgaee :=&PdfFont {};switch _abfef ._baafb {case "\u0054\u0079\u0070e\u0030":if !_cgcd {_ff .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",_abfef );
|
||
return nil ,_ge .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_adgg ,_fegb :=_dagga (_fbaca ,_abfef );if _fegb !=nil {_ff .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",_abfef ,_fegb );
|
||
return nil ,_fegb ;};_bgaee ._dace =_adgg ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _abded *pdfFontSimple ;_bcebg ,_bgdc :=_ee .NewStdFontByName (_ee .StdFontName (_abfef ._egacd ));
|
||
if _bgdc {_ggcc :=_bcegg (_bcebg );_bgaee ._dace =&_ggcc ;_fbgb :=_ce .TraceToDirectObject (_ggcc .ToPdfObject ());_dece ,_fgege ,_cadab :=_bbgfg (_fbgb );if _cadab !=nil {_ff .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",_abfef ,_ggcc );
|
||
return nil ,_cadab ;};for _ ,_aeead :=range _fbaca .Keys (){_dece .Set (_aeead ,_fbaca .Get (_aeead ));};_abded ,_cadab =_ffaba (_dece ,_fgege ,_ggcc ._bccdg );if _cadab !=nil {_ff .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",_abfef ,_ggcc );
|
||
return nil ,_cadab ;};_abded ._aggce =_ggcc ._aggce ;_abded ._cabcg =_ggcc ._cabcg ;if _abded ._cdcd ==nil {_abded ._cdcd =_ggcc ._cdcd ;};}else {_abded ,_gagcd =_ffaba (_fbaca ,_abfef ,nil );if _gagcd !=nil {_ff .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",_abfef ,_gagcd );
|
||
return nil ,_gagcd ;};};_gagcd =_abded .addEncoding ();if _gagcd !=nil {return nil ,_gagcd ;};if _bgdc {_abded .updateStandard14Font ();};if _bgdc &&_abded ._bbaf ==nil &&_abded ._bccdg ==nil {_ff .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abded );
|
||
_ff .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_bcebg );};if len (_abded ._aggce )==0{_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_abded );};_bgaee ._dace =_abded ;
|
||
case "\u0054\u0079\u0070e\u0033":_ddabe ,_febed :=_ddadd (_fbaca ,_abfef );if _febed !=nil {_ff .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",_febed );
|
||
return nil ,_febed ;};_bgaee ._dace =_ddabe ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_ggfg ,_bdbd :=_agdcf (_fbaca ,_abfef );if _bdbd !=nil {_ff .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",_bdbd );
|
||
return nil ,_bdbd ;};_bgaee ._dace =_ggfg ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_dcdb ,_egab :=_bgcg (_fbaca ,_abfef );if _egab !=nil {_ff .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",_abfef ,_egab );
|
||
return nil ,_egab ;};_bgaee ._dace =_dcdb ;default:_ff .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",_abfef );
|
||
return nil ,_e .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_abfef );};return _bgaee ,nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_fegba *PdfFont )Encoder ()_dc .TextEncoder {_dccc :=_fegba .actualFont ();if _dccc ==nil {_ff .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",_fegba ._dace );
|
||
return nil ;};return _dccc .Encoder ();};
|
||
|
||
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
|
||
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_gfea :=&PdfShadingPatternType3 {};_gfea .Matrix =_ce .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_gfea .PdfPattern =&PdfPattern {};_gfea .PdfPattern .PatternType =int64 (*_ce .MakeInteger (2));
|
||
_gfea .PdfPattern ._fbea =_gfea ;_gfea .PdfPattern ._gadcb =_ce .MakeIndirectObject (_ce .MakeDict ());return _gfea ;};func (_cfdgg *PdfWriter )writeObjects (){_ff .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_cfdgg ._adbee ));
|
||
_cfdgg ._abff =make (map[int ]crossReference );_cfdgg ._abff [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};if _cfdgg ._fegdg .ObjectMap !=nil {for _ecfdddd ,_gcfgd :=range _cfdgg ._fegdg .ObjectMap {if _ecfdddd ==0{continue ;};if _gcfgd .XType ==_ce .XrefTypeObjectStream {_ceabc :=crossReference {Type :2,ObjectNumber :_gcfgd .OsObjNumber ,Index :_gcfgd .OsObjIndex };
|
||
_cfdgg ._abff [_ecfdddd ]=_ceabc ;};if _gcfgd .XType ==_ce .XrefTypeTableEntry {_dcgde :=crossReference {Type :1,ObjectNumber :_gcfgd .ObjectNumber ,Offset :_gcfgd .Offset };_cfdgg ._abff [_ecfdddd ]=_dcgde ;};};};};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_edd :=NewPdfAnnotation ();_fef :=&PdfAnnotationPolyLine {};_fef .PdfAnnotation =_edd ;_fef .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_edd .SetContext (_fef );return _fef ;};
|
||
|
||
// 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 (_bcdec *PdfPageResources )GetFontByName (keyName _ce .PdfObjectName )(_ce .PdfObject ,bool ){if _bcdec .Font ==nil {return nil ,false ;};_ggeggg ,_agfge :=_ce .TraceToDirectObject (_bcdec .Font ).(*_ce .PdfObjectDictionary );if !_agfge {_ff .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",_ce .TraceToDirectObject (_bcdec .Font ));
|
||
return nil ,false ;};if _eebaa :=_ggeggg .Get (keyName );_eebaa !=nil {return _eebaa ,true ;};return nil ,false ;};
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_gbfec *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_bfbbc :=RC4_128bit ;if options !=nil {_bfbbc =options .Algorithm ;};_abgfc :=_cca .PermOwner ;if options !=nil {_abgfc =options .Permissions ;};var _cbga _aee .Filter ;
|
||
switch _bfbbc {case RC4_128bit :_cbga =_aee .NewFilterV2 (16);case AES_128bit :_cbga =_aee .NewFilterAESV2 ();case AES_256bit :_cbga =_aee .NewFilterAESV3 ();default:return _e .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_gdefd ,_efbba ,_ggega :=_ce .PdfCryptNewEncrypt (_cbga ,userPass ,ownerPass ,_abgfc );if _ggega !=nil {return _ggega ;};_gbfec ._cgebe =_gdefd ;if _efbba .Major !=0{_gbfec .SetVersion (_efbba .Major ,_efbba .Minor );};_gbfec ._fbfg =_efbba .Encrypt ;
|
||
_gbfec ._aecc ,_gbfec ._efbed =_efbba .ID0 ,_efbba .ID1 ;_abee :=_ce .MakeIndirectObject (_efbba .Encrypt );_gbfec ._ggbef =_abee ;_gbfec .addObject (_abee );return nil ;};
|
||
|
||
// DetermineColorspaceNameFromPdfObject determines PDF colorspace from a PdfObject. Returns the colorspace name and
|
||
// an error on failure. If the colorspace was not found, will return an empty string.
|
||
func DetermineColorspaceNameFromPdfObject (obj _ce .PdfObject )(_ce .PdfObjectName ,error ){var _abca *_ce .PdfObjectName ;var _cgafg *_ce .PdfObjectArray ;if _ccbda ,_fdfe :=obj .(*_ce .PdfIndirectObject );_fdfe {if _dgba ,_fgdg :=_ccbda .PdfObject .(*_ce .PdfObjectArray );
|
||
_fgdg {_cgafg =_dgba ;}else if _gddg ,_gfgb :=_ccbda .PdfObject .(*_ce .PdfObjectName );_gfgb {_abca =_gddg ;};}else if _ebag ,_gfgbf :=obj .(*_ce .PdfObjectArray );_gfgbf {_cgafg =_ebag ;}else if _cgb ,_bebbc :=obj .(*_ce .PdfObjectName );_bebbc {_abca =_cgb ;
|
||
};if _abca !=nil {switch *_abca {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 *_abca ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_abca ,nil ;
|
||
};};if _cgafg !=nil &&_cgafg .Len ()> 0{if _cggfa ,_gabff :=_cgafg .Get (0).(*_ce .PdfObjectName );_gabff {switch *_cggfa {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 _cgafg .Len ()==1{return *_cggfa ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_cggfa ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_cggfa ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_cggfa ,nil ;};};};return "",nil ;};func (_ddeee *PdfReader )newPdfAnnotationStampFromDict (_acaf *_ce .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_ecaa :=PdfAnnotationStamp {};
|
||
_egdf ,_dff :=_ddeee .newPdfAnnotationMarkupFromDict (_acaf );if _dff !=nil {return nil ,_dff ;};_ecaa .PdfAnnotationMarkup =_egdf ;_ecaa .Name =_acaf .Get ("\u004e\u0061\u006d\u0065");return &_ecaa ,nil ;};func (_adgb *PdfAppender )mergeResources (_eade ,_ffcc _ce .PdfObject ,_ecfec map[_ce .PdfObjectName ]_ce .PdfObjectName )_ce .PdfObject {if _ffcc ==nil &&_eade ==nil {return nil ;
|
||
};if _ffcc ==nil {return _eade ;};_eagb ,_fcac :=_ce .GetDict (_ffcc );if !_fcac {return _eade ;};if _eade ==nil {_cafe :=_ce .MakeDict ();_cafe .Merge (_eagb );return _ffcc ;};_fccd ,_fcac :=_ce .GetDict (_eade );if !_fcac {_ff .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");
|
||
_fccd =_ce .MakeDict ();};for _ ,_eec :=range _eagb .Keys (){if _cadf ,_fdde :=_ecfec [_eec ];_fdde {_fccd .Set (_cadf ,_eagb .Get (_eec ));}else {_fccd .Set (_eec ,_eagb .Get (_eec ));};};return _fccd ;};
|
||
|
||
// 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 (_dcdffb *PdfWriter )SetRotation (rotate int64 )error {_gcbe ,_gdacfa :=_ce .GetDict (_dcdffb ._dbdaa );if !_gdacfa {return ErrTypeCheck ;};_gcbe .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ce .MakeInteger (rotate ));return nil ;};func (_efee *PdfReader )newPdfAnnotationProjectionFromDict (_adg *_ce .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_ege :=&PdfAnnotationProjection {};
|
||
_eag ,_dbd :=_efee .newPdfAnnotationMarkupFromDict (_adg );if _dbd !=nil {return nil ,_dbd ;};_ege .PdfAnnotationMarkup =_eag ;return _ege ,nil ;};
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_dbb :=NewPdfAnnotation ();_cdce :=&PdfAnnotationPolygon {};_cdce .PdfAnnotation =_dbb ;_cdce .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dbb .SetContext (_cdce );return _cdce ;};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_ed :=NewPdfAction ();_agb :=&PdfActionURI {};_agb .PdfAction =_ed ;_ed .SetContext (_agb );return _agb ;};
|
||
|
||
// 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 (_ecgfe *PdfSignature )bool ;
|
||
|
||
// Validate validates a PDF signature against a given digest (hash) such as that determined
|
||
// for an input file. Returns validation results.
|
||
Validate (_cacgf *PdfSignature ,_dffff 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 (_eegf *PdfSignature )error ;
|
||
|
||
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
|
||
NewDigest (_dfaa *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 (_fdcdc *PdfSignature ,_egadb Hasher )error ;};func (_gbgcc *PdfReader )newPdfFieldSignatureFromDict (_dfac *_ce .PdfObjectDictionary )(*PdfFieldSignature ,error ){_baaf :=&PdfFieldSignature {};_fgbf ,_gffd :=_ce .GetIndirect (_dfac .Get ("\u0056"));
|
||
if _gffd {var _abgg error ;_baaf .V ,_abgg =_gbgcc .newPdfSignatureFromIndirect (_fgbf );if _abgg !=nil {return nil ,_abgg ;};};_baaf .Lock ,_ =_ce .GetIndirect (_dfac .Get ("\u004c\u006f\u0063\u006b"));_baaf .SV ,_ =_ce .GetIndirect (_dfac .Get ("\u0053\u0056"));
|
||
return _baaf ,nil ;};func _fbbcd ()_c .Time {_cbcgc .Lock ();defer _cbcgc .Unlock ();return _faegc };
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_aec :=NewPdfAnnotation ();_feg :=&PdfAnnotationStrikeOut {};_feg .PdfAnnotation =_aec ;_feg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aec .SetContext (_feg );return _feg ;};
|
||
|
||
// 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 *_ce .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_bcdf *_ce .PdfIndirectObject ;};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_facad *PdfPageResources )GetXObjectFormByName (keyName _ce .PdfObjectName )(*XObjectForm ,error ){_gacea ,_bfcbd :=_facad .GetXObjectByName (keyName );if _gacea ==nil {return nil ,nil ;};if _bfcbd !=XObjectTypeForm {return nil ,_ge .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_cdgaf ,_fbgba :=NewXObjectFormFromStream (_gacea );if _fbgba !=nil {return nil ,_fbgba ;};return _cdgaf ,nil ;};
|
||
|
||
// SetOpenAction sets the OpenAction in the PDF catalog.
|
||
// The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008),
|
||
// or an action dictionary representing an action (12.6 "Actions" PDF32000_2008).
|
||
func (_egafa *PdfWriter )SetOpenAction (dest _ce .PdfObject )error {if dest ==nil ||_ce .IsNullObject (dest ){return nil ;};_egafa ._bbef .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _egafa .addObjects (dest );};
|
||
|
||
// 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 ;
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ce .PdfObjectInteger ;BitsPerComponent *_ce .PdfObjectInteger ;VerticesPerRow *_ce .PdfObjectInteger ;Decode *_ce .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_cgdf *PdfAnnotation )GetContext ()PdfModel {if _cgdf ==nil {return nil ;};return _cgdf ._edc ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_bccc *PdfColorDeviceCMYK )M ()float64 {return _bccc [1]};
|
||
|
||
// 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 ,_gfdaf :_ce .MakeDict ()};
|
||
};
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_abac *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_deaf :=func (_bgfc float64 )float64 {if _bgfc >=6.0/29{return _bgfc *_bgfc *_bgfc ;};return 108.0/841*(_bgfc -4.0/29.0);};_ebgc ,_gfab :=color .(*PdfColorLab );if !_gfab {_ff .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_ebgc .L ();AStar :=_ebgc .A ();BStar :=_ebgc .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_abac .WhitePoint [0]*_deaf (L );Y :=_abac .WhitePoint [1]*_deaf (M );Z :=_abac .WhitePoint [2]*_deaf (N );_caee :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cbbg :=-0.969256*X +1.875992*Y +0.041556*Z ;_cgfe :=0.055648*X +-0.204043*Y +1.057311*Z ;_caee =_egg .Min (_egg .Max (_caee ,0),1.0);
|
||
_cbbg =_egg .Min (_egg .Max (_cbbg ,0),1.0);_cgfe =_egg .Min (_egg .Max (_cgfe ,0),1.0);return NewPdfColorDeviceRGB (_caee ,_cbbg ,_cgfe ),nil ;};
|
||
|
||
// NewPermissions returns a new permissions object.
|
||
func NewPermissions (docMdp *PdfSignature )*Permissions {_egcbb :=Permissions {};_egcbb .DocMDP =docMdp ;_gecfdd :=_ce .MakeDict ();_gecfdd .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_egcbb ._ffegb =_gecfdd ;return &_egcbb ;};
|
||
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_bfgg *PdfReader )Decrypt (password []byte )(bool ,error ){_gdcc ,_cgacf :=_bfgg ._afda .Decrypt (password );if _cgacf !=nil {return false ,_cgacf ;};if !_gdcc {return false ,nil ;};_cgacf =_bfgg .loadStructure ();if _cgacf !=nil {_ff .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",_cgacf );
|
||
return false ,_cgacf ;};return true ,nil ;};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_gbcb *_ce .PdfObjectDictionary ;_agbda *_ce .PdfIndirectObject ;};
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_caed *PdfAcroForm ,_ffgf *PdfField ,_abde *PdfAnnotationWidget )(*_ce .PdfObjectDictionary ,error );};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_fcdg *PdfOutline )GetContainingPdfObject ()_ce .PdfObject {return _fcdg ._aedbf };
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_fdaf *PdfAnnotationLink )SetAction (action *PdfAction ){_fdaf ._gbba =action ;if action ==nil {_fdaf .A =nil ;};};func _dffb (_defb []byte )[]byte {const _gabffa =52845;const _fdgc =22719;_fbabaf :=55665;for _ ,_abefc :=range _defb [:4]{_fbabaf =(int (_abefc )+_fbabaf )*_gabffa +_fdgc ;
|
||
};_fgdgg :=make ([]byte ,len (_defb )-4);for _gfbdc ,_badba :=range _defb [4:]{_fgdgg [_gfbdc ]=byte (int (_badba )^_fbabaf >>8);_fbabaf =(int (_badba )+_fbabaf )*_gabffa +_fdgc ;};return _fgdgg ;};
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _ce .PdfObject )(*PdfFont ,error ){return _abaa (fontObj ,true )};
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_adgaf *PdfSignature )SetDate (date _c .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";};_adgaf .M =_ce .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// GetDocMDPPermission returns the DocMDP level of the restrictions
|
||
func (_eecaaa *PdfSignature )GetDocMDPPermission ()(_aef .DocMDPPermission ,bool ){for _ ,_efgg :=range _eecaaa .Reference .Elements (){if _cceeg ,_cgbab :=_ce .GetDict (_efgg );_cgbab {if _abaeg ,_agaf :=_ce .GetNameVal (_cceeg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
_agaf &&_abaeg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _deded ,_aaebe :=_ce .GetDict (_cceeg .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_aaebe {if P ,_cebaa :=_ce .GetIntVal (_deded .Get ("\u0050"));_cebaa {return _aef .DocMDPPermission (P ),true ;
|
||
};};};};};return 0,false ;};
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ce .PdfObject ;MK _ce .PdfObject ;A _ce .PdfObject ;AA _ce .PdfObject ;BS _ce .PdfObject ;Parent _ce .PdfObject ;_bag *PdfField ;_bbcf bool ;};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_ffcae FieldFlag )String ()string {_dadg :="";if _ffcae ==FieldFlagClear {_dadg ="\u0043\u006c\u0065a\u0072";return _dadg ;};if _ffcae &FieldFlagReadOnly > 0{_dadg +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _ffcae &FieldFlagRequired > 0{_dadg +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
|
||
};if _ffcae &FieldFlagNoExport > 0{_dadg +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _ffcae &FieldFlagNoToggleToOff > 0{_dadg +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _ffcae &FieldFlagRadio > 0{_dadg +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _ffcae &FieldFlagPushbutton > 0{_dadg +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _ffcae &FieldFlagRadiosInUnision > 0{_dadg +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _ffcae &FieldFlagMultiline > 0{_dadg +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
|
||
};if _ffcae &FieldFlagPassword > 0{_dadg +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _ffcae &FieldFlagFileSelect > 0{_dadg +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _ffcae &FieldFlagDoNotScroll > 0{_dadg +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
|
||
};if _ffcae &FieldFlagComb > 0{_dadg +="\u007c\u0043\u006fm\u0062";};if _ffcae &FieldFlagRichText > 0{_dadg +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _ffcae &FieldFlagDoNotSpellCheck > 0{_dadg +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
|
||
};if _ffcae &FieldFlagCombo > 0{_dadg +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _ffcae &FieldFlagEdit > 0{_dadg +="\u007c\u0045\u0064i\u0074";};if _ffcae &FieldFlagSort > 0{_dadg +="\u007c\u0053\u006fr\u0074";};if _ffcae &FieldFlagMultiSelect > 0{_dadg +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _ffcae &FieldFlagCommitOnSelChange > 0{_dadg +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _g .Trim (_dadg ,"\u007c");};
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ce .PdfObject ;Movie _ce .PdfObject ;A _ce .PdfObject ;};
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_efa *PdfAppender )UpdateObject (obj _ce .PdfObject ){_efa .replaceObject (obj ,obj );if _ ,_dfgd :=_efa ._acbd [obj ];!_dfgd {_efa ._beff =append (_efa ._beff ,obj );_efa ._acbd [obj ]=struct{}{};};};
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_gacgc *Image )ToJBIG2Image ()(*_ce .JBIG2Image ,error ){_egffa ,_dbdba :=_gacgc .ToGoImage ();if _dbdba !=nil {return nil ,_dbdba ;};return _ce .GoImageToJBIG2 (_egffa ,_ce .JB2ImageAutoThreshold );};func _cbfc (_aeafe string )(string ,error ){var _efabe _ag .Buffer ;
|
||
_efabe .WriteString (_aeafe );_edeaf :=make ([]byte ,8+16);_fgbca :=_c .Now ().UTC ().UnixNano ();_be .BigEndian .PutUint64 (_edeaf ,uint64 (_fgbca ));_ ,_feab :=_bc .Read (_edeaf [8:]);if _feab !=nil {return "",_feab ;};_efabe .WriteString (_bd .EncodeToString (_edeaf ));
|
||
return _efabe .String (),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{_ecde *_ce .PdfIndirectObject ;Certs []*_ce .PdfObjectStream ;OCSPs []*_ce .PdfObjectStream ;CRLs []*_ce .PdfObjectStream ;VRI map[string ]*VRI ;_daad map[string ]*_ce .PdfObjectStream ;_eabba map[string ]*_ce .PdfObjectStream ;_abge map[string ]*_ce .PdfObjectStream ;
|
||
};func (_bgcec *PdfWriter )addObjects (_gffea _ce .PdfObject )error {_ff .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _edeee ,_fdbf :=_gffea .(*_ce .PdfIndirectObject );_fdbf {_ff .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");
|
||
_ff .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_gffea ,_edeee );_ff .Log .Trace ("\u002d\u0020\u0025\u0073",_edeee .PdfObject );if _bgcec .addObject (_edeee ){_ebbfc :=_bgcec .addObjects (_edeee .PdfObject );if _ebbfc !=nil {return _ebbfc ;
|
||
};};return nil ;};if _egaca ,_gdec :=_gffea .(*_ce .PdfObjectStream );_gdec {_ff .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ff .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_gffea ,_gffea );if _bgcec .addObject (_egaca ){_fcaeab :=_bgcec .addObjects (_egaca .PdfObjectDictionary );
|
||
if _fcaeab !=nil {return _fcaeab ;};};return nil ;};if _ffbbf ,_gecbd :=_gffea .(*_ce .PdfObjectDictionary );_gecbd {_ff .Log .Trace ("\u0044\u0069\u0063\u0074");_ff .Log .Trace ("\u002d\u0020\u0025\u0073",_gffea );for _ ,_eeddd :=range _ffbbf .Keys (){_bbfb :=_ffbbf .Get (_eeddd );
|
||
if _cfeff ,_deebd :=_bbfb .(*_ce .PdfObjectReference );_deebd {_bbfb =_cfeff .Resolve ();_ffbbf .Set (_eeddd ,_bbfb );};if _eeddd !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _efece :=_bgcec .addObjects (_bbfb );_efece !=nil {return _efece ;};}else {if _ ,_adgbb :=_bbfb .(*_ce .PdfObjectNull );
|
||
_adgbb {continue ;};if _gdbaed :=_bgcec .hasObject (_bbfb );!_gdbaed {_ff .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",_bbfb ,_bbfb ,_bbfb );
|
||
_bgcec ._dggcg [_bbfb ]=append (_bgcec ._dggcg [_bbfb ],_ffbbf );};};};return nil ;};if _cbfbf ,_cgeff :=_gffea .(*_ce .PdfObjectArray );_cgeff {_ff .Log .Trace ("\u0041\u0072\u0072a\u0079");_ff .Log .Trace ("\u002d\u0020\u0025\u0073",_gffea );if _cbfbf ==nil {return _ge .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _afdbd ,_ccfgag :=range _cbfbf .Elements (){if _debdec ,_dfaee :=_ccfgag .(*_ce .PdfObjectReference );_dfaee {_ccfgag =_debdec .Resolve ();_cbfbf .Set (_afdbd ,_ccfgag );};if _accee :=_bgcec .addObjects (_ccfgag );_accee !=nil {return _accee ;};};
|
||
return nil ;};if _ ,_ggbfa :=_gffea .(*_ce .PdfObjectReference );_ggbfa {_ff .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",_gffea );
|
||
return _ge .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aea *PdfActionSound )ToPdfObject ()_ce .PdfObject {_aea .PdfAction .ToPdfObject ();_dgfc :=_aea ._bcc ;_gef :=_dgfc .PdfObject .(*_ce .PdfObjectDictionary );_gef .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeSound )));_gef .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_aea .Sound );
|
||
_gef .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_aea .Volume );_gef .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_aea .Synchronous );_gef .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_aea .Repeat );_gef .SetIfNotNil ("\u004d\u0069\u0078",_aea .Mix );
|
||
return _dgfc ;};
|
||
|
||
// 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 *_ce .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_gedd *_ce .PdfIndirectObject ;};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_dddab *PdfWriter )SetPageLabels (pageLabels _ce .PdfObject )error {if pageLabels ==nil {return nil ;};_ff .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");
|
||
_dddab ._bbef .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dddab .addObjects (pageLabels );};
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_cceaeg *PdfPageResources )GetColorspaceByName (keyName _ce .PdfObjectName )(PdfColorspace ,bool ){_bdfbe ,_eacaeb :=_cceaeg .GetColorspaces ();if _eacaeb !=nil {_ff .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",_eacaeb );
|
||
return nil ,false ;};if _bdfbe ==nil {return nil ,false ;};_dacb ,_cebcg :=_bdfbe .Colorspaces [string (keyName )];if !_cebcg {return nil ,false ;};return _dacb ,true ;};
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_edgd *Image )ToGoImage ()(_cb .Image ,error ){_ff .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_gcab ,_dgfcb :=_gf .NewImage (int (_edgd .Width ),int (_edgd .Height ),int (_edgd .BitsPerComponent ),_edgd .ColorComponents ,_edgd .Data ,_edgd ._cdecc ,_edgd ._bffb );
|
||
if _dgfcb !=nil {return nil ,_dgfcb ;};return _gcab ,nil ;};
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ce .PdfObject ;B _ce .PdfObject ;};
|
||
|
||
// 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 (_gcdbc *LTV )EnableByName (name string ,extraCerts []*_eg .Certificate )error {_cccgf :=_gcdbc ._fdfad ._fcda .AcroForm ;for _ ,_agffad :=range _cccgf .AllFields (){_dedec ,_ :=_agffad .GetContext ().(*PdfFieldSignature );if _dedec ==nil {continue ;
|
||
};if _feec :=_dedec .PartialName ();_feec !=name {continue ;};return _gcdbc .Enable (_dedec .V ,extraCerts );};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_aaaeg *PdfShadingType6 )ToPdfObject ()_ce .PdfObject {_aaaeg .PdfShading .ToPdfObject ();_ceegb ,_dbddb :=_aaaeg .getShadingDict ();if _dbddb !=nil {_ff .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 _aaaeg .BitsPerCoordinate !=nil {_ceegb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aaaeg .BitsPerCoordinate );};if _aaaeg .BitsPerComponent !=nil {_ceegb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aaaeg .BitsPerComponent );
|
||
};if _aaaeg .BitsPerFlag !=nil {_ceegb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aaaeg .BitsPerFlag );};if _aaaeg .Decode !=nil {_ceegb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aaaeg .Decode );};if _aaaeg .Function !=nil {if len (_aaaeg .Function )==1{_ceegb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aaaeg .Function [0].ToPdfObject ());
|
||
}else {_edcbc :=_ce .MakeArray ();for _ ,_dgbedd :=range _aaaeg .Function {_edcbc .Append (_dgbedd .ToPdfObject ());};_ceegb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edcbc );};};return _aaaeg ._agcdg ;};
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_cacd *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_cacd .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_cacd ._fed =acroForm ;};func (_befbd SignatureValidationResult )String ()string {var _febab _ag .Buffer ;_febab .WriteString (_e .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_befbd .Name ));
|
||
if _befbd .Date ._cbacb > 0{_febab .WriteString (_e .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_befbd .Date .ToGoTime ().String ()));}else {_febab .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_befbd .Reason )> 0{_febab .WriteString (_e .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_befbd .Reason ));}else {_febab .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
|
||
};if len (_befbd .Location )> 0{_febab .WriteString (_e .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_befbd .Location ));}else {_febab .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_befbd .ContactInfo )> 0{_febab .WriteString (_e .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_befbd .ContactInfo ));}else {_febab .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
|
||
};_febab .WriteString (_e .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_befbd .Fields )));if _befbd .IsSigned {_febab .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 {_febab .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _befbd .IsVerified {_febab .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 {_febab .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 _befbd .IsTrusted {_febab .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 {_febab .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 !_befbd .GeneralizedTime .IsZero (){_febab .WriteString (_e .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_befbd .GeneralizedTime .String ()));
|
||
};if _befbd .DiffResults !=nil {_febab .WriteString (_e .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_befbd .DiffResults .IsPermitted ()));if len (_befbd .DiffResults .Warnings )> 0{_febab .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");
|
||
for _ ,_aeffe :=range _befbd .DiffResults .Warnings {_febab .WriteString (_e .Sprintf ("\u0009\u0025\u0073\u000a",_aeffe ));};};if len (_befbd .DiffResults .Errors )> 0{_febab .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");
|
||
for _ ,_geadb :=range _befbd .DiffResults .Errors {_febab .WriteString (_e .Sprintf ("\u0009\u0025\u0073\u000a",_geadb ));};};};if _befbd .IsCrlFound {_febab .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 {_febab .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 _befbd .IsOcspFound {_febab .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 {_febab .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 _febab .String ();};
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_aadba *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_aadba ._cfcac =outlineTree };
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_cdc :=NewPdfAction ();_gde :=&PdfActionTrans {};_gde .PdfAction =_cdc ;_cdc .SetContext (_gde );return _gde ;};
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_da :=&PdfAction {};_da ._bcc =_ce .MakeIndirectObject (_ce .MakeDict ());return _da ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_aeddg *PdfShadingPatternType3 )ToPdfObject ()_ce .PdfObject {_aeddg .PdfPattern .ToPdfObject ();_ecefb :=_aeddg .getDict ();if _aeddg .Shading !=nil {_ecefb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_aeddg .Shading .ToPdfObject ());};if _aeddg .Matrix !=nil {_ecefb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_aeddg .Matrix );
|
||
};if _aeddg .ExtGState !=nil {_ecefb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_aeddg .ExtGState );};return _aeddg ._gadcb ;};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_fggcd FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_fggcd .Mask ()&^fl .Mask ())};func _ddce (_fagde _ce .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_bfed :=NewPdfColorspaceSpecialSeparation ();if _fdcef ,_bfedc :=_fagde .(*_ce .PdfIndirectObject );
|
||
_bfedc {_bfed ._bcdf =_fdcef ;};_fagde =_ce .TraceToDirectObject (_fagde );_eaff ,_beag :=_fagde .(*_ce .PdfObjectArray );if !_beag {return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
|
||
};if _eaff .Len ()!=4{return nil ,_e .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_fagde =_eaff .Get (0);
|
||
_cccdg ,_beag :=_fagde .(*_ce .PdfObjectName );if !_beag {return nil ,_e .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_cccdg !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_e .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};_fagde =_eaff .Get (1);_cccdg ,_beag =_fagde .(*_ce .PdfObjectName );if !_beag {return nil ,_e .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
|
||
};_bfed .ColorantName =_cccdg ;_fagde =_eaff .Get (2);_ebcgg ,_dgbae :=NewPdfColorspaceFromPdfObject (_fagde );if _dgbae !=nil {return nil ,_dgbae ;};_bfed .AlternateSpace =_ebcgg ;_ecbbb ,_dgbae :=_cegfd (_eaff .Get (3));if _dgbae !=nil {return nil ,_dgbae ;
|
||
};_bfed .TintTransform =_ecbbb ;return _bfed ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_gbdgg *PdfTilingPattern )ToPdfObject ()_ce .PdfObject {_gbdgg .PdfPattern .ToPdfObject ();_fadec :=_gbdgg .getDict ();if _gbdgg .PaintType !=nil {_fadec .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_gbdgg .PaintType );};if _gbdgg .TilingType !=nil {_fadec .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_gbdgg .TilingType );
|
||
};if _gbdgg .BBox !=nil {_fadec .Set ("\u0042\u0042\u006f\u0078",_gbdgg .BBox .ToPdfObject ());};if _gbdgg .XStep !=nil {_fadec .Set ("\u0058\u0053\u0074e\u0070",_gbdgg .XStep );};if _gbdgg .YStep !=nil {_fadec .Set ("\u0059\u0053\u0074e\u0070",_gbdgg .YStep );
|
||
};if _gbdgg .Resources !=nil {_fadec .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gbdgg .Resources .ToPdfObject ());};if _gbdgg .Matrix !=nil {_fadec .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbdgg .Matrix );};return _gbdgg ._gadcb ;};
|
||
|
||
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
|
||
func NewPdfShadingType2 ()*PdfShadingType2 {_bgfcd :=&PdfShadingType2 {};_bgfcd .PdfShading =&PdfShading {};_bgfcd .PdfShading ._agcdg =_ce .MakeIndirectObject (_ce .MakeDict ());_bgfcd .PdfShading ._aadbc =_bgfcd ;return _bgfcd ;};
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ce .PdfObject ;};func (_acdbf *PdfReader )newPdfSignatureReferenceFromDict (_acbda *_ce .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _fbdag ,_eabdd :=_acdbf ._aedda .GetModelFromPrimitive (_acbda ).(*PdfSignatureReference );
|
||
_eabdd {return _fbdag ,nil ;};_edgbg :=&PdfSignatureReference {_bggef :_acbda ,Data :_acbda .Get ("\u0044\u0061\u0074\u0061")};var _ggdb bool ;_edgbg .Type ,_ =_ce .GetName (_acbda .Get ("\u0054\u0079\u0070\u0065"));_edgbg .TransformMethod ,_ggdb =_ce .GetName (_acbda .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
if !_ggdb {_ff .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 ;};_edgbg .TransformParams ,_ =_ce .GetDict (_acbda .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_edgbg .DigestMethod ,_ =_ce .GetName (_acbda .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
return _edgbg ,nil ;};
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_eeedf *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ce .GetNumberAsFloat (_eeedf .Descent );};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cgdbb *PdfColorspaceDeviceGray )ToPdfObject ()_ce .PdfObject {return _ce .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_bfdd *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if _bfdd .Alternate ==nil {if _bfdd .N ==1{_gbggd :=NewPdfColorspaceDeviceGray ();return _gbggd .ColorFromPdfObjects (objects );}else if _bfdd .N ==3{_fgea :=NewPdfColorspaceDeviceRGB ();
|
||
return _fgea .ColorFromPdfObjects (objects );}else if _bfdd .N ==4{_facb :=NewPdfColorspaceDeviceCMYK ();return _facb .ColorFromPdfObjects (objects );}else {return nil ,_ge .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 _bfdd .Alternate .ColorFromPdfObjects (objects );};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_egbeg *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_bdaf :=0.3*_egbeg .R ()+0.59*_egbeg .G ()+0.11*_egbeg .B ();_bdaf =_egg .Min (_egg .Max (_bdaf ,0.0),1.0);return NewPdfColorDeviceGray (_bdaf );};func (_bgfgb Image )getBase ()_gf .ImageBase {return _gf .NewImageBase (int (_bgfgb .Width ),int (_bgfgb .Height ),int (_bgfgb .BitsPerComponent ),_bgfgb .ColorComponents ,_bgfgb .Data ,_bgfgb ._cdecc ,_bgfgb ._bffb );
|
||
};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_abbd *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cada ,_cdcb :=_ce .GetNumbersAsFloat (objects );
|
||
if _cdcb !=nil {return nil ,_cdcb ;};return _abbd .ColorFromFloats (_cada );};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_afc :=NewPdfAction ();_fg :=&PdfActionNamed {};_fg .PdfAction =_afc ;_afc .SetContext (_fg );return _fg ;};func (_bggdb *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};func (_aaade *PdfWriter )writeTrailer (_ebee int ){_aaade .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");
|
||
for _bfgeb :=0;_bfgeb <=_ebee ;{for ;_bfgeb <=_ebee ;_bfgeb ++{_dcbdf ,_adagc :=_aaade ._abff [_bfgeb ];if _adagc &&(!_aaade ._ddfff ||_aaade ._ddfff &&(_dcbdf .Type ==1&&_dcbdf .Offset >=_aaade ._bcefd ||_dcbdf .Type ==0)){break ;};};var _feafd int ;for _feafd =_bfgeb +1;
|
||
_feafd <=_ebee ;_feafd ++{_fdfbf ,_dadae :=_aaade ._abff [_feafd ];if _dadae &&(!_aaade ._ddfff ||_aaade ._ddfff &&(_fdfbf .Type ==1&&_fdfbf .Offset > _aaade ._bcefd )){continue ;};break ;};_cagea :=_e .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_bfgeb ,_feafd -_bfgeb );
|
||
_aaade .writeString (_cagea );for _edbg :=_bfgeb ;_edbg < _feafd ;_edbg ++{_dgfeab :=_aaade ._abff [_edbg ];switch _dgfeab .Type {case 0:_cagea =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_aaade .writeString (_cagea );
|
||
case 1:_cagea =_e .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_dgfeab .Offset ,0);_aaade .writeString (_cagea );};};_bfgeb =_feafd +1;};_cddcf :=_ce .MakeDict ();_cddcf .Set ("\u0049\u006e\u0066\u006f",_aaade ._dcecd );
|
||
_cddcf .Set ("\u0052\u006f\u006f\u0074",_aaade ._bedff );_cddcf .Set ("\u0053\u0069\u007a\u0065",_ce .MakeInteger (int64 (_ebee +1)));if _aaade ._ddfff &&_aaade ._efbcg > 0{_cddcf .Set ("\u0050\u0072\u0065\u0076",_ce .MakeInteger (_aaade ._efbcg ));};if _aaade ._cgebe !=nil {_cddcf .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_aaade ._ggbef );
|
||
};if _aaade ._cbegb ==nil &&_aaade ._aecc !=""&&_aaade ._efbed !=""{_aaade ._cbegb =_ce .MakeArray (_ce .MakeHexString (_aaade ._aecc ),_ce .MakeHexString (_aaade ._efbed ));};if _aaade ._cbegb !=nil {_cddcf .Set ("\u0049\u0044",_aaade ._cbegb );_ff .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_aaade ._cbegb );
|
||
};_aaade .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_aaade .writeString (_cddcf .WriteString ());_aaade .writeString ("\u000a");};func _bfffb ()_c .Time {_cbcgc .Lock ();defer _cbcgc .Unlock ();return _dfecd };
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_egdc *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _egdc .UnderlyingCS ==nil {return nil ,_ge .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 _egdc .UnderlyingCS .ColorFromFloats (vals );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edf *PdfActionGoToR )ToPdfObject ()_ce .PdfObject {_edf .PdfAction .ToPdfObject ();_ecg :=_edf ._bcc ;_cgg :=_ecg .PdfObject .(*_ce .PdfObjectDictionary );_cgg .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeGoToR )));if _edf .F !=nil {_cgg .Set ("\u0046",_edf .F .ToPdfObject ());
|
||
};_cgg .SetIfNotNil ("\u0044",_edf .D );_cgg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_edf .NewWindow );return _ecg ;};
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_ebcd *PdfFont )BytesToCharcodes (data []byte )[]_dc .CharCode {_ff .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 _daggc ,_faeag :=_ebcd ._dace .(*pdfFontType0 );_faeag &&_daggc ._ggecbf !=nil {if _dagee ,_fbgbd :=_daggc .bytesToCharcodes (data );_fbgbd {return _dagee ;};};var (_dbgdg =make ([]_dc .CharCode ,0,len (data )+len (data )%2);_cgafe =_ebcd .baseFields ();
|
||
);if _cgafe ._dgfcg !=nil {if _ggde ,_eeebaf :=_cgafe ._dgfcg .BytesToCharcodes (data );_eeebaf {for _ ,_fgcbg :=range _ggde {_dbgdg =append (_dbgdg ,_dc .CharCode (_fgcbg ));};return _dbgdg ;};};if _cgafe .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
|
||
};if len (data )%2!=0{_ff .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 _dbedf :=0;_dbedf < len (data );_dbedf +=2{_deaee :=uint16 (data [_dbedf ])<<8|uint16 (data [_dbedf +1]);_dbgdg =append (_dbgdg ,_dc .CharCode (_deaee ));};}else {for _ ,_decaa :=range data {_dbgdg =append (_dbgdg ,_dc .CharCode (_decaa ));
|
||
};};return _dbgdg ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};func (_cgdb *PdfReader )loadAction (_eea _ce .PdfObject )(*PdfAction ,error ){if _fbab ,_efd :=_ce .GetIndirect (_eea );_efd {_fbb ,_cebe :=_cgdb .newPdfActionFromIndirectObject (_fbab );
|
||
if _cebe !=nil {return nil ,_cebe ;};return _fbb ,nil ;}else if !_ce .IsNullObject (_eea ){return nil ,_ge .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 ;};
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_bafbf *PdfSignature )SetName (name string ){_bafbf .Name =_ce .MakeEncodedString (name ,true )};
|
||
|
||
// IsSimple returns true if `font` is a simple font.
|
||
func (_gcegc *PdfFont )IsSimple ()bool {_ ,_cggaa :=_gcegc ._dace .(*pdfFontSimple );return _cggaa };
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ce .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_aeafc *PdfPattern )ToPdfObject ()_ce .PdfObject {_fgbef :=_aeafc .getDict ();_fgbef .Set ("\u0054\u0079\u0070\u0065",_ce .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_fgbef .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (_aeafc .PatternType ));
|
||
return _aeafc ._gadcb ;};
|
||
|
||
// 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 ;_ffegb *_ce .PdfObjectDictionary ;};
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_aeaef *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_aeaef ._acffc =colorspace ;};
|
||
|
||
// 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 ;_cdecc []byte ;_bffb []float64 ;};func (_acc *PdfReader )newPdfActionMovieFromDict (_ffab *_ce .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_ffab .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_ffab .Get ("\u0054"),Operation :_ffab .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_fdbge *PdfPageResources )GetExtGState (keyName _ce .PdfObjectName )(_ce .PdfObject ,bool ){if _fdbge .ExtGState ==nil {return nil ,false ;};_cgdfb ,_bbbgg :=_ce .TraceToDirectObject (_fdbge .ExtGState ).(*_ce .PdfObjectDictionary );if !_bbbgg {_ff .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",_fdbge .ExtGState );
|
||
return nil ,false ;};if _ecffb :=_cgdfb .Get (keyName );_ecffb !=nil {return _ecffb ,true ;};return nil ,false ;};func _agdgd (_cgfcf *_ce .PdfObjectDictionary )(*PdfFieldChoice ,error ){_daef :=&PdfFieldChoice {};_daef .Opt ,_ =_ce .GetArray (_cgfcf .Get ("\u004f\u0070\u0074"));
|
||
_daef .TI ,_ =_ce .GetInt (_cgfcf .Get ("\u0054\u0049"));_daef .I ,_ =_ce .GetArray (_cgfcf .Get ("\u0049"));return _daef ,nil ;};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_fefa :=NewPdfAnnotation ();_acca :=&PdfAnnotationProjection {};_acca .PdfAnnotation =_fefa ;_acca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fefa .SetContext (_acca );return _acca ;};
|
||
|
||
// 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 _ce .StreamEncoder ;Intent _ce .PdfObject ;ImageMask _ce .PdfObject ;Mask _ce .PdfObject ;Matte _ce .PdfObject ;Decode _ce .PdfObject ;Interpolate _ce .PdfObject ;Alternatives _ce .PdfObject ;
|
||
SMask _ce .PdfObject ;SMaskInData _ce .PdfObject ;Name _ce .PdfObject ;StructParent _ce .PdfObject ;ID _ce .PdfObject ;OPI _ce .PdfObject ;Metadata _ce .PdfObject ;OC _ce .PdfObject ;Stream []byte ;_gefdf *_ce .PdfObjectStream ;};
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dbda *PdfAnnotationPrinterMark )ToPdfObject ()_ce .PdfObject {_dbda .PdfAnnotation .ToPdfObject ();_ddab :=_dbda ._dec ;_egge :=_ddab .PdfObject .(*_ce .PdfObjectDictionary );_egge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_egge .SetIfNotNil ("\u004d\u004e",_dbda .MN );return _ddab ;};
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_gcfc *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbfe ,_gacc :=color .(*PdfColorDeviceRGB );if !_gacc {_ff .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 ,_ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _fbfe ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColorDevice based on the input slice of
|
||
// color components. The slice should contain four elements representing the
|
||
// cyan, magenta, yellow and key components of the color. The values of the
|
||
// elements should be between 0 and 1.
|
||
func (_affe *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_debbg :=vals [0];if _debbg < 0.0||_debbg > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debbg );
|
||
return nil ,ErrColorOutOfRange ;};_cfga :=vals [1];if _cfga < 0.0||_cfga > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cfga );return nil ,ErrColorOutOfRange ;
|
||
};_dafb :=vals [2];if _dafb < 0.0||_dafb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dafb );return nil ,ErrColorOutOfRange ;};_bfga :=vals [3];
|
||
if _bfga < 0.0||_bfga > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bfga );return nil ,ErrColorOutOfRange ;};_cgeb :=NewPdfColorDeviceCMYK (_debbg ,_cfga ,_dafb ,_bfga );
|
||
return _cgeb ,nil ;};func (_afa *PdfReader )newPdfActionThreadFromDict (_cgda *_ce .PdfObjectDictionary )(*PdfActionThread ,error ){_efb ,_bdbb :=_ecbge (_cgda .Get ("\u0046"));if _bdbb !=nil {return nil ,_bdbb ;};return &PdfActionThread {D :_cgda .Get ("\u0044"),B :_cgda .Get ("\u0042"),F :_efb },nil ;
|
||
};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_cgdd *PdfBorderStyle )GetBorderWidth ()float64 {if _cgdd .W ==nil {return 1;};return *_cgdd .W ;};
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_fcbag :=&XObjectImage {};_efedf :=&_ce .PdfObjectStream {};_efedf .PdfObjectDictionary =_ce .MakeDict ();_fcbag ._gefdf =_efedf ;return _fcbag ;};
|
||
|
||
// 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 (_bggb *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _fefaf []*PdfField ;if _bggb .AcroForm !=nil {_fefaf =_bggb .AcroForm .AllFields ();};_becd :=make (map[*PdfField ]struct{},len (_fefaf ));for _ ,_eaee :=range _fefaf {_becd [_eaee ]=struct{}{};
|
||
};for _ ,_edega :=range _bggb .PageList {_bgdbc ,_ffgea :=_edega .GetAnnotations ();if _ffgea !=nil {return false ,_ffgea ;};for _ ,_efcg :=range _bgdbc {_ggfgg ,_bcabe :=_efcg .GetContext ().(*PdfAnnotationWidget );if !_bcabe {continue ;};_cfged :=_ggfgg .Field ();
|
||
if _cfged ==nil {return true ,nil ;};if _ ,_abaaf :=_becd [_cfged ];!_abaaf {return true ,nil ;};};};return false ,nil ;};
|
||
|
||
// Val returns the value of the color.
|
||
func (_bbgg *PdfColorCalGray )Val ()float64 {return float64 (*_bbgg )};func _bbgfg (_aaad _ce .PdfObject )(*_ce .PdfObjectDictionary ,*fontCommon ,error ){_dfgfg :=&fontCommon {};if _dafgd ,_ffec :=_aaad .(*_ce .PdfIndirectObject );_ffec {_dfgfg ._edcbg =_dafgd .ObjectNumber ;
|
||
};_fdcda ,_eeba :=_ce .GetDict (_aaad );if !_eeba {_ff .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",_aaad );
|
||
return nil ,nil ,ErrFontNotSupported ;};_ebfe ,_eeba :=_ce .GetNameVal (_fdcda .Get ("\u0054\u0079\u0070\u0065"));if !_eeba {_ff .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 _ebfe !="\u0046\u006f\u006e\u0074"{_ff .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.",_ebfe ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_ce .ErrTypeError ;};_abefe ,_eeba :=_ce .GetNameVal (_fdcda .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_eeba {_ff .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 ;};_dfgfg ._baafb =_abefe ;_acgac ,_eeba :=_ce .GetNameVal (_fdcda .Get ("\u004e\u0061\u006d\u0065"));if _eeba {_dfgfg ._bdae =_acgac ;};_gbde :=_fdcda .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _gbde !=nil {_dfgfg ._bcef =_ce .TraceToDirectObject (_gbde );
|
||
_ebdf ,_deaa :=_ddabd (_dfgfg ._bcef ,_dfgfg );if _deaa !=nil {return _fdcda ,_dfgfg ,_deaa ;};_dfgfg ._dgfcg =_ebdf ;}else if _abefe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_abefe =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bdffb ,_aeae :=_ga .NewCIDSystemInfo (_fdcda .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _aeae !=nil {return _fdcda ,_dfgfg ,_aeae ;};_cdde :=_e .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_bdffb .Registry ,_bdffb .Ordering );if _ga .IsPredefinedCMap (_cdde ){_dfgfg ._dgfcg ,_aeae =_ga .LoadPredefinedCMap (_cdde );
|
||
if _aeae !=nil {_ff .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",_cdde ,_aeae );
|
||
};};};_cadaa :=_fdcda .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _cadaa !=nil {_deggaa ,_efda :=_ccfe (_cadaa );if _efda !=nil {_ff .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",_efda );
|
||
return _fdcda ,_dfgfg ,_efda ;};_dfgfg ._daebd =_deggaa ;};if _abefe !="\u0054\u0079\u0070e\u0033"{_bdfba ,_bceg :=_ce .GetNameVal (_fdcda .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_bceg {_ff .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 _fdcda ,_dfgfg ,ErrRequiredAttributeMissing ;};_dfgfg ._egacd =_bdfba ;};return _fdcda ,_dfgfg ,nil ;};
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_dbccg *PdfFieldText )ToPdfObject ()_ce .PdfObject {_dbccg .PdfField .ToPdfObject ();_cdeec :=_dbccg ._aadeb ;_bbeg :=_cdeec .PdfObject .(*_ce .PdfObjectDictionary );_bbeg .Set ("\u0046\u0054",_ce .MakeName ("\u0054\u0078"));if _dbccg .DA !=nil {_bbeg .Set ("\u0044\u0041",_dbccg .DA );
|
||
};if _dbccg .Q !=nil {_bbeg .Set ("\u0051",_dbccg .Q );};if _dbccg .DS !=nil {_bbeg .Set ("\u0044\u0053",_dbccg .DS );};if _dbccg .RV !=nil {_bbeg .Set ("\u0052\u0056",_dbccg .RV );};if _dbccg .MaxLen !=nil {_bbeg .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_dbccg .MaxLen );
|
||
};return _cdeec ;};
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_egabb *PdfPattern )IsShading ()bool {return _egabb .PatternType ==2};func (_becgdd PdfFont )actualFont ()pdfFont {if _becgdd ._dace ==nil {_ff .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",_becgdd );
|
||
};return _becgdd ._dace ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_fagdg pdfCIDFontType0 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){return _ee .CharMetrics {Wx :_fagdg ._fcae },true ;};func (_abcae *LTV )validateSig (_ccbeg *PdfSignature )error {if _ccbeg ==nil ||_ccbeg .Contents ==nil ||len (_ccbeg .Contents .Bytes ())==0{return _e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_ccbeg );
|
||
};return nil ;};func (_fgecb *PdfPage )setContainer (_dabcc *_ce .PdfIndirectObject ){_dabcc .PdfObject =_fgecb ._cbcaa ;_fgecb ._acbbb =_dabcc ;};func (_fdcfg *PdfWriter )setDocumentIDs (_gegee ,_bcadga string ){_fdcfg ._cbegb =_ce .MakeArray (_ce .MakeHexString (_gegee ),_ce .MakeHexString (_bcadga ));
|
||
};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_cdf *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
|
||
|
||
// 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 (_aaafb *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_aaeeg :=_aaafb .GetContentStreamObjs ();wrapContents =wrapContents &&len (_aaeeg )> 0;_bfdec :=_ce .NewFlateEncoder ();_gbacd :=_ce .MakeArray ();if wrapContents {_bbbff ,_eafcc :=_ce .MakeStream ([]byte ("\u0071\u000a"),_bfdec );
|
||
if _eafcc !=nil {return _eafcc ;};_gbacd .Append (_bbbff );};_gbacd .Append (_aaeeg ...);if wrapContents {_eggg ,_fcfaf :=_ce .MakeStream ([]byte ("\u000a\u0051\u000a"),_bfdec );if _fcfaf !=nil {return _fcfaf ;};_gbacd .Append (_eggg );};_bdfbba ,_ceeb :=_ce .MakeStream (cs ,_bfdec );
|
||
if _ceeb !=nil {return _ceeb ;};_gbacd .Append (_bdfbba );_aaafb .Contents =_gbacd ;return nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_gfgd *PdfColorCalGray )ToInteger (bits int )uint32 {_geda :=_egg .Pow (2,float64 (bits ))-1;return uint32 (_geda *_gfgd .Val ());};
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ce .PdfObject ;Sy _ce .PdfObject ;};
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_aeadd *_ce .PdfIndirectObject ;};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_agdf *PdfFont )ToPdfObject ()_ce .PdfObject {if _agdf ._dace ==nil {_ff .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 _ce .MakeNull ();
|
||
};return _agdf ._dace .ToPdfObject ();};func _cegfd (_facf _ce .PdfObject )(PdfFunction ,error ){_facf =_ce .ResolveReference (_facf );if _fdbc ,_fabbg :=_facf .(*_ce .PdfObjectStream );_fabbg {_bdge :=_fdbc .PdfObjectDictionary ;_edde ,_eeafg :=_bdge .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );
|
||
if !_eeafg {_ff .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 ,_ge .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 *_edde ==0{return _dgfda (_fdbc );}else if *_edde ==4{return _efagg (_fdbc );}else {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _ddga ,_dfcb :=_facf .(*_ce .PdfIndirectObject );
|
||
_dfcb {_bccbe ,_cadabd :=_ddga .PdfObject .(*_ce .PdfObjectDictionary );if !_cadabd {_ff .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 ,_ge .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");};_ggff ,_cadabd :=_bccbe .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );
|
||
if !_cadabd {_ff .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 ,_ge .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 *_ggff ==2{return _debdea (_ddga );}else if *_ggff ==3{return _afdfee (_ddga );}else {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gdfac ,_gfbgb :=_facf .(*_ce .PdfObjectDictionary );
|
||
_gfbgb {_caade ,_gbgcb :=_gdfac .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ce .PdfObjectInteger );if !_gbgcb {_ff .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 ,_ge .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 *_caade ==2{return _debdea (_gdfac );}else if *_caade ==3{return _afdfee (_gdfac );
|
||
}else {return nil ,_ge .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ff .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_facf );
|
||
return nil ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_egcfe *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gaff :=vals [0];_ggbed :=[]float64 {_gaff };_afadf ,_gegde :=_egcfe .TintTransform .Evaluate (_ggbed );
|
||
if _gegde !=nil {_ff .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",_gegde );_ff .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_egcfe .TintTransform );
|
||
return nil ,_gegde ;};_ff .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",_afadf ,_egcfe .AlternateSpace );
|
||
_accbf ,_gegde :=_egcfe .AlternateSpace .ColorFromFloats (_afadf );if _gegde !=nil {_ff .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",_gegde );
|
||
return nil ,_gegde ;};return _accbf ,nil ;};
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_fgdba *PdfRectangle )Normalize (){if _fgdba .Llx > _fgdba .Urx {_fgdba .Llx ,_fgdba .Urx =_fgdba .Urx ,_fgdba .Llx ;};if _fgdba .Lly > _fgdba .Ury {_fgdba .Lly ,_fgdba .Ury =_fgdba .Ury ,_fgdba .Lly ;};};
|
||
|
||
// 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 ;_gbbb *_ce .PdfIndirectObject ;};var _abeaae =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":{}};
|
||
|
||
|
||
// 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 *_ce .PdfObjectStream ;Data []byte ;_fedfe *_ce .PdfIndirectObject ;_gcgc *_ce .PdfObjectStream ;};
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_bbdf *PdfPageResourcesColorspaces )Set (key _ce .PdfObjectName ,val PdfColorspace ){if _ ,_dbfd :=_bbdf .Colorspaces [string (key )];!_dbfd {_bbdf .Names =append (_bbdf .Names ,string (key ));};_bbdf .Colorspaces [string (key )]=val ;};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_aeaag *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
|
||
|
||
// AddOCSPs adds OCSPs to DSS.
|
||
func (_gegf *DSS )AddOCSPs (ocsps [][]byte )([]*_ce .PdfObjectStream ,error ){return _gegf .add (&_gegf .OCSPs ,_gegf ._eabba ,ocsps );};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_bdbc *PdfReader )newPdfAnnotationLinkFromDict (_fdg *_ce .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_bgeb :=PdfAnnotationLink {};
|
||
_bgeb .A =_fdg .Get ("\u0041");_bgeb .Dest =_fdg .Get ("\u0044\u0065\u0073\u0074");_bgeb .H =_fdg .Get ("\u0048");_bgeb .PA =_fdg .Get ("\u0050\u0041");_bgeb .QuadPoints =_fdg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_bgeb .BS =_fdg .Get ("\u0042\u0053");
|
||
return &_bgeb ,nil ;};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_dfedg *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_dfedg ._gage =annotations };
|
||
|
||
// 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 (_befea *PdfFieldButton )SetType (btype ButtonType ){_deea :=uint32 (0);if _befea .Ff !=nil {_deea =uint32 (*_befea .Ff );};switch btype {case ButtonTypePush :_deea |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_deea |=FieldFlagRadio .Mask ();
|
||
};_befea .Ff =_ce .MakeInteger (int64 (_deea ));};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_ccab *PdfFunctionType3 )ToPdfObject ()_ce .PdfObject {_efacd :=_ce .MakeDict ();_efacd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ce .MakeInteger (3));_adbba :=&_ce .PdfObjectArray {};for _ ,_adfcg :=range _ccab .Domain {_adbba .Append (_ce .MakeFloat (_adfcg ));
|
||
};_efacd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_adbba );if _ccab .Range !=nil {_geaa :=&_ce .PdfObjectArray {};for _ ,_cdfa :=range _ccab .Range {_geaa .Append (_ce .MakeFloat (_cdfa ));};_efacd .Set ("\u0052\u0061\u006eg\u0065",_geaa );};if _ccab .Functions !=nil {_gfebg :=&_ce .PdfObjectArray {};
|
||
for _ ,_dcaga :=range _ccab .Functions {_gfebg .Append (_dcaga .ToPdfObject ());};_efacd .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_gfebg );};if _ccab .Bounds !=nil {_addb :=&_ce .PdfObjectArray {};for _ ,_gccfb :=range _ccab .Bounds {_addb .Append (_ce .MakeFloat (_gccfb ));
|
||
};_efacd .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_addb );};if _ccab .Encode !=nil {_aegeg :=&_ce .PdfObjectArray {};for _ ,_ecgdc :=range _ccab .Encode {_aegeg .Append (_ce .MakeFloat (_ecgdc ));};_efacd .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_aegeg );
|
||
};if _ccab ._badbg !=nil {_ccab ._badbg .PdfObject =_efacd ;return _ccab ._badbg ;};return _efacd ;};
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_bfdac =subject };
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _ce .PdfObject ;T _ce .PdfObject ;Operation _ce .PdfObject ;};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_dcag :=PdfColorLab {l ,a ,b };return &_dcag };
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_cecda *PdfPattern )GetContext ()PdfModel {return _cecda ._fbea };
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_edef pdfFontType3 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){_dcaa :=_edef .Encoder ();if _dcaa ==nil {_ff .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_edef );
|
||
return _ee .CharMetrics {},false ;};_addc ,_bgbfe :=_dcaa .RuneToCharcode (r );if !_bgbfe {if r !=' '{_ff .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 ,_edef );
|
||
};return _ee .CharMetrics {},false ;};_adbgg ,_ddcd :=_edef .GetCharMetrics (_addc );return _adbgg ,_ddcd ;};
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_fbgbb *Outline )Add (item *OutlineItem ){_fbgbb .Entries =append (_fbgbb .Entries ,item )};func _face (_aeeab *_ce .PdfObjectDictionary )(*PdfShadingType6 ,error ){_cgcfe :=PdfShadingType6 {};_gbabd :=_aeeab .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _gbabd ==nil {_ff .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 ;};_bfceb ,_gabfc :=_gbabd .(*_ce .PdfObjectInteger );if !_gabfc {_ff .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",_gbabd );
|
||
return nil ,_ce .ErrTypeError ;};_cgcfe .BitsPerCoordinate =_bfceb ;_gbabd =_aeeab .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gbabd ==nil {_ff .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 ;};_bfceb ,_gabfc =_gbabd .(*_ce .PdfObjectInteger );if !_gabfc {_ff .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",_gbabd );
|
||
return nil ,_ce .ErrTypeError ;};_cgcfe .BitsPerComponent =_bfceb ;_gbabd =_aeeab .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _gbabd ==nil {_ff .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 ;};_bfceb ,_gabfc =_gbabd .(*_ce .PdfObjectInteger );if !_gabfc {_ff .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",_gbabd );
|
||
return nil ,_ce .ErrTypeError ;};_cgcfe .BitsPerComponent =_bfceb ;_gbabd =_aeeab .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gbabd ==nil {_ff .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 ;};_badbea ,_gabfc :=_gbabd .(*_ce .PdfObjectArray );if !_gabfc {_ff .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",_gbabd );
|
||
return nil ,_ce .ErrTypeError ;};_cgcfe .Decode =_badbea ;if _dgbg :=_aeeab .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_dgbg !=nil {_cgcfe .Function =[]PdfFunction {};if _dedeea ,_eeea :=_dgbg .(*_ce .PdfObjectArray );_eeea {for _ ,_fdeed :=range _dedeea .Elements (){_ggafd ,_badge :=_cegfd (_fdeed );
|
||
if _badge !=nil {_ff .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",_badge );return nil ,_badge ;};_cgcfe .Function =append (_cgcfe .Function ,_ggafd );
|
||
};}else {_ccffd ,_faecd :=_cegfd (_dgbg );if _faecd !=nil {_ff .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",_faecd );return nil ,_faecd ;
|
||
};_cgcfe .Function =append (_cgcfe .Function ,_ccffd );};};return &_cgcfe ,nil ;};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_ebfgd *modelManager )GetPrimitiveFromModel (model PdfModel )_ce .PdfObject {_bfbad ,_ebebb :=_ebfgd ._dgefa [model ];if !_ebebb {return nil ;};return _bfbad ;};
|
||
|
||
// GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique.
|
||
func (_bcge *DSS )GenerateHashMaps ()error {_fcebb ,_cbcad :=_bcge .generateHashMap (_bcge .Certs );if _cbcad !=nil {return _cbcad ;};_cfage ,_cbcad :=_bcge .generateHashMap (_bcge .OCSPs );if _cbcad !=nil {return _cbcad ;};_eeaea ,_cbcad :=_bcge .generateHashMap (_bcge .CRLs );
|
||
if _cbcad !=nil {return _cbcad ;};_bcge ._daad =_fcebb ;_bcge ._eabba =_cfage ;_bcge ._abge =_eeaea ;return nil ;};
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_bbcg *PdfField )GetContainingPdfObject ()_ce .PdfObject {return _bbcg ._aadeb };var _ pdfFont =(*pdfCIDFontType2 )(nil );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_egdff *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_egdff .GetNumComponents (){return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dfca ,_aeeb :=_egdff .TintTransform .Evaluate (vals );
|
||
if _aeeb !=nil {return nil ,_aeeb ;};_aaff ,_aeeb :=_egdff .AlternateSpace .ColorFromFloats (_dfca );if _aeeb !=nil {return nil ,_aeeb ;};return _aaff ,nil ;};func (_eac *PdfReader )newPdfAnnotationCircleFromDict (_accd *_ce .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_gdeb :=PdfAnnotationCircle {};
|
||
_bcda ,_abf :=_eac .newPdfAnnotationMarkupFromDict (_accd );if _abf !=nil {return nil ,_abf ;};_gdeb .PdfAnnotationMarkup =_bcda ;_gdeb .BS =_accd .Get ("\u0042\u0053");_gdeb .IC =_accd .Get ("\u0049\u0043");_gdeb .BE =_accd .Get ("\u0042\u0045");_gdeb .RD =_accd .Get ("\u0052\u0044");
|
||
return &_gdeb ,nil ;};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_daadg =creator };func (_bbab *PdfAppender )updateObjectsDeep (_fgd _ce .PdfObject ,_gcfee map[_ce .PdfObject ]struct{}){if _gcfee ==nil {_gcfee =map[_ce .PdfObject ]struct{}{};
|
||
};if _ ,_ebde :=_gcfee [_fgd ];_ebde ||_fgd ==nil {return ;};_gcfee [_fgd ]=struct{}{};_bgff :=_ce .ResolveReferencesDeep (_fgd ,_bbab ._ccbd );if _bgff !=nil {_ff .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bgff );};switch _cgcf :=_fgd .(type ){case *_ce .PdfIndirectObject :switch {case _cgcf .GetParser ()==_bbab ._fcda ._afda :return ;
|
||
case _cgcf .GetParser ()==_bbab .Reader ._afda :_fbbbg ,_ :=_bbab ._fcda .GetIndirectObjectByNumber (int (_cgcf .ObjectNumber ));_aefc ,_becgd :=_fbbbg .(*_ce .PdfIndirectObject );if _becgd &&_aefc !=nil {if _aefc .PdfObject !=_cgcf .PdfObject &&_aefc .PdfObject .WriteString ()!=_cgcf .PdfObject .WriteString (){if _g .Contains (_cgcf .PdfObject .WriteString (),"\u002f\u0053\u0069\u0067")&&_g .Contains (_cgcf .PdfObject .WriteString (),"\u002f\u0053\u0075\u0062\u0074\u0079\u0070\u0065"){return ;
|
||
};_bbab .addNewObject (_fgd );_bbab ._fadeg [_fgd ]=_cgcf .ObjectNumber ;};};default:_bbab .addNewObject (_fgd );};_bbab .updateObjectsDeep (_cgcf .PdfObject ,_gcfee );case *_ce .PdfObjectArray :for _ ,_bgb :=range _cgcf .Elements (){_bbab .updateObjectsDeep (_bgb ,_gcfee );
|
||
};case *_ce .PdfObjectDictionary :for _ ,_ddfee :=range _cgcf .Keys (){_bbab .updateObjectsDeep (_cgcf .Get (_ddfee ),_gcfee );};case *_ce .PdfObjectStreams :if _cgcf .GetParser ()!=_bbab ._fcda ._afda {for _ ,_dbf :=range _cgcf .Elements (){_bbab .updateObjectsDeep (_dbf ,_gcfee );
|
||
};};case *_ce .PdfObjectStream :switch {case _cgcf .GetParser ()==_bbab ._fcda ._afda :return ;case _cgcf .GetParser ()==_bbab .Reader ._afda :if _ecccg ,_bfcg :=_bbab ._fcda ._afda .LookupByReference (_cgcf .PdfObjectReference );_bfcg ==nil {var _cfcb bool ;
|
||
if _dbcg ,_feac :=_ce .GetStream (_ecccg );_feac &&_ag .Equal (_dbcg .Stream ,_cgcf .Stream ){_cfcb =true ;};if _gcac ,_beed :=_ce .GetDict (_ecccg );_cfcb &&_beed {_cfcb =_gcac .WriteString ()==_cgcf .PdfObjectDictionary .WriteString ();};if _cfcb {return ;
|
||
};};if _cgcf .ObjectNumber !=0{_bbab ._fadeg [_fgd ]=_cgcf .ObjectNumber ;};default:if _ ,_bbeb :=_bbab ._acbd [_fgd ];!_bbeb {_bbab .addNewObject (_fgd );};};_bbab .updateObjectsDeep (_cgcf .PdfObjectDictionary ,_gcfee );};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_becg *PdfActionRendition )ToPdfObject ()_ce .PdfObject {_becg .PdfAction .ToPdfObject ();_gdg :=_becg ._bcc ;_ecf :=_gdg .PdfObject .(*_ce .PdfObjectDictionary );_ecf .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeRendition )));_ecf .SetIfNotNil ("\u0052",_becg .R );
|
||
_ecf .SetIfNotNil ("\u0041\u004e",_becg .AN );_ecf .SetIfNotNil ("\u004f\u0050",_becg .OP );_ecf .SetIfNotNil ("\u004a\u0053",_becg .JS );return _gdg ;};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_dbgc :=NewPdfAnnotation ();_cffb :=&PdfAnnotationPrinterMark {};_cffb .PdfAnnotation =_dbgc ;_dbgc .SetContext (_cffb );return _cffb ;};
|
||
|
||
// GetStandardApplier gets currently used StandardApplier..
|
||
func (_bbebg *PdfWriter )GetStandardApplier ()StandardApplier {return _bbebg ._dgeef };
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_bafda pdfCIDFontType2 )GetRuneMetrics (r rune )(_ee .CharMetrics ,bool ){_ddgd ,_egcc :=_bafda ._bedga [r ];if !_egcc {_dbffc ,_eeebag :=_ce .GetInt (_bafda .DW );if !_eeebag {return _ee .CharMetrics {},false ;};_ddgd =int (*_dbffc );};return _ee .CharMetrics {Wx :float64 (_ddgd )},true ;
|
||
};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _ce .PdfObject ;};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_fd *PdfAction )String ()string {_cg ,_af :=_fd .ToPdfObject ().(*_ce .PdfIndirectObject );if _af {return _e .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fd ._gbf ,_cg .PdfObject .String ());};return "";};
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_abgf *PdfPageResources )GetPatternByName (keyName _ce .PdfObjectName )(*PdfPattern ,bool ){if _abgf .Pattern ==nil {return nil ,false ;};_edab ,_fcgee :=_ce .TraceToDirectObject (_abgf .Pattern ).(*_ce .PdfObjectDictionary );if !_fcgee {_ff .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",_abgf .Pattern );
|
||
return nil ,false ;};if _dacc :=_edab .Get (keyName );_dacc !=nil {_gegb ,_ceeebg :=_baecf (_dacc );if _ceeebg !=nil {_ff .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",_ceeebg );
|
||
return nil ,false ;};return _gegb ,true ;};return nil ,false ;};func (_egbea *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _egbea ._daebd };
|
||
|
||
// 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 (_acbcd *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fadaf ,_aacg :=_ce .GetNumbersAsFloat (objects );
|
||
if _aacg !=nil {return nil ,_aacg ;};return _acbcd .ColorFromFloats (_fadaf );};
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_ccfg *Image )GetParamsDict ()*_ce .PdfObjectDictionary {_egda :=_ce .MakeDict ();_egda .Set ("\u0057\u0069\u0064t\u0068",_ce .MakeInteger (_ccfg .Width ));_egda .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ce .MakeInteger (_ccfg .Height ));_egda .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ce .MakeInteger (int64 (_ccfg .ColorComponents )));
|
||
_egda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ce .MakeInteger (_ccfg .BitsPerComponent ));return _egda ;};
|
||
|
||
// 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 ()_ce .PdfObject ;GetContainingPdfObject ()_ce .PdfObject ;};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_ce .PdfObjectStream )(*XObjectForm ,error ){_bbfbc :=&XObjectForm {};_bbfbc ._efffe =stream ;_bfefa :=*(stream .PdfObjectDictionary );_eabc ,_gfaaa :=_ce .NewEncoderFromStream (stream );if _gfaaa !=nil {return nil ,_gfaaa ;
|
||
};_bbfbc .Filter =_eabc ;if _adgafg :=_bfefa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_adgafg !=nil {_bggdbb ,_baeab :=_adgafg .(*_ce .PdfObjectName );if !_baeab {return nil ,_ge .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_bggdbb !="\u0046\u006f\u0072\u006d"{_ff .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _bdagd :=_bfefa .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_bdagd !=nil {_bbfbc .FormType =_bdagd ;};if _efdef :=_bfefa .Get ("\u0042\u0042\u006f\u0078");_efdef !=nil {_bbfbc .BBox =_efdef ;};if _ccfcd :=_bfefa .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_ccfcd !=nil {_bbfbc .Matrix =_ccfcd ;};if _agabdc :=_bfefa .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_agabdc !=nil {_agabdc =_ce .TraceToDirectObject (_agabdc );_eeedfc ,_acedc :=_agabdc .(*_ce .PdfObjectDictionary );if !_acedc {_ff .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 ,_ce .ErrTypeError ;};_edaf ,_gbag :=NewPdfPageResourcesFromDict (_eeedfc );if _gbag !=nil {_ff .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 ,_gbag ;};_bbfbc .Resources =_edaf ;_ff .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_bbfbc .Resources );};_bbfbc .Group =_bfefa .Get ("\u0047\u0072\u006fu\u0070");_bbfbc .Ref =_bfefa .Get ("\u0052\u0065\u0066");
|
||
_bbfbc .MetaData =_bfefa .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_bbfbc .PieceInfo =_bfefa .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_bbfbc .LastModified =_bfefa .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_bbfbc .StructParent =_bfefa .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_bbfbc .StructParents =_bfefa .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_bbfbc .OPI =_bfefa .Get ("\u004f\u0050\u0049");
|
||
_bbfbc .OC =_bfefa .Get ("\u004f\u0043");_bbfbc .Name =_bfefa .Get ("\u004e\u0061\u006d\u0065");_bbfbc .Stream =stream .Stream ;return _bbfbc ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_bcbc *PdfShadingType3 )ToPdfObject ()_ce .PdfObject {_bcbc .PdfShading .ToPdfObject ();_gbdcd ,_bdffe :=_bcbc .getShadingDict ();if _bdffe !=nil {_ff .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 _bcbc .Coords !=nil {_gbdcd .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_bcbc .Coords );};if _bcbc .Domain !=nil {_gbdcd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcbc .Domain );};if _bcbc .Function !=nil {if len (_bcbc .Function )==1{_gbdcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcbc .Function [0].ToPdfObject ());
|
||
}else {_abaedg :=_ce .MakeArray ();for _ ,_degd :=range _bcbc .Function {_abaedg .Append (_degd .ToPdfObject ());};_gbdcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_abaedg );};};if _bcbc .Extend !=nil {_gbdcd .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_bcbc .Extend );
|
||
};return _bcbc ._agcdg ;};
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_bbc :=NewPdfAction ();_bec :=&PdfActionResetForm {};_bec .PdfAction =_bbc ;_bbc .SetContext (_bec );return _bec ;};
|
||
|
||
// 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 ){_faee ,_ecfc :=_fgda (basefont );if _ecfc !=nil {return nil ,_ecfc ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_faee ._bbaf =_dc .NewWinAnsiEncoder ();};return &PdfFont {_dace :&_faee },nil ;
|
||
};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_abg :=NewPdfAnnotation ();_aeaf :=&PdfAnnotationWidget {};_aeaf .PdfAnnotation =_abg ;_abg .SetContext (_aeaf );return _aeaf ;};func _bgfbde (_ceed *_ce .PdfObjectDictionary )(*PdfFieldButton ,error ){_fegda :=&PdfFieldButton {};
|
||
_fegda .PdfField =NewPdfField ();_fegda .PdfField .SetContext (_fegda );_fegda .Opt ,_ =_ce .GetArray (_ceed .Get ("\u004f\u0070\u0074"));_bdegf :=NewPdfAnnotationWidget ();_bdegf .A ,_ =_ce .GetDict (_ceed .Get ("\u0041"));_bdegf .AP ,_ =_ce .GetDict (_ceed .Get ("\u0041\u0050"));
|
||
_bdegf .SetContext (_fegda );_fegda .PdfField .Annotations =append (_fegda .PdfField .Annotations ,_bdegf );return _fegda ,nil ;};func (_faceg *PdfWriter )optimize ()error {if _faceg ._bcged ==nil {return nil ;};var _agbfe error ;_faceg ._adbee ,_agbfe =_faceg ._bcged .Optimize (_faceg ._adbee );
|
||
if _agbfe !=nil {return _agbfe ;};_fdefae :=make (map[_ce .PdfObject ]struct{},len (_faceg ._adbee ));for _ ,_agad :=range _faceg ._adbee {_fdefae [_agad ]=struct{}{};};_faceg ._gdaab =_fdefae ;return nil ;};
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_abadc []byte )(_fadgc int ,_edbc error );};
|
||
|
||
// 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 ;_gfdaf *_ce .PdfObjectDictionary ;};func _gdgff (_fabba _ce .PdfObject )(*PdfColorspaceICCBased ,error ){_fbe :=&PdfColorspaceICCBased {};if _afcc ,_adec :=_fabba .(*_ce .PdfIndirectObject );_adec {_fbe ._fedfe =_afcc ;};_fabba =_ce .TraceToDirectObject (_fabba );
|
||
_fbff ,_ggcf :=_fabba .(*_ce .PdfObjectArray );if !_ggcf {return nil ,_e .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fbff .Len ()!=2{return nil ,_e .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_fabba =_ce .TraceToDirectObject (_fbff .Get (0));_fccc ,_ggcf :=_fabba .(*_ce .PdfObjectName );if !_ggcf {return nil ,_e .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if *_fccc !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_e .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_fabba =_fbff .Get (1);
|
||
_gdfe ,_ggcf :=_ce .GetStream (_fabba );if !_ggcf {_ff .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",_fabba );
|
||
return nil ,_e .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_eedc :=_gdfe .PdfObjectDictionary ;_ddcgb ,_ggcf :=_eedc .Get ("\u004e").(*_ce .PdfObjectInteger );
|
||
if !_ggcf {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_ddcgb !=1&&*_ddcgb !=3&&*_ddcgb !=4{return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
|
||
};_fbe .N =int (*_ddcgb );if _cbgc :=_eedc .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_cbgc !=nil {_ggg ,_bfac :=NewPdfColorspaceFromPdfObject (_cbgc );if _bfac !=nil {return nil ,_bfac ;};_fbe .Alternate =_ggg ;};if _ecd :=_eedc .Get ("\u0052\u0061\u006eg\u0065");
|
||
_ecd !=nil {_ecd =_ce .TraceToDirectObject (_ecd );_eaae ,_cgfg :=_ecd .(*_ce .PdfObjectArray );if !_cgfg {return nil ,_e .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
|
||
};if _eaae .Len ()!=2*_fbe .N {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
|
||
};_bgcd ,_afafb :=_eaae .GetAsFloat64Slice ();if _afafb !=nil {return nil ,_afafb ;};_fbe .Range =_bgcd ;}else {_fbe .Range =make ([]float64 ,2*_fbe .N );for _bdcb :=0;_bdcb < _fbe .N ;_bdcb ++{_fbe .Range [2*_bdcb ]=0.0;_fbe .Range [2*_bdcb +1]=1.0;};
|
||
};if _ggdca :=_eedc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ggdca !=nil {_fddeb ,_fgae :=_ggdca .(*_ce .PdfObjectStream );if !_fgae {return nil ,_e .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
|
||
};_fbe .Metadata =_fddeb ;};_bbde ,_aaeaf :=_ce .DecodeStream (_gdfe );if _aaeaf !=nil {return nil ,_aaeaf ;};_fbe .Data =_bbde ;_fbe ._gcgc =_gdfe ;return _fbe ,nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bbf *PdfAction )GetContainingPdfObject ()_ce .PdfObject {return _bbf ._bcc };
|
||
|
||
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
|
||
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_ce .PdfObjectArray ;ExtGState _ce .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_acf *PdfActionURI )ToPdfObject ()_ce .PdfObject {_acf .PdfAction .ToPdfObject ();_agbg :=_acf ._bcc ;_bfb :=_agbg .PdfObject .(*_ce .PdfObjectDictionary );_bfb .SetIfNotNil ("\u0053",_ce .MakeName (string (ActionTypeURI )));_bfb .SetIfNotNil ("\u0055\u0052\u0049",_acf .URI );
|
||
_bfb .SetIfNotNil ("\u0049\u0073\u004da\u0070",_acf .IsMap );return _agbg ;};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ce .PdfObject ;Flags _ce .PdfObject ;};
|
||
|
||
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
|
||
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ce .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ce .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgfdc *PdfAnnotationText )ToPdfObject ()_ce .PdfObject {_fgfdc .PdfAnnotation .ToPdfObject ();_ecbb :=_fgfdc ._dec ;_fgce :=_ecbb .PdfObject .(*_ce .PdfObjectDictionary );if _fgfdc .PdfAnnotationMarkup !=nil {_fgfdc .PdfAnnotationMarkup .appendToPdfDictionary (_fgce );
|
||
};_fgce .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0054\u0065\u0078\u0074"));_fgce .SetIfNotNil ("\u004f\u0070\u0065\u006e",_fgfdc .Open );_fgce .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fgfdc .Name );_fgce .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_fgfdc .State );
|
||
_fgce .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_fgfdc .StateModel );return _ecbb ;};func _bfbb (_cefg map[_ee .GID ]int ,_adfgd uint16 )*_ce .PdfObjectArray {_gbee :=&_ce .PdfObjectArray {};_cdbge :=_ee .GID (_adfgd );
|
||
for _abega :=_ee .GID (0);_abega < _cdbge ;{_dffgd ,_efef :=_cefg [_abega ];if !_efef {_abega ++;continue ;};_bace :=_abega ;for _gddda :=_bace +1;_gddda < _cdbge ;_gddda ++{if _fedgb ,_dcca :=_cefg [_gddda ];!_dcca ||_dffgd !=_fedgb {break ;};_bace =_gddda ;
|
||
};_gbee .Append (_ce .MakeInteger (int64 (_abega )));_gbee .Append (_ce .MakeInteger (int64 (_bace )));_gbee .Append (_ce .MakeInteger (int64 (_dffgd )));_abega =_bace +1;};return _gbee ;};
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_egc :=NewPdfAnnotation ();_aaf :=&PdfAnnotationScreen {};_aaf .PdfAnnotation =_egc ;_egc .SetContext (_aaf );return _aaf ;};
|
||
|
||
// SetFillImage attach a model.Image to push button.
|
||
func (_dfgffa *PdfFieldButton )SetFillImage (image *Image ){if _dfgffa .IsPush (){_dfgffa ._ffff =image ;};};
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_bcfb *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bcfb .AlternateSpace ==nil {return nil ,_ge .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 _bcfb .AlternateSpace .ColorToRGB (color );};func _gacga (_adaec *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_adaec }};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_efbd *pdfFontSimple )ToPdfObject ()_ce .PdfObject {if _efbd ._bgaae ==nil {_efbd ._bgaae =&_ce .PdfIndirectObject {};};_gddca :=_efbd .baseFields ().asPdfObjectDictionary ("");_efbd ._bgaae .PdfObject =_gddca ;if _efbd .FirstChar !=nil {_gddca .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_efbd .FirstChar );
|
||
};if _efbd .LastChar !=nil {_gddca .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_efbd .LastChar );};if _efbd .Widths !=nil {_gddca .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_efbd .Widths );};if _efbd .Encoding !=nil {_gddca .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_efbd .Encoding );
|
||
}else if _efbd ._bbaf !=nil {_cedaa :=_efbd ._bbaf .ToPdfObject ();if _cedaa !=nil {_gddca .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_cedaa );};};return _efbd ._bgaae ;};
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_aeada :=NewPdfAnnotation ();_fgfd :=&PdfAnnotationFreeText {};_fgfd .PdfAnnotation =_aeada ;_fgfd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeada .SetContext (_fgfd );return _fgfd ;};
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _c .Time ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_faegc =creationDate ;};
|
||
|
||
// FlattenFieldsWithOpts flattens the AcroForm fields of the page using the
|
||
// provided field appearance generator and the specified options. If no options
|
||
// are specified, all form fields are flattened for the page.
|
||
// If a filter function is provided using the opts parameter, only the filtered
|
||
// fields are flattened. Otherwise, all form fields are flattened.
|
||
func (_ecbca *PdfPage )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {_dccf :=map[*PdfAnnotation ]bool {};_dac ,_afbg :=_ecbca .GetAnnotations ();if _afbg !=nil {return _afbg ;};_adef :=false ;for _ ,_edcg :=range _dac {if opts .AnnotFilterFunc !=nil {_dccf [_edcg ]=opts .AnnotFilterFunc (_edcg );
|
||
}else {_dccf [_edcg ]=true ;};if _dccf [_edcg ]{_adef =true ;};};if !_adef {return nil ;};return _ecbca .flattenFieldsWithOpts (appgen ,opts ,_dccf );};
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_cbcgc .Lock ();defer _cbcgc .Unlock ();_babb =keywords };
|
||
|
||
// 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 ,*_dd .File ,error ){const _abgbg ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
|
||
_ggfca ,_degac :=_dd .Open (pdfFile );if _degac !=nil {return nil ,nil ,_degac ;};_dgeg ,_degac :=_aaegd (_ggfca ,opts ,true ,_abgbg );if _degac !=nil {_ggfca .Close ();return nil ,nil ,_degac ;};return _dgeg ,_ggfca ,nil ;};func _caba ()string {_cbcgc .Lock ();
|
||
defer _cbcgc .Unlock ();return _babb };var _ pdfFont =(*pdfFontType0 )(nil );
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_acgf :=NewPdfAnnotation ();_eed :=&PdfAnnotationLine {};_eed .PdfAnnotation =_acgf ;_eed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acgf .SetContext (_eed );return _eed ;};
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_bfc :=NewPdfAnnotation ();_cdd :=&PdfAnnotation3D {};_cdd .PdfAnnotation =_bfc ;_bfc .SetContext (_cdd );return _cdd ;};
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _ce .PdfObject ;};
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_gcde *BorderStyle )GetPdfName ()string {switch *_gcde {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};func (_cfbfa *pdfFontSimple )updateStandard14Font (){_dgede ,_eeca :=_cfbfa .Encoder ().(_dc .SimpleEncoder );if !_eeca {_ff .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",_cfbfa .Encoder (),_cfbfa );
|
||
return ;};_ebebc :=_dgede .Charcodes ();_cfbfa ._aggce =make (map[_dc .CharCode ]float64 ,len (_ebebc ));for _ ,_fcafd :=range _ebebc {_gbaac ,_ :=_dgede .CharcodeToRune (_fcafd );_ffbg ,_ :=_cfbfa ._cabcg .Read (_gbaac );_cfbfa ._aggce [_fcafd ]=_ffbg .Wx ;
|
||
};};func _gaefc (_baadd _ce .PdfObject )(*PdfShading ,error ){_adfga :=&PdfShading {};var _cebbd *_ce .PdfObjectDictionary ;if _deabb ,_dbfe :=_ce .GetIndirect (_baadd );_dbfe {_adfga ._agcdg =_deabb ;_cfgdc ,_dfec :=_deabb .PdfObject .(*_ce .PdfObjectDictionary );
|
||
if !_dfec {_ff .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 ,_ce .ErrTypeError ;};_cebbd =_cfgdc ;}else if _beabg ,_dbcd :=_ce .GetStream (_baadd );
|
||
_dbcd {_adfga ._agcdg =_beabg ;_cebbd =_beabg .PdfObjectDictionary ;}else if _baggcf ,_ebefb :=_ce .GetDict (_baadd );_ebefb {_adfga ._agcdg =_baggcf ;_cebbd =_baggcf ;}else {_ff .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",_baadd );
|
||
return nil ,_ce .ErrTypeError ;};if _cebbd ==nil {_ff .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ge .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_baadd =_cebbd .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _baadd ==nil {_ff .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 ;};_baadd =_ce .TraceToDirectObject (_baadd );_feaf ,_bfbed :=_baadd .(*_ce .PdfObjectInteger );if !_bfbed {_ff .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",_baadd );
|
||
return nil ,_ce .ErrTypeError ;};if *_feaf < 1||*_feaf > 7{_ff .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",*_feaf );
|
||
return nil ,_ce .ErrTypeError ;};_adfga .ShadingType =_feaf ;_baadd =_cebbd .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _baadd ==nil {_ff .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 ;};_gbfba ,_ecgdd :=NewPdfColorspaceFromPdfObject (_baadd );if _ecgdd !=nil {_ff .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",_ecgdd );
|
||
return nil ,_ecgdd ;};_adfga .ColorSpace =_gbfba ;_baadd =_cebbd .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _baadd !=nil {_baadd =_ce .TraceToDirectObject (_baadd );_cdbbee ,_fggeb :=_baadd .(*_ce .PdfObjectArray );if !_fggeb {_ff .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)",_baadd );
|
||
return nil ,_ce .ErrTypeError ;};_adfga .Background =_cdbbee ;};_baadd =_cebbd .Get ("\u0042\u0042\u006f\u0078");if _baadd !=nil {_baadd =_ce .TraceToDirectObject (_baadd );_ebdaa ,_afedb :=_baadd .(*_ce .PdfObjectArray );if !_afedb {_ff .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)",_baadd );
|
||
return nil ,_ce .ErrTypeError ;};_gebca ,_eefdb :=NewPdfRectangle (*_ebdaa );if _eefdb !=nil {_ff .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_eefdb );return nil ,_eefdb ;};_adfga .BBox =_gebca ;};_baadd =_cebbd .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _baadd !=nil {_baadd =_ce .TraceToDirectObject (_baadd );_gdfacg ,_bdgde :=_baadd .(*_ce .PdfObjectBool );if !_bdgde {_ff .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",_baadd );
|
||
return nil ,_ce .ErrTypeError ;};_adfga .AntiAlias =_gdfacg ;};switch *_feaf {case 1:_efgb ,_befdd :=_geca (_cebbd );if _befdd !=nil {return nil ,_befdd ;};_efgb .PdfShading =_adfga ;_adfga ._aadbc =_efgb ;return _adfga ,nil ;case 2:_ggfed ,_ffdcd :=_gfabd (_cebbd );
|
||
if _ffdcd !=nil {return nil ,_ffdcd ;};_ggfed .PdfShading =_adfga ;_adfga ._aadbc =_ggfed ;return _adfga ,nil ;case 3:_cfefce ,_egcec :=_bfddba (_cebbd );if _egcec !=nil {return nil ,_egcec ;};_cfefce .PdfShading =_adfga ;_adfga ._aadbc =_cfefce ;return _adfga ,nil ;
|
||
case 4:_agcfe ,_badgf :=_eefcd (_cebbd );if _badgf !=nil {return nil ,_badgf ;};_agcfe .PdfShading =_adfga ;_adfga ._aadbc =_agcfe ;return _adfga ,nil ;case 5:_bfbg ,_eeddf :=_acdb (_cebbd );if _eeddf !=nil {return nil ,_eeddf ;};_bfbg .PdfShading =_adfga ;
|
||
_adfga ._aadbc =_bfbg ;return _adfga ,nil ;case 6:_fgaf ,_gdca :=_face (_cebbd );if _gdca !=nil {return nil ,_gdca ;};_fgaf .PdfShading =_adfga ;_adfga ._aadbc =_fgaf ;return _adfga ,nil ;case 7:_gegcc ,_gdfga :=_cfea (_cebbd );if _gdfga !=nil {return nil ,_gdfga ;
|
||
};_gegcc .PdfShading =_adfga ;_adfga ._aadbc =_gegcc ;return _adfga ,nil ;};return nil ,_ge .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_eccaa *Permissions )GetContainingPdfObject ()_ce .PdfObject {return _eccaa ._ffegb };
|
||
|
||
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
|
||
func (_bgbcf *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _bgbcf ._afda .GetRevisionNumber ()==0{return nil ,_ge .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 _bccfb ,_fgabeb :=_bgbcf ._fdeb [_bgbcf ];_fgabeb {return _bccfb ,nil ;};_fdgfga ,_bgfad :=_bgbcf ._afda .GetPreviousRevisionReadSeeker ();if _bgfad !=nil {return nil ,_bgfad ;};_beafd ,_bgfad :=_aaegd (_fdgfga ,_bgbcf ._dcggg ,_bgbcf ._cdffg ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
|
||
if _bgfad !=nil {return nil ,_bgfad ;};_bgbcf ._eedce [_bgbcf ._afda .GetRevisionNumber ()-1]=_beafd ;_bgbcf ._fdeb [_bgbcf ]=_beafd ;_beafd ._fdeb =_bgbcf ._fdeb ;return _beafd ,nil ;};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_gbcd :=map[rune ]int {};for _ ,_ggaa :=range text {_gbcd [_ggaa ]++;};return _gbcd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gbfc *PdfAnnotation3D )ToPdfObject ()_ce .PdfObject {_gbfc .PdfAnnotation .ToPdfObject ();_ggdg :=_gbfc ._dec ;_fbbb :=_ggdg .PdfObject .(*_ce .PdfObjectDictionary );_fbbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0033\u0044"));
|
||
_fbbb .SetIfNotNil ("\u0033\u0044\u0044",_gbfc .T3DD );_fbbb .SetIfNotNil ("\u0033\u0044\u0056",_gbfc .T3DV );_fbbb .SetIfNotNil ("\u0033\u0044\u0041",_gbfc .T3DA );_fbbb .SetIfNotNil ("\u0033\u0044\u0049",_gbfc .T3DI );_fbbb .SetIfNotNil ("\u0033\u0044\u0042",_gbfc .T3DB );
|
||
return _ggdg ;};
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_cggba *modelManager )GetModelFromPrimitive (primitive _ce .PdfObject )PdfModel {model ,_fcaea :=_cggba ._adbfe [primitive ];if !_fcaea {return nil ;};return model ;};func _efagg (_baee *_ce .PdfObjectStream )(*PdfFunctionType4 ,error ){_cdbbe :=&PdfFunctionType4 {};
|
||
_cdbbe ._ebecf =_baee ;_afcde :=_baee .PdfObjectDictionary ;_ecbbc ,_gedab :=_ce .TraceToDirectObject (_afcde .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ce .PdfObjectArray );if !_gedab {_ff .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_ge .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 _ecbbc .Len ()%2!=0{_ff .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
return nil ,_ge .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_bfec ,_gggbf :=_ecbbc .ToFloat64Array ();if _gggbf !=nil {return nil ,_gggbf ;};_cdbbe .Domain =_bfec ;_ecbbc ,_gedab =_ce .TraceToDirectObject (_afcde .Get ("\u0052\u0061\u006eg\u0065")).(*_ce .PdfObjectArray );
|
||
if _gedab {if _ecbbc .Len ()< 0||_ecbbc .Len ()%2!=0{return nil ,_ge .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_gdea ,_aecg :=_ecbbc .ToFloat64Array ();if _aecg !=nil {return nil ,_aecg ;};_cdbbe .Range =_gdea ;
|
||
};_efcd ,_gggbf :=_ce .DecodeStream (_baee );if _gggbf !=nil {return nil ,_gggbf ;};_cdbbe ._caec =_efcd ;_ddcc :=_caa .NewPSParser (_efcd );_bbbc ,_gggbf :=_ddcc .Parse ();if _gggbf !=nil {return nil ,_gggbf ;};_cdbbe .Program =_bbbc ;return _cdbbe ,nil ;
|
||
};func (_gcfb *PdfFont )baseFields ()*fontCommon {if _gcfb ._dace ==nil {_ff .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 _gcfb ._dace .baseFields ();};
|
||
|
||
// 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 (_agedb *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ce .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_egbb ,_cebd :=_ce .GetNumbersAsFloat (objects );
|
||
if _cebd !=nil {return nil ,_cebd ;};return _agedb .ColorFromFloats (_egbb );};
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _ce .PdfObject ;};
|
||
|
||
// 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 (_aedcb *_ffa .Document )error ;};
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_cdea *PdfPage )AddExtGState (name _ce .PdfObjectName ,egs *_ce .PdfObjectDictionary )error {if _cdea .Resources ==nil {_cdea .Resources =NewPdfPageResources ();};if _cdea .Resources .ExtGState ==nil {_cdea .Resources .ExtGState =_ce .MakeDict ();
|
||
};_acfdd ,_acagc :=_ce .TraceToDirectObject (_cdea .Resources .ExtGState ).(*_ce .PdfObjectDictionary );if !_acagc {_ff .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",_ce .TraceToDirectObject (_cdea .Resources .ExtGState ));
|
||
return _ge .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_acfdd .Set (name ,egs );return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cabeb *PdfAnnotationFreeText )ToPdfObject ()_ce .PdfObject {_cabeb .PdfAnnotation .ToPdfObject ();_faca :=_cabeb ._dec ;_eeb :=_faca .PdfObject .(*_ce .PdfObjectDictionary );_cabeb .PdfAnnotationMarkup .appendToPdfDictionary (_eeb );_eeb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ce .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_eeb .SetIfNotNil ("\u0044\u0041",_cabeb .DA );_eeb .SetIfNotNil ("\u0051",_cabeb .Q );_eeb .SetIfNotNil ("\u0052\u0043",_cabeb .RC );_eeb .SetIfNotNil ("\u0044\u0053",_cabeb .DS );_eeb .SetIfNotNil ("\u0043\u004c",_cabeb .CL );_eeb .SetIfNotNil ("\u0049\u0054",_cabeb .IT );
|
||
_eeb .SetIfNotNil ("\u0042\u0045",_cabeb .BE );_eeb .SetIfNotNil ("\u0052\u0044",_cabeb .RD );_eeb .SetIfNotNil ("\u0042\u0053",_cabeb .BS );_eeb .SetIfNotNil ("\u004c\u0045",_cabeb .LE );return _faca ;};func (_cbge *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
|
||
func _ffba (_ccdac *_gf .ImageBase )(_bcbfd Image ){_bcbfd .Width =int64 (_ccdac .Width );_bcbfd .Height =int64 (_ccdac .Height );_bcbfd .BitsPerComponent =int64 (_ccdac .BitsPerComponent );_bcbfd .ColorComponents =_ccdac .ColorComponents ;_bcbfd .Data =_ccdac .Data ;
|
||
_bcbfd ._bffb =_ccdac .Decode ;_bcbfd ._cdecc =_ccdac .Alpha ;return _bcbfd ;};func (_cgd *PdfReader )newPdfActionGotoFromDict (_fda *_ce .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_fda .Get ("\u0044")},nil ;};type fontFile struct{_abdd string ;
|
||
_cbede string ;_bagea _dc .SimpleEncoder ;};func (_eabbc *PdfWriter )checkPendingObjects (){for _baccb ,_cbebg :=range _eabbc ._dggcg {if !_eabbc .hasObject (_baccb ){_ff .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",_baccb ,_baccb ,_baccb );
|
||
for _ ,_dagec :=range _cbebg {for _ ,_fceed :=range _dagec .Keys (){_fcbab :=_dagec .Get (_fceed );if _fcbab ==_baccb {_ff .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");
|
||
_dagec .Set (_fceed ,_ce .MakeNull ());break ;};};};};};};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_cbfb :=&PdfColorspaceSpecialSeparation {};return _cbfb ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_gfaea *PdfTransformParamsDocMDP )WriteString ()string {return _gfaea .ToPdfObject ().WriteString ();};func (_cfacb *Image )getSuitableEncoder ()(_ce .StreamEncoder ,error ){var (_gdaac ,_adge =int (_cfacb .Width ),int (_cfacb .Height );_dcbcb =make (map[string ]bool );
|
||
_cbfa =true ;_cfad =false ;_agcf =func ()*_ce .DCTEncoder {return _ce .NewDCTEncoder ()};_ffcfg =func ()*_ce .DCTEncoder {_dgffg :=_ce .NewDCTEncoder ();_dgffg .BitsPerComponent =16;return _dgffg };);for _adbbb :=0;_adbbb < _adge ;_adbbb ++{for _dabacc :=0;
|
||
_dabacc < _gdaac ;_dabacc ++{_cfgae ,_accgf :=_cfacb .ColorAt (_dabacc ,_adbbb );if _accgf !=nil {return nil ,_accgf ;};_fcgdg ,_efcdf ,_ebfac ,_agffa :=_cfgae .RGBA ();if _cbfa &&(_fcgdg !=_efcdf ||_fcgdg !=_ebfac ||_efcdf !=_ebfac ){_cbfa =false ;};if !_cfad {switch _cfgae .(type ){case _cc .NRGBA :_cfad =_agffa > 0;
|
||
};};_dcbcb [_e .Sprintf ("\u0025\u0064\u002c\u0025\u0064\u002c\u0025\u0064",_fcgdg ,_efcdf ,_ebfac )]=true ;if len (_dcbcb )> 2&&_cfad {return _ffcfg (),nil ;};};};if _cfad ||len (_cfacb ._cdecc )> 0{return _ce .NewFlateEncoder (),nil ;};if len (_dcbcb )<=2{_gbfad :=_cfacb .ConvertToBinary ();
|
||
if _gbfad !=nil {return nil ,_gbfad ;};return _ce .NewJBIG2Encoder (),nil ;};if _cbfa {return _agcf (),nil ;};if _cfacb .ColorComponents ==1{if _cfacb .BitsPerComponent ==1{return _ce .NewJBIG2Encoder (),nil ;}else if _cfacb .BitsPerComponent ==8{_cbaee :=_ce .NewDCTEncoder ();
|
||
_cbaee .ColorComponents =1;return _cbaee ,nil ;};}else if _cfacb .ColorComponents ==3{if _cfacb .BitsPerComponent ==8{return _agcf (),nil ;}else if _cfacb .BitsPerComponent ==16{return _ffcfg (),nil ;};}else if _cfacb .ColorComponents ==4{_gagb :=_ffcfg ();
|
||
_gagb .ColorComponents =4;return _gagb ,nil ;};return _ffcfg (),nil ;};
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_facc _ce .PdfObject ;};
|
||
|
||
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
|
||
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_ggad :=&PdfShadingPatternType2 {};_ggad .Matrix =_ce .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_ggad .PdfPattern =&PdfPattern {};_ggad .PdfPattern .PatternType =int64 (*_ce .MakeInteger (2));
|
||
_ggad .PdfPattern ._fbea =_ggad ;_ggad .PdfPattern ._gadcb =_ce .MakeIndirectObject (_ce .MakeDict ());return _ggad ;};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;func (_ebdg *PdfAppender )replaceObject (_aebd ,_aced _ce .PdfObject ){switch _gdgad :=_aebd .(type ){case *_ce .PdfIndirectObject :_ebdg ._fadeg [_aced ]=_gdgad .ObjectNumber ;case *_ce .PdfObjectStream :_ebdg ._fadeg [_aced ]=_gdgad .ObjectNumber ;
|
||
};};
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _ce .PdfObject ;Volume _ce .PdfObject ;Synchronous _ce .PdfObject ;Repeat _ce .PdfObject ;Mix _ce .PdfObject ;};func (_afeg *PdfField )inherit (_feag func (*PdfField )bool )(bool ,error ){_cedg :=map[*PdfField ]bool {};
|
||
_gecec :=false ;_ceda :=_afeg ;for _ceda !=nil {if _ ,_ebdge :=_cedg [_ceda ];_ebdge {return false ,_ge .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_fdcb :=_feag (_ceda );if _fdcb {_gecec =true ;
|
||
break ;};_cedg [_ceda ]=true ;_ceda =_ceda .Parent ;};return _gecec ,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 (_bbaa *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ge .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ceab :=vals [0];if _ceab < 0.0||_ceab > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ceab );
|
||
return nil ,ErrColorOutOfRange ;};_gacgb :=vals [1];if _gacgb < 0.0||_gacgb > 1.0{_ff .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gacgb );return nil ,ErrColorOutOfRange ;
|
||
};_eacd :=vals [2];if _eacd < 0.0||_eacd > 1.0{_ff .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 ;};_dfga :=NewPdfColorCalRGB (_ceab ,_gacgb ,_eacd );
|
||
return _dfga ,nil ;};func (_afb *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_beab :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_e .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_beab .N =N ;return _beab ,nil ;};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_dgcdd *OutlineItem )Insert (index uint ,item *OutlineItem ){_cffcb :=uint (len (_dgcdd .Entries ));if index > _cffcb {index =_cffcb ;};_dgcdd .Entries =append (_dgcdd .Entries [:index ],append ([]*OutlineItem {item },_dgcdd .Entries [index :]...)...);
|
||
}; |