mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-29 13:48:54 +08:00
4982 lines
740 KiB
Go
4982 lines
740 KiB
Go
//
|
||
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
||
//
|
||
// This is a commercial product and requires a license to operate.
|
||
// A trial license can be obtained at https://unidoc.io
|
||
//
|
||
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
||
//
|
||
// Use of this source code is governed by the UniDoc End User License Agreement
|
||
// terms that can be accessed at https://unidoc.io/eula/
|
||
|
||
// Package model provides an interface for working with high-level objects (models) in PDF files, including
|
||
// reading and writing documents.
|
||
//
|
||
// The document structure of a PDF is constructed of a hierarchy of data models, representing a tree
|
||
// of information starting from the Document catalog (Figure 5 p. 80).
|
||
// It is based on the core package which handles core functionality such as file i/o, parsing and
|
||
// handling of primitive PDF objects (core.PdfObject).
|
||
//
|
||
// As an example of the interface, the following snippet can read the PDF and output the number of pages:
|
||
//
|
||
// f, err := os.Open(inputPath)
|
||
// if err != nil {
|
||
// return nil, err
|
||
// }
|
||
// defer f.Close()
|
||
// pdfReader, err := unipdf.NewPdfReader(f)
|
||
// if err != nil {
|
||
// fmt.Printf("Failed to read PDF file: %v\n", err)
|
||
// os.Exit(1)
|
||
// }
|
||
// numPages, err := pdfReader.GetNumPages()
|
||
// if err != nil {
|
||
// fmt.Printf("Failed to get number of pages: %v\n", err)
|
||
// os.Exit(1)
|
||
// }
|
||
// fmt.Printf("The PDF file has %d pages\n", numPages)
|
||
//
|
||
// For more examples, see the unidoc-examples repository on GitHub: https://github.com/unidoc/unidoc-examples
|
||
package model ;import (_b "bufio";_fd "bytes";_dd "crypto/md5";_ff "crypto/rand";_bf "crypto/sha1";_fc "crypto/x509";_ee "encoding/binary";_f "encoding/hex";_af "errors";_d "fmt";_eec "github.com/unidoc/pkcs7";_gd "github.com/unidoc/unipdf/v3/common";_ac "github.com/unidoc/unipdf/v3/core";
|
||
_eece "github.com/unidoc/unipdf/v3/core/security";_afa "github.com/unidoc/unipdf/v3/core/security/crypt";_eg "github.com/unidoc/unipdf/v3/internal/cmap";_ed "github.com/unidoc/unipdf/v3/internal/imageutil";_cb "github.com/unidoc/unipdf/v3/internal/license";
|
||
_cg "github.com/unidoc/unipdf/v3/internal/sampling";_gf "github.com/unidoc/unipdf/v3/internal/textencoding";_cd "github.com/unidoc/unipdf/v3/internal/timeutils";_ba "github.com/unidoc/unipdf/v3/internal/transform";_fe "github.com/unidoc/unipdf/v3/model/internal/docutil";
|
||
_fda "github.com/unidoc/unipdf/v3/model/internal/fonts";_ca "github.com/unidoc/unipdf/v3/model/mdp";_dc "github.com/unidoc/unipdf/v3/model/sigutil";_bb "github.com/unidoc/unipdf/v3/ps";_bd "github.com/unidoc/unitype";_bg "golang.org/x/xerrors";_g "hash";
|
||
_ad "image";_bc "image/color";_ "image/gif";_ "image/png";_adc "io";_ea "io/ioutil";_da "math";_be "math/rand";_cef "os";_ce "regexp";_fb "sort";_ae "strconv";_fg "strings";_dg "sync";_e "time";_ffb "unicode";_gb "unicode/utf8";);
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_dfea *BorderStyle )GetPdfName ()string {switch *_dfea {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};func _fdgge (_affc *_ac .PdfObjectDictionary )(*PdfShadingType1 ,error ){_dccg :=PdfShadingType1 {};if _dcedd :=_affc .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_dcedd !=nil {_dcedd =_ac .TraceToDirectObject (_dcedd );_cgee ,_ggacb :=_dcedd .(*_ac .PdfObjectArray );
|
||
if !_ggacb {_gd .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",_dcedd );return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_dccg .Domain =_cgee ;};if _dacf :=_affc .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_dacf !=nil {_dacf =_ac .TraceToDirectObject (_dacf );_cbdfc ,_gcbacc :=_dacf .(*_ac .PdfObjectArray );if !_gcbacc {_gd .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",_dacf );
|
||
return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dccg .Matrix =_cbdfc ;};_agce :=_affc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _agce ==nil {_gd .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 ;};_dccg .Function =[]PdfFunction {};if _dabad ,_bedfc :=_agce .(*_ac .PdfObjectArray );_bedfc {for _ ,_fgba :=range _dabad .Elements (){_cfedf ,_dbacd :=_gcddf (_fgba );if _dbacd !=nil {_gd .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",_dbacd );
|
||
return nil ,_dbacd ;};_dccg .Function =append (_dccg .Function ,_cfedf );};}else {_ggffe ,_ggegc :=_gcddf (_agce );if _ggegc !=nil {_gd .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",_ggegc );
|
||
return nil ,_ggegc ;};_dccg .Function =append (_dccg .Function ,_ggffe );};return &_dccg ,nil ;};
|
||
|
||
// SubsetRegistered subsets the font to only the glyphs that have been registered by the encoder.
|
||
//
|
||
// NOTE: This only works on fonts that support subsetting. For unsupported fonts this is a no-op, although a debug
|
||
// message is emitted. Currently supported fonts are embedded Truetype CID fonts (type 0).
|
||
//
|
||
// NOTE: Make sure to call this soon before writing (once all needed runes have been registered).
|
||
// If using package creator, use its EnableFontSubsetting method instead.
|
||
func (_beca *PdfFont )SubsetRegistered ()error {switch _eeaag :=_beca ._gegb .(type ){case *pdfFontType0 :_ffcaf :=_eeaag .subsetRegistered ();if _ffcaf !=nil {_gd .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ffcaf );
|
||
return _ffcaf ;};if _eeaag ._agcb !=nil {if _eeaag ._edfdd !=nil {_eeaag ._edfdd .ToPdfObject ();};_eeaag .ToPdfObject ();};default:_gd .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",_eeaag );
|
||
};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_decff *PdfFunctionType2 )ToPdfObject ()_ac .PdfObject {_afba :=_ac .MakeDict ();_afba .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (2));_ffdc :=&_ac .PdfObjectArray {};for _ ,_eadgf :=range _decff .Domain {_ffdc .Append (_ac .MakeFloat (_eadgf ));
|
||
};_afba .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ffdc );if _decff .Range !=nil {_cfdg :=&_ac .PdfObjectArray {};for _ ,_gdcaf :=range _decff .Range {_cfdg .Append (_ac .MakeFloat (_gdcaf ));};_afba .Set ("\u0052\u0061\u006eg\u0065",_cfdg );};if _decff .C0 !=nil {_gfbd :=&_ac .PdfObjectArray {};
|
||
for _ ,_eadea :=range _decff .C0 {_gfbd .Append (_ac .MakeFloat (_eadea ));};_afba .Set ("\u0043\u0030",_gfbd );};if _decff .C1 !=nil {_afef :=&_ac .PdfObjectArray {};for _ ,_ddfcb :=range _decff .C1 {_afef .Append (_ac .MakeFloat (_ddfcb ));};_afba .Set ("\u0043\u0031",_afef );
|
||
};_afba .Set ("\u004e",_ac .MakeFloat (_decff .N ));if _decff ._eaadg !=nil {_decff ._eaadg .PdfObject =_afba ;return _decff ._eaadg ;};return _afba ;};func (_dfae *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
|
||
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_fda .CharMetrics ;
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gdbc *PdfShadingType5 )ToPdfObject ()_ac .PdfObject {_gdbc .PdfShading .ToPdfObject ();_efefa ,_cafed :=_gdbc .getShadingDict ();if _cafed !=nil {_gd .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 _gdbc .BitsPerCoordinate !=nil {_efefa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gdbc .BitsPerCoordinate );};if _gdbc .BitsPerComponent !=nil {_efefa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gdbc .BitsPerComponent );
|
||
};if _gdbc .VerticesPerRow !=nil {_efefa .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_gdbc .VerticesPerRow );};if _gdbc .Decode !=nil {_efefa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gdbc .Decode );};if _gdbc .Function !=nil {if len (_gdbc .Function )==1{_efefa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdbc .Function [0].ToPdfObject ());
|
||
}else {_aabe :=_ac .MakeArray ();for _ ,_agcbac :=range _gdbc .Function {_aabe .Append (_agcbac .ToPdfObject ());};_efefa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aabe );};};return _gdbc ._dffbg ;};
|
||
|
||
// GetRotate gets the inheritable rotate value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_ffdf *PdfPage )GetRotate ()(int64 ,error ){if _ffdf .Rotate !=nil {return *_ffdf .Rotate ,nil ;};_beab :=_ffdf .Parent ;for _beab !=nil {_cfbba ,_geab :=_ac .GetDict (_beab );if !_geab {return 0,_af .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 _gbbcb :=_cfbba .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_gbbcb !=nil {_fdeg ,_bfgd :=_ac .GetInt (_gbbcb );if !_bfgd {return 0,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _fdeg !=nil {return int64 (*_fdeg ),nil ;
|
||
};return 0,_af .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_beab =_cfbba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_af .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abb *PdfActionRendition )ToPdfObject ()_ac .PdfObject {_abb .PdfAction .ToPdfObject ();_ecb :=_abb ._eef ;_bee :=_ecb .PdfObject .(*_ac .PdfObjectDictionary );_bee .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeRendition )));_bee .SetIfNotNil ("\u0052",_abb .R );
|
||
_bee .SetIfNotNil ("\u0041\u004e",_abb .AN );_bee .SetIfNotNil ("\u004f\u0050",_abb .OP );_bee .SetIfNotNil ("\u004a\u0053",_abb .JS );return _ecb ;};
|
||
|
||
// 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 (_beff *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eafc :=vals [0];if _eafc < 0.0||_eafc > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eafc );
|
||
return nil ,ErrColorOutOfRange ;};_cgcc :=vals [1];if _cgcc < 0.0||_cgcc > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eafc );return nil ,ErrColorOutOfRange ;
|
||
};_ggcf :=vals [2];if _ggcf < 0.0||_ggcf > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_eafc );return nil ,ErrColorOutOfRange ;};_daa :=NewPdfColorDeviceRGB (_eafc ,_cgcc ,_ggcf );
|
||
return _daa ,nil ;};
|
||
|
||
// RepairAcroForm attempts to rebuild the AcroForm fields using the widget
|
||
// annotations present in the document pages. Pass nil for the opts parameter
|
||
// in order to use the default options.
|
||
// NOTE: Currently, the opts parameter is declared in order to enable adding
|
||
// future options, but passing nil will always result in the default options
|
||
// being used.
|
||
func (_gddcc *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _gadca []*PdfField ;_cbcfc :=map[*_ac .PdfIndirectObject ]struct{}{};for _ ,_eacae :=range _gddcc .PageList {_begbd ,_efdce :=_eacae .GetAnnotations ();if _efdce !=nil {return _efdce ;
|
||
};for _ ,_gfabe :=range _begbd {var _daeba *PdfField ;switch _egce :=_gfabe .GetContext ().(type ){case *PdfAnnotationWidget :if _egce ._gdb !=nil {_daeba =_egce ._gdb ;break ;};if _agegc ,_cdfe :=_ac .GetIndirect (_egce .Parent );_cdfe {_daeba ,_efdce =_gddcc .newPdfFieldFromIndirectObject (_agegc ,nil );
|
||
if _efdce ==nil {break ;};_gd .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",_agegc ,_efdce );
|
||
};if _egce ._fegd !=nil {_daeba ,_efdce =_gddcc .newPdfFieldFromIndirectObject (_egce ._fegd ,nil );if _efdce ==nil {break ;};_gd .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",_egce ._fegd ,_efdce );
|
||
};};if _daeba ==nil {continue ;};if _ ,_cefbe :=_cbcfc [_daeba ._bdde ];_cefbe {continue ;};_cbcfc [_daeba ._bdde ]=struct{}{};_gadca =append (_gadca ,_daeba );};};if len (_gadca )==0{return nil ;};if _gddcc .AcroForm ==nil {_gddcc .AcroForm =NewPdfAcroForm ();
|
||
};_gddcc .AcroForm .Fields =&_gadca ;return nil ;};func (_bcbc *PdfReader )newPdfAnnotationPrinterMarkFromDict (_eadb *_ac .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_bdbg :=PdfAnnotationPrinterMark {};_bdbg .MN =_eadb .Get ("\u004d\u004e");
|
||
return &_bdbg ,nil ;};
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_dgedd []byte )(_bgfee int ,_gcgef error );};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _ac .PdfObjectName ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_agff *PdfColorCalRGB )C ()float64 {return _agff [2]};func (_edebd *PdfReader )buildOutlineTree (_cgdfe _ac .PdfObject ,_dcgeb *PdfOutlineTreeNode ,_gggdc *PdfOutlineTreeNode ,_bfeca map[_ac .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _bfeca ==nil {_bfeca =map[_ac .PdfObject ]struct{}{};
|
||
};_bfeca [_cgdfe ]=struct{}{};_acbbe ,_feeff :=_cgdfe .(*_ac .PdfIndirectObject );if !_feeff {return nil ,nil ,_d .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",_cgdfe );
|
||
};_gafge ,_eagab :=_acbbe .PdfObject .(*_ac .PdfObjectDictionary );if !_eagab {return nil ,nil ,_af .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_gd .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",_gafge ,_acbbe ,_acbbe );
|
||
if _fcdec :=_gafge .Get ("\u0054\u0069\u0074l\u0065");_fcdec !=nil {_dgaed ,_acaea :=_edebd .newPdfOutlineItemFromIndirectObject (_acbbe );if _acaea !=nil {return nil ,nil ,_acaea ;};_dgaed .Parent =_dcgeb ;_dgaed .Prev =_gggdc ;_ggdf :=_ac .ResolveReference (_gafge .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_edeaa :=_bfeca [_ggdf ];_ggdf !=nil &&_ggdf !=_acbbe &&!_edeaa {if !_ac .IsNullObject (_ggdf ){_edfced ,_fdbaa ,_daaebe :=_edebd .buildOutlineTree (_ggdf ,&_dgaed .PdfOutlineTreeNode ,nil ,_bfeca );if _daaebe !=nil {_gd .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",_daaebe );
|
||
}else {_dgaed .First =_edfced ;_dgaed .Last =_fdbaa ;};};};_gddfe :=_ac .ResolveReference (_gafge .Get ("\u004e\u0065\u0078\u0074"));if _ ,_befed :=_bfeca [_gddfe ];_gddfe !=nil &&_gddfe !=_acbbe &&!_befed {if !_ac .IsNullObject (_gddfe ){_eedbad ,_bfcge ,_dcaeg :=_edebd .buildOutlineTree (_gddfe ,_dcgeb ,&_dgaed .PdfOutlineTreeNode ,_bfeca );
|
||
if _dcaeg !=nil {_gd .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",_dcaeg );
|
||
}else {_dgaed .Next =_eedbad ;return &_dgaed .PdfOutlineTreeNode ,_bfcge ,nil ;};};};return &_dgaed .PdfOutlineTreeNode ,&_dgaed .PdfOutlineTreeNode ,nil ;};_feeeg ,_gefcc :=_aefbc (_acbbe );if _gefcc !=nil {return nil ,nil ,_gefcc ;};_feeeg .Parent =_dcgeb ;
|
||
if _aabgg :=_gafge .Get ("\u0046\u0069\u0072s\u0074");_aabgg !=nil {_aabgg =_ac .ResolveReference (_aabgg );if _ ,_abggg :=_bfeca [_aabgg ];_aabgg !=nil &&_aabgg !=_acbbe &&!_abggg {_egeef :=_ac .TraceToDirectObject (_aabgg );if _ ,_fgdd :=_egeef .(*_ac .PdfObjectNull );
|
||
!_fgdd &&_egeef !=nil {_cefab ,_ceeb ,_cffca :=_edebd .buildOutlineTree (_aabgg ,&_feeeg .PdfOutlineTreeNode ,nil ,_bfeca );if _cffca !=nil {_gd .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",_cffca );
|
||
}else {_feeeg .First =_cefab ;_feeeg .Last =_ceeb ;};};};};return &_feeeg .PdfOutlineTreeNode ,&_feeeg .PdfOutlineTreeNode ,nil ;};
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_beabd PdfDate )ToGoTime ()_e .Time {_ffeee :=int (_beabd ._bbdfd *60*60+_beabd ._ecccg *60);switch _beabd ._cbcad {case '-':_ffeee =-_ffeee ;case 'Z':_ffeee =0;};_deeda :=_d .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_beabd ._cbcad ,_beabd ._bbdfd ,_beabd ._ecccg );
|
||
_eafg :=_e .FixedZone (_deeda ,_ffeee );return _e .Date (int (_beabd ._bfbe ),_e .Month (_beabd ._dbbcd ),int (_beabd ._dgfeb ),int (_beabd ._ffgecb ),int (_beabd ._eega ),int (_beabd ._dcebf ),0,_eafg );};
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
|
||
|
||
// 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 ;_bfgde *_ac .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_ac .PdfObjectName ;Filter *_ac .PdfObjectName ;SubFilter *_ac .PdfObjectName ;Contents *_ac .PdfObjectString ;Cert _ac .PdfObject ;ByteRange *_ac .PdfObjectArray ;Reference *_ac .PdfObjectArray ;Changes *_ac .PdfObjectArray ;Name *_ac .PdfObjectString ;
|
||
M *_ac .PdfObjectString ;Location *_ac .PdfObjectString ;Reason *_ac .PdfObjectString ;ContactInfo *_ac .PdfObjectString ;R *_ac .PdfObjectInteger ;V *_ac .PdfObjectInteger ;PropBuild *_ac .PdfObjectDictionary ;PropAuthTime *_ac .PdfObjectInteger ;PropAuthType *_ac .PdfObjectName ;
|
||
};
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_efd :=NewPdfAction ();_ecd :=&PdfActionHide {};_ecd .PdfAction =_efd ;_efd .SetContext (_ecd );return _ecd ;};
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_ceed FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_ceed .Mask ()|fl .Mask ())};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egbf *PdfActionSetOCGState )ToPdfObject ()_ac .PdfObject {_egbf .PdfAction .ToPdfObject ();_aba :=_egbf ._eef ;_caf :=_aba .PdfObject .(*_ac .PdfObjectDictionary );_caf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeSetOCGState )));_caf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_egbf .State );
|
||
_caf .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_egbf .PreserveRB );return _aba ;};type pdfCIDFontType0 struct{fontCommon ;_fece *_ac .PdfIndirectObject ;_bbea _gf .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_ac .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ac .PdfObject ;W _ac .PdfObject ;DW2 _ac .PdfObject ;W2 _ac .PdfObject ;_gabfe map[_gf .CharCode ]float64 ;_fggf float64 ;};
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_fef :=NewPdfAnnotation ();_aggc :=&PdfAnnotationHighlight {};_aggc .PdfAnnotation =_fef ;_aggc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fef .SetContext (_aggc );return _aggc ;};
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_gebggd *PdfWriter )GetOptimizer ()Optimizer {return _gebggd ._bddgd };
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_gfbgd *PdfPattern )IsTiling ()bool {return _gfbgd .PatternType ==1};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_ecedf *PdfWriter )SetDocInfo (info *PdfInfo ){_ecedf .setDocInfo (info .ToPdfObject ())};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_abecf :_ac .MakeIndirectObject (_ac .MakeDict ())};};
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_eabd *_ac .PdfIndirectObject ;};func (_ecda *PdfReader )newPdfAnnotationMovieFromDict (_cceg *_ac .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_dgdb :=PdfAnnotationMovie {};
|
||
_dgdb .T =_cceg .Get ("\u0054");_dgdb .Movie =_cceg .Get ("\u004d\u006f\u0076i\u0065");_dgdb .A =_cceg .Get ("\u0041");return &_dgdb ,nil ;};
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _ac .PdfObject ;Dest _ac .PdfObject ;H _ac .PdfObject ;PA _ac .PdfObject ;QuadPoints _ac .PdfObject ;BS _ac .PdfObject ;_abaf *PdfAction ;_bede *PdfReader ;};func _gbfea (_bafb *_ac .PdfObjectStream )(*PdfFunctionType4 ,error ){_gfff :=&PdfFunctionType4 {};
|
||
_gfff ._adfgg =_bafb ;_caade :=_bafb .PdfObjectDictionary ;_abfbe ,_aeafc :=_ac .TraceToDirectObject (_caade .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );if !_aeafc {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_af .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 _abfbe .Len ()%2!=0{_gd .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_gacagf ,_cbbg :=_abfbe .ToFloat64Array ();if _cbbg !=nil {return nil ,_cbbg ;};_gfff .Domain =_gacagf ;_abfbe ,_aeafc =_ac .TraceToDirectObject (_caade .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );
|
||
if _aeafc {if _abfbe .Len ()< 0||_abfbe .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_cbaa ,_feea :=_abfbe .ToFloat64Array ();if _feea !=nil {return nil ,_feea ;};_gfff .Range =_cbaa ;
|
||
};_ddgee ,_cbbg :=_ac .DecodeStream (_bafb );if _cbbg !=nil {return nil ,_cbbg ;};_gfff ._ccbc =_ddgee ;_bbgb :=_bb .NewPSParser (_ddgee );_fcdd ,_cbbg :=_bbgb .Parse ();if _cbbg !=nil {return nil ,_cbbg ;};_gfff .Program =_fcdd ;return _gfff ,nil ;};
|
||
|
||
// 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 ;_ebga []byte ;_gffd []float64 ;};
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_bdac *PdfFont )ToPdfObject ()_ac .PdfObject {if _bdac ._gegb ==nil {_gd .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 _ac .MakeNull ();
|
||
};return _bdac ._gegb .ToPdfObject ();};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_abddb *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_abddb .NumInputs {_gd .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 ,_af .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _abddb ._gfec ==nil {_gefd :=_abddb .processSamples ();if _gefd !=nil {return nil ,_gefd ;};};_fagg :=_abddb .Encode ;if _fagg ==nil {_fagg =[]float64 {};
|
||
for _fedab :=0;_fedab < len (_abddb .Size );_fedab ++{_fagg =append (_fagg ,0);_fagg =append (_fagg ,float64 (_abddb .Size [_fedab ]-1));};};_adeaf :=_abddb .Decode ;if _adeaf ==nil {_adeaf =_abddb .Range ;};_beffe :=make ([]int ,len (x ));for _afaec :=0;
|
||
_afaec < len (x );_afaec ++{_fadaf :=x [_afaec ];_gbbec :=_da .Min (_da .Max (_fadaf ,_abddb .Domain [2*_afaec ]),_abddb .Domain [2*_afaec +1]);_gfbac :=_ed .LinearInterpolate (_gbbec ,_abddb .Domain [2*_afaec ],_abddb .Domain [2*_afaec +1],_fagg [2*_afaec ],_fagg [2*_afaec +1]);
|
||
_bdee :=_da .Min (_da .Max (_gfbac ,0),float64 (_abddb .Size [_afaec ]-1));_bcddb :=int (_da .Floor (_bdee +0.5));if _bcddb < 0{_bcddb =0;}else if _bcddb > _abddb .Size [_afaec ]{_bcddb =_abddb .Size [_afaec ]-1;};_beffe [_afaec ]=_bcddb ;};_cacda :=_beffe [0];
|
||
for _agaa :=1;_agaa < _abddb .NumInputs ;_agaa ++{_fadg :=_beffe [_agaa ];for _cgead :=0;_cgead < _agaa ;_cgead ++{_fadg *=_abddb .Size [_cgead ];};_cacda +=_fadg ;};_cacda *=_abddb .NumOutputs ;var _bbceb []float64 ;for _dbfdb :=0;_dbfdb < _abddb .NumOutputs ;
|
||
_dbfdb ++{_abde :=_cacda +_dbfdb ;if _abde >=len (_abddb ._gfec ){_gd .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 ;};_baggg :=_abddb ._gfec [_abde ];_aeada :=_ed .LinearInterpolate (float64 (_baggg ),0,_da .Pow (2,float64 (_abddb .BitsPerSample )),_adeaf [2*_dbfdb ],_adeaf [2*_dbfdb +1]);_gebd :=_da .Min (_da .Max (_aeada ,_abddb .Range [2*_dbfdb ]),_abddb .Range [2*_dbfdb +1]);
|
||
_bbceb =append (_bbceb ,_gebd );};return _bbceb ,nil ;};
|
||
|
||
// 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 (_gfadae *_fe .Document )error ;};
|
||
|
||
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
|
||
// flags are specific.
|
||
type FieldFlag uint32 ;
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_ffd :=&PdfAnnotation {};_ffd ._fegd =_ac .MakeIndirectObject (_ac .MakeDict ());return _ffd ;};func (_fdefe *PdfReader )newPdfActionSetOCGStateFromDict (_eefa *_ac .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_eefa .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_eefa .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_edbc *PdfColorDeviceRGB )G ()float64 {return _edbc [1]};func _ceec (_cggfe string )(string ,error ){var _cegbc _fd .Buffer ;_cegbc .WriteString (_cggfe );_fbddf :=make ([]byte ,8+16);_gdabd :=_e .Now ().UTC ().UnixNano ();_ee .BigEndian .PutUint64 (_fbddf ,uint64 (_gdabd ));
|
||
_ ,_facgb :=_ff .Read (_fbddf [8:]);if _facgb !=nil {return "",_facgb ;};_cegbc .WriteString (_f .EncodeToString (_fbddf ));return _cegbc .String (),nil ;};
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _ac .PdfObject ;};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_bfbgc *PdfTilingPattern )GetContentStream ()([]byte ,error ){_fafdf ,_ ,_eafae :=_bfbgc .GetContentStreamWithEncoder ();return _fafdf ,_eafae ;};
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_dbgg *PdfInfo )ToPdfObject ()_ac .PdfObject {_gccd :=_ac .MakeDict ();_gccd .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_dbgg .Title );_gccd .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_dbgg .Author );_gccd .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_dbgg .Subject );
|
||
_gccd .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_dbgg .Keywords );_gccd .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_dbgg .Creator );_gccd .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_dbgg .Producer );
|
||
_gccd .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_dbgg .Trapped );if _dbgg .CreationDate !=nil {_gccd .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_dbgg .CreationDate .ToPdfObject ());};if _dbgg .ModifiedDate !=nil {_gccd .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_dbgg .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_ceeg :=range _dbgg ._ggfb .Keys (){_gccd .SetIfNotNil (_ceeg ,_dbgg ._ggfb .Get (_ceeg ));};return _gccd ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_eecg *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_cdcbb :=_da .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cdcbb *_eecg .A ()),uint32 (_cdcbb *_eecg .B ()),uint32 (_cdcbb *_eecg .C ())};};
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _ac .PdfObject ;};
|
||
|
||
// PdfColorspaceSpecialSeparation is a Separation colorspace.
|
||
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
|
||
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
|
||
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
|
||
// space shall apply the designated colorant directly, according to the tint values supplied.
|
||
//
|
||
// Format: [/Separation name alternateSpace tintTransform]
|
||
type PdfColorspaceSpecialSeparation struct{ColorantName *_ac .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_becg *_ac .PdfIndirectObject ;};
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_ebdab *modelManager )Register (primitive _ac .PdfObject ,model PdfModel ){_ebdab ._ebgfb [model ]=primitive ;_ebdab ._bbefe [primitive ]=model ;};
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_fcgee *PdfPage )GetPageAsIndirectObject ()*_ac .PdfIndirectObject {return _fcgee ._ffda };
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_baggd =subject };
|
||
|
||
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
|
||
func NewPdfInfoFromObject (obj _ac .PdfObject )(*PdfInfo ,error ){var _cfga PdfInfo ;_ebfgc ,_abffe :=obj .(*_ac .PdfObjectDictionary );if !_abffe {return nil ,_d .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 _ ,_bggcb :=range _ebfgc .Keys (){switch _bggcb {case "\u0054\u0069\u0074l\u0065":_cfga .Title ,_ =_ac .GetString (_ebfgc .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_cfga .Author ,_ =_ac .GetString (_ebfgc .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
|
||
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_cfga .Subject ,_ =_ac .GetString (_ebfgc .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_cfga .Keywords ,_ =_ac .GetString (_ebfgc .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
|
||
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_cfga .Creator ,_ =_ac .GetString (_ebfgc .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_cfga .Producer ,_ =_ac .GetString (_ebfgc .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
|
||
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_cfga .Trapped ,_ =_ac .GetName (_ebfgc .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _dagd ,_egef :=_ac .GetString (_ebfgc .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
|
||
_egef &&_dagd .String ()!=""{_cebgg ,_ggaa :=NewPdfDate (_dagd .String ());if _ggaa !=nil {return nil ,_d .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",_ggaa );
|
||
};_cfga .CreationDate =&_cebgg ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _cbcg ,_abgc :=_ac .GetString (_ebfgc .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_abgc &&_cbcg .String ()!=""{_bdec ,_bafeg :=NewPdfDate (_cbcg .String ());if _bafeg !=nil {return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_bafeg );
|
||
};_cfga .ModifiedDate =&_bdec ;};default:_eafce ,_ :=_ac .GetString (_ebfgc .Get (_bggcb ));if _cfga ._ggfb ==nil {_cfga ._ggfb =_ac .MakeDict ();};_cfga ._ggfb .Set (_bggcb ,_eafce );};};return &_cfga ,nil ;};
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_faeca *PdfPage )Duplicate ()*PdfPage {_dddgdd :=*_faeca ;_dddgdd ._egcd =_ac .MakeDict ();_dddgdd ._ffda =_ac .MakeIndirectObject (_dddgdd ._egcd );_dddgdd ._cecfa =*_dddgdd ._egcd ;return &_dddgdd ;};
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_cgbec *PdfPage )ToPdfObject ()_ac .PdfObject {_cbgdc :=_cgbec ._ffda ;_cgbec .GetPageDict ();return _cbgdc ;};func (_egcc *PdfReader )newPdfActionGotoEFromDict (_fae *_ac .PdfObjectDictionary )(*PdfActionGoToE ,error ){_baa ,_aga :=_caec (_fae .Get ("\u0046"));
|
||
if _aga !=nil {return nil ,_aga ;};return &PdfActionGoToE {D :_fae .Get ("\u0044"),NewWindow :_fae .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fae .Get ("\u0054"),F :_baa },nil ;};func _ccbfe (_afacad map[_fda .GID ]int ,_bfbfc uint16 )*_ac .PdfObjectArray {_dgeg :=&_ac .PdfObjectArray {};
|
||
_abfba :=_fda .GID (_bfbfc );for _gaae :=_fda .GID (0);_gaae < _abfba ;{_agea ,_abafd :=_afacad [_gaae ];if !_abafd {_gaae ++;continue ;};_fgea :=_gaae ;for _bcfce :=_fgea +1;_bcfce < _abfba ;_bcfce ++{if _ggda ,_fega :=_afacad [_bcfce ];!_fega ||_agea !=_ggda {break ;
|
||
};_fgea =_bcfce ;};_dgeg .Append (_ac .MakeInteger (int64 (_gaae )));_dgeg .Append (_ac .MakeInteger (int64 (_fgea )));_dgeg .Append (_ac .MakeInteger (int64 (_agea )));_gaae =_fgea +1;};return _dgeg ;};
|
||
|
||
// 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 ;_aebdd *_ac .PdfObjectDictionary ;};
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;RD _ac .PdfObject ;};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_bceba *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _bceba .Range };func _eeaca (_eagcb *_ac .PdfObjectDictionary )(*PdfShadingPattern ,error ){_dcfgf :=&PdfShadingPattern {};_gdbb :=_eagcb .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");
|
||
if _gdbb ==nil {_gd .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_cdcbe ,_bceec :=_gccgd (_gdbb );if _bceec !=nil {_gd .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bceec );
|
||
return nil ,_bceec ;};_dcfgf .Shading =_cdcbe ;if _bgace :=_eagcb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_bgace !=nil {_caafaf ,_gceeg :=_bgace .(*_ac .PdfObjectArray );if !_gceeg {_gd .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",_bgace );
|
||
return nil ,_ac .ErrTypeError ;};_dcfgf .Matrix =_caafaf ;};if _efcca :=_eagcb .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_efcca !=nil {_dcfgf .ExtGState =_efcca ;};return _dcfgf ,nil ;};
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_gbdbac *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_eabe ,_eccc :=color .(*PdfColorDeviceRGB );if !_eccc {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _eabe ,nil ;};func (_dfcde *PdfWriter )updateObjectNumbers (){_abfea :=_dfcde .ObjNumOffset ;_gcbdb :=0;for _ ,_gbeag :=range _dfcde ._gdeaf {_ffcfc :=int64 (_gcbdb +1+_abfea );
|
||
_gaccc :=true ;if _dfcde ._cfgc {if _efgg ,_gdac :=_dfcde ._dgbfe [_gbeag ];_gdac {_ffcfc =_efgg ;_gaccc =false ;};};switch _facbd :=_gbeag .(type ){case *_ac .PdfIndirectObject :_facbd .ObjectNumber =_ffcfc ;_facbd .GenerationNumber =0;case *_ac .PdfObjectStream :_facbd .ObjectNumber =_ffcfc ;
|
||
_facbd .GenerationNumber =0;case *_ac .PdfObjectStreams :_facbd .ObjectNumber =_ffcfc ;_facbd .GenerationNumber =0;default:_gd .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",_facbd );
|
||
continue ;};if _gaccc {_gcbdb ++;};};_daedd :=func (_cddfdd _ac .PdfObject )int64 {switch _eaef :=_cddfdd .(type ){case *_ac .PdfIndirectObject :return _eaef .ObjectNumber ;case *_ac .PdfObjectStream :return _eaef .ObjectNumber ;case *_ac .PdfObjectStreams :return _eaef .ObjectNumber ;
|
||
};return 0;};_fb .SliceStable (_dfcde ._gdeaf ,func (_cdaea ,_bbgfa int )bool {return _daedd (_dfcde ._gdeaf [_cdaea ])< _daedd (_dfcde ._gdeaf [_bbgfa ])});};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_fgb *PdfBorderStyle )SetBorderWidth (width float64 ){_fgb .W =&width };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_degf *PdfAnnotationCircle )ToPdfObject ()_ac .PdfObject {_degf .PdfAnnotation .ToPdfObject ();_dcg :=_degf ._fegd ;_fffg :=_dcg .PdfObject .(*_ac .PdfObjectDictionary );_degf .PdfAnnotationMarkup .appendToPdfDictionary (_fffg );_fffg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_fffg .SetIfNotNil ("\u0042\u0053",_degf .BS );_fffg .SetIfNotNil ("\u0049\u0043",_degf .IC );_fffg .SetIfNotNil ("\u0042\u0045",_degf .BE );_fffg .SetIfNotNil ("\u0052\u0044",_degf .RD );return _dcg ;};
|
||
|
||
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
|
||
func NewPdfTransformParamsDocMDP (permission _ca .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ac .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ac .MakeInteger (int64 (permission )),V :_ac .MakeName ("\u0031\u002e\u0032")};
|
||
};
|
||
|
||
// 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 (_aacf *PdfFieldButton )SetType (btype ButtonType ){_bebb :=uint32 (0);if _aacf .Ff !=nil {_bebb =uint32 (*_aacf .Ff );};switch btype {case ButtonTypePush :_bebb |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_bebb |=FieldFlagRadio .Mask ();
|
||
};_aacf .Ff =_ac .MakeInteger (int64 (_bebb ));};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_acfcg pdfFontType3 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _ebbdc ,_faad :=_acfcg ._fbad [code ];_faad {return _fda .CharMetrics {Wx :_ebbdc },true ;};if _fda .IsStdFont (_fda .StdFontName (_acfcg ._abab )){return _fda .CharMetrics {Wx :250},true ;
|
||
};return _fda .CharMetrics {},false ;};
|
||
|
||
// 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 (_dafac *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_cbbc ,_faac :=color .(*PdfColorPattern );if !_faac {_gd .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 _cbbc .Color ==nil {return color ,nil ;};if _dafac .UnderlyingCS ==nil {return nil ,_af .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _dafac .UnderlyingCS .ColorToRGB (_cbbc .Color );
|
||
};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_cgcce pdfCIDFontType2 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){_efeeg ,_ggab :=_cgcce ._adef [r ];if !_ggab {_ccccc ,_acfc :=_ac .GetInt (_cgcce .DW );if !_acfc {return _fda .CharMetrics {},false ;};_efeeg =int (*_ccccc );};return _fda .CharMetrics {Wx :float64 (_efeeg )},true ;
|
||
};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_begd pdfCIDFontType0 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){_ebfc :=_begd ._fggf ;if _dbeb ,_gcgaa :=_begd ._gabfe [code ];_gcgaa {_ebfc =_dbeb ;};return _fda .CharMetrics {Wx :_ebfc },true ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element in
|
||
// range 0-1.
|
||
func (_caecg *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_acb ,_efgc :=_ac .GetNumbersAsFloat (objects );
|
||
if _efgc !=nil {return nil ,_efgc ;};return _caecg .ColorFromFloats (_acb );};func (_eace *PdfReader )newPdfAnnotationPolyLineFromDict (_cabd *_ac .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_eadad :=PdfAnnotationPolyLine {};_bgdb ,_dgf :=_eace .newPdfAnnotationMarkupFromDict (_cabd );
|
||
if _dgf !=nil {return nil ,_dgf ;};_eadad .PdfAnnotationMarkup =_bgdb ;_eadad .Vertices =_cabd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_eadad .LE =_cabd .Get ("\u004c\u0045");_eadad .BS =_cabd .Get ("\u0042\u0053");_eadad .IC =_cabd .Get ("\u0049\u0043");
|
||
_eadad .BE =_cabd .Get ("\u0042\u0045");_eadad .IT =_cabd .Get ("\u0049\u0054");_eadad .Measure =_cabd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_eadad ,nil ;};
|
||
|
||
// GetOutlinesFlattened returns a flattened list of tree nodes and titles.
|
||
// NOTE: for most use cases, it is recommended to use the high-level GetOutlines
|
||
// method instead, which also provides information regarding the destination
|
||
// of the outline items.
|
||
func (_fbdfb *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _adaca []*PdfOutlineTreeNode ;var _ddgae []string ;var _fedge func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_fedge =func (_gfafb *PdfOutlineTreeNode ,_fcagb *[]*PdfOutlineTreeNode ,_bfdgg *[]string ,_fddb int ){if _gfafb ==nil {return ;
|
||
};if _gfafb ._dagfd ==nil {_gd .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 ;};_fdbff ,_acabe :=_gfafb ._dagfd .(*PdfOutlineItem );if _acabe {*_fcagb =append (*_fcagb ,&_fdbff .PdfOutlineTreeNode );
|
||
_ffde :=_fg .Repeat ("\u0020",_fddb *2)+_fdbff .Title .Decoded ();*_bfdgg =append (*_bfdgg ,_ffde );};if _gfafb .First !=nil {_bcabd :=_fg .Repeat ("\u0020",_fddb *2)+"\u002b";*_bfdgg =append (*_bfdgg ,_bcabd );_fedge (_gfafb .First ,_fcagb ,_bfdgg ,_fddb +1);
|
||
};if _acabe &&_fdbff .Next !=nil {_fedge (_fdbff .Next ,_fcagb ,_bfdgg ,_fddb );};};_fedge (_fbdfb ._adbfg ,&_adaca ,&_ddgae ,0);return _adaca ,_ddgae ,nil ;};func (_acd *PdfAnnotation )String ()string {_ebd :="";_gec ,_ceg :=_acd .ToPdfObject ().(*_ac .PdfIndirectObject );
|
||
if _ceg {_ebd =_d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_acd ._cgf ,_gec .PdfObject .String ());};return _ebd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebcda *PdfSignatureReference )ToPdfObject ()_ac .PdfObject {_feaga :=_ac .MakeDict ();_feaga .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ebcda .Type );_feaga .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_ebcda .TransformMethod );
|
||
_feaga .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_ebcda .TransformParams );_feaga .SetIfNotNil ("\u0044\u0061\u0074\u0061",_ebcda .Data );_feaga .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_ebcda .DigestMethod );
|
||
return _feaga ;};func (_accf *PdfFilespec )getDict ()*_ac .PdfObjectDictionary {if _caad ,_gcdca :=_accf ._fege .(*_ac .PdfIndirectObject );_gcdca {_bgef ,_ecfc :=_caad .PdfObject .(*_ac .PdfObjectDictionary );if !_ecfc {return nil ;};return _bgef ;}else if _bagbe ,_ebeca :=_accf ._fege .(*_ac .PdfObjectDictionary );
|
||
_ebeca {return _bagbe ;}else {_gd .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",_accf ._fege );
|
||
return nil ;};};func (_caff *PdfReader )newPdfActionGoTo3DViewFromDict (_bfd *_ac .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_bfd .Get ("\u0054\u0041"),V :_bfd .Get ("\u0056")},nil ;};
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_ebfe *PdfFieldSignature )ToPdfObject ()_ac .PdfObject {if _ebfe .PdfAnnotationWidget !=nil {_ebfe .PdfAnnotationWidget .ToPdfObject ();};_ebfe .PdfField .ToPdfObject ();_afcb :=_ebfe ._bdde ;_ccde :=_afcb .PdfObject .(*_ac .PdfObjectDictionary );
|
||
_ccde .SetIfNotNil ("\u0046\u0054",_ac .MakeName ("\u0053\u0069\u0067"));_ccde .SetIfNotNil ("\u004c\u006f\u0063\u006b",_ebfe .Lock );_ccde .SetIfNotNil ("\u0053\u0056",_ebfe .SV );if _ebfe .V !=nil {_ccde .SetIfNotNil ("\u0056",_ebfe .V .ToPdfObject ());
|
||
};return _afcb ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_dfec *PdfShadingPatternType2 )ToPdfObject ()_ac .PdfObject {_dfec .PdfPattern .ToPdfObject ();_ccgdc :=_dfec .getDict ();if _dfec .Shading !=nil {_ccgdc .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_dfec .Shading .ToPdfObject ());};if _dfec .Matrix !=nil {_ccgdc .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dfec .Matrix );
|
||
};if _dfec .ExtGState !=nil {_ccgdc .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_dfec .ExtGState );};return _dfec ._fddfb ;};
|
||
|
||
// NewReaderOpts generates a default `ReaderOpts` instance.
|
||
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;RD _ac .PdfObject ;};func (_eeg fontCommon )isCIDFont ()bool {if _eeg ._efebg ==""{_gd .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",_eeg );
|
||
};_fedbe :=false ;switch _eeg ._efebg {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":_fedbe =true ;};_gd .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",_fedbe ,_eeg );
|
||
return _fedbe ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _ac .PdfObject ;FS _ac .PdfObject ;F _ac .PdfObject ;UF _ac .PdfObject ;DOS _ac .PdfObject ;Mac _ac .PdfObject ;Unix _ac .PdfObject ;ID _ac .PdfObject ;V _ac .PdfObject ;EF _ac .PdfObject ;RF _ac .PdfObject ;Desc _ac .PdfObject ;
|
||
CI _ac .PdfObject ;_fege _ac .PdfObject ;};
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_gac :=NewPdfAnnotation ();_edc :=&PdfAnnotationMovie {};_edc .PdfAnnotation =_gac ;_gac .SetContext (_edc );return _edc ;};
|
||
|
||
// 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 (_dfee *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdfb ,_ccegb :=_ac .GetNumbersAsFloat (objects );
|
||
if _ccegb !=nil {return nil ,_ccegb ;};return _dfee .ColorFromFloats (_cdfb );};func (_fbae *PdfReader )newPdfAnnotationFreeTextFromDict (_adbf *_ac .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_cgde :=PdfAnnotationFreeText {};_eba ,_fdc :=_fbae .newPdfAnnotationMarkupFromDict (_adbf );
|
||
if _fdc !=nil {return nil ,_fdc ;};_cgde .PdfAnnotationMarkup =_eba ;_cgde .DA =_adbf .Get ("\u0044\u0041");_cgde .Q =_adbf .Get ("\u0051");_cgde .RC =_adbf .Get ("\u0052\u0043");_cgde .DS =_adbf .Get ("\u0044\u0053");_cgde .CL =_adbf .Get ("\u0043\u004c");
|
||
_cgde .IT =_adbf .Get ("\u0049\u0054");_cgde .BE =_adbf .Get ("\u0042\u0045");_cgde .RD =_adbf .Get ("\u0052\u0044");_cgde .BS =_adbf .Get ("\u0042\u0053");_cgde .LE =_adbf .Get ("\u004c\u0045");return &_cgde ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_abaaf *PdfShading )GetContainingPdfObject ()_ac .PdfObject {return _abaaf ._dffbg };
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_cegd *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ac .PdfObject {_abeeb :=_ac .MakeDict ();if _cegd .Subtype !=nil {_abeeb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_cegd .Subtype );};_abeeb .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_cegd .Colorants );
|
||
_abeeb .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_cegd .Process );_abeeb .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_cegd .MixingHints );if _cegd ._gaag !=nil {_cegd ._gaag .PdfObject =_abeeb ;return _cegd ._gaag ;
|
||
};return _abeeb ;};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_edef *PdfField )FullName ()(string ,error ){var _ecbff _fd .Buffer ;_fdff :=[]string {};if _edef .T !=nil {_fdff =append (_fdff ,_edef .T .Decoded ());};_acbb :=map[*PdfField ]bool {};_acbb [_edef ]=true ;_beadf :=_edef .Parent ;for _beadf !=nil {if _ ,_cbgcg :=_acbb [_beadf ];
|
||
_cbgcg {return _ecbff .String (),_af .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _beadf .T ==nil {return _ecbff .String (),_af .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");
|
||
};_fdff =append (_fdff ,_beadf .T .Decoded ());_acbb [_beadf ]=true ;_beadf =_beadf .Parent ;};for _dbgb :=len (_fdff )-1;_dbgb >=0;_dbgb --{_ecbff .WriteString (_fdff [_dbgb ]);if _dbgb > 0{_ecbff .WriteString ("\u002e");};};return _ecbff .String (),nil ;
|
||
};func _daffc (_fcgcd *_ac .PdfObjectDictionary ,_cfafg *fontCommon )(*pdfCIDFontType2 ,error ){if _cfafg ._efebg !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_gd .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",_cfafg );
|
||
return nil ,_ac .ErrRangeError ;};_eacga :=_gddc (_cfafg );_afaab ,_eeebg :=_ac .GetDict (_fcgcd .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_eeebg {_gd .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",_cfafg );
|
||
return nil ,ErrRequiredAttributeMissing ;};_eacga .CIDSystemInfo =_afaab ;_eacga .DW =_fcgcd .Get ("\u0044\u0057");_eacga .W =_fcgcd .Get ("\u0057");_eacga .DW2 =_fcgcd .Get ("\u0044\u0057\u0032");_eacga .W2 =_fcgcd .Get ("\u0057\u0032");_eacga .CIDToGIDMap =_fcgcd .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_eacga ._ffcf =1000.0;if _bggd ,_fcaa :=_ac .GetNumberAsFloat (_eacga .DW );_fcaa ==nil {_eacga ._ffcf =_bggd ;};_dcbfb ,_eabcg :=_ebfec (_eacga .W );if _eabcg !=nil {return nil ,_eabcg ;};if _dcbfb ==nil {_dcbfb =map[_gf .CharCode ]float64 {};};_eacga ._faab =_dcbfb ;
|
||
return _eacga ,nil ;};
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_cfgd *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_fdbf :=pageNum -1;var _ebeb *PdfPage ;for _faca ,_cdeef :=range _cfgd ._abda {if _faca ==_fdbf {_ebeb =_cdeef ;};};if _ebeb ==nil {return _d .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 _ebeb ._ffda !=nil &&_ebeb ._ffda .GetParser ()==_cfgd ._cbdcd ._eebeg {_ebeb =_ebeb .Duplicate ();_cfgd ._abda [_fdbf ]=_ebeb ;};page =page .Duplicate ();_gfbe (page );_ebag :=_faba (_ebeb );_gbce :=_faba (page );_eaabg :=make (map[_ac .PdfObjectName ]_ac .PdfObjectName );
|
||
for _bafa :=range _gbce {if _ ,_dafa :=_ebag [_bafa ];_dafa {for _edea :=1;true ;_edea ++{_afaa :=_ac .PdfObjectName (string (_bafa )+_ae .Itoa (_edea ));if _ ,_gada :=_ebag [_afaa ];!_gada {_eaabg [_bafa ]=_afaa ;break ;};};};};_bced ,_ccfg :=page .GetContentStreams ();
|
||
if _ccfg !=nil {return _ccfg ;};_ggd ,_ccfg :=_ebeb .GetContentStreams ();if _ccfg !=nil {return _ccfg ;};for _gacb ,_gfba :=range _bced {for _gge ,_cgbe :=range _eaabg {_gfba =_fg .Replace (_gfba ,"\u002f"+string (_gge ),"\u002f"+string (_cgbe ),-1);};
|
||
_bced [_gacb ]=_gfba ;};_ggd =append (_ggd ,_bced ...);if _ccfb :=_ebeb .SetContentStreams (_ggd ,_ac .NewFlateEncoder ());_ccfb !=nil {return _ccfb ;};_ebeb ._ceca =append (_ebeb ._ceca ,page ._ceca ...);if _ebeb .Resources ==nil {_ebeb .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_ebeb .Resources .Font =_cfgd .mergeResources (_ebeb .Resources .Font ,page .Resources .Font ,_eaabg );_ebeb .Resources .XObject =_cfgd .mergeResources (_ebeb .Resources .XObject ,page .Resources .XObject ,_eaabg );_ebeb .Resources .Properties =_cfgd .mergeResources (_ebeb .Resources .Properties ,page .Resources .Properties ,_eaabg );
|
||
if _ebeb .Resources .ProcSet ==nil {_ebeb .Resources .ProcSet =page .Resources .ProcSet ;};_ebeb .Resources .Shading =_cfgd .mergeResources (_ebeb .Resources .Shading ,page .Resources .Shading ,_eaabg );_ebeb .Resources .ExtGState =_cfgd .mergeResources (_ebeb .Resources .ExtGState ,page .Resources .ExtGState ,_eaabg );
|
||
};_ccbe ,_ccfg :=_ebeb .GetMediaBox ();if _ccfg !=nil {return _ccfg ;};_cbag ,_ccfg :=page .GetMediaBox ();if _ccfg !=nil {return _ccfg ;};var _beba bool ;if _ccbe .Llx > _cbag .Llx {_ccbe .Llx =_cbag .Llx ;_beba =true ;};if _ccbe .Lly > _cbag .Lly {_ccbe .Lly =_cbag .Lly ;
|
||
_beba =true ;};if _ccbe .Urx < _cbag .Urx {_ccbe .Urx =_cbag .Urx ;_beba =true ;};if _ccbe .Ury < _cbag .Ury {_ccbe .Ury =_cbag .Ury ;_beba =true ;};if _beba {_ebeb .MediaBox =_ccbe ;};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_geeg *PdfFunctionType3 )ToPdfObject ()_ac .PdfObject {_ccgfge :=_ac .MakeDict ();_ccgfge .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (3));_gaff :=&_ac .PdfObjectArray {};for _ ,_daacg :=range _geeg .Domain {_gaff .Append (_ac .MakeFloat (_daacg ));
|
||
};_ccgfge .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gaff );if _geeg .Range !=nil {_baedb :=&_ac .PdfObjectArray {};for _ ,_dgbaa :=range _geeg .Range {_baedb .Append (_ac .MakeFloat (_dgbaa ));};_ccgfge .Set ("\u0052\u0061\u006eg\u0065",_baedb );};
|
||
if _geeg .Functions !=nil {_edfe :=&_ac .PdfObjectArray {};for _ ,_bgbff :=range _geeg .Functions {_edfe .Append (_bgbff .ToPdfObject ());};_ccgfge .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_edfe );};if _geeg .Bounds !=nil {_eeab :=&_ac .PdfObjectArray {};
|
||
for _ ,_fdffg :=range _geeg .Bounds {_eeab .Append (_ac .MakeFloat (_fdffg ));};_ccgfge .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_eeab );};if _geeg .Encode !=nil {_aafg :=&_ac .PdfObjectArray {};for _ ,_dgedg :=range _geeg .Encode {_aafg .Append (_ac .MakeFloat (_dgedg ));
|
||
};_ccgfge .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_aafg );};if _geeg ._dcbab !=nil {_geeg ._dcbab .PdfObject =_ccgfge ;return _geeg ._dcbab ;};return _ccgfge ;};
|
||
|
||
// 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 ;
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_abfd *PdfColorDeviceCMYK )C ()float64 {return _abfd [0]};
|
||
|
||
// 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 (_bdeg *PdfPage )Size ()(float64 ,float64 ,error ){_bccc ,_cfbbf :=_bdeg .GetMediaBox ();if _cfbbf !=nil {return 0,0,_cfbbf ;};_efeac ,_aceg :=_bccc .Width (),_bccc .Height ();_cdcac ,_cfbbf :=_bdeg .GetRotate ();if _cfbbf !=nil {_gd .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",_cfbbf .Error ());
|
||
};if _gcfee :=_cdcac ;_gcfee %360!=0&&_gcfee %90==0{if _efcba :=(360+_gcfee %360)%360;_efcba ==90||_efcba ==270{_efeac ,_aceg =_aceg ,_efeac ;};};return _efeac ,_aceg ,nil ;};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_cabb *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func (_dabd *pdfFontType0 )subsetRegistered ()error {_eged ,_cbff :=_dabd .DescendantFont ._gegb .(*pdfCIDFontType2 );if !_cbff {_gd .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",_dabd .DescendantFont );
|
||
return nil ;};if _eged ==nil {return nil ;};if _eged ._bgbdc ==nil {_gd .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 _dabd ._edfdd ==nil {_gd .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 ;};_cdcf ,_cbff :=_ac .GetStream (_eged ._bgbdc .FontFile2 );if !_cbff {_gd .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 _af .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_cebf ,_ecge :=_ac .DecodeStream (_cdcf );if _ecge !=nil {_gd .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ecge );
|
||
return _ecge ;};_cagf ,_ecge :=_bd .Parse (_fd .NewReader (_cebf ));if _ecge !=nil {_gd .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 (_cdcf .Stream ));
|
||
return _ecge ;};var _dfddc []rune ;var _fgef *_bd .Font ;switch _dbfcg :=_dabd ._edfdd .(type ){case *_gf .TrueTypeFontEncoder :_dfddc =_dbfcg .RegisteredRunes ();_fgef ,_ecge =_cagf .SubsetKeepRunes (_dfddc );if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );
|
||
return _ecge ;};_dbfcg .SubsetRegistered ();case *_gf .IdentityEncoder :_dfddc =_dbfcg .RegisteredRunes ();_abefe :=make ([]_bd .GlyphIndex ,len (_dfddc ));for _abca ,_afbg :=range _dfddc {_abefe [_abca ]=_bd .GlyphIndex (_afbg );};_fgef ,_ecge =_cagf .SubsetKeepIndices (_abefe );
|
||
if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );return _ecge ;};case _gf .SimpleEncoder :_gdegc :=_dbfcg .Charcodes ();for _ ,_bged :=range _gdegc {_dffe ,_eagfb :=_dbfcg .CharcodeToRune (_bged );if !_eagfb {_gd .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",_bged );
|
||
continue ;};_dfddc =append (_dfddc ,_dffe );};default:return _d .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",_dabd ._edfdd );
|
||
};var _feag _fd .Buffer ;_ecge =_fgef .Write (&_feag );if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );return _ecge ;};if _dabd ._acbbb !=nil {_abcb :=make (map[_eg .CharCode ]rune ,len (_dfddc ));for _ ,_dffd :=range _dfddc {_febb ,_bbcdgc :=_dabd ._edfdd .RuneToCharcode (_dffd );
|
||
if !_bbcdgc {continue ;};_abcb [_eg .CharCode (_febb )]=_dffd ;};_dabd ._acbbb =_eg .NewToUnicodeCMap (_abcb );};_cdcf ,_ecge =_ac .MakeStream (_feag .Bytes (),_ac .NewFlateEncoder ());if _ecge !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ecge );
|
||
return _ecge ;};_cdcf .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ac .MakeInteger (int64 (_feag .Len ())));if _fcda ,_aacaf :=_ac .GetStream (_eged ._bgbdc .FontFile2 );_aacaf {*_fcda =*_cdcf ;}else {_eged ._bgbdc .FontFile2 =_cdcf ;};_bgddc :=_abgae ();
|
||
if len (_dabd ._abab )> 0{_dabd ._abab =_edcgd (_dabd ._abab ,_bgddc );};if len (_eged ._abab )> 0{_eged ._abab =_edcgd (_eged ._abab ,_bgddc );};if len (_dabd ._fgfd )> 0{_dabd ._fgfd =_edcgd (_dabd ._fgfd ,_bgddc );};if _eged ._bgbdc !=nil {_gcge ,_eefd :=_ac .GetName (_eged ._bgbdc .FontName );
|
||
if _eefd &&len (_gcge .String ())> 0{_agged :=_edcgd (_gcge .String (),_bgddc );_eged ._bgbdc .FontName =_ac .MakeName (_agged );};};return nil ;};
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_dbdfa :=PdfPage {};_dbdfa ._egcd =_ac .MakeDict ();_dbdfa .Resources =NewPdfPageResources ();_adgae :=_ac .PdfIndirectObject {};_adgae .PdfObject =_dbdfa ._egcd ;_dbdfa ._ffda =&_adgae ;_dbdfa ._cecfa =*_dbdfa ._egcd ;return &_dbdfa ;
|
||
};
|
||
|
||
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
// Currently, the Outline object can only be used to construct PDF outlines.
|
||
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};func _caae (_aacfe string )map[string ]string {_dfeab :=_bfcbg .Split (_aacfe ,-1);_aefade :=map[string ]string {};for _ ,_gaaca :=range _dfeab {_gegdc :=_bbbe .FindStringSubmatch (_gaaca );
|
||
if _gegdc ==nil {continue ;};_cabe ,_fbaac :=_gegdc [1],_gegdc [2];_aefade [_cabe ]=_fbaac ;};return _aefade ;};func _daedc (_adga *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_adga }};
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_gbacg *PdfWriter )SetForms (form *PdfAcroForm )error {_gbacg ._fggdf =form ;return nil };
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_ac .PdfObjectArray ;Domain *_ac .PdfObjectArray ;Function []PdfFunction ;Extend *_ac .PdfObjectArray ;};func (_ffbc *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";
|
||
};func (_dfagf *DSS )generateHashMap (_ffgd []*_ac .PdfObjectStream )(map[string ]*_ac .PdfObjectStream ,error ){_bfgg :=map[string ]*_ac .PdfObjectStream {};for _ ,_accc :=range _ffgd {_gaec ,_bcbd :=_ac .DecodeStream (_accc );if _bcbd !=nil {return nil ,_bcbd ;
|
||
};_dgfg ,_bcbd :=_gfgdad (_gaec );if _bcbd !=nil {return nil ,_bcbd ;};_bfgg [string (_dgfg )]=_accc ;};return _bfgg ,nil ;};func (_dcbc *PdfReader )newPdfAnnotationPopupFromDict (_bcde *_ac .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_aged :=PdfAnnotationPopup {};
|
||
_aged .Parent =_bcde .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_aged .Open =_bcde .Get ("\u004f\u0070\u0065\u006e");return &_aged ,nil ;};
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_ecdceg *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_ecdceg ._gdfdc .Major =majorVersion ;_ecdceg ._gdfdc .Minor =minorVersion ;};
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ac .PdfObject ;MK _ac .PdfObject ;A _ac .PdfObject ;AA _ac .PdfObject ;};
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};
|
||
|
||
// ParserMetadata gets the parser metadata.
|
||
func (_bgcc *CompliancePdfReader )ParserMetadata ()_ac .ParserMetadata {if _bgcc ._gege ==(_ac .ParserMetadata {}){_bgcc ._gege ,_ =_bgcc ._eebeg .ParserMetadata ();};return _bgcc ._gege ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_faceb *PdfColorspaceLab )GetNumComponents ()int {return 3};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_dgad :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_dgad .N =N ;return _dgad ,nil ;};
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_fde :=NewPdfAction ();_egd :=&PdfActionLaunch {};_egd .PdfAction =_fde ;_fde .SetContext (_egd );return _egd ;};func (_fccf *PdfWriter )setDocInfo (_effef _ac .PdfObject ){if _fccf .hasObject (_fccf ._aefadb ){delete (_fccf ._agbff ,_fccf ._aefadb );
|
||
delete (_fccf ._ebade ,_fccf ._aefadb );for _fdeec ,_afddc :=range _fccf ._gdeaf {if _afddc ==_fccf ._aefadb {copy (_fccf ._gdeaf [_fdeec :],_fccf ._gdeaf [_fdeec +1:]);_fccf ._gdeaf [len (_fccf ._gdeaf )-1]=nil ;_fccf ._gdeaf =_fccf ._gdeaf [:len (_fccf ._gdeaf )-1];
|
||
break ;};};};_baegd :=_ac .PdfIndirectObject {};_baegd .PdfObject =_effef ;_fccf ._aefadb =&_baegd ;_fccf .addObject (&_baegd );};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_efaaa *PdfWriter )AddPage (page *PdfPage )error {const _faeb ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_gfbe (page );_gagbe :=page .ToPdfObject ();_gd .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_gd .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_gagbe );_caef ,_ggffa :=_ac .GetIndirect (_gagbe );if !_ggffa {return _af .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");
|
||
};_gd .Log .Trace ("\u0025\u0073",_caef );_gd .Log .Trace ("\u0025\u0073",_caef .PdfObject );_ggdgg ,_ggffa :=_ac .GetDict (_caef .PdfObject );if !_ggffa {return _af .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");
|
||
};_bfagb ,_ggffa :=_ac .GetName (_ggdgg .Get ("\u0054\u0079\u0070\u0065"));if !_ggffa {return _d .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",_ggdgg .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _bfagb .String ()!="\u0050\u0061\u0067\u0065"{return _af .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");};_daacfe :=[]_ac .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"};
|
||
_bcdg ,_ggdcd :=_ac .GetIndirect (_ggdgg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_gd .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_ggdgg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_ggdcd );
|
||
for _ggdcd {_gd .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bcdg );_bdeb ,_cbeecg :=_ac .GetDict (_bcdg .PdfObject );if !_cbeecg {return _af .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_eagcc :=range _daacfe {_gd .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_eagcc );if _ggdgg .Get (_eagcc )!=nil {_gd .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _bbbee :=_bdeb .Get (_eagcc );_bbbee !=nil {_gd .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_eagcc );_ggdgg .Set (_eagcc ,_bbbee );};};_bcdg ,_ggdcd =_ac .GetIndirect (_bdeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_gd .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bdeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_gd .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_ggdgg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_efaaa ._dagba );_caef .PdfObject =_ggdgg ;_dagdd ,_ggffa :=_ac .GetDict (_efaaa ._dagba .PdfObject );if !_ggffa {return _af .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");
|
||
};_gcbda ,_ggffa :=_ac .GetArray (_dagdd .Get ("\u004b\u0069\u0064\u0073"));if !_ggffa {return _af .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");
|
||
};_gcbda .Append (_caef );_efaaa ._gafba [_ggdgg ]=struct{}{};_fafcb ,_ggffa :=_ac .GetInt (_dagdd .Get ("\u0043\u006f\u0075n\u0074"));if !_ggffa {return _af .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");
|
||
};*_fafcb =*_fafcb +1;if page ._bcfff ==nil {_cfddc :=_cb .Track (_efaaa ._gafbg ,_faeb );if _cfddc !=nil {return _cfddc ;};}else {_bcccac :=_cb .Track (page ._bcfff ._cdgb ,_faeb );if _bcccac !=nil {return _bcccac ;};};_efaaa .addObject (_caef );_ddefcc :=_efaaa .addObjects (_ggdgg );
|
||
if _ddefcc !=nil {return _ddefcc ;};return nil ;};
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_eag :=NewPdfAction ();_ef :=&PdfActionGoToE {};_ef .PdfAction =_eag ;_eag .SetContext (_ef );return _ef ;};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_acc :=NewPdfAnnotation ();_dde :=&PdfAnnotationSquare {};_dde .PdfAnnotation =_acc ;_dde .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_acc .SetContext (_dde );return _dde ;};func (_fdffe *PdfWriter )makeOffSetReference (_bfefg int64 ){_afaba :=_d .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_bfefg );
|
||
_fdffe .writeString (_afaba );_fdffe .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_efab *PdfReader )GetOutlines ()(*Outline ,error ){if _efab ==nil {return nil ,_af .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");
|
||
};_aggdgg :=_efab .GetOutlineTree ();if _aggdgg ==nil {return nil ,_af .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 _faea func (_ecba *PdfOutlineTreeNode ,_acfg *[]*OutlineItem );_faea =func (_gddca *PdfOutlineTreeNode ,_dbdac *[]*OutlineItem ){if _gddca ==nil {return ;};if _gddca ._dagfd ==nil {_gd .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 _eeeef *OutlineItem ;if _effbf ,_cgadf :=_gddca ._dagfd .(*PdfOutlineItem );_cgadf {_cebfc :=_effbf .Dest ;if (_cebfc ==nil ||_ac .IsNullObject (_cebfc ))&&_effbf .A !=nil {if _cbabg ,_eadbb :=_ac .GetDict (_effbf .A );_eadbb {if _ecdfd ,_ebdgg :=_ac .GetArray (_cbabg .Get ("\u0044"));
|
||
_ebdgg {_cebfc =_ecdfd ;}else {_caadde ,_degbb :=_ac .GetString (_cbabg .Get ("\u0044"));if !_degbb {return ;};_defbf ,_degbb :=_efab ._bdfc .Get ("\u004e\u0061\u006de\u0073").(*_ac .PdfObjectReference );if !_degbb {return ;};_fadbg ,_bgaf :=_efab ._eebeg .LookupByReference (*_defbf );
|
||
if _bgaf !=nil {_gd .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",_bgaf .Error ());
|
||
return ;};_ceffa ,_degbb :=_fadbg .(*_ac .PdfIndirectObject );if !_degbb {return ;};_dgaa :=map[_ac .PdfObject ]struct{}{};_bgaf =_efab .buildNameNodes (_ceffa ,_dgaa );if _bgaf !=nil {_gd .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",_bgaf .Error ());
|
||
return ;};for _affaa :=range _dgaa {_gdcfa ,_cccgd :=_ac .GetDict (_affaa );if !_cccgd {continue ;};_aggf ,_cccgd :=_ac .GetArray (_gdcfa .Get ("\u004e\u0061\u006de\u0073"));if !_cccgd {continue ;};for _cffcb ,_agad :=range _aggf .Elements (){switch _agad .(type ){case *_ac .PdfObjectString :if _agad .String ()==_caadde .String (){if _aaeag :=_aggf .Get (_cffcb +1);
|
||
_aaeag !=nil {if _ccafd ,_ccecc :=_ac .GetDict (_aaeag );_ccecc {_cebfc =_ccafd .Get ("\u0044");break ;};};};};};};};};};var _aaeeg OutlineDest ;if _cebfc !=nil &&!_ac .IsNullObject (_cebfc ){if _ceccf ,_fcbbd :=_efgde (_cebfc ,_efab );_fcbbd ==nil {_aaeeg =*_ceccf ;
|
||
}else {_gd .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",_cebfc ,_fcbbd );
|
||
};};_eeeef =NewOutlineItem (_effbf .Title .Decoded (),_aaeeg );*_dbdac =append (*_dbdac ,_eeeef );if _effbf .Next !=nil {_faea (_effbf .Next ,_dbdac );};};if _gddca .First !=nil {if _eeeef !=nil {_dbdac =&_eeeef .Entries ;};_faea (_gddca .First ,_dbdac );
|
||
};};_beacf :=NewOutline ();_faea (_aggdgg ,&_beacf .Entries );return _beacf ,nil ;};func (_egacd *PdfReader )traverseObjectData (_degbba _ac .PdfObject )error {return _ac .ResolveReferencesDeep (_degbba ,_egacd ._cccb );};func (_afddf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _gfdg []*PdfFieldSignature ;
|
||
for _ ,_ebbce :=range _afddf .AllFields (){switch _feba :=_ebbce .GetContext ().(type ){case *PdfFieldSignature :_agdb :=_feba ;_gfdg =append (_gfdg ,_agdb );};};return _gfdg ;};func _bbdbc (_gebaf _ac .PdfObject )(*PdfFunctionType3 ,error ){_fbbab :=&PdfFunctionType3 {};
|
||
var _afcaa *_ac .PdfObjectDictionary ;if _gebde ,_cgaee :=_gebaf .(*_ac .PdfIndirectObject );_cgaee {_adbcb ,_fdccd :=_gebde .PdfObject .(*_ac .PdfObjectDictionary );if !_fdccd {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_fbbab ._dcbab =_gebde ;_afcaa =_adbcb ;}else if _dbed ,_ffbab :=_gebaf .(*_ac .PdfObjectDictionary );_ffbab {_afcaa =_dbed ;}else {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbfe ,_dceee :=_ac .TraceToDirectObject (_afcaa .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );
|
||
if !_dceee {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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 _cbfe .Len ()!=2{_gd .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cgdbc ,_dfaee :=_cbfe .ToFloat64Array ();
|
||
if _dfaee !=nil {return nil ,_dfaee ;};_fbbab .Domain =_cgdbc ;_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );if _dceee {if _cbfe .Len ()< 0||_cbfe .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_fcbfg ,_addea :=_cbfe .ToFloat64Array ();if _addea !=nil {return nil ,_addea ;};_fbbab .Range =_fcbfg ;};_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ac .PdfObjectArray );if !_dceee {_gd .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 ,_af .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");};_fbbab .Functions =[]PdfFunction {};
|
||
for _ ,_ageea :=range _cbfe .Elements (){_ggdd ,_fcfad :=_gcddf (_ageea );if _fcfad !=nil {return nil ,_fcfad ;};_fbbab .Functions =append (_fbbab .Functions ,_ggdd );};_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ac .PdfObjectArray );
|
||
if !_dceee {_gd .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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");
|
||
};_gfcd ,_dfaee :=_cbfe .ToFloat64Array ();if _dfaee !=nil {return nil ,_dfaee ;};_fbbab .Bounds =_gfcd ;if len (_fbbab .Bounds )!=len (_fbbab .Functions )-1{_gd .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 (_fbbab .Bounds ),len (_fbbab .Functions ));
|
||
return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbfe ,_dceee =_ac .TraceToDirectObject (_afcaa .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ac .PdfObjectArray );if !_dceee {_gd .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_af .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");};_fadab ,_dfaee :=_cbfe .ToFloat64Array ();
|
||
if _dfaee !=nil {return nil ,_dfaee ;};_fbbab .Encode =_fadab ;if len (_fbbab .Encode )!=2*len (_fbbab .Functions ){_gd .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 (_fbbab .Encode ),len (_fbbab .Functions ));
|
||
return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _fbbab ,nil ;};func (_fggg *PdfWriter )writeOutputIntents ()error {if len (_fggg ._adfggc )==0{return nil ;};_dacdc :=make ([]_ac .PdfObject ,len (_fggg ._adfggc ));
|
||
for _debbg ,_gbfad :=range _fggg ._adfggc {_ebcab :=_gbfad .ToPdfObject ();_dacdc [_debbg ]=_ac .MakeIndirectObject (_ebcab );};_deabf :=_ac .MakeIndirectObject (_ac .MakeArray (_dacdc ...));_fggg ._cgfegd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_deabf );
|
||
if _eeaab :=_fggg .addObjects (_deabf );_eeaab !=nil {return _eeaab ;};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cfad *PdfColorspaceSpecialPattern )ToPdfObject ()_ac .PdfObject {if _cfad .UnderlyingCS ==nil {return _ac .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_aedf :=_ac .MakeArray (_ac .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_aedf .Append (_cfad .UnderlyingCS .ToPdfObject ());
|
||
if _cfad ._gcdb !=nil {_cfad ._gcdb .PdfObject =_aedf ;return _cfad ._gcdb ;};return _aedf ;};
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_gffc :=PdfColorDeviceRGB {r ,g ,b };return &_gffc ;};
|
||
|
||
// 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 (_afed *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _gaecd []_gf .TextEncoder ;var _cadb _gf .CMapEncoder ;if _deed :=_afed .baseFields ()._acbbb ;_deed !=nil {_cadb =_gf .NewCMapEncoder ("",nil ,_deed );};_eeege :=_afed .Encoder ();
|
||
if _eeege !=nil {switch _gfdf :=_eeege .(type ){case _gf .SimpleEncoder :_gccdf :=_gfdf .BaseName ();if _ ,_ecgc :=_dddg [_gccdf ];_ecgc {_gaecd =append (_gaecd ,_eeege );};};};if len (_gaecd )==0{if _afed .baseFields ()._acbbb !=nil {_gaecd =append (_gaecd ,_cadb );
|
||
};if _eeege !=nil {_gaecd =append (_gaecd ,_eeege );};};var _edfb _fd .Buffer ;var _aebf int ;for _ ,_abgcg :=range data {var _gfdd bool ;for _ ,_aaca :=range _gaecd {if _cdaac :=_aaca .Encode (string (_abgcg ));len (_cdaac )> 0{_edfb .Write (_cdaac );
|
||
_gfdd =true ;break ;};};if !_gfdd {_gd .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",_abgcg );
|
||
_aebf ++;};};if _aebf !=0{_gd .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 ),_aebf ,_afed ,_gaecd );
|
||
};return _edfb .Bytes (),_aebf ;};
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_dcgfe *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _dcgfe .AcroForm ==nil {return nil ,nil ;};if _dcgfe .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_gaea *PdfSignature ;
|
||
_efedb *PdfField ;_adfdb SignatureHandler ;};var _ccdab []*sigFieldPair ;for _ ,_ggefe :=range _dcgfe .AcroForm .AllFields (){if _ggefe .V ==nil {continue ;};if _edfcef ,_gbgb :=_ac .GetDict (_ggefe .V );_gbgb {if _eeed ,_bbdbaf :=_ac .GetNameVal (_edfcef .Get ("\u0054\u0079\u0070\u0065"));
|
||
_bbdbaf &&_eeed =="\u0053\u0069\u0067"{_cadae ,_agegg :=_ac .GetIndirect (_ggefe .V );if !_agegg {_gd .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 ;};_dbdbe ,_fadca :=_dcgfe .newPdfSignatureFromIndirect (_cadae );if _fadca !=nil {return nil ,_fadca ;};var _geggc SignatureHandler ;for _ ,_adacab :=range handlers {if _adacab .IsApplicable (_dbdbe ){_geggc =_adacab ;break ;};
|
||
};_ccdab =append (_ccdab ,&sigFieldPair {_gaea :_dbdbe ,_efedb :_ggefe ,_adfdb :_geggc });};};};var _efbef []SignatureValidationResult ;for _ ,_bdeeb :=range _ccdab {_edbag :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_bdeeb ._efedb }};
|
||
if _bdeeb ._adfdb ==nil {_edbag .Errors =append (_edbag .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");_efbef =append (_efbef ,_edbag );continue ;};_eeca ,_dfeegc :=_bdeeb ._adfdb .NewDigest (_bdeeb ._gaea );
|
||
if _dfeegc !=nil {_edbag .Errors =append (_edbag .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_dfeegc .Error ());_efbef =append (_efbef ,_edbag );continue ;};_dabgf :=_bdeeb ._gaea .ByteRange ;if _dabgf ==nil {_edbag .Errors =append (_edbag .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");
|
||
_efbef =append (_efbef ,_edbag );continue ;};for _bafecg :=0;_bafecg < _dabgf .Len ();_bafecg =_bafecg +2{_gedab ,_ :=_ac .GetNumberAsInt64 (_dabgf .Get (_bafecg ));_cgfad ,_ :=_ac .GetIntVal (_dabgf .Get (_bafecg +1));if _ ,_adfc :=_dcgfe ._fafc .Seek (_gedab ,_adc .SeekStart );
|
||
_adfc !=nil {return nil ,_adfc ;};_aadf :=make ([]byte ,_cgfad );if _ ,_gfdc :=_dcgfe ._fafc .Read (_aadf );_gfdc !=nil {return nil ,_gfdc ;};_eeca .Write (_aadf );};var _afbbe SignatureValidationResult ;if _ebcdc ,_gfcf :=_bdeeb ._adfdb .(SignatureHandlerDocMDP );
|
||
_gfcf {_afbbe ,_dfeegc =_ebcdc .ValidateWithOpts (_bdeeb ._gaea ,_eeca ,SignatureHandlerDocMDPParams {Parser :_dcgfe ._eebeg });}else {_afbbe ,_dfeegc =_bdeeb ._adfdb .Validate (_bdeeb ._gaea ,_eeca );};if _dfeegc !=nil {_gd .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_dfeegc ,_bdeeb ._adfdb );
|
||
_afbbe .Errors =append (_afbbe .Errors ,_dfeegc .Error ());};_afbbe .Name =_bdeeb ._gaea .Name .Decoded ();_afbbe .Reason =_bdeeb ._gaea .Reason .Decoded ();if _bdeeb ._gaea .M !=nil {_eggfa ,_egbfd :=NewPdfDate (_bdeeb ._gaea .M .String ());if _egbfd !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_egbfd );
|
||
_afbbe .Errors =append (_afbbe .Errors ,_egbfd .Error ());continue ;};_afbbe .Date =_eggfa ;};_afbbe .ContactInfo =_bdeeb ._gaea .ContactInfo .Decoded ();_afbbe .Location =_bdeeb ._gaea .Location .Decoded ();_afbbe .Fields =_edbag .Fields ;_efbef =append (_efbef ,_afbbe );
|
||
};return _efbef ,nil ;};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_efcff *_ac .PdfIndirectObject ;_dagba *_ac .PdfIndirectObject ;_gafba map[_ac .PdfObject ]struct{};_gdeaf []_ac .PdfObject ;_agbff map[_ac .PdfObject ]struct{};_fdadd []*_ac .PdfIndirectObject ;_ddece *PdfOutlineTreeNode ;_cgfegd *_ac .PdfObjectDictionary ;
|
||
_gbgfd []_ac .PdfObject ;_aefadb *_ac .PdfIndirectObject ;_abad *_b .Writer ;_edabb int64 ;_adace error ;_bggef *_ac .PdfCrypt ;_bdedb *_ac .PdfObjectDictionary ;_ecgdb *_ac .PdfIndirectObject ;_bffaf *_ac .PdfObjectArray ;_gdfdc _ac .Version ;_fdfcfb *bool ;
|
||
_fage map[_ac .PdfObject ][]*_ac .PdfObjectDictionary ;_fggdf *PdfAcroForm ;_bddgd Optimizer ;_faega StandardApplier ;_ggbab map[int ]crossReference ;_deff int64 ;ObjNumOffset int ;_cfgc bool ;_febgg _ac .XrefTable ;_bcbcd int64 ;_gccgde int64 ;_dgbfe map[_ac .PdfObject ]int64 ;
|
||
_ebade map[_ac .PdfObject ]struct{};_gafbg string ;_adfggc []*PdfOutputIntent ;_ffdgb bool ;_becagg ,_bcefa string ;};
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_bfaa *PdfField )Flags ()FieldFlag {var _dcgc FieldFlag ;_fbdd ,_ggaf :=_bfaa .inherit (func (_bgabg *PdfField )bool {if _bgabg .Ff !=nil {_dcgc =FieldFlag (*_bgabg .Ff );return true ;};return false ;});if _ggaf !=nil {_gd .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",_ggaf );
|
||
};if !_fbdd {_gd .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 _dcgc ;};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_gcdbg *PdfColorspaceSpecialIndexed )ToPdfObject ()_ac .PdfObject {_aagc :=_ac .MakeArray (_ac .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_aagc .Append (_gcdbg .Base .ToPdfObject ());_aagc .Append (_ac .MakeInteger (int64 (_gcdbg .HiVal )));
|
||
_aagc .Append (_gcdbg .Lookup );if _gcdbg ._dbeed !=nil {_gcdbg ._dbeed .PdfObject =_aagc ;return _gcdbg ._dbeed ;};return _aagc ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_fdgba *pdfFontSimple )Encoder ()_gf .TextEncoder {if _fdgba ._caed !=nil {return _fdgba ._caed ;};if _fdgba ._abbba !=nil {return _fdgba ._abbba ;};_cdaeb ,_ :=_gf .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _cdaeb ;};
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_aaagb *PdfRectangle )Width ()float64 {return _da .Abs (_aaagb .Urx -_aaagb .Llx )};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_dgdec *XObjectImage )ToPdfObject ()_ac .PdfObject {_gfef :=_dgdec ._gfbdff ;_ffaag :=_gfef .PdfObjectDictionary ;if _dgdec .Filter !=nil {_ffaag =_dgdec .Filter .MakeStreamDict ();_gfef .PdfObjectDictionary =_ffaag ;};_ffaag .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_ffaag .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0049\u006d\u0061g\u0065"));_ffaag .Set ("\u0057\u0069\u0064t\u0068",_ac .MakeInteger (*(_dgdec .Width )));_ffaag .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ac .MakeInteger (*(_dgdec .Height )));
|
||
if _dgdec .BitsPerComponent !=nil {_ffaag .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ac .MakeInteger (*(_dgdec .BitsPerComponent )));};if _dgdec .ColorSpace !=nil {_ffaag .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_dgdec .ColorSpace .ToPdfObject ());
|
||
};_ffaag .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_dgdec .Intent );_ffaag .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_dgdec .ImageMask );_ffaag .SetIfNotNil ("\u004d\u0061\u0073\u006b",_dgdec .Mask );_eegcba :=_ffaag .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
|
||
if _dgdec .Decode ==nil &&_eegcba {_ffaag .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _dgdec .Decode !=nil {_ffaag .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgdec .Decode );};_ffaag .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_dgdec .Interpolate );
|
||
_ffaag .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_dgdec .Alternatives );_ffaag .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_dgdec .SMask );_ffaag .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_dgdec .SMaskInData );
|
||
_ffaag .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_dgdec .Matte );_ffaag .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dgdec .Name );_ffaag .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dgdec .StructParent );_ffaag .SetIfNotNil ("\u0049\u0044",_dgdec .ID );
|
||
_ffaag .SetIfNotNil ("\u004f\u0050\u0049",_dgdec .OPI );_ffaag .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dgdec .Metadata );_ffaag .SetIfNotNil ("\u004f\u0043",_dgdec .OC );_ffaag .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_dgdec .Stream ))));
|
||
_gfef .Stream =_dgdec .Stream ;return _gfef ;};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ac .PdfObject ;NewWindow _ac .PdfObject ;T _ac .PdfObject ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);
|
||
FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);
|
||
FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<26);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);
|
||
FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eea *PdfActionResetForm )ToPdfObject ()_ac .PdfObject {_eea .PdfAction .ToPdfObject ();_cac :=_eea ._eef ;_gde :=_cac .PdfObject .(*_ac .PdfObjectDictionary );_gde .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeResetForm )));_gde .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_eea .Fields );
|
||
_gde .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_eea .Flags );return _cac ;};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_cade :=PdfColorCalGray (grayVal );return &_cade ;};
|
||
|
||
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
|
||
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_afgd :=&PdfShadingPatternType2 {};_afgd .Matrix =_ac .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_afgd .PdfPattern =&PdfPattern {};_afgd .PdfPattern .PatternType =int64 (*_ac .MakeInteger (2));
|
||
_afgd .PdfPattern ._bfcc =_afgd ;_afgd .PdfPattern ._fddfb =_ac .MakeIndirectObject (_ac .MakeDict ());return _afgd ;};func (_afad *PdfAcroForm )fillImageWithAppearance (_fgabf FieldImageProvider ,_aeagf FieldAppearanceGenerator )error {if _afad ==nil {return nil ;
|
||
};_fdabc ,_agfea :=_fgabf .FieldImageValues ();if _agfea !=nil {return _agfea ;};for _ ,_cdagb :=range _afad .AllFields (){_gaecdg :=_cdagb .PartialName ();_cceaf ,_cdfca :=_fdabc [_gaecdg ];if !_cdfca {if _gcfe ,_aegf :=_cdagb .FullName ();_aegf ==nil {_cceaf ,_cdfca =_fdabc [_gcfe ];
|
||
};};if !_cdfca {_gd .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",_gaecdg );
|
||
continue ;};switch _eefag :=_cdagb .GetContext ().(type ){case *PdfFieldButton :if _eefag .IsPush (){_eefag .SetFillImage (_cceaf );};};if _aeagf ==nil {continue ;};for _ ,_bcca :=range _cdagb .Annotations {_dagfa ,_dbdga :=_aeagf .GenerateAppearanceDict (_afad ,_cdagb ,_bcca );
|
||
if _dbdga !=nil {return _dbdga ;};_bcca .AP =_dagfa ;_bcca .ToPdfObject ();};};return nil ;};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_gdea *PdfInfo )AddCustomInfo (name string ,value string )error {if _gdea ._ggfb ==nil {_gdea ._ggfb =_ac .MakeDict ();};if _ ,_fbgb :=_degc [name ];_fbgb {return _d .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 );
|
||
};_gdea ._ggfb .SetIfNotNil (*_ac .MakeName (name ),_ac .MakeString (value ));return nil ;};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_egbc :=&PdfColorspaceDeviceN {};return _egbc };
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_gfbgg *PdfColorDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_dbec *PdfAnnotation )GetContainingPdfObject ()_ac .PdfObject {return _dbec ._fegd };
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_cefc pdfCIDFontType0 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){return _fda .CharMetrics {Wx :_cefc ._fggf },true ;};
|
||
|
||
// 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 (_bdaad int ,_gdbgf *PdfPage )error ;
|
||
|
||
// 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 (_gdbgg *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _gdbgg .flattenFieldsWithOpts (false ,appgen ,opts );};
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_cggd *PdfAppender )WriteToFile (outputPath string )error {_defa ,_caba :=_cef .Create (outputPath );if _caba !=nil {return _caba ;};defer _defa .Close ();return _cggd .Write (_defa );};
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_bcd :=NewPdfAnnotation ();_efaa :=&PdfAnnotationPolygon {};_efaa .PdfAnnotation =_bcd ;_efaa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcd .SetContext (_efaa );return _efaa ;};func _deee (_gegd _ac .PdfObject )(*PdfBorderStyle ,error ){_dec :=&PdfBorderStyle {};
|
||
_dec ._gcc =_gegd ;var _fbccc *_ac .PdfObjectDictionary ;_gegd =_ac .TraceToDirectObject (_gegd );_fbccc ,_caeg :=_gegd .(*_ac .PdfObjectDictionary );if !_caeg {return nil ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _bge :=_fbccc .Get ("\u0054\u0079\u0070\u0065");
|
||
_bge !=nil {_ddad ,_cfeg :=_bge .(*_ac .PdfObjectName );if !_cfeg {_gd .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",_bge );
|
||
}else {if *_ddad !="\u0042\u006f\u0072\u0064\u0065\u0072"{_gd .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",*_ddad );};};};if _agfb :=_fbccc .Get ("\u0057");
|
||
_agfb !=nil {_caeee ,_add :=_ac .GetNumberAsFloat (_agfb );if _add !=nil {_gd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_add );return nil ,_add ;};_dec .W =&_caeee ;
|
||
};if _ecad :=_fbccc .Get ("\u0053");_ecad !=nil {_fbfg ,_adbg :=_ecad .(*_ac .PdfObjectName );if !_adbg {return nil ,_af .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 _bgcf BorderStyle ;switch *_fbfg {case "\u0053":_bgcf =BorderStyleSolid ;case "\u0044":_bgcf =BorderStyleDashed ;case "\u0042":_bgcf =BorderStyleBeveled ;case "\u0049":_bgcf =BorderStyleInset ;case "\u0055":_bgcf =BorderStyleUnderline ;default:_gd .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_fbfg );
|
||
return nil ,_af .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_dec .S =&_bgcf ;};if _febe :=_fbccc .Get ("\u0044");_febe !=nil {_bgec ,_cfge :=_febe .(*_ac .PdfObjectArray );
|
||
if !_cfge {_gd .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",_febe );return nil ,_af .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_eggf ,_cge :=_bgec .ToIntegerArray ();if _cge !=nil {_gd .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",_cge );
|
||
return nil ,_cge ;};_dec .D =&_eggf ;};return _dec ,nil ;};func _abdfg (_abcef *_ac .PdfObjectDictionary )bool {for _ ,_fedag :=range _abcef .Keys (){if _ ,_bebe :=_fead [_fedag .String ()];_bebe {return true ;};};return false ;};
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_cgab *PdfWriter )WriteToFile (outputFilePath string )error {_gaaff ,_eaced :=_cef .Create (outputFilePath );if _eaced !=nil {return _eaced ;};defer _gaaff .Close ();return _cgab .Write (_gaaff );};type pdfFontSimple struct{fontCommon ;_bbff *_ac .PdfIndirectObject ;
|
||
_bdaga map[_gf .CharCode ]float64 ;_caed _gf .TextEncoder ;_abbba _gf .TextEncoder ;_ffbea *PdfFontDescriptor ;
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _ac .PdfObject ;LastChar _ac .PdfObject ;Widths _ac .PdfObject ;Encoding _ac .PdfObject ;_gbbfd *_fda .RuneCharSafeMap ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_cded *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_gcff :=func (_ceffd float64 )float64 {if _ceffd >=6.0/29{return _ceffd *_ceffd *_ceffd ;};return 108.0/841*(_ceffd -4.0/29.0);};_caegc :=img ._gffd ;if len (_caegc )!=6{_gd .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");
|
||
_caegc =_cded .DecodeArray ();};_dbag :=_cg .NewReader (img .getBase ());_eagg :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._ebga ,img ._gffd );_aeed :=_cg .NewWriter (_eagg );_ebbd :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_dfga :=make ([]uint32 ,3);var (_efedg error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_bageb ,_bggc ,_gca float64 ;);for {_efedg =_dbag .ReadSamples (_dfga );if _efedg ==_adc .EOF {break ;}else if _efedg !=nil {return img ,_efedg ;};Ls =float64 (_dfga [0])/_ebbd ;
|
||
As =float64 (_dfga [1])/_ebbd ;Bs =float64 (_dfga [2])/_ebbd ;Ls =_ed .LinearInterpolate (Ls ,0.0,1.0,_caegc [0],_caegc [1]);As =_ed .LinearInterpolate (As ,0.0,1.0,_caegc [2],_caegc [3]);Bs =_ed .LinearInterpolate (Bs ,0.0,1.0,_caegc [4],_caegc [5]);L =(Ls +16)/116+As /500;
|
||
M =(Ls +16)/116;N =(Ls +16)/116-Bs /200;X =_cded .WhitePoint [0]*_gcff (L );Y =_cded .WhitePoint [1]*_gcff (M );Z =_cded .WhitePoint [2]*_gcff (N );_bageb =3.240479*X +-1.537150*Y +-0.498535*Z ;_bggc =-0.969256*X +1.875992*Y +0.041556*Z ;_gca =0.055648*X +-0.204043*Y +1.057311*Z ;
|
||
_bageb =_da .Min (_da .Max (_bageb ,0),1.0);_bggc =_da .Min (_da .Max (_bggc ,0),1.0);_gca =_da .Min (_da .Max (_gca ,0),1.0);_dfga [0]=uint32 (_bageb *_ebbd );_dfga [1]=uint32 (_bggc *_ebbd );_dfga [2]=uint32 (_gca *_ebbd );if _efedg =_aeed .WriteSamples (_dfga );
|
||
_efedg !=nil {return img ,_efedg ;};};return _affb (&_eagg ),nil ;};
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_fggbf :=&PdfPageResources {};_fggbf ._ccggg =_ac .MakeDict ();return _fggbf ;};func _cagd ()_e .Time {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _cdacg };func (_gbg *PdfReader )newPdfAnnotation3DFromDict (_adcd *_ac .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_abcf :=PdfAnnotation3D {};
|
||
_abcf .T3DD =_adcd .Get ("\u0033\u0044\u0044");_abcf .T3DV =_adcd .Get ("\u0033\u0044\u0056");_abcf .T3DA =_adcd .Get ("\u0033\u0044\u0041");_abcf .T3DI =_adcd .Get ("\u0033\u0044\u0049");_abcf .T3DB =_adcd .Get ("\u0033\u0044\u0042");return &_abcf ,nil ;
|
||
};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_agab *pdfFontType3 )ToPdfObject ()_ac .PdfObject {if _agab ._bbba ==nil {_agab ._bbba =&_ac .PdfIndirectObject {};};_fbfdg :=_agab .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_agab ._bbba .PdfObject =_fbfdg ;if _agab .FirstChar !=nil {_fbfdg .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_agab .FirstChar );
|
||
};if _agab .LastChar !=nil {_fbfdg .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_agab .LastChar );};if _agab .Widths !=nil {_fbfdg .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_agab .Widths );};if _agab .Encoding !=nil {_fbfdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_agab .Encoding );
|
||
}else if _agab ._ebcbd !=nil {_begcg :=_agab ._ebcbd .ToPdfObject ();if _begcg !=nil {_fbfdg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_begcg );};};if _agab .FontBBox !=nil {_fbfdg .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_agab .FontBBox );
|
||
};if _agab .FontMatrix !=nil {_fbfdg .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_agab .FontMatrix );};if _agab .CharProcs !=nil {_fbfdg .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_agab .CharProcs );};if _agab .Resources !=nil {_fbfdg .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_agab .Resources );
|
||
};return _agab ._bbba ;};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _ac .PdfObject ;V _ac .PdfObject ;};type pdfCIDFontType2 struct{fontCommon ;_dabfe *_ac .PdfIndirectObject ;_cdgg _gf .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_ac .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ac .PdfObject ;W _ac .PdfObject ;DW2 _ac .PdfObject ;W2 _ac .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _ac .PdfObject ;_faab map[_gf .CharCode ]float64 ;_ffcf float64 ;_adef map[rune ]int ;};
|
||
|
||
// 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{_gfed *_ac .PdfIndirectObject ;Certs []*_ac .PdfObjectStream ;OCSPs []*_ac .PdfObjectStream ;CRLs []*_ac .PdfObjectStream ;VRI map[string ]*VRI ;_fegf map[string ]*_ac .PdfObjectStream ;_edag map[string ]*_ac .PdfObjectStream ;_gdbfa map[string ]*_ac .PdfObjectStream ;
|
||
};
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_bbe :=NewPdfAnnotation ();_efa :=&PdfAnnotationLink {};_efa .PdfAnnotation =_bbe ;_bbe .SetContext (_efa );return _efa ;};
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_dcd *PdfAction )SetContext (ctx PdfModel ){_dcd ._gc =ctx };
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_ggga *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_gd .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_bbgac :=[]float64 {0.0};if _ggga .C0 !=nil {_bbgac =_ggga .C0 ;};_cgaab :=[]float64 {1.0};if _ggga .C1 !=nil {_cgaab =_ggga .C1 ;};var _efcg []float64 ;for _gbeg :=0;_gbeg < len (_bbgac );_gbeg ++{_ccgfg :=_bbgac [_gbeg ]+_da .Pow (x [0],_ggga .N )*(_cgaab [_gbeg ]-_bbgac [_gbeg ]);
|
||
_efcg =append (_efcg ,_ccgfg );};return _efcg ,nil ;};
|
||
|
||
// 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 *_ac .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ac .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ac .PdfObjectBool ;_bfga PdfModel ;_dffbg _ac .PdfObject ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_gebgg pdfCIDFontType2 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _dfege ,_defe :=_gebgg ._faab [code ];_defe {return _fda .CharMetrics {Wx :_dfege },true ;};_acafe :=rune (code );_efdaf ,_fbage :=_gebgg ._adef [_acafe ];if !_fbage {_efdaf =int (_gebgg ._ffcf );
|
||
};return _fda .CharMetrics {Wx :float64 (_efdaf )},true ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_fea *PdfColorLab )B ()float64 {return _fea [2]};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_eecb *PdfColorCalGray )ToInteger (bits int )uint32 {_cgag :=_da .Pow (2,float64 (bits ))-1;return uint32 (_cgag *_eecb .Val ());};func (_aede *PdfReader )newPdfActionSubmitFormFromDict (_cdf *_ac .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_gefe ,_cee :=_caec (_cdf .Get ("\u0046"));
|
||
if _cee !=nil {return nil ,_cee ;};return &PdfActionSubmitForm {F :_gefe ,Fields :_cdf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_cdf .Get ("\u0046\u006c\u0061g\u0073")},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 *_ac .PdfObjectArray ;ExtGState _ac .PdfObject ;};
|
||
|
||
// NewPdfFontFromTTF loads a TTF font and returns a PdfFont type that can be
|
||
// used in text styling functions.
|
||
// Uses a WinAnsiTextEncoder and loads only character codes 32-255.
|
||
// NOTE: For composite fonts such as used in symbolic languages, use NewCompositePdfFontFromTTF.
|
||
func NewPdfFontFromTTF (r _adc .ReadSeeker )(*PdfFont ,error ){const _egab =_gf .CharCode (32);const _dcfc =_gf .CharCode (255);_acdbg ,_dbada :=_ea .ReadAll (r );if _dbada !=nil {_gd .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",_dbada );
|
||
return nil ,_dbada ;};_fgcd ,_dbada :=_fda .TtfParse (_fd .NewReader (_acdbg ));if _dbada !=nil {_gd .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",_dbada );
|
||
return nil ,_dbada ;};_cegc :=&pdfFontSimple {_bdaga :make (map[_gf .CharCode ]float64 ),fontCommon :fontCommon {_efebg :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_cegc ._caed =_gf .NewWinAnsiEncoder ();_cegc ._abab =_fgcd .PostScriptName ;_cegc .FirstChar =_ac .MakeInteger (int64 (_egab ));
|
||
_cegc .LastChar =_ac .MakeInteger (int64 (_dcfc ));_cgbbg :=1000.0/float64 (_fgcd .UnitsPerEm );if len (_fgcd .Widths )<=0{return nil ,_af .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");
|
||
};_ffbd :=_cgbbg *float64 (_fgcd .Widths [0]);_fffde :=make ([]float64 ,0,_dcfc -_egab +1);for _aeded :=_egab ;_aeded <=_dcfc ;_aeded ++{_gdcf ,_bfca :=_cegc .Encoder ().CharcodeToRune (_aeded );if !_bfca {_gd .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_aeded );
|
||
_fffde =append (_fffde ,_ffbd );continue ;};_cgdca ,_eagfc :=_fgcd .Chars [_gdcf ];if !_eagfc {_gd .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_fffde =append (_fffde ,_ffbd );continue ;
|
||
};_edaac :=_cgbbg *float64 (_fgcd .Widths [_cgdca ]);_fffde =append (_fffde ,_edaac );};_cegc .Widths =_ac .MakeIndirectObject (_ac .MakeArrayFromFloats (_fffde ));if len (_fffde )< int (_dcfc -_egab +1){_gd .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 (_fffde ),255-32+1);
|
||
return nil ,_ac .ErrRangeError ;};for _gggfa :=_egab ;_gggfa <=_dcfc ;_gggfa ++{_cegc ._bdaga [_gggfa ]=_fffde [_gggfa -_egab ];};_cegc .Encoding =_ac .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_bdaf :=&PdfFontDescriptor {};
|
||
_bdaf .FontName =_ac .MakeName (_fgcd .PostScriptName );_bdaf .Ascent =_ac .MakeFloat (_cgbbg *float64 (_fgcd .TypoAscender ));_bdaf .Descent =_ac .MakeFloat (_cgbbg *float64 (_fgcd .TypoDescender ));_bdaf .CapHeight =_ac .MakeFloat (_cgbbg *float64 (_fgcd .CapHeight ));
|
||
_bdaf .FontBBox =_ac .MakeArrayFromFloats ([]float64 {_cgbbg *float64 (_fgcd .Xmin ),_cgbbg *float64 (_fgcd .Ymin ),_cgbbg *float64 (_fgcd .Xmax ),_cgbbg *float64 (_fgcd .Ymax )});_bdaf .ItalicAngle =_ac .MakeFloat (_fgcd .ItalicAngle );_bdaf .MissingWidth =_ac .MakeFloat (_cgbbg *float64 (_fgcd .Widths [0]));
|
||
_eecca ,_dbada :=_ac .MakeStream (_acdbg ,_ac .NewFlateEncoder ());if _dbada !=nil {_gd .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",_dbada );
|
||
return nil ,_dbada ;};_eecca .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ac .MakeInteger (int64 (len (_acdbg ))));_bdaf .FontFile2 =_eecca ;if _fgcd .Bold {_bdaf .StemV =_ac .MakeInteger (120);}else {_bdaf .StemV =_ac .MakeInteger (70);
|
||
};_cefaa :=_dedda ;if _fgcd .IsFixedPitch {_cefaa |=_beacg ;};if _fgcd .ItalicAngle !=0{_cefaa |=_cebda ;};_bdaf .Flags =_ac .MakeInteger (int64 (_cefaa ));_cegc ._bgbdc =_bdaf ;_adbce :=&PdfFont {_gegb :_cegc };return _adbce ,nil ;};func (_abfg *PdfReader )newPdfAnnotationRedactFromDict (_eccb *_ac .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_bcf :=PdfAnnotationRedact {};
|
||
_ecdd ,_cefd :=_abfg .newPdfAnnotationMarkupFromDict (_eccb );if _cefd !=nil {return nil ,_cefd ;};_bcf .PdfAnnotationMarkup =_ecdd ;_bcf .QuadPoints =_eccb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_bcf .IC =_eccb .Get ("\u0049\u0043");
|
||
_bcf .RO =_eccb .Get ("\u0052\u004f");_bcf .OverlayText =_eccb .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_bcf .Repeat =_eccb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_bcf .DA =_eccb .Get ("\u0044\u0041");_bcf .Q =_eccb .Get ("\u0051");
|
||
return &_bcf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gab *PdfActionImportData )ToPdfObject ()_ac .PdfObject {_gab .PdfAction .ToPdfObject ();_bef :=_gab ._eef ;_fcea :=_bef .PdfObject .(*_ac .PdfObjectDictionary );_fcea .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeImportData )));if _gab .F !=nil {_fcea .Set ("\u0046",_gab .F .ToPdfObject ());
|
||
};return _bef ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_aceb *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// 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 ,*_cef .File ,error ){const _beaga ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
|
||
_abggb ,_eabec :=_cef .Open (pdfFile );if _eabec !=nil {return nil ,nil ,_eabec ;};_dfeeg ,_eabec :=_gaada (_abggb ,opts ,true ,_beaga );if _eabec !=nil {_abggb .Close ();return nil ,nil ,_eabec ;};return _dfeeg ,_abggb ,nil ;};func (_agbae *PdfWriter )adjustXRefAffectedVersion (_geeaa bool ){if _geeaa &&_agbae ._gdfdc .Major ==1&&_agbae ._gdfdc .Minor < 5{_agbae ._gdfdc .Minor =5;
|
||
};};
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_gbbge *Outline )ToPdfOutline ()*PdfOutline {_fedg :=NewPdfOutline ();var _eegcb []*PdfOutlineItem ;var _dagfc int64 ;var _eccg *PdfOutlineItem ;for _ ,_fcdf :=range _gbbge .Entries {_bddab ,_ddgca :=_fcdf .ToPdfOutlineItem ();_bddab .Parent =&_fedg .PdfOutlineTreeNode ;
|
||
if _eccg !=nil {_eccg .Next =&_bddab .PdfOutlineTreeNode ;_bddab .Prev =&_eccg .PdfOutlineTreeNode ;};_eegcb =append (_eegcb ,_bddab );_dagfc +=_ddgca ;_eccg =_bddab ;};_bgbg :=int64 (len (_eegcb ));_dagfc +=_bgbg ;if _bgbg > 0{_fedg .First =&_eegcb [0].PdfOutlineTreeNode ;
|
||
_fedg .Last =&_eegcb [_bgbg -1].PdfOutlineTreeNode ;_fedg .Count =&_dagfc ;};return _fedg ;};
|
||
|
||
// 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 ;};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_dcecb *fontFile )String ()string {_deba :="\u005b\u004e\u006f\u006e\u0065\u005d";if _dcecb ._bcdea !=nil {_deba =_dcecb ._bcdea .String ();};return _d .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_dcecb ._bedba ,_deba );
|
||
};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_abbfd *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _abbfd .UnderlyingCS .GetNumComponents ();};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_dacce *OutlineItem )Add (item *OutlineItem ){_dacce .Entries =append (_dacce .Entries ,item )};
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _ac .PdfObject ;Volume _ac .PdfObject ;Synchronous _ac .PdfObject ;Repeat _ac .PdfObject ;Mix _ac .PdfObject ;};
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _ac .PdfObject )(*PdfFilespec ,error ){_abdge :=&PdfFilespec {};var _eaaec *_ac .PdfObjectDictionary ;if _edge ,_abfgc :=_ac .GetIndirect (obj );_abfgc {_abdge ._fege =_edge ;_fbgcd ,_bebec :=_ac .GetDict (_edge .PdfObject );
|
||
if !_bebec {_gd .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 ,_ac .ErrTypeError ;};_eaaec =_fbgcd ;}else if _bbdb ,_fdbb :=_ac .GetDict (obj );
|
||
_fdbb {_abdge ._fege =_bbdb ;_eaaec =_bbdb ;}else {_gd .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 ,_ac .ErrTypeError ;};if _eaaec ==nil {_gd .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,_af .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _eabc :=_eaaec .Get ("\u0054\u0079\u0070\u0065");_eabc !=nil {_geaaa ,_adac :=_eabc .(*_ac .PdfObjectName );if !_adac {_gd .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",_eabc );
|
||
}else {if *_geaaa !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_gd .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",*_geaaa );
|
||
};};};if _cffgd :=_eaaec .Get ("\u0046\u0053");_cffgd !=nil {_abdge .FS =_cffgd ;};if _gacag :=_eaaec .Get ("\u0046");_gacag !=nil {_abdge .F =_gacag ;};if _defde :=_eaaec .Get ("\u0055\u0046");_defde !=nil {_abdge .UF =_defde ;};if _efeg :=_eaaec .Get ("\u0044\u004f\u0053");
|
||
_efeg !=nil {_abdge .DOS =_efeg ;};if _efff :=_eaaec .Get ("\u004d\u0061\u0063");_efff !=nil {_abdge .Mac =_efff ;};if _fbdcc :=_eaaec .Get ("\u0055\u006e\u0069\u0078");_fbdcc !=nil {_abdge .Unix =_fbdcc ;};if _fffb :=_eaaec .Get ("\u0049\u0044");_fffb !=nil {_abdge .ID =_fffb ;
|
||
};if _bdfaf :=_eaaec .Get ("\u0056");_bdfaf !=nil {_abdge .V =_bdfaf ;};if _dcccc :=_eaaec .Get ("\u0045\u0046");_dcccc !=nil {_abdge .EF =_dcccc ;};if _dbgbd :=_eaaec .Get ("\u0052\u0046");_dbgbd !=nil {_abdge .RF =_dbgbd ;};if _aebbb :=_eaaec .Get ("\u0044\u0065\u0073\u0063");
|
||
_aebbb !=nil {_abdge .Desc =_aebbb ;};if _begc :=_eaaec .Get ("\u0043\u0049");_begc !=nil {_abdge .CI =_begc ;};return _abdge ,nil ;};
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_aeg :=NewPdfAnnotation ();_acg :=&PdfAnnotationInk {};_acg .PdfAnnotation =_aeg ;_acg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_aeg .SetContext (_acg );return _acg ;};
|
||
|
||
// String returns a string representation of PdfTransformParamsDocMDP.
|
||
func (_eeead *PdfTransformParamsDocMDP )String ()string {return _d .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_eeead .Type ,_eeead .P ,_eeead .V );};func _affb (_ggeag *_ed .ImageBase )(_ffbad Image ){_ffbad .Width =int64 (_ggeag .Width );
|
||
_ffbad .Height =int64 (_ggeag .Height );_ffbad .BitsPerComponent =int64 (_ggeag .BitsPerComponent );_ffbad .ColorComponents =_ggeag .ColorComponents ;_ffbad .Data =_ggeag .Data ;_ffbad ._gffd =_ggeag .Decode ;_ffbad ._ebga =_ggeag .Alpha ;return _ffbad ;
|
||
};func _caaca (_dgce string )(map[_gf .CharCode ]_gf .GlyphName ,error ){_cacee :=_fg .Split (_dgce ,"\u000a");_baeg :=make (map[_gf .CharCode ]_gf .GlyphName );for _ ,_dbgc :=range _cacee {_adgc :=_dfedc .FindStringSubmatch (_dbgc );if _adgc ==nil {continue ;
|
||
};_dbgf ,_cffbb :=_adgc [1],_adgc [2];_gbabg ,_gaeb :=_ae .Atoi (_dbgf );if _gaeb !=nil {_gd .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",_dbgc );
|
||
return nil ,_ac .ErrTypeError ;};_baeg [_gf .CharCode (_gbabg )]=_gf .GlyphName (_cffbb );};_gd .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",_baeg );
|
||
return _baeg ,nil ;};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_ggffd =title };
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dcaff *PdfAnnotationSquiggly )ToPdfObject ()_ac .PdfObject {_dcaff .PdfAnnotation .ToPdfObject ();_aab :=_dcaff ._fegd ;_acaa :=_aab .PdfObject .(*_ac .PdfObjectDictionary );_dcaff .PdfAnnotationMarkup .appendToPdfDictionary (_acaa );_acaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_acaa .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dcaff .QuadPoints );return _aab ;};
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_dbbf *PdfRectangle )Normalize (){if _dbbf .Llx > _dbbf .Urx {_dbbf .Llx ,_dbbf .Urx =_dbbf .Urx ,_dbbf .Llx ;};if _dbbf .Lly > _dbbf .Ury {_dbbf .Lly ,_dbbf .Ury =_dbbf .Ury ,_dbbf .Lly ;};};
|
||
|
||
// 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 *_ac .PdfIndirectObject ;SV *_ac .PdfIndirectObject ;};func _ffdd (_dbdf _ac .PdfObject )(*PdfColorspaceICCBased ,error ){_fdeac :=&PdfColorspaceICCBased {};if _aeeaa ,_fegc :=_dbdf .(*_ac .PdfIndirectObject );
|
||
_fegc {_fdeac ._eeaa =_aeeaa ;};_dbdf =_ac .TraceToDirectObject (_dbdf );_beeb ,_baaa :=_dbdf .(*_ac .PdfObjectArray );if !_baaa {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _beeb .Len ()!=2{return nil ,_d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_dbdf =_ac .TraceToDirectObject (_beeb .Get (0));_ggde ,_baaa :=_dbdf .(*_ac .PdfObjectName );if !_baaa {return nil ,_d .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 *_ggde !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_d .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");};_dbdf =_beeb .Get (1);
|
||
_fgfb ,_baaa :=_ac .GetStream (_dbdf );if !_baaa {_gd .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",_dbdf );
|
||
return nil ,_d .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_ggfa :=_fgfb .PdfObjectDictionary ;_egcb ,_baaa :=_ggfa .Get ("\u004e").(*_ac .PdfObjectInteger );
|
||
if !_baaa {return nil ,_d .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 *_egcb !=1&&*_egcb !=3&&*_egcb !=4{return nil ,_d .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");
|
||
};_fdeac .N =int (*_egcb );if _cfdd :=_ggfa .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_cfdd !=nil {_aadb ,_aecg :=NewPdfColorspaceFromPdfObject (_cfdd );if _aecg !=nil {return nil ,_aecg ;};_fdeac .Alternate =_aadb ;};if _fgfbg :=_ggfa .Get ("\u0052\u0061\u006eg\u0065");
|
||
_fgfbg !=nil {_fgfbg =_ac .TraceToDirectObject (_fgfbg );_aabd ,_cfaf :=_fgfbg .(*_ac .PdfObjectArray );if !_cfaf {return nil ,_d .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 _aabd .Len ()!=2*_fdeac .N {return nil ,_d .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");
|
||
};_cgcb ,_abgbd :=_aabd .GetAsFloat64Slice ();if _abgbd !=nil {return nil ,_abgbd ;};_fdeac .Range =_cgcb ;}else {_fdeac .Range =make ([]float64 ,2*_fdeac .N );for _eagf :=0;_eagf < _fdeac .N ;_eagf ++{_fdeac .Range [2*_eagf ]=0.0;_fdeac .Range [2*_eagf +1]=1.0;
|
||
};};if _gced :=_ggfa .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_gced !=nil {_gaca ,_gfda :=_gced .(*_ac .PdfObjectStream );if !_gfda {return nil ,_d .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");
|
||
};_fdeac .Metadata =_gaca ;};_geaad ,_gaee :=_ac .DecodeStream (_fgfb );if _gaee !=nil {return nil ,_gaee ;};_fdeac .Data =_geaad ;_fdeac ._gafd =_fgfb ;return _fdeac ,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 (_gcdd *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bbfd :=vals [0];if _bbfd < 0.0||_bbfd > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbfd );
|
||
return nil ,ErrColorOutOfRange ;};_cabg :=vals [1];if _cabg < 0.0||_cabg > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cabg );return nil ,ErrColorOutOfRange ;
|
||
};_gdeg :=vals [2];if _gdeg < 0.0||_gdeg > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdeg );return nil ,ErrColorOutOfRange ;};_fbda :=NewPdfColorCalRGB (_bbfd ,_cabg ,_gdeg );
|
||
return _fbda ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ffadaa *Permissions )ToPdfObject ()_ac .PdfObject {return _ffadaa ._aebdd };
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_bedde *Image )ColorAt (x ,y int )(_bc .Color ,error ){_cegg :=_ed .BytesPerLine (int (_bedde .Width ),int (_bedde .BitsPerComponent ),_bedde .ColorComponents );switch _bedde .ColorComponents {case 1:return _ed .ColorAtGrayscale (x ,y ,int (_bedde .BitsPerComponent ),_cegg ,_bedde .Data ,_bedde ._gffd );
|
||
case 3:return _ed .ColorAtNRGBA (x ,y ,int (_bedde .Width ),_cegg ,int (_bedde .BitsPerComponent ),_bedde .Data ,_bedde ._ebga ,_bedde ._gffd );case 4:return _ed .ColorAtCMYK (x ,y ,int (_bedde .Width ),_bedde .Data ,_bedde ._gffd );};_gd .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",_bedde .ColorComponents ,_bedde .BitsPerComponent );
|
||
return nil ,_af .New ("\u0075\u006e\u0073\u0075p\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0069\u006d\u0061g\u0065 \u0063\u006f\u006c\u006f\u0072\u0073\u0070a\u0063\u0065");};func (_edgfg *PdfWriter )optimize ()error {if _edgfg ._bddgd ==nil {return nil ;
|
||
};var _afbgf error ;_edgfg ._gdeaf ,_afbgf =_edgfg ._bddgd .Optimize (_edgfg ._gdeaf );if _afbgf !=nil {return _afbgf ;};_bcded :=make (map[_ac .PdfObject ]struct{},len (_edgfg ._gdeaf ));for _ ,_cffdf :=range _edgfg ._gdeaf {_bcded [_cffdf ]=struct{}{};
|
||
};_edgfg ._agbff =_bcded ;return nil ;};
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_ac .PdfObjectArray ;TI *_ac .PdfObjectInteger ;I *_ac .PdfObjectArray ;};
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_bfgfceb *PdfPage )AddFont (name _ac .PdfObjectName ,font _ac .PdfObject )error {if _bfgfceb .Resources ==nil {_bfgfceb .Resources =NewPdfPageResources ();};if _bfgfceb .Resources .Font ==nil {_bfgfceb .Resources .Font =_ac .MakeDict ();};_bgcfd ,_defef :=_ac .TraceToDirectObject (_bfgfceb .Resources .Font ).(*_ac .PdfObjectDictionary );
|
||
if !_defef {_gd .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",_ac .TraceToDirectObject (_bfgfceb .Resources .Font ));
|
||
return _af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bgcfd .Set (name ,font );return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cdage *PdfShadingType1 )ToPdfObject ()_ac .PdfObject {_cdage .PdfShading .ToPdfObject ();_cgcgf ,_faafcc :=_cdage .getShadingDict ();if _faafcc !=nil {_gd .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 _cdage .Domain !=nil {_cgcgf .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cdage .Domain );};if _cdage .Matrix !=nil {_cgcgf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cdage .Matrix );};if _cdage .Function !=nil {if len (_cdage .Function )==1{_cgcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cdage .Function [0].ToPdfObject ());
|
||
}else {_fcffa :=_ac .MakeArray ();for _ ,_addgb :=range _cdage .Function {_fcffa .Append (_addgb .ToPdfObject ());};_cgcgf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcffa );};};return _cdage ._dffbg ;};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _ac .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_faafc *PdfFunctionType4 )ToPdfObject ()_ac .PdfObject {_babbe :=_faafc ._adfgg ;if _babbe ==nil {_faafc ._adfgg =&_ac .PdfObjectStream {};_babbe =_faafc ._adfgg ;};_acde :=_ac .MakeDict ();_acde .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (4));
|
||
_cgaad :=&_ac .PdfObjectArray {};for _ ,_becdb :=range _faafc .Domain {_cgaad .Append (_ac .MakeFloat (_becdb ));};_acde .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cgaad );_dadbf :=&_ac .PdfObjectArray {};for _ ,_eaaca :=range _faafc .Range {_dadbf .Append (_ac .MakeFloat (_eaaca ));
|
||
};_acde .Set ("\u0052\u0061\u006eg\u0065",_dadbf );if _faafc ._ccbc ==nil &&_faafc .Program !=nil {_faafc ._ccbc =[]byte (_faafc .Program .String ());};_acde .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_faafc ._ccbc ))));
|
||
_babbe .Stream =_faafc ._ccbc ;_babbe .PdfObjectDictionary =_acde ;return _babbe ;};func (_ebfbd *PdfReader )newPdfAcroFormFromDict (_begcd *_ac .PdfIndirectObject ,_effaf *_ac .PdfObjectDictionary )(*PdfAcroForm ,error ){_acbeb :=NewPdfAcroForm ();if _begcd !=nil {_acbeb ._abecf =_begcd ;
|
||
_begcd .PdfObject =_ac .MakeDict ();};if _bfgfcd :=_effaf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_bfgfcd !=nil &&!_ac .IsNullObject (_bfgfcd ){_cbegf ,_dbdg :=_ac .GetArray (_bfgfcd );if !_dbdg {return nil ,_d .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_bfgfcd );
|
||
};var _gfged []*PdfField ;for _ ,_bfdcd :=range _cbegf .Elements (){_gccea ,_gffg :=_ac .GetIndirect (_bfdcd );if !_gffg {if _ ,_bgeagf :=_bfdcd .(*_ac .PdfObjectNull );_bgeagf {_gd .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 ;};_gd .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",_bfdcd );
|
||
return nil ,_d .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");};_aebbc ,_gfcbc :=_ebfbd .newPdfFieldFromIndirectObject (_gccea ,nil );
|
||
if _gfcbc !=nil {return nil ,_gfcbc ;};_gd .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_aebbc );_gfged =append (_gfged ,_aebbc );};_acbeb .Fields =&_gfged ;};if _aeefg :=_effaf .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_aeefg !=nil {_eede ,_ddcbaa :=_ac .GetBool (_aeefg );if _ddcbaa {_acbeb .NeedAppearances =_eede ;}else {_gd .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",_aeefg );
|
||
};};if _gfbfb :=_effaf .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_gfbfb !=nil {_cbedfb ,_bdceg :=_ac .GetInt (_gfbfb );if _bdceg {_acbeb .SigFlags =_cbedfb ;}else {_gd .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",_gfbfb );
|
||
};};if _bebgb :=_effaf .Get ("\u0043\u004f");_bebgb !=nil {_cbbfd ,_ddfcc :=_ac .GetArray (_bebgb );if _ddfcc {_acbeb .CO =_cbbfd ;}else {_gd .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",_bebgb );
|
||
};};if _beffa :=_effaf .Get ("\u0044\u0052");_beffa !=nil {if _daef ,_gbcc :=_ac .GetDict (_beffa );_gbcc {_bgac ,_ceaf :=NewPdfPageResourcesFromDict (_daef );if _ceaf !=nil {_gd .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_ceaf );
|
||
return nil ,_ceaf ;};_acbeb .DR =_bgac ;}else {_gd .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",_beffa );};};if _dbddd :=_effaf .Get ("\u0044\u0041");
|
||
_dbddd !=nil {_aeedd ,_ddfba :=_ac .GetString (_dbddd );if _ddfba {_acbeb .DA =_aeedd ;}else {_gd .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",_dbddd );
|
||
};};if _gafde :=_effaf .Get ("\u0051");_gafde !=nil {_edde ,_eaacc :=_ac .GetInt (_gafde );if _eaacc {_acbeb .Q =_edde ;}else {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_gafde );
|
||
};};if _bacge :=_effaf .Get ("\u0058\u0046\u0041");_bacge !=nil {_acbeb .XFA =_bacge ;};if _aefbd :=_effaf .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_aefbd !=nil {_acbeb .ADBEEchoSign =_aefbd ;};_acbeb .ToPdfObject ();
|
||
return _acbeb ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbbd *PdfAnnotationRedact )ToPdfObject ()_ac .PdfObject {_fbbd .PdfAnnotation .ToPdfObject ();_bcbfa :=_fbbd ._fegd ;_gecf :=_bcbfa .PdfObject .(*_ac .PdfObjectDictionary );_fbbd .PdfAnnotationMarkup .appendToPdfDictionary (_gecf );_gecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_gecf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fbbd .QuadPoints );_gecf .SetIfNotNil ("\u0049\u0043",_fbbd .IC );_gecf .SetIfNotNil ("\u0052\u004f",_fbbd .RO );_gecf .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_fbbd .OverlayText );
|
||
_gecf .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fbbd .Repeat );_gecf .SetIfNotNil ("\u0044\u0041",_fbbd .DA );_gecf .SetIfNotNil ("\u0051",_fbbd .Q );return _bcbfa ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aedg *PdfAnnotationFreeText )ToPdfObject ()_ac .PdfObject {_aedg .PdfAnnotation .ToPdfObject ();_cedb :=_aedg ._fegd ;_cbde :=_cedb .PdfObject .(*_ac .PdfObjectDictionary );_aedg .PdfAnnotationMarkup .appendToPdfDictionary (_cbde );_cbde .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_cbde .SetIfNotNil ("\u0044\u0041",_aedg .DA );_cbde .SetIfNotNil ("\u0051",_aedg .Q );_cbde .SetIfNotNil ("\u0052\u0043",_aedg .RC );_cbde .SetIfNotNil ("\u0044\u0053",_aedg .DS );_cbde .SetIfNotNil ("\u0043\u004c",_aedg .CL );_cbde .SetIfNotNil ("\u0049\u0054",_aedg .IT );
|
||
_cbde .SetIfNotNil ("\u0042\u0045",_aedg .BE );_cbde .SetIfNotNil ("\u0052\u0044",_aedg .RD );_cbde .SetIfNotNil ("\u0042\u0053",_aedg .BS );_cbde .SetIfNotNil ("\u004c\u0045",_aedg .LE );return _cedb ;};func (_efeb *PdfReader )newPdfAnnotationWidgetFromDict (_gcfc *_ac .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_eafa :=PdfAnnotationWidget {};
|
||
_eafa .H =_gcfc .Get ("\u0048");_eafa .MK =_gcfc .Get ("\u004d\u004b");_eafa .A =_gcfc .Get ("\u0041");_eafa .AA =_gcfc .Get ("\u0041\u0041");_eafa .BS =_gcfc .Get ("\u0042\u0053");_eafa .Parent =_gcfc .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_eafa ,nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdd *PdfActionGoToE )ToPdfObject ()_ac .PdfObject {_fdd .PdfAction .ToPdfObject ();_ecdf :=_fdd ._eef ;_ecdb :=_ecdf .PdfObject .(*_ac .PdfObjectDictionary );_ecdb .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoToE )));if _fdd .F !=nil {_ecdb .Set ("\u0046",_fdd .F .ToPdfObject ());
|
||
};_ecdb .SetIfNotNil ("\u0044",_fdd .D );_ecdb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_fdd .NewWindow );_ecdb .SetIfNotNil ("\u0054",_fdd .T );return _ecdf ;};func _eeeea (_ggdea *XObjectImage )error {if _ggdea .SMask ==nil {return nil ;
|
||
};_efabe ,_dbdaf :=_ggdea .SMask .(*_ac .PdfObjectStream );if !_dbdaf {_gd .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 _ac .ErrTypeError ;
|
||
};_dgaba :=_efabe .PdfObjectDictionary ;_cabfd :=_dgaba .Get ("\u004d\u0061\u0074t\u0065");if _cabfd ==nil {return nil ;};_egfec ,_efcee :=_ggefga (_cabfd .(*_ac .PdfObjectArray ));if _efcee !=nil {return _efcee ;};_afcd :=_ac .MakeArrayFromFloats ([]float64 {_egfec });
|
||
_dgaba .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_afcd );return nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
// How it works:
|
||
// 1. It calls the GetCharMetrics function for the underlying font, either a simple font or
|
||
// a Type0 font. The underlying font GetCharMetrics() functions do direct charcode ➞ metrics
|
||
// mappings.
|
||
// 2. If the underlying font's GetCharMetrics() doesn't have a CharMetrics for `code` then a
|
||
// a CharMetrics with the FontDescriptor's /MissingWidth is returned.
|
||
// 3. If there is no /MissingWidth then a failure is returned.
|
||
//
|
||
// TODO(peterwilliams97) There is nothing callers can do if no CharMetrics are found so we might as
|
||
// well give them 0 width. There is no need for the bool return.
|
||
//
|
||
// TODO(gunnsth): Reconsider whether needed or if can map via GlyphName.
|
||
func (_gfeb *PdfFont )GetCharMetrics (code _gf .CharCode )(CharMetrics ,bool ){var _ageg _fda .CharMetrics ;switch _dcec :=_gfeb ._gegb .(type ){case *pdfFontSimple :if _cede ,_bcbgg :=_dcec .GetCharMetrics (code );_bcbgg {return _cede ,_bcbgg ;};case *pdfFontType0 :if _eacgg ,_edfbd :=_dcec .GetCharMetrics (code );
|
||
_edfbd {return _eacgg ,_edfbd ;};case *pdfCIDFontType0 :if _bbcef ,_dccfc :=_dcec .GetCharMetrics (code );_dccfc {return _bbcef ,_dccfc ;};case *pdfCIDFontType2 :if _agebb ,_adab :=_dcec .GetCharMetrics (code );_adab {return _agebb ,_adab ;};case *pdfFontType3 :if _edfff ,_fgff :=_dcec .GetCharMetrics (code );
|
||
_fgff {return _edfff ,_fgff ;};default:_gd .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",_gfeb ._gegb );
|
||
return _ageg ,false ;};if _aebe ,_bcgb :=_gfeb .GetFontDescriptor ();_bcgb ==nil &&_aebe !=nil {return _fda .CharMetrics {Wx :_aebe ._fffd },true ;};_gd .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",_gfeb );
|
||
return _ageg ,false ;};func _egga (_aefad _ac .PdfObject )(*fontFile ,error ){_gd .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",_aefad );
|
||
_fcdab :=&fontFile {};_aefad =_ac .TraceToDirectObject (_aefad );_ccec ,_geagd :=_aefad .(*_ac .PdfObjectStream );if !_geagd {_gd .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",_aefad );
|
||
return nil ,_ac .ErrTypeError ;};_aeef :=_ccec .PdfObjectDictionary ;_adbe ,_gadbb :=_ac .DecodeStream (_ccec );if _gadbb !=nil {return nil ,_gadbb ;};_adcg ,_geagd :=_ac .GetNameVal (_aeef .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_geagd {_fcdab ._fggeg =_adcg ;
|
||
if _adcg =="\u0054\u0079\u0070\u0065\u0031\u0043"{_gd .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 ;};};_ggfd ,_ :=_ac .GetIntVal (_aeef .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_beebb ,_ :=_ac .GetIntVal (_aeef .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _ggfd > len (_adbe ){_ggfd =len (_adbe );};
|
||
if _ggfd +_beebb > len (_adbe ){_beebb =len (_adbe )-_ggfd ;};_daaeb :=_adbe [:_ggfd ];var _gccde []byte ;if _beebb > 0{_gccde =_adbe [_ggfd :_ggfd +_beebb ];};if _ggfd > 0&&_beebb > 0{_ebfga :=_fcdab .loadFromSegments (_daaeb ,_gccde );if _ebfga !=nil {return nil ,_ebfga ;
|
||
};};return _fcdab ,nil ;};
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ade :=NewPdfAction ();_df :=&PdfActionSetOCGState {};_df .PdfAction =_ade ;_ade .SetContext (_df );return _df ;};
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ac .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ac .PdfObject ;A _ac .PdfObject ;SE _ac .PdfObject ;C _ac .PdfObject ;F _ac .PdfObject ;
|
||
_gbcec *_ac .PdfIndirectObject ;};
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_cfadd *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_cfadd .HiVal )};};
|
||
|
||
// 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 (_gcac DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
|
||
|
||
// VariableText contains the common attributes of a variable text.
|
||
// The VariableText is typically not used directly, but is can encapsulate by PdfField
|
||
// See section 12.7.3.3 "Variable Text" and Table 222 (pp. 434-436 PDF32000_2008).
|
||
type VariableText struct{DA *_ac .PdfObjectString ;Q *_ac .PdfObjectInteger ;DS *_ac .PdfObjectString ;RV _ac .PdfObject ;};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
|
||
|
||
// GetNamedDestinations returns the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_bcdc *PdfReader )GetNamedDestinations ()(_ac .PdfObject ,error ){_bbcdcg :=_ac .ResolveReference (_bcdc ._bdfc .Get ("\u0044\u0065\u0073t\u0073"));if _bbcdcg ==nil {return nil ,nil ;};if !_bcdc ._dfgg {_gabea :=_bcdc .traverseObjectData (_bbcdcg );
|
||
if _gabea !=nil {return nil ,_gabea ;};};return _bbcdcg ,nil ;};func _ebgfe (_ebfd *_ac .PdfObjectDictionary )(*PdfFieldChoice ,error ){_bgccf :=&PdfFieldChoice {};_bgccf .Opt ,_ =_ac .GetArray (_ebfd .Get ("\u004f\u0070\u0074"));_bgccf .TI ,_ =_ac .GetInt (_ebfd .Get ("\u0054\u0049"));
|
||
_bgccf .I ,_ =_ac .GetArray (_ebfd .Get ("\u0049"));return _bgccf ,nil ;};func (_gceg *DSS )addCerts (_fefb [][]byte )([]*_ac .PdfObjectStream ,error ){return _gceg .add (&_gceg .Certs ,_gceg ._fegf ,_fefb );};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_aabc *PdfColorLab )A ()float64 {return _aabc [1]};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_ebdbb *PdfWriter )SetOCProperties (ocProperties _ac .PdfObject )error {_feegb :=_ebdbb ._cgfegd ;if ocProperties !=nil {_gd .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_feegb .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _ebdbb .addObjects (ocProperties );};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_bcdd *VRI )ToPdfObject ()*_ac .PdfObjectDictionary {_cbbdd :=_ac .MakeDict ();_cbbdd .SetIfNotNil (_ac .PdfObjectName ("\u0043\u0065\u0072\u0074"),_ccae (_bcdd .Cert ));_cbbdd .SetIfNotNil (_ac .PdfObjectName ("\u004f\u0043\u0053\u0050"),_ccae (_bcdd .OCSP ));
|
||
_cbbdd .SetIfNotNil (_ac .PdfObjectName ("\u0043\u0052\u004c"),_ccae (_bcdd .CRL ));_cbbdd .SetIfNotNil ("\u0054\u0055",_bcdd .TU );_cbbdd .SetIfNotNil ("\u0054\u0053",_bcdd .TS );return _cbbdd ;};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_beafg *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_beafg ._ceca =annotations };
|
||
|
||
// GetNameDictionary returns the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_caedd *PdfReader )GetNameDictionary ()(_ac .PdfObject ,error ){_dbfde :=_ac .ResolveReference (_caedd ._bdfc .Get ("\u004e\u0061\u006de\u0073"));if _dbfde ==nil {return nil ,nil ;};if !_caedd ._dfgg {_ffefa :=_caedd .traverseObjectData (_dbfde );
|
||
if _ffefa !=nil {return nil ,_ffefa ;};};return _dbfde ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_dbdea *PdfShadingType7 )ToPdfObject ()_ac .PdfObject {_dbdea .PdfShading .ToPdfObject ();_eedbc ,_fadag :=_dbdea .getShadingDict ();if _fadag !=nil {_gd .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 _dbdea .BitsPerCoordinate !=nil {_eedbc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dbdea .BitsPerCoordinate );};if _dbdea .BitsPerComponent !=nil {_eedbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dbdea .BitsPerComponent );
|
||
};if _dbdea .BitsPerFlag !=nil {_eedbc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dbdea .BitsPerFlag );};if _dbdea .Decode !=nil {_eedbc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dbdea .Decode );};if _dbdea .Function !=nil {if len (_dbdea .Function )==1{_eedbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbdea .Function [0].ToPdfObject ());
|
||
}else {_gdedd :=_ac .MakeArray ();for _ ,_fdbd :=range _dbdea .Function {_gdedd .Append (_fdbd .ToPdfObject ());};_eedbc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gdedd );};};return _dbdea ._dffbg ;};func (_aafb *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
|
||
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_aadaff *PdfShading )SetContext (ctx PdfModel ){_aadaff ._bfga =ctx };
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_bfbd :=NewPdfAnnotation ();_gfg :=&PdfAnnotationCircle {};_gfg .PdfAnnotation =_bfbd ;_gfg .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfbd .SetContext (_gfg );return _gfg ;};
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_ac .PdfObjectArray ;Matrix *_ac .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_fgbd *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
|
||
|
||
// 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 ;const (_beacg =0x00001;_cgegd =0x00002;_feaae =0x00004;_efdag =0x00008;_dedda =0x00020;_cebda =0x00040;_fgcg =0x10000;_feee =0x20000;_bdgg =0x40000;);func _daae (_bcgd *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_bcgd }};
|
||
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_bb .PSProgram ;_bdgfa *_bb .PSExecutor ;_ccbc []byte ;_adfgg *_ac .PdfObjectStream ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_ccagf *OutlineItem )ToPdfObject ()_ac .PdfObject {_gdbeg ,_ :=_ccagf .ToPdfOutlineItem ();return _gdbeg .ToPdfObject ();};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_bfce *PdfColorDeviceCMYK )Y ()float64 {return _bfce [2]};
|
||
|
||
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
|
||
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _ac .PdfObjectName ;};
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_gacab :=&PdfPageResourcesColorspaces {};_gacab .Names =[]string {};_gacab .Colorspaces =map[string ]PdfColorspace {};_gacab ._cegba =&_ac .PdfIndirectObject {};return _gacab ;};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_ac .PdfObjectArray ;Domain *_ac .PdfObjectArray ;Function []PdfFunction ;Extend *_ac .PdfObjectArray ;};
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_fda .StdFontName ;
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_dbecd *PdfFieldChoice )ToPdfObject ()_ac .PdfObject {_dbecd .PdfField .ToPdfObject ();_eafd :=_dbecd ._bdde ;_badd :=_eafd .PdfObject .(*_ac .PdfObjectDictionary );_badd .Set ("\u0046\u0054",_ac .MakeName ("\u0043\u0068"));if _dbecd .Opt !=nil {_badd .Set ("\u004f\u0070\u0074",_dbecd .Opt );
|
||
};if _dbecd .TI !=nil {_badd .Set ("\u0054\u0049",_dbecd .TI );};if _dbecd .I !=nil {_badd .Set ("\u0049",_dbecd .I );};return _eafd ;};
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _ac .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _bccf *_ac .PdfIndirectObject ;var _fffga *_ac .PdfObjectName ;var _efgf *_ac .PdfObjectArray ;if _aagb ,_dcce :=obj .(*_ac .PdfIndirectObject );
|
||
_dcce {_bccf =_aagb ;};obj =_ac .TraceToDirectObject (obj );switch _eeeb :=obj .(type ){case *_ac .PdfObjectArray :_efgf =_eeeb ;case *_ac .PdfObjectName :_fffga =_eeeb ;};if _fffga !=nil {switch *_fffga {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:_gd .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",*_fffga );return nil ,_gbda ;};};if _efgf !=nil &&_efgf .Len ()> 0{var _cbad _ac .PdfObject =_bccf ;
|
||
if _bccf ==nil {_cbad =_efgf ;};if _fcabe ,_cefg :=_ac .GetName (_efgf .Get (0));_cefg {switch _fcabe .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _efgf .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _efgf .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _efgf .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _gbec (_cbad );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _cebcd (_cbad );
|
||
case "\u004c\u0061\u0062":return _bbcdd (_cbad );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _ffdd (_cbad );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _bbebd (_cbad );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _ebgb (_cbad );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _cgdg (_cbad );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _aefea (_cbad );default:_gd .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",*_fcabe );
|
||
};};};_gd .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 ;};
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_edcd *PdfFont )BytesToCharcodes (data []byte )[]_gf .CharCode {_gd .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 _ebfb ,_aeaed :=_edcd ._gegb .(*pdfFontType0 );_aeaed &&_ebfb ._gcaa !=nil {if _dcgd ,_gccg :=_ebfb .bytesToCharcodes (data );_gccg {return _dcgd ;};};var (_cfece =make ([]_gf .CharCode ,0,len (data )+len (data )%2);_accd =_edcd .baseFields (););if _accd ._acbbb !=nil {if _ddcba ,_fgcc :=_accd ._acbbb .BytesToCharcodes (data );
|
||
_fgcc {for _ ,_aeeaf :=range _ddcba {_cfece =append (_cfece ,_gf .CharCode (_aeeaf ));};return _cfece ;};};if _accd .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_gd .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 _bfafb :=0;_bfafb < len (data );_bfafb +=2{_facfg :=uint16 (data [_bfafb ])<<8|uint16 (data [_bfafb +1]);_cfece =append (_cfece ,_gf .CharCode (_facfg ));};}else {for _ ,_ebad :=range data {_cfece =append (_cfece ,_gf .CharCode (_ebad ));
|
||
};};return _cfece ;};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_ecbge *PdfSignature )SetReason (reason string ){_ecbge .Reason =_ac .MakeString (reason )};func (_dgdce *PdfWriter )optimizeDocument ()error {if _dgdce ._faega ==nil {return nil ;};_eebff ,_fdcbg :=_ac .GetDict (_dgdce ._aefadb );if !_fdcbg {return _af .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");
|
||
};_bcgfe :=_fe .Document {ID :[2]string {_dgdce ._becagg ,_dgdce ._bcefa },Version :_dgdce ._gdfdc ,Objects :_dgdce ._gdeaf ,Info :_eebff ,Crypt :_dgdce ._bggef ,UseHashBasedID :_dgdce ._ffdgb };if _cdbc :=_dgdce ._faega .ApplyStandard (&_bcgfe );_cdbc !=nil {return _cdbc ;
|
||
};_dgdce ._becagg ,_dgdce ._bcefa =_bcgfe .ID [0],_bcgfe .ID [1];_dgdce ._gdfdc =_bcgfe .Version ;_dgdce ._gdeaf =_bcgfe .Objects ;_dgdce ._aefadb .PdfObject =_bcgfe .Info ;_dgdce ._ffdgb =_bcgfe .UseHashBasedID ;_dgdce ._bggef =_bcgfe .Crypt ;_ccbg :=make (map[_ac .PdfObject ]struct{},len (_dgdce ._gdeaf ));
|
||
for _ ,_fabbd :=range _dgdce ._gdeaf {_ccbg [_fabbd ]=struct{}{};};_dgdce ._agbff =_ccbg ;return nil ;};func (_fdef *PdfReader )newPdfActionSoundFromDict (_bgc *_ac .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bgc .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bgc .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bgc .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bgc .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bgc .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cffd pdfCIDFontType2 )Encoder ()_gf .TextEncoder {return _cffd ._cdgg };
|
||
|
||
// SetSubtype sets the Subtype S for given PdfOutputIntent.
|
||
func (_cceff *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _af .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");
|
||
};_cceff .S =subtype ;return nil ;};func (_ccfc *pdfFontSimple )baseFields ()*fontCommon {return &_ccfc .fontCommon };
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_aebb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if _aebb .Alternate ==nil {if _aebb .N ==1{_acgb :=NewPdfColorspaceDeviceGray ();return _acgb .ColorFromPdfObjects (objects );}else if _aebb .N ==3{_adbge :=NewPdfColorspaceDeviceRGB ();
|
||
return _adbge .ColorFromPdfObjects (objects );}else if _aebb .N ==4{_dgfb :=NewPdfColorspaceDeviceCMYK ();return _dgfb .ColorFromPdfObjects (objects );}else {return nil ,_af .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 _aebb .Alternate .ColorFromPdfObjects (objects );};func _bcdde (_ddfa *_ac .PdfObjectDictionary ,_febg *fontCommon )(*pdfFontType0 ,error ){_cdec ,_gddf :=_ac .GetArray (_ddfa .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
|
||
if !_gddf {_gd .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",_febg );
|
||
return nil ,_ac .ErrRangeError ;};if _cdec .Len ()!=1{_gd .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",_cdec .Len ());return nil ,_ac .ErrRangeError ;
|
||
};_feaadb ,_fcgc :=_eebe (_cdec .Get (0),false );if _fcgc !=nil {_gd .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",_fcgc ,_febg );
|
||
return nil ,_fcgc ;};_bbebe :=_gfada (_febg );_bbebe .DescendantFont =_feaadb ;_dfdac ,_gddf :=_ac .GetNameVal (_ddfa .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _gddf {if _dfdac =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_dfdac =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_bbebe ._edfdd =_gf .NewIdentityTextEncoder (_dfdac );
|
||
}else if _eg .IsPredefinedCMap (_dfdac ){_bbebe ._gcaa ,_fcgc =_eg .LoadPredefinedCMap (_dfdac );if _fcgc !=nil {_gd .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",_dfdac ,_fcgc );
|
||
};}else {_gd .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_dfdac );};};if _ebgda :=_feaadb .baseFields ()._acbbb ;_ebgda !=nil {if _fcedf :=_ebgda .Name ();_fcedf =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_fcedf =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_fcedf =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_fcedf =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_bbebe ._edfdd =_gf .NewCMapEncoder (_dfdac ,_bbebe ._gcaa ,_ebgda );
|
||
};};return _bbebe ,nil ;};func (_eed *PdfReader )newPdfAnnotationWatermarkFromDict (_cgbf *_ac .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_faef :=PdfAnnotationWatermark {};_faef .FixedPrint =_cgbf .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
|
||
return &_faef ,nil ;};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_cdcacg *PdfPage )HasExtGState (name _ac .PdfObjectName )bool {if _cdcacg .Resources ==nil {return false ;};if _cdcacg .Resources .ExtGState ==nil {return false ;};_ffcca ,_cbdag :=_ac .TraceToDirectObject (_cdcacg .Resources .ExtGState ).(*_ac .PdfObjectDictionary );
|
||
if !_cbdag {_gd .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",_ac .TraceToDirectObject (_cdcacg .Resources .ExtGState ));
|
||
return false ;};_fgdbga :=_ffcca .Get (name );_bfcba :=_fgdbga !=nil ;return _bfcba ;};
|
||
|
||
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
|
||
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _ac .PdfObjectName ;};
|
||
|
||
// ToImage converts an object to an Image which can be transformed or saved out.
|
||
// The image data is decoded and the Image returned.
|
||
func (_fcbbb *XObjectImage )ToImage ()(*Image ,error ){_dbged :=&Image {};if _fcbbb .Height ==nil {return nil ,_af .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_dbged .Height =*_fcbbb .Height ;if _fcbbb .Width ==nil {return nil ,_af .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_dbged .Width =*_fcbbb .Width ;if _fcbbb .BitsPerComponent ==nil {switch _fcbbb .Filter .(type ){case *_ac .CCITTFaxEncoder ,*_ac .JBIG2Encoder :_dbged .BitsPerComponent =1;
|
||
case *_ac .LZWEncoder ,*_ac .RunLengthEncoder :_dbged .BitsPerComponent =8;default:return nil ,_af .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 {_dbged .BitsPerComponent =*_fcbbb .BitsPerComponent ;};_dbged .ColorComponents =_fcbbb .ColorSpace .GetNumComponents ();_fcbbb ._gfbdff .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ac .MakeInteger (int64 (_dbged .ColorComponents )));
|
||
_bdbgb ,_gffaa :=_ac .DecodeStream (_fcbbb ._gfbdff );if _gffaa !=nil {return nil ,_gffaa ;};_dbged .Data =_bdbgb ;if _fcbbb .Decode !=nil {_agedc ,_beefc :=_fcbbb .Decode .(*_ac .PdfObjectArray );if !_beefc {_gd .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_af .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_gfcdc ,_ffcdc :=_agedc .ToFloat64Array ();if _ffcdc !=nil {return nil ,_ffcdc ;};_dbged ._gffd =_gfcdc ;};return _dbged ,nil ;};
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_afgg :=&PdfColorspaceCalGray {};_afgg .BlackPoint =[]float64 {0.0,0.0,0.0};_afgg .Gamma =1;return _afgg ;};func (_gfab *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";
|
||
};
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ac .PdfObject ;Open _ac .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dbg *PdfActionMovie )ToPdfObject ()_ac .PdfObject {_dbg .PdfAction .ToPdfObject ();_fcg :=_dbg ._eef ;_eagd :=_fcg .PdfObject .(*_ac .PdfObjectDictionary );_eagd .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeMovie )));_eagd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_dbg .Annotation );
|
||
_eagd .SetIfNotNil ("\u0054",_dbg .T );_eagd .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_dbg .Operation );return _fcg ;};
|
||
|
||
// 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 (_aedcb *Image )SetSamples (samples []uint32 ){if _aedcb .BitsPerComponent < 8{samples =_aedcb .samplesAddPadding (samples );};_ccbcd :=_cg .ResampleUint32 (samples ,int (_aedcb .BitsPerComponent ),8);_aaef :=make ([]byte ,len (_ccbcd ));for _faed ,_aafd :=range _ccbcd {_aaef [_faed ]=byte (_aafd );
|
||
};_aedcb .Data =_aaef ;};
|
||
|
||
// 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 (_efcf *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _efcf .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// 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 []*_ac .PdfObjectStream ;OCSP []*_ac .PdfObjectStream ;CRL []*_ac .PdfObjectStream ;TU *_ac .PdfObjectString ;TS *_ac .PdfObjectString ;};func (_gffgg *PdfAcroForm )fill (_ddgc FieldValueProvider ,_addc FieldAppearanceGenerator )error {if _gffgg ==nil {return nil ;
|
||
};_cece ,_bedf :=_ddgc .FieldValues ();if _bedf !=nil {return _bedf ;};for _ ,_cddd :=range _gffgg .AllFields (){_eeccb :=_cddd .PartialName ();_ccggdf ,_abcfe :=_cece [_eeccb ];if !_abcfe {if _decb ,_ggeg :=_cddd .FullName ();_ggeg ==nil {_ccggdf ,_abcfe =_cece [_decb ];
|
||
};};if !_abcfe {_gd .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",_eeccb );
|
||
continue ;};if _dffbf :=_ddgea (_cddd ,_ccggdf );_dffbf !=nil {return _dffbf ;};if _addc ==nil {continue ;};for _ ,_aeaee :=range _cddd .Annotations {_gead ,_ebab :=_addc .GenerateAppearanceDict (_gffgg ,_cddd ,_aeaee );if _ebab !=nil {return _ebab ;};
|
||
_aeaee .AP =_gead ;_aeaee .ToPdfObject ();};};return nil ;};
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_cefda *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _cefda ._eebeg .GetCrypter ()!=nil &&!_cefda ._eebeg .IsAuthenticated (){return nil ,_d .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 (_cefda ._acca )< pageNumber {return nil ,_af .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");
|
||
};_cddc :=pageNumber -1;if _cddc < 0{return nil ,_d .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");};_ddfdg :=_cefda .PageList [_cddc ];
|
||
return _ddfdg ,nil ;};
|
||
|
||
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
|
||
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_fafad :=&PdfColorPatternType2 {};return _fafad ;};func (_becag fontCommon )asPdfObjectDictionary (_edeb string )*_ac .PdfObjectDictionary {if _edeb !=""&&_becag ._efebg !=""&&_edeb !=_becag ._efebg {_gd .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",_edeb ,_becag );
|
||
}else if _edeb ==""&&_becag ._efebg ==""{_gd .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",_becag );
|
||
}else if _becag ._efebg ==""{_becag ._efebg =_edeb ;};_debg :=_ac .MakeDict ();_debg .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0046\u006f\u006e\u0074"));_debg .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ac .MakeName (_becag ._abab ));
|
||
_debg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName (_becag ._efebg ));if _becag ._bgbdc !=nil {_debg .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_becag ._bgbdc .ToPdfObject ());};if _becag ._babg !=nil {_debg .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_becag ._babg );
|
||
}else if _becag ._acbbb !=nil {_fecdc ,_ccafc :=_becag ._acbbb .Stream ();if _ccafc !=nil {_gd .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",_ccafc );
|
||
}else {_debg .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_fecdc );};};return _debg ;};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_dace *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_gffdg :=NewPdfOutlineItem ();_gffdg .Title =_ac .MakeEncodedString (_dace .Title ,true );_gffdg .Dest =_dace .Dest .ToPdfObject ();var _fbfae []*PdfOutlineItem ;var _aceaf int64 ;var _fcff *PdfOutlineItem ;
|
||
for _ ,_bada :=range _dace .Entries {_adgcc ,_fbbgc :=_bada .ToPdfOutlineItem ();_adgcc .Parent =&_gffdg .PdfOutlineTreeNode ;if _fcff !=nil {_fcff .Next =&_adgcc .PdfOutlineTreeNode ;_adgcc .Prev =&_fcff .PdfOutlineTreeNode ;};_fbfae =append (_fbfae ,_adgcc );
|
||
_aceaf +=_fbbgc ;_fcff =_adgcc ;};_dbbb :=len (_fbfae );_aceaf +=int64 (_dbbb );if _dbbb > 0{_gffdg .First =&_fbfae [0].PdfOutlineTreeNode ;_gffdg .Last =&_fbfae [_dbbb -1].PdfOutlineTreeNode ;_gffdg .Count =&_aceaf ;};return _gffdg ,_aceaf ;};var _ pdfFont =(*pdfFontSimple )(nil );
|
||
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_gabg *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// 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 ;_gege _ac .ParserMetadata ;};func (_bbeg *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _bbeg ._bgbdc };
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_fbdcb *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_baffg ,_cfede :=_fbdcb .GetMediaBox ();if _cfede !=nil {return _cfede ;};_decc :=_baffg .Urx -_baffg .Llx ;_gbbdf :=_baffg .Ury -_baffg .Lly ;_aagbf :=float64 (*ximg .Width );
|
||
_edbcd :=(_decc -_aagbf )/2;if opt .FitToWidth {_aagbf =_decc ;_edbcd =0;};_beaff :=_gbbdf ;_eggae :=float64 (0);if opt .PreserveAspectRatio {_beaff =_aagbf *float64 (*ximg .Height )/float64 (*ximg .Width );_eggae =(_gbbdf -_beaff )/2;};if _fbdcb .Resources ==nil {_fbdcb .Resources =NewPdfPageResources ();
|
||
};_caafa :=0;_abgdb :=_ac .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_caafa ));for _fbdcb .Resources .HasXObjectByName (_abgdb ){_caafa ++;_abgdb =_ac .PdfObjectName (_d .Sprintf ("\u0049\u006d\u0077%\u0064",_caafa ));};_cfede =_fbdcb .AddImageResource (_abgdb ,ximg );
|
||
if _cfede !=nil {return _cfede ;};_caafa =0;_ebabg :=_ac .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_caafa ));for _fbdcb .HasExtGState (_ebabg ){_caafa ++;_ebabg =_ac .PdfObjectName (_d .Sprintf ("\u0047\u0053\u0025\u0064",_caafa ));};_ddefc :=_ac .MakeDict ();
|
||
_ddefc .Set ("\u0042\u004d",_ac .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_ddefc .Set ("\u0043\u0041",_ac .MakeFloat (opt .Alpha ));_ddefc .Set ("\u0063\u0061",_ac .MakeFloat (opt .Alpha ));_cfede =_fbdcb .AddExtGState (_ebabg ,_ddefc );if _cfede !=nil {return _cfede ;
|
||
};_gffa :=_d .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",_ebabg ,_aagbf ,_beaff ,_edbcd ,_eggae ,_abgdb );
|
||
_fbdcb .AddContentStreamByString (_gffa );return nil ;};func _abgae ()string {_abba :="\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 _gdecf _fd .Buffer ;
|
||
for _dgfca :=0;_dgfca < 6;_dgfca ++{_gdecf .WriteRune (rune (_abba [_be .Intn (len (_abba ))]));};return _gdecf .String ();};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cdcb *PdfAnnotationLink )ToPdfObject ()_ac .PdfObject {_cdcb .PdfAnnotation .ToPdfObject ();_gcdf :=_cdcb ._fegd ;_caee :=_gcdf .PdfObject .(*_ac .PdfObjectDictionary );_caee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _cdcb ._abaf !=nil &&_cdcb ._abaf ._gc !=nil {_caee .Set ("\u0041",_cdcb ._abaf ._gc .ToPdfObject ());}else if _cdcb .A !=nil {_caee .Set ("\u0041",_cdcb .A );};_caee .SetIfNotNil ("\u0044\u0065\u0073\u0074",_cdcb .Dest );_caee .SetIfNotNil ("\u0048",_cdcb .H );
|
||
_caee .SetIfNotNil ("\u0050\u0041",_cdcb .PA );_caee .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_cdcb .QuadPoints );_caee .SetIfNotNil ("\u0042\u0053",_cdcb .BS );return _gcdf ;};
|
||
|
||
// 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 *_ac .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gggf *PdfAnnotationRichMedia )ToPdfObject ()_ac .PdfObject {_gggf .PdfAnnotation .ToPdfObject ();_eeae :=_gggf ._fegd ;_affe :=_eeae .PdfObject .(*_ac .PdfObjectDictionary );_affe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_affe .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_gggf .RichMediaSettings );_affe .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_gggf .RichMediaContent );
|
||
return _eeae ;};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_gaafc FieldFlag )String ()string {_adec :="";if _gaafc ==FieldFlagClear {_adec ="\u0043\u006c\u0065a\u0072";return _adec ;};if _gaafc &FieldFlagReadOnly > 0{_adec +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _gaafc &FieldFlagRequired > 0{_adec +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
|
||
};if _gaafc &FieldFlagNoExport > 0{_adec +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _gaafc &FieldFlagNoToggleToOff > 0{_adec +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _gaafc &FieldFlagRadio > 0{_adec +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _gaafc &FieldFlagPushbutton > 0{_adec +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _gaafc &FieldFlagRadiosInUnision > 0{_adec +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _gaafc &FieldFlagMultiline > 0{_adec +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
|
||
};if _gaafc &FieldFlagPassword > 0{_adec +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _gaafc &FieldFlagFileSelect > 0{_adec +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _gaafc &FieldFlagDoNotScroll > 0{_adec +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
|
||
};if _gaafc &FieldFlagComb > 0{_adec +="\u007c\u0043\u006fm\u0062";};if _gaafc &FieldFlagRichText > 0{_adec +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _gaafc &FieldFlagDoNotSpellCheck > 0{_adec +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
|
||
};if _gaafc &FieldFlagCombo > 0{_adec +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _gaafc &FieldFlagEdit > 0{_adec +="\u007c\u0045\u0064i\u0074";};if _gaafc &FieldFlagSort > 0{_adec +="\u007c\u0053\u006fr\u0074";};if _gaafc &FieldFlagMultiSelect > 0{_adec +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _gaafc &FieldFlagCommitOnSelChange > 0{_adec +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _fg .Trim (_adec ,"\u007c");};
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_fbgc *PdfColorLab )GetNumComponents ()int {return 3};func (_fafg *pdfCIDFontType0 )baseFields ()*fontCommon {return &_fafg .fontCommon };
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_eggfe *_ac .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_cbgf *PdfAnnotation )ToPdfObject ()_ac .PdfObject {_dbeag :=_cbgf ._fegd ;_gadc :=_dbeag .PdfObject .(*_ac .PdfObjectDictionary );_gadc .Clear ();_gadc .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0041\u006e\u006eo\u0074"));_gadc .SetIfNotNil ("\u0052\u0065\u0063\u0074",_cbgf .Rect );
|
||
_gadc .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cbgf .Contents );_gadc .SetIfNotNil ("\u0050",_cbgf .P );_gadc .SetIfNotNil ("\u004e\u004d",_cbgf .NM );_gadc .SetIfNotNil ("\u004d",_cbgf .M );_gadc .SetIfNotNil ("\u0046",_cbgf .F );
|
||
_gadc .SetIfNotNil ("\u0041\u0050",_cbgf .AP );_gadc .SetIfNotNil ("\u0041\u0053",_cbgf .AS );_gadc .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_cbgf .Border );_gadc .SetIfNotNil ("\u0043",_cbgf .C );_gadc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_cbgf .StructParent );
|
||
_gadc .SetIfNotNil ("\u004f\u0043",_cbgf .OC );return _dbeag ;};
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_efdcag *PdfField )SetContext (ctx PdfModel ){_efdcag ._edab =ctx };
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_bgbgf *PdfPage )AddExtGState (name _ac .PdfObjectName ,egs *_ac .PdfObjectDictionary )error {if _bgbgf .Resources ==nil {_bgbgf .Resources =NewPdfPageResources ();};if _bgbgf .Resources .ExtGState ==nil {_bgbgf .Resources .ExtGState =_ac .MakeDict ();
|
||
};_bdbcd ,_fgffg :=_ac .TraceToDirectObject (_bgbgf .Resources .ExtGState ).(*_ac .PdfObjectDictionary );if !_fgffg {_gd .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",_ac .TraceToDirectObject (_bgbgf .Resources .ExtGState ));
|
||
return _af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bdbcd .Set (name ,egs );return nil ;};func _eeaagf (_dbbg *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_dbbg }};func _edcgd (_efga ,_agcba string )string {if _fg .Contains (_efga ,"\u002b"){_cfbd :=_fg .Split (_efga ,"\u002b");
|
||
if len (_cfbd )==2{_efga =_cfbd [1];};};return _agcba +"\u002b"+_efga ;};
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_cdd *PdfAcroForm ,_cbda *PdfField ,_gbef *PdfAnnotationWidget )(*_ac .PdfObjectDictionary ,error );};
|
||
|
||
// 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 ){_caadg ,_bcbe :=_cef .Open (filePath );if _bcbe !=nil {_gd .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",_bcbe );
|
||
return nil ,_bcbe ;};defer _caadg .Close ();return NewPdfFontFromTTF (_caadg );};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_fdae *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_fdae .GetNumComponents (){return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgdca ,_abgf :=_fdae .TintTransform .Evaluate (vals );
|
||
if _abgf !=nil {return nil ,_abgf ;};_cefe ,_abgf :=_fdae .AlternateSpace .ColorFromFloats (_bgdca );if _abgf !=nil {return nil ,_abgf ;};return _cefe ,nil ;};
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_bdg :=&PdfAction {};_bdg ._eef =_ac .MakeIndirectObject (_ac .MakeDict ());return _bdg ;};func (_dccd *PdfAppender )mergeResources (_ffba ,_fgdgc _ac .PdfObject ,_aeaa map[_ac .PdfObjectName ]_ac .PdfObjectName )_ac .PdfObject {if _fgdgc ==nil &&_ffba ==nil {return nil ;
|
||
};if _fgdgc ==nil {return _ffba ;};_fdcd ,_gbgd :=_ac .GetDict (_fgdgc );if !_gbgd {return _ffba ;};if _ffba ==nil {_dce :=_ac .MakeDict ();_dce .Merge (_fdcd );return _fgdgc ;};_eeec ,_gbgd :=_ac .GetDict (_ffba );if !_gbgd {_gd .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");
|
||
_eeec =_ac .MakeDict ();};for _ ,_bfcb :=range _fdcd .Keys (){if _fabae ,_fgad :=_aeaa [_bfcb ];_fgad {_eeec .Set (_fabae ,_fdcd .Get (_bfcb ));}else {_eeec .Set (_bfcb ,_fdcd .Get (_bfcb ));};};return _eeec ;};
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_acf :=NewPdfAction ();_dcdb :=&PdfActionGoTo3DView {};_dcdb .PdfAction =_acf ;_acf .SetContext (_dcdb );return _dcdb ;};func (_dfbg *PdfFunctionType0 )processSamples ()error {_dafbf :=_cg .ResampleBytes (_dfbg ._egecf ,_dfbg .BitsPerSample );
|
||
_dfbg ._gfec =_dafbf ;return nil ;};func (_dagbd *PdfWriter )writeObjects (){_gd .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_dagbd ._gdeaf ));_dagbd ._ggbab =make (map[int ]crossReference );_dagbd ._ggbab [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
|
||
if _dagbd ._febgg .ObjectMap !=nil {for _gffdb ,_bbcfa :=range _dagbd ._febgg .ObjectMap {if _gffdb ==0{continue ;};if _bbcfa .XType ==_ac .XrefTypeObjectStream {_efbda :=crossReference {Type :2,ObjectNumber :_bbcfa .OsObjNumber ,Index :_bbcfa .OsObjIndex };
|
||
_dagbd ._ggbab [_gffdb ]=_efbda ;};if _bbcfa .XType ==_ac .XrefTypeTableEntry {_aedcd :=crossReference {Type :1,ObjectNumber :_bbcfa .ObjectNumber ,Offset :_bbcfa .Offset };_dagbd ._ggbab [_gffdb ]=_aedcd ;};};};};func (_ggfdg *PdfWriter )flushWriter ()error {if _ggfdg ._adace ==nil {_ggfdg ._adace =_ggfdg ._abad .Flush ();
|
||
};return _ggfdg ._adace ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_abfe *PdfColorspaceDeviceCMYK )ToPdfObject ()_ac .PdfObject {return _ac .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_dbgdg *pdfFontSimple )ToPdfObject ()_ac .PdfObject {if _dbgdg ._bbff ==nil {_dbgdg ._bbff =&_ac .PdfIndirectObject {};};_dgeb :=_dbgdg .baseFields ().asPdfObjectDictionary ("");_dbgdg ._bbff .PdfObject =_dgeb ;if _dbgdg .FirstChar !=nil {_dgeb .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_dbgdg .FirstChar );
|
||
};if _dbgdg .LastChar !=nil {_dgeb .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_dbgdg .LastChar );};if _dbgdg .Widths !=nil {_dgeb .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_dbgdg .Widths );};if _dbgdg .Encoding !=nil {_dgeb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_dbgdg .Encoding );
|
||
}else if _dbgdg ._caed !=nil {_gfea :=_dbgdg ._caed .ToPdfObject ();if _gfea !=nil {_dgeb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gfea );};};return _dbgdg ._bbff ;};
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_gaef *PdfPageResources )SetXObjectImageByName (keyName _ac .PdfObjectName ,ximg *XObjectImage )error {_dfcf :=ximg .ToPdfObject ().(*_ac .PdfObjectStream );_afede :=_gaef .SetXObjectByName (keyName ,_dfcf );return _afede ;};const (_ PdfOutputIntentType =iota ;
|
||
PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_aecb *PdfColorspaceICCBased )ToPdfObject ()_ac .PdfObject {_bbed :=&_ac .PdfObjectArray {};_bbed .Append (_ac .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _cecg *_ac .PdfObjectStream ;if _aecb ._gafd !=nil {_cecg =_aecb ._gafd ;
|
||
}else {_cecg =&_ac .PdfObjectStream {};};_ecbfg :=_ac .MakeDict ();_ecbfg .Set ("\u004e",_ac .MakeInteger (int64 (_aecb .N )));if _aecb .Alternate !=nil {_ecbfg .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_aecb .Alternate .ToPdfObject ());};if _aecb .Metadata !=nil {_ecbfg .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_aecb .Metadata );
|
||
};if _aecb .Range !=nil {var _cccc []_ac .PdfObject ;for _ ,_gdab :=range _aecb .Range {_cccc =append (_cccc ,_ac .MakeFloat (_gdab ));};_ecbfg .Set ("\u0052\u0061\u006eg\u0065",_ac .MakeArray (_cccc ...));};_ecbfg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_aecb .Data ))));
|
||
_cecg .Stream =_aecb .Data ;_cecg .PdfObjectDictionary =_ecbfg ;_bbed .Append (_cecg );if _aecb ._eeaa !=nil {_aecb ._eeaa .PdfObject =_bbed ;return _aecb ._eeaa ;};return _bbed ;};
|
||
|
||
// 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 *_ac .PdfObjectStream ;Data []byte ;_eeaa *_ac .PdfIndirectObject ;_gafd *_ac .PdfObjectStream ;};
|
||
|
||
// 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 ,_egeec :_ac .MakeDict (),ColorComponents :colorComponents };
|
||
};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_eafb :=&PdfColorspaceCalRGB {};_eafb .BlackPoint =[]float64 {0.0,0.0,0.0};_eafb .Gamma =[]float64 {1.0,1.0,1.0};_eafb .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _eafb ;};func (_facg *PdfAppender )updateObjectsDeep (_bbda _ac .PdfObject ,_fddc map[_ac .PdfObject ]struct{}){if _fddc ==nil {_fddc =map[_ac .PdfObject ]struct{}{};
|
||
};if _ ,_aebc :=_fddc [_bbda ];_aebc ||_bbda ==nil {return ;};_fddc [_bbda ]=struct{}{};_bbaa :=_ac .ResolveReferencesDeep (_bbda ,_facg ._gbe );if _bbaa !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbaa );};switch _cfda :=_bbda .(type ){case *_ac .PdfIndirectObject :switch {case _cfda .GetParser ()==_facg ._cbdcd ._eebeg :return ;
|
||
case _cfda .GetParser ()==_facg .Reader ._eebeg :_ceac ,_ :=_facg ._cbdcd .GetIndirectObjectByNumber (int (_cfda .ObjectNumber ));_bgfb ,_cda :=_ceac .(*_ac .PdfIndirectObject );if _cda &&_bgfb !=nil {if _bgfb .PdfObject !=_cfda .PdfObject &&_bgfb .PdfObject .WriteString ()!=_cfda .PdfObject .WriteString (){_facg .addNewObject (_bbda );
|
||
_facg ._degfa [_bbda ]=_cfda .ObjectNumber ;};};default:_facg .addNewObject (_bbda );};_facg .updateObjectsDeep (_cfda .PdfObject ,_fddc );case *_ac .PdfObjectArray :for _ ,_abbb :=range _cfda .Elements (){_facg .updateObjectsDeep (_abbb ,_fddc );};case *_ac .PdfObjectDictionary :for _ ,_aaec :=range _cfda .Keys (){_facg .updateObjectsDeep (_cfda .Get (_aaec ),_fddc );
|
||
};case *_ac .PdfObjectStreams :if _cfda .GetParser ()!=_facg ._cbdcd ._eebeg {for _ ,_cbce :=range _cfda .Elements (){_facg .updateObjectsDeep (_cbce ,_fddc );};};case *_ac .PdfObjectStream :switch {case _cfda .GetParser ()==_facg ._cbdcd ._eebeg :return ;
|
||
case _cfda .GetParser ()==_facg .Reader ._eebeg :if _eaae ,_edf :=_facg ._cbdcd ._eebeg .LookupByReference (_cfda .PdfObjectReference );_edf ==nil {var _eab bool ;if _efac ,_gbf :=_ac .GetStream (_eaae );_gbf &&_fd .Equal (_efac .Stream ,_cfda .Stream ){_eab =true ;
|
||
};if _cgea ,_ddae :=_ac .GetDict (_eaae );_eab &&_ddae {_eab =_cgea .WriteString ()==_cfda .PdfObjectDictionary .WriteString ();};if _eab {return ;};};if _cfda .ObjectNumber !=0{_facg ._degfa [_bbda ]=_cfda .ObjectNumber ;};default:if _ ,_eefbd :=_facg ._eddbd [_bbda ];
|
||
!_eefbd {_facg .addNewObject (_bbda );};};_facg .updateObjectsDeep (_cfda .PdfObjectDictionary ,_fddc );};};
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_cccb :map[_ac .PdfObject ]struct{}{},_gbced :_ddabf (),_eebeg :_ac .NewParserFromString (txt )};};
|
||
|
||
// 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 ;_egeec *_ac .PdfObjectDictionary ;};
|
||
|
||
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
|
||
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_ac .PdfObjectArray ;ExtGState _ac .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dcaf *PdfAnnotationHighlight )ToPdfObject ()_ac .PdfObject {_dcaf .PdfAnnotation .ToPdfObject ();_dga :=_dcaf ._fegd ;_aefe :=_dga .PdfObject .(*_ac .PdfObjectDictionary );_dcaf .PdfAnnotationMarkup .appendToPdfDictionary (_aefe );_aefe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_aefe .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_dcaf .QuadPoints );return _dga ;};func _dacaa (_bcfa *_ac .PdfObjectDictionary )(*PdfFieldButton ,error ){_baged :=&PdfFieldButton {};_baged .PdfField =NewPdfField ();_baged .PdfField .SetContext (_baged );
|
||
_baged .Opt ,_ =_ac .GetArray (_bcfa .Get ("\u004f\u0070\u0074"));_bbcea :=NewPdfAnnotationWidget ();_bbcea .A ,_ =_ac .GetDict (_bcfa .Get ("\u0041"));_bbcea .AP ,_ =_ac .GetDict (_bcfa .Get ("\u0041\u0050"));_bbcea .SetContext (_baged );_baged .PdfField .Annotations =append (_baged .PdfField .Annotations ,_bbcea );
|
||
return _baged ,nil ;};func _afeg (_dbaae *_ac .PdfObjectDictionary )(*PdfShadingType5 ,error ){_bbag :=PdfShadingType5 {};_gcabc :=_dbaae .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _gcabc ==nil {_gd .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 ;};_badc ,_gdag :=_gcabc .(*_ac .PdfObjectInteger );if !_gdag {_gd .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",_gcabc );
|
||
return nil ,_ac .ErrTypeError ;};_bbag .BitsPerCoordinate =_badc ;_gcabc =_dbaae .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gcabc ==nil {_gd .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 ;};_badc ,_gdag =_gcabc .(*_ac .PdfObjectInteger );if !_gdag {_gd .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",_gcabc );
|
||
return nil ,_ac .ErrTypeError ;};_bbag .BitsPerComponent =_badc ;_gcabc =_dbaae .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _gcabc ==nil {_gd .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 ;};_badc ,_gdag =_gcabc .(*_ac .PdfObjectInteger );if !_gdag {_gd .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",_gcabc );
|
||
return nil ,_ac .ErrTypeError ;};_bbag .VerticesPerRow =_badc ;_gcabc =_dbaae .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gcabc ==nil {_gd .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 ;};_abdab ,_gdag :=_gcabc .(*_ac .PdfObjectArray );if !_gdag {_gd .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",_gcabc );
|
||
return nil ,_ac .ErrTypeError ;};_bbag .Decode =_abdab ;if _eddg :=_dbaae .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_eddg !=nil {_bbag .Function =[]PdfFunction {};if _dgbcb ,_dceb :=_eddg .(*_ac .PdfObjectArray );_dceb {for _ ,_ecedc :=range _dgbcb .Elements (){_dfbdg ,_cedbe :=_gcddf (_ecedc );
|
||
if _cedbe !=nil {_gd .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",_cedbe );return nil ,_cedbe ;};_bbag .Function =append (_bbag .Function ,_dfbdg );
|
||
};}else {_dcgfd ,_acbbfb :=_gcddf (_eddg );if _acbbfb !=nil {_gd .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",_acbbfb );return nil ,_acbbfb ;
|
||
};_bbag .Function =append (_bbag .Function ,_dcgfd );};};return &_bbag ,nil ;};
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_dccb =keywords };const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_fgbag *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_bdfee :=RC4_128bit ;if options !=nil {_bdfee =options .Algorithm ;};_abbff :=_eece .PermOwner ;if options !=nil {_abbff =options .Permissions ;};var _eebfc _afa .Filter ;
|
||
switch _bdfee {case RC4_128bit :_eebfc =_afa .NewFilterV2 (16);case AES_128bit :_eebfc =_afa .NewFilterAESV2 ();case AES_256bit :_eebfc =_afa .NewFilterAESV3 ();default:return _d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_cgggg ,_eabcc ,_ddega :=_ac .PdfCryptNewEncrypt (_eebfc ,userPass ,ownerPass ,_abbff );if _ddega !=nil {return _ddega ;};_fgbag ._bggef =_cgggg ;if _eabcc .Major !=0{_fgbag .SetVersion (_eabcc .Major ,_eabcc .Minor );};_fgbag ._bdedb =_eabcc .Encrypt ;
|
||
_fgbag ._becagg ,_fgbag ._bcefa =_eabcc .ID0 ,_eabcc .ID1 ;_fcgcg :=_ac .MakeIndirectObject (_eabcc .Encrypt );_fgbag ._ecgdb =_fcgcg ;_fgbag .addObject (_fcgcg );return nil ;};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_egeg *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _eebf []float64 ;for _efef :=0;_efef < _egeg .GetNumComponents ();_efef ++{_eebf =append (_eebf ,0.0,1.0);};return _eebf ;};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_aa *PdfAction )String ()string {_dca ,_ec :=_aa .ToPdfObject ().(*_ac .PdfIndirectObject );if _ec {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_aa ._gc ,_dca .PdfObject .String ());};return "";};func _bcgf (_gged *_ac .PdfObjectDictionary ,_eadg *fontCommon )(*pdfCIDFontType0 ,error ){if _eadg ._efebg !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_gd .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",_eadg );
|
||
return nil ,_ac .ErrRangeError ;};_fgffb :=_eeaagf (_eadg );_ddga ,_babgc :=_ac .GetDict (_gged .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_babgc {_gd .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",_eadg );
|
||
return nil ,ErrRequiredAttributeMissing ;};_fgffb .CIDSystemInfo =_ddga ;_fgffb .DW =_gged .Get ("\u0044\u0057");_fgffb .W =_gged .Get ("\u0057");_fgffb .DW2 =_gged .Get ("\u0044\u0057\u0032");_fgffb .W2 =_gged .Get ("\u0057\u0032");_fgffb ._fggf =1000.0;
|
||
if _becfee ,_ecdag :=_ac .GetNumberAsFloat (_fgffb .DW );_ecdag ==nil {_fgffb ._fggf =_becfee ;};_ggadd ,_bgfeda :=_ebfec (_fgffb .W );if _bgfeda !=nil {return nil ,_bgfeda ;};if _ggadd ==nil {_ggadd =map[_gf .CharCode ]float64 {};};_fgffb ._gabfe =_ggadd ;
|
||
return _fgffb ,nil ;};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_bacg :=NewPdfAnnotation ();_eadaf :=&PdfAnnotationRichMedia {};_eadaf .PdfAnnotation =_bacg ;_bacg .SetContext (_eadaf );return _eadaf ;};func (_ccaab *PdfReader )flattenFieldsWithOpts (_gcb bool ,_ggadb FieldAppearanceGenerator ,_aaee *FieldFlattenOpts )error {if _aaee ==nil {_aaee =&FieldFlattenOpts {};
|
||
};var _gdfgc bool ;_dgfae :=map[*PdfAnnotation ]bool {};{var _dcba []*PdfField ;_fabf :=_ccaab .AcroForm ;if _fabf !=nil {if _aaee .FilterFunc !=nil {_dcba =_fabf .filteredFields (_aaee .FilterFunc ,true );_gdfgc =_fabf .Fields !=nil &&len (*_fabf .Fields )> 0;
|
||
}else {_dcba =_fabf .AllFields ();};};for _ ,_fbdbb :=range _dcba {for _ ,_facga :=range _fbdbb .Annotations {_dgfae [_facga .PdfAnnotation ]=_fbdbb .V !=nil ;if _ggadb !=nil {_babdg ,_baeac :=_ggadb .GenerateAppearanceDict (_fabf ,_fbdbb ,_facga );if _baeac !=nil {return _baeac ;
|
||
};_facga .AP =_babdg ;};};};};if _gcb {for _ ,_addb :=range _ccaab .PageList {_eaaae ,_ecef :=_addb .GetAnnotations ();if _ecef !=nil {return _ecef ;};for _ ,_ffee :=range _eaaae {_dgfae [_ffee ]=true ;};};};for _ ,_fbeg :=range _ccaab .PageList {var _eaded []*PdfAnnotation ;
|
||
if _ggadb !=nil {if _ecacd :=_ggadb .WrapContentStream (_fbeg );_ecacd !=nil {return _ecacd ;};};_abfb ,_bdfg :=_fbeg .GetAnnotations ();if _bdfg !=nil {return _bdfg ;};for _ ,_ccdf :=range _abfb {_deb ,_aeacff :=_dgfae [_ccdf ];if !_aeacff &&_aaee .AnnotFilterFunc !=nil {if _ ,_gabfg :=_ccdf .GetContext ().(*PdfAnnotationWidget );
|
||
!_gabfg {_aeacff =_aaee .AnnotFilterFunc (_ccdf );};};if !_aeacff {_eaded =append (_eaded ,_ccdf );continue ;};switch _ccdf .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
|
||
};_bgbf ,_ebfa ,_gceb :=_cacc (_ccdf );if _gceb !=nil {if !_deb {_gd .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 ;};_gd .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",_gceb );
|
||
continue ;};if _bgbf ==nil {continue ;};_cead :=_fbeg .Resources .GenerateXObjectName ();_fbeg .Resources .SetXObjectFormByName (_cead ,_bgbf );_fgbe ,_gceb :=_ffce (_bgbf );if _gceb !=nil {_gd .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",_gceb );
|
||
}else {_adggd :=_ba .IdentityMatrix ();_adggd =_adggd .Translate (-_fgbe .Llx ,-_fgbe .Lly );_adggd =_adggd .Scale (_ebfa .Width ()/_fgbe .Width (),_ebfa .Height ()/_fgbe .Height ());_ebfa .Transform (_adggd );};_efccg :=_da .Min (_ebfa .Llx ,_ebfa .Urx );
|
||
_dgag :=_da .Min (_ebfa .Lly ,_ebfa .Ury );var _cacf []string ;_cacf =append (_cacf ,"\u0071");_cacf =append (_cacf ,_d .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,_efccg ,_dgag ));
|
||
_cacf =append (_cacf ,_d .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_cead .String ()));_cacf =append (_cacf ,"\u0051");_bcee :=_fg .Join (_cacf ,"\u000a");_gceb =_fbeg .AppendContentStream (_bcee );if _gceb !=nil {return _gceb ;};if _bgbf .Resources !=nil {_ebcd ,_geda :=_ac .GetDict (_bgbf .Resources .Font );
|
||
if _geda {for _ ,_bdcfa :=range _ebcd .Keys (){if !_fbeg .Resources .HasFontByName (_bdcfa ){_fbeg .Resources .SetFontByName (_bdcfa ,_ebcd .Get (_bdcfa ));};};};};};if len (_eaded )> 0{_fbeg ._ceca =_eaded ;}else {_fbeg ._ceca =[]*PdfAnnotation {};};};
|
||
if !_gdfgc {_ccaab .AcroForm =nil ;};return nil ;};
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _ac .PdfObject ;IsMap _ac .PdfObject ;};
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_begcf *PdfAcroForm )ToPdfObject ()_ac .PdfObject {_afcad :=_begcf ._abecf ;_egfe :=_afcad .PdfObject .(*_ac .PdfObjectDictionary );if _begcf .Fields !=nil {_afgf :=_ac .PdfObjectArray {};for _ ,_eagbb :=range *_begcf .Fields {_gcdcc :=_eagbb .GetContext ();
|
||
if _gcdcc !=nil {_afgf .Append (_gcdcc .ToPdfObject ());}else {_afgf .Append (_eagbb .ToPdfObject ());};};_egfe .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_afgf );};if _begcf .NeedAppearances !=nil {_egfe .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_begcf .NeedAppearances );
|
||
};if _begcf .SigFlags !=nil {_egfe .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_begcf .SigFlags );};if _begcf .CO !=nil {_egfe .Set ("\u0043\u004f",_begcf .CO );};if _begcf .DR !=nil {_egfe .Set ("\u0044\u0052",_begcf .DR .ToPdfObject ());
|
||
};if _begcf .DA !=nil {_egfe .Set ("\u0044\u0041",_begcf .DA );};if _begcf .Q !=nil {_egfe .Set ("\u0051",_begcf .Q );};if _begcf .XFA !=nil {_egfe .Set ("\u0058\u0046\u0041",_begcf .XFA );};if _begcf .ADBEEchoSign !=nil {_egfe .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_begcf .ADBEEchoSign );
|
||
};return _afcad ;};func _eebe (_fggab _ac .PdfObject ,_ecee bool )(*PdfFont ,error ){_fgedg ,_gggb ,_ecea :=_acga (_fggab );if _fgedg !=nil {_agfef (_fgedg );};if _ecea !=nil {if _ecea ==ErrType1CFontNotSupported {_ggggg ,_dfab :=_aeeaae (_fgedg ,_gggb ,nil );
|
||
if _dfab !=nil {_gd .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",_gggb ,_dfab );
|
||
return nil ,_ecea ;};return &PdfFont {_gegb :_ggggg },_ecea ;};return nil ,_ecea ;};_ffaaf :=&PdfFont {};switch _gggb ._efebg {case "\u0054\u0079\u0070e\u0030":if !_ecee {_gd .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",_gggb );
|
||
return nil ,_af .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_fbgbf ,_bcec :=_bcdde (_fgedg ,_gggb );if _bcec !=nil {_gd .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",_gggb ,_bcec );
|
||
return nil ,_bcec ;};_ffaaf ._gegb =_fbgbf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ccgac *pdfFontSimple ;_gefa ,_adbcc :=_fda .NewStdFontByName (_fda .StdFontName (_gggb ._abab ));
|
||
if _adbcc {_ecbbb :=_fcbgg (_gefa );_ffaaf ._gegb =&_ecbbb ;_dcbe :=_ac .TraceToDirectObject (_ecbbb .ToPdfObject ());_baff ,_aaag ,_deeg :=_acga (_dcbe );if _deeg !=nil {_gd .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",_gggb ,_ecbbb );
|
||
return nil ,_deeg ;};for _ ,_acbe :=range _fgedg .Keys (){_baff .Set (_acbe ,_fgedg .Get (_acbe ));};_ccgac ,_deeg =_aeeaae (_baff ,_aaag ,_ecbbb ._abbba );if _deeg !=nil {_gd .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",_gggb ,_ecbbb );
|
||
return nil ,_deeg ;};_ccgac ._bdaga =_ecbbb ._bdaga ;_ccgac ._gbbfd =_ecbbb ._gbbfd ;if _ccgac ._ffbea ==nil {_ccgac ._ffbea =_ecbbb ._ffbea ;};}else {_ccgac ,_ecea =_aeeaae (_fgedg ,_gggb ,nil );if _ecea !=nil {_gd .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",_gggb ,_ecea );
|
||
return nil ,_ecea ;};};_ecea =_ccgac .addEncoding ();if _ecea !=nil {return nil ,_ecea ;};if _adbcc {_ccgac .updateStandard14Font ();};if _adbcc &&_ccgac ._caed ==nil &&_ccgac ._abbba ==nil {_gd .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ccgac );
|
||
_gd .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_gefa );};if len (_ccgac ._bdaga )==0{_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ccgac );};_ffaaf ._gegb =_ccgac ;
|
||
case "\u0054\u0079\u0070e\u0033":_ddfb ,_bfda :=_agfec (_fgedg ,_gggb );if _bfda !=nil {_gd .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",_bfda );
|
||
return nil ,_bfda ;};_ffaaf ._gegb =_ddfb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_acfb ,_gbcdb :=_bcgf (_fgedg ,_gggb );if _gbcdb !=nil {_gd .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",_gbcdb );
|
||
return nil ,_gbcdb ;};_ffaaf ._gegb =_acfb ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_agdcc ,_dbaca :=_daffc (_fgedg ,_gggb );if _dbaca !=nil {_gd .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",_gggb ,_dbaca );
|
||
return nil ,_dbaca ;};_ffaaf ._gegb =_agdcc ;default:_gd .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",_gggb );
|
||
return nil ,_d .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",_gggb );};return _ffaaf ,nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_cdab *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_afdf ,_cabbg :=_ac .GetNumbersAsFloat (objects );
|
||
if _cabbg !=nil {return nil ,_cabbg ;};return _cdab .ColorFromFloats (_afdf );};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_ebgbb *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_ebgbb .Base .GetNumComponents ();_dfdc :=int (vals [0])*N ;
|
||
if _dfdc < 0||(_dfdc +N -1)>=len (_ebgbb ._dagf ){_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dfdc );return nil ,ErrColorOutOfRange ;};_gacd :=_ebgbb ._dagf [_dfdc :_dfdc +N ];
|
||
var _cdaf []float64 ;for _ ,_beebg :=range _gacd {_cdaf =append (_cdaf ,float64 (_beebg )/255.0);};_aefd ,_gecfc :=_ebgbb .Base .ColorFromFloats (_cdaf );if _gecfc !=nil {return nil ,_gecfc ;};return _aefd ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgee *PdfAnnotationCaret )ToPdfObject ()_ac .PdfObject {_dgee .PdfAnnotation .ToPdfObject ();_dcc :=_dgee ._fegd ;_ddcb :=_dcc .PdfObject .(*_ac .PdfObjectDictionary );_dgee .PdfAnnotationMarkup .appendToPdfDictionary (_ddcb );_ddcb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_ddcb .SetIfNotNil ("\u0052\u0044",_dgee .RD );_ddcb .SetIfNotNil ("\u0053\u0079",_dgee .Sy );return _dcc ;};
|
||
|
||
// Write writes out the PDF.
|
||
func (_dbeg *PdfWriter )Write (writer _adc .Writer )error {_gd .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_gfegec :=_dbeg .checkLicense ();if _gfegec !=nil {return _gfegec ;};if _gfegec =_dbeg .writeOutlines ();_gfegec !=nil {return _gfegec ;
|
||
};if _gfegec =_dbeg .writeAcroFormFields ();_gfegec !=nil {return _gfegec ;};_dbeg .checkPendingObjects ();if _gfegec =_dbeg .writeOutputIntents ();_gfegec !=nil {return _gfegec ;};_dbeg .setCatalogVersion ();_dbeg .copyObjects ();if _gfegec =_dbeg .optimize ();
|
||
_gfegec !=nil {return _gfegec ;};if _gfegec =_dbeg .optimizeDocument ();_gfegec !=nil {return _gfegec ;};var _fdedb _g .Hash ;if _dbeg ._ffdgb {_fdedb =_dd .New ();writer =_adc .MultiWriter (_fdedb ,writer );};_dbeg .setWriter (writer );_fbcec :=_dbeg .checkCrossReferenceStream ();
|
||
_fbbafc ,_fbcec :=_dbeg .mapObjectStreams (_fbcec );_dbeg .adjustXRefAffectedVersion (_fbcec );_dbeg .writeDocumentVersion ();_dbeg .updateObjectNumbers ();_dbeg .writeObjects ();if _gfegec =_dbeg .writeObjectsInStreams (_fbbafc );_gfegec !=nil {return _gfegec ;
|
||
};_cddbf :=_dbeg ._edabb ;var _ddcdb int ;for _cddfd :=range _dbeg ._ggbab {if _cddfd > _ddcdb {_ddcdb =_cddfd ;};};if _dbeg ._ffdgb {if _gfegec =_dbeg .setHashIDs (_fdedb );_gfegec !=nil {return _gfegec ;};};if _fbcec {if _gfegec =_dbeg .writeXRefStreams (_ddcdb ,_cddbf );
|
||
_gfegec !=nil {return _gfegec ;};}else {_dbeg .writeTrailer (_ddcdb );};_dbeg .makeOffSetReference (_cddbf );if _gfegec =_dbeg .flushWriter ();_gfegec !=nil {return _gfegec ;};return nil ;};
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_adeg *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_adeg ._ddece =outlineTree };
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_ebca *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_fbaa :=_cg .NewReader (img .getBase ());_ffaf :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_dgdc :=_cg .NewWriter (_ffaf );
|
||
_bebd :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_gcfbd :=make ([]uint32 ,3);var (_bcbg error ;_efed ,_gbcag ,_dfdad ,_daddc ,_efdb ,_cbbb float64 ;);for {_bcbg =_fbaa .ReadSamples (_gcfbd );if _bcbg ==_adc .EOF {break ;}else if _bcbg !=nil {return img ,_bcbg ;
|
||
};_efed =float64 (_gcfbd [0])/_bebd ;_gbcag =float64 (_gcfbd [1])/_bebd ;_dfdad =float64 (_gcfbd [2])/_bebd ;_daddc =_ebca .Matrix [0]*_da .Pow (_efed ,_ebca .Gamma [0])+_ebca .Matrix [3]*_da .Pow (_gbcag ,_ebca .Gamma [1])+_ebca .Matrix [6]*_da .Pow (_dfdad ,_ebca .Gamma [2]);
|
||
_efdb =_ebca .Matrix [1]*_da .Pow (_efed ,_ebca .Gamma [0])+_ebca .Matrix [4]*_da .Pow (_gbcag ,_ebca .Gamma [1])+_ebca .Matrix [7]*_da .Pow (_dfdad ,_ebca .Gamma [2]);_cbbb =_ebca .Matrix [2]*_da .Pow (_efed ,_ebca .Gamma [0])+_ebca .Matrix [5]*_da .Pow (_gbcag ,_ebca .Gamma [1])+_ebca .Matrix [8]*_da .Pow (_dfdad ,_ebca .Gamma [2]);
|
||
_efed =3.240479*_daddc +-1.537150*_efdb +-0.498535*_cbbb ;_gbcag =-0.969256*_daddc +1.875992*_efdb +0.041556*_cbbb ;_dfdad =0.055648*_daddc +-0.204043*_efdb +1.057311*_cbbb ;_efed =_da .Min (_da .Max (_efed ,0),1.0);_gbcag =_da .Min (_da .Max (_gbcag ,0),1.0);
|
||
_dfdad =_da .Min (_da .Max (_dfdad ,0),1.0);_gcfbd [0]=uint32 (_efed *_bebd );_gcfbd [1]=uint32 (_gbcag *_bebd );_gcfbd [2]=uint32 (_dfdad *_bebd );if _bcbg =_dgdc .WriteSamples (_gcfbd );_bcbg !=nil {return img ,_bcbg ;};};return _affb (&_ffaf ),nil ;
|
||
};func (_egg *PdfReader )newPdfAnnotationHighlightFromDict (_cca *_ac .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_egge :=PdfAnnotationHighlight {};_cbcb ,_dfdb :=_egg .newPdfAnnotationMarkupFromDict (_cca );if _dfdb !=nil {return nil ,_dfdb ;
|
||
};_egge .PdfAnnotationMarkup =_cbcb ;_egge .QuadPoints =_cca .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_egge ,nil ;};
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ac .PdfObject ;LE _ac .PdfObject ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;IT _ac .PdfObject ;Measure _ac .PdfObject ;};func (_bea *PdfReader )newPdfAnnotationPolygonFromDict (_bdce *_ac .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_ceba :=PdfAnnotationPolygon {};
|
||
_ecbb ,_fbeb :=_bea .newPdfAnnotationMarkupFromDict (_bdce );if _fbeb !=nil {return nil ,_fbeb ;};_ceba .PdfAnnotationMarkup =_ecbb ;_ceba .Vertices =_bdce .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_ceba .LE =_bdce .Get ("\u004c\u0045");
|
||
_ceba .BS =_bdce .Get ("\u0042\u0053");_ceba .IC =_bdce .Get ("\u0049\u0043");_ceba .BE =_bdce .Get ("\u0042\u0045");_ceba .IT =_bdce .Get ("\u0049\u0054");_ceba .Measure =_bdce .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_ceba ,nil ;};func _gcddf (_bddcd _ac .PdfObject )(PdfFunction ,error ){_bddcd =_ac .ResolveReference (_bddcd );
|
||
if _gaebe ,_deged :=_bddcd .(*_ac .PdfObjectStream );_deged {_edcdf :=_gaebe .PdfObjectDictionary ;_dbace ,_cgedd :=_edcdf .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ac .PdfObjectInteger );if !_cgedd {_gd .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 ,_af .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 *_dbace ==0{return _fdgfc (_gaebe );}else if *_dbace ==4{return _gbfea (_gaebe );
|
||
}else {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _agfd ,_cfed :=_bddcd .(*_ac .PdfIndirectObject );_cfed {_daba ,_fcefbe :=_agfd .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_fcefbe {_gd .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 ,_af .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");};_bgcb ,_fcefbe :=_daba .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ac .PdfObjectInteger );
|
||
if !_fcefbe {_gd .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 ,_af .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 *_bgcb ==2{return _gcag (_agfd );}else if *_bgcb ==3{return _bbdbc (_agfd );}else {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _egec ,_cbfff :=_bddcd .(*_ac .PdfObjectDictionary );
|
||
_cbfff {_eagbg ,_aafbb :=_egec .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ac .PdfObjectInteger );if !_aafbb {_gd .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 ,_af .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 *_eagbg ==2{return _gcag (_egec );}else if *_eagbg ==3{return _bbdbc (_egec );
|
||
}else {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_gd .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_bddcd );
|
||
return nil ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };func (_fbca *PdfReader )newPdfActionNamedFromDict (_aeeg *_ac .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_aeeg .Get ("\u004e")},nil ;};
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_dagg *PdfPageResources )HasXObjectByName (keyName _ac .PdfObjectName )bool {_afdad ,_ :=_dagg .GetXObjectByName (keyName );return _afdad !=nil ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_baad *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_gd .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_af .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func (_daafd *PdfWriter )mapObjectStreams (_dfdcg bool )(map[_ac .PdfObject ]bool ,bool ){_decd :=make (map[_ac .PdfObject ]bool );
|
||
for _ ,_bbfgb :=range _daafd ._gdeaf {if _ccabe ,_agfefa :=_bbfgb .(*_ac .PdfObjectStreams );_agfefa {_dfdcg =true ;for _ ,_gggag :=range _ccabe .Elements (){_decd [_gggag ]=true ;if _bgbfa ,_dgcdbf :=_gggag .(*_ac .PdfIndirectObject );_dgcdbf {_decd [_bgbfa .PdfObject ]=true ;
|
||
};};};};return _decd ,_dfdcg ;};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_ddge *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_acbg :=0.3*_ddge .R ()+0.59*_ddge .G ()+0.11*_ddge .B ();_acbg =_da .Min (_da .Max (_acbg ,0.0),1.0);return NewPdfColorDeviceGray (_acbg );};
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_ac .PdfObjectDictionary )(*PdfPageResources ,error ){_cbdbd :=NewPdfPageResources ();if _eabgg :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_eabgg !=nil {_cbdbd .ExtGState =_eabgg ;};if _deab :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_deab !=nil &&!_ac .IsNullObject (_deab ){_cbdbd .ColorSpace =_deab ;};if _efcgb :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_efcgb !=nil {_cbdbd .Pattern =_efcgb ;};if _ddcbg :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_ddcbg !=nil {_cbdbd .Shading =_ddcbg ;
|
||
};if _cadg :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_cadg !=nil {_cbdbd .XObject =_cadg ;};if _gdccc :=_ac .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_gdccc !=nil {_cbdbd .Font =_gdccc ;};if _bfeea :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_bfeea !=nil {_cbdbd .ProcSet =_bfeea ;};if _baec :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_baec !=nil {_cbdbd .Properties =_baec ;};return _cbdbd ,nil ;};func (_cdcfb *PdfReader )newPdfPageFromDict (_fbaea *_ac .PdfObjectDictionary )(*PdfPage ,error ){_bfaab :=NewPdfPage ();
|
||
_bfaab ._egcd =_fbaea ;_bfaab ._cecfa =*_fbaea ;_eaga :=*_fbaea ;_dbge ,_efgb :=_eaga .Get ("\u0054\u0079\u0070\u0065").(*_ac .PdfObjectName );if !_efgb {return nil ,_af .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 *_dbge !="\u0050\u0061\u0067\u0065"{return nil ,_af .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 _ffcbd :=_eaga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_ffcbd !=nil {_bfaab .Parent =_ffcbd ;};if _cedd :=_eaga .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_cedd !=nil {_cbbcg ,_cadbg :=_ac .GetString (_cedd );if !_cadbg {return nil ,_af .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");
|
||
};_gbbb ,_ddaba :=NewPdfDate (_cbbcg .Str ());if _ddaba !=nil {return nil ,_ddaba ;};_bfaab .LastModified =&_gbbb ;};if _beeef :=_eaga .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_beeef !=nil &&!_ac .IsNullObject (_beeef ){_fbbgb ,_cgffdd :=_ac .GetDict (_beeef );
|
||
if !_cgffdd {return nil ,_d .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",_beeef );};var _agcca error ;_bfaab .Resources ,_agcca =NewPdfPageResourcesFromDict (_fbbgb );
|
||
if _agcca !=nil {return nil ,_agcca ;};}else {_deeb ,_dabac :=_bfaab .getParentResources ();if _dabac !=nil {return nil ,_dabac ;};if _deeb ==nil {_deeb =NewPdfPageResources ();};_bfaab .Resources =_deeb ;};if _ceabd :=_eaga .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_ceabd !=nil {_ffcbe ,_aaeba :=_ac .GetArray (_ceabd );if !_aaeba {return nil ,_af .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 _aeacb error ;
|
||
_bfaab .MediaBox ,_aeacb =NewPdfRectangle (*_ffcbe );if _aeacb !=nil {return nil ,_aeacb ;};};if _daaaa :=_eaga .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_daaaa !=nil {_dafdg ,_abcbb :=_ac .GetArray (_daaaa );if !_abcbb {return nil ,_af .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _ggfdd error ;_bfaab .CropBox ,_ggfdd =NewPdfRectangle (*_dafdg );if _ggfdd !=nil {return nil ,_ggfdd ;};};if _ebff :=_eaga .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_ebff !=nil {_bagc ,_bcbfb :=_ac .GetArray (_ebff );if !_bcbfb {return nil ,_af .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 _bcgg error ;_bfaab .BleedBox ,_bcgg =NewPdfRectangle (*_bagc );if _bcgg !=nil {return nil ,_bcgg ;};};if _dcgce :=_eaga .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_dcgce !=nil {_bdagac ,_acab :=_ac .GetArray (_dcgce );if !_acab {return nil ,_af .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _gcea error ;_bfaab .TrimBox ,_gcea =NewPdfRectangle (*_bdagac );if _gcea !=nil {return nil ,_gcea ;};};if _eedd :=_eaga .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_eedd !=nil {_bcaf ,_beadc :=_ac .GetArray (_eedd );if !_beadc {return nil ,_af .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _bgbfg error ;_bfaab .ArtBox ,_bgbfg =NewPdfRectangle (*_bcaf );if _bgbfg !=nil {return nil ,_bgbfg ;};};if _daebb :=_eaga .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_daebb !=nil {_bfaab .BoxColorInfo =_daebb ;};
|
||
if _fecee :=_eaga .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_fecee !=nil {_bfaab .Contents =_fecee ;};if _bedded :=_eaga .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_bedded !=nil {_dceef ,_bdbgg :=_ac .GetNumberAsInt64 (_bedded );if _bdbgg !=nil {return nil ,_af .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");
|
||
};_bfaab .Rotate =&_dceef ;};if _geadf :=_eaga .Get ("\u0047\u0072\u006fu\u0070");_geadf !=nil {_bfaab .Group =_geadf ;};if _fcebe :=_eaga .Get ("\u0054\u0068\u0075m\u0062");_fcebe !=nil {_bfaab .Thumb =_fcebe ;};if _ccge :=_eaga .Get ("\u0042");_ccge !=nil {_bfaab .B =_ccge ;
|
||
};if _fbdaa :=_eaga .Get ("\u0044\u0075\u0072");_fbdaa !=nil {_bfaab .Dur =_fbdaa ;};if _aaecg :=_eaga .Get ("\u0054\u0072\u0061n\u0073");_aaecg !=nil {_bfaab .Trans =_aaecg ;};if _affa :=_eaga .Get ("\u0041\u0041");_affa !=nil {_bfaab .AA =_affa ;};if _fbcab :=_eaga .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");
|
||
_fbcab !=nil {_bfaab .Metadata =_fbcab ;};if _adcdg :=_eaga .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_adcdg !=nil {_bfaab .PieceInfo =_adcdg ;};if _aggbd :=_eaga .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
|
||
_aggbd !=nil {_bfaab .StructParents =_aggbd ;};if _baaae :=_eaga .Get ("\u0049\u0044");_baaae !=nil {_bfaab .ID =_baaae ;};if _efge :=_eaga .Get ("\u0050\u005a");_efge !=nil {_bfaab .PZ =_efge ;};if _gcgaaf :=_eaga .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
|
||
_gcgaaf !=nil {_bfaab .SeparationInfo =_gcgaaf ;};if _gcee :=_eaga .Get ("\u0054\u0061\u0062\u0073");_gcee !=nil {_bfaab .Tabs =_gcee ;};if _cgda :=_eaga .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
|
||
_cgda !=nil {_bfaab .TemplateInstantiated =_cgda ;};if _dddb :=_eaga .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_dddb !=nil {_bfaab .PresSteps =_dddb ;};if _dagbf :=_eaga .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dagbf !=nil {_bfaab .UserUnit =_dagbf ;
|
||
};if _ccggf :=_eaga .Get ("\u0056\u0050");_ccggf !=nil {_bfaab .VP =_ccggf ;};if _bcgbe :=_eaga .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_bcgbe !=nil {_bfaab .Annots =_bcgbe ;};_bfaab ._bcfff =_cdcfb ;return _bfaab ,nil ;};type fontFile struct{_bedba string ;
|
||
_fggeg string ;_bcdea _gf .SimpleEncoder ;};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_cbg *PdfAction )GetContext ()PdfModel {if _cbg ==nil {return nil ;};return _cbg ._gc ;};
|
||
|
||
// 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 (_cefb *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_caedg :=_cefb .fill (provider ,appGen );if _caedg !=nil {return _caedg ;};if _ ,_fgeb :=provider .(FieldImageProvider );_fgeb {_caedg =_cefb .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
|
||
};return _caedg ;};func (_dadda *PdfWriter )checkPendingObjects (){for _dfddb ,_daded :=range _dadda ._fage {if !_dadda .hasObject (_dfddb ){_gd .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",_dfddb ,_dfddb ,_dfddb );
|
||
for _ ,_gbacge :=range _daded {for _ ,_bcggc :=range _gbacge .Keys (){_gfcc :=_gbacge .Get (_bcggc );if _gfcc ==_dfddb {_gd .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");
|
||
_gbacge .Set (_bcggc ,_ac .MakeNull ());break ;};};};};};};
|
||
|
||
// 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 ;};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_baacf *PdfReader )PageFromIndirectObject (ind *_ac .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_baacf .PageList )!=len (_baacf ._acca ){return nil ,0,_af .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _bdafd ,_egeag :=range _baacf ._acca {if _egeag ==ind {return _baacf .PageList [_bdafd ],_bdafd +1,nil ;};};return nil ,0,_af .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bca *PdfAction )ToPdfObject ()_ac .PdfObject {_ddb :=_bca ._eef ;_dgd :=_ddb .PdfObject .(*_ac .PdfObjectDictionary );_dgd .Clear ();_dgd .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_dgd .SetIfNotNil ("\u0053",_bca .S );
|
||
_dgd .SetIfNotNil ("\u004e\u0065\u0078\u0074",_bca .Next );return _ddb ;};
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_edg :=NewPdfAnnotation ();_efdca :=&PdfAnnotation3D {};_efdca .PdfAnnotation =_edg ;_edg .SetContext (_efdca );return _efdca ;};
|
||
|
||
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
|
||
func (_fbbfe *PdfWriter )SetCatalogMetadata (meta _ac .PdfObject )error {if meta ==nil {_fbbfe ._cgfegd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_ebfad ,_degab :=_ac .GetStream (meta );if !_degab {return _af .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");
|
||
};_fbbfe .addObject (_ebfad );_fbbfe ._cgfegd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_ebfad );return nil ;};
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ac .PdfObject ;Name _ac .PdfObject ;State _ac .PdfObject ;StateModel _ac .PdfObject ;};
|
||
|
||
// 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 ;_eaadg *_ac .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_bcef *PdfShadingType3 )ToPdfObject ()_ac .PdfObject {_bcef .PdfShading .ToPdfObject ();_beaa ,_bcabf :=_bcef .getShadingDict ();if _bcabf !=nil {_gd .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 _bcef .Coords !=nil {_beaa .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_bcef .Coords );};if _bcef .Domain !=nil {_beaa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_bcef .Domain );};if _bcef .Function !=nil {if len (_bcef .Function )==1{_beaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bcef .Function [0].ToPdfObject ());
|
||
}else {_ccccg :=_ac .MakeArray ();for _ ,_afeaf :=range _bcef .Function {_ccccg .Append (_afeaf .ToPdfObject ());};_beaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ccccg );};};if _bcef .Extend !=nil {_beaa .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_bcef .Extend );
|
||
};return _bcef ._dffbg ;};
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_begca *PdfRectangle )ToPdfObject ()_ac .PdfObject {return _ac .MakeArray (_ac .MakeFloat (_begca .Llx ),_ac .MakeFloat (_begca .Lly ),_ac .MakeFloat (_begca .Urx ),_ac .MakeFloat (_begca .Ury ));};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_dggbb *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dggbb .fill (provider ,nil )};
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_caafg *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _caafg .Alternate ==nil {_gd .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 _caafg .N ==1{_gd .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");
|
||
_babcb :=NewPdfColorspaceDeviceGray ();return _babcb .ImageToRGB (img );}else if _caafg .N ==3{_gd .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 _caafg .N ==4{_gd .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");
|
||
_ggebg :=NewPdfColorspaceDeviceCMYK ();return _ggebg .ImageToRGB (img );}else {return img ,_af .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");
|
||
};};_gd .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",_caafg );
|
||
_eabg ,_dbde :=_caafg .Alternate .ImageToRGB (img );_gd .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_gd .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_eabg );
|
||
return _eabg ,_dbde ;};
|
||
|
||
// 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 (_deagf *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ebbb ,_badge :=_ac .GetNumbersAsFloat (objects );
|
||
if _badge !=nil {return nil ,_badge ;};return _deagf .ColorFromFloats (_ebbb );};
|
||
|
||
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
|
||
func (_gece *PdfPageResources )HasPatternByName (keyName _ac .PdfObjectName )bool {_ ,_ebceb :=_gece .GetPatternByName (keyName );return _ebceb ;};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_eggda *DSS )generateHashMaps ()error {_cadd ,_gegde :=_eggda .generateHashMap (_eggda .Certs );
|
||
if _gegde !=nil {return _gegde ;};_ecec ,_gegde :=_eggda .generateHashMap (_eggda .OCSPs );if _gegde !=nil {return _gegde ;};_cgddd ,_gegde :=_eggda .generateHashMap (_eggda .CRLs );if _gegde !=nil {return _gegde ;};_eggda ._fegf =_cadd ;_eggda ._edag =_ecec ;
|
||
_eggda ._gdbfa =_cgddd ;return nil ;};
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_geae *PdfPattern )GetContext ()PdfModel {return _geae ._bfcc };
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_dffad :=&PdfAppender {_dcaa :reader ._fafc ,Reader :reader ,_bbbg :reader ._eebeg ,_gbe :reader ._cccb };_dgfa ,_fgdg :=_dffad ._dcaa .Seek (0,_adc .SeekEnd );if _fgdg !=nil {return nil ,_fgdg ;
|
||
};_dffad ._fcef =_dgfa ;if _ ,_fgdg =_dffad ._dcaa .Seek (0,_adc .SeekStart );_fgdg !=nil {return nil ,_fgdg ;};_dffad ._cbdcd ,_fgdg =NewPdfReader (_dffad ._dcaa );if _fgdg !=nil {return nil ,_fgdg ;};for _ ,_abdf :=range _dffad .Reader .GetObjectNums (){if _dffad ._dgfe < _abdf {_dffad ._dgfe =_abdf ;
|
||
};};_dffad ._gdg =_dffad ._bbbg .GetXrefTable ();_dffad ._adgf =_dffad ._bbbg .GetXrefOffset ();_dffad ._abda =append (_dffad ._abda ,_dffad ._cbdcd .PageList ...);_dffad ._eddbd =make (map[_ac .PdfObject ]struct{});_dffad ._degfa =make (map[_ac .PdfObject ]int64 );
|
||
_dffad ._fbfga =make (map[_ac .PdfObject ]struct{});_dffad ._cabc =_dffad ._cbdcd .AcroForm ;_dffad ._acaf =_dffad ._cbdcd .DSS ;return _dffad ,nil ;};
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_ccbbf *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _ccbbf ._ceca !=nil {return _ccbbf ._ceca ,nil ;};if _ccbbf .Annots ==nil {_ccbbf ._ceca =[]*PdfAnnotation {};return nil ,nil ;};if _ccbbf ._bcfff ==nil {_ccbbf ._ceca =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_daada ,_fdfcf :=_ccbbf ._bcfff .loadAnnotations (_ccbbf .Annots );if _fdfcf !=nil {return nil ,_fdfcf ;};if _daada ==nil {_ccbbf ._ceca =[]*PdfAnnotation {};};_ccbbf ._ceca =_daada ;return _ccbbf ._ceca ,nil ;};func (_abc *PdfReader )newPdfAnnotationFileAttachmentFromDict (_ccdb *_ac .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_daff :=PdfAnnotationFileAttachment {};
|
||
_ddf ,_fge :=_abc .newPdfAnnotationMarkupFromDict (_ccdb );if _fge !=nil {return nil ,_fge ;};_daff .PdfAnnotationMarkup =_ddf ;_daff .FS =_ccdb .Get ("\u0046\u0053");_daff .Name =_ccdb .Get ("\u004e\u0061\u006d\u0065");return &_daff ,nil ;};
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_daed :=NewPdfAnnotation ();_befb :=&PdfAnnotationTrapNet {};_befb .PdfAnnotation =_daed ;_daed .SetContext (_befb );return _befb ;};func _ebfec (_bcdded _ac .PdfObject )(map[_gf .CharCode ]float64 ,error ){if _bcdded ==nil {return nil ,nil ;
|
||
};_acge ,_fagd :=_ac .GetArray (_bcdded );if !_fagd {return nil ,nil ;};_faeg :=map[_gf .CharCode ]float64 {};_gbed :=_acge .Len ();for _fcaf :=0;_fcaf < _gbed -1;_fcaf ++{_gfcg :=_ac .TraceToDirectObject (_acge .Get (_fcaf ));_cgdddb ,_gbdac :=_ac .GetIntVal (_gfcg );
|
||
if !_gbdac {return nil ,_d .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_fcaf ,_gfcg );};_fcaf ++;if _fcaf > _gbed -1{return nil ,_d .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",_acge );
|
||
};_aadc :=_ac .TraceToDirectObject (_acge .Get (_fcaf ));switch _aadc .(type ){case *_ac .PdfObjectArray :_abgff ,_ :=_ac .GetArray (_aadc );if _dfgf ,_cagc :=_abgff .ToFloat64Array ();_cagc ==nil {for _fedfc :=0;_fedfc < len (_dfgf );_fedfc ++{_faeg [_gf .CharCode (_cgdddb +_fedfc )]=_dfgf [_fedfc ];
|
||
};}else {return nil ,_d .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",_fcaf ,_aadc );};case *_ac .PdfObjectInteger :_eaegf ,_edfa :=_ac .GetIntVal (_aadc );
|
||
if !_edfa {return nil ,_d .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",_fcaf ,_aadc );};_fcaf ++;if _fcaf > _gbed -1{return nil ,_d .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",_acge );
|
||
};_dcbcd :=_acge .Get (_fcaf );_cadba ,_faec :=_ac .GetNumberAsFloat (_dcbcd );if _faec !=nil {return nil ,_d .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",_fcaf ,_dcbcd );
|
||
};for _ababa :=_cgdddb ;_ababa <=_eaegf ;_ababa ++{_faeg [_gf .CharCode (_ababa )]=_cadba ;};default:return nil ,_d .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",_fcaf ,_aadc );
|
||
};};return _faeg ,nil ;};func (_ddac *PdfReader )newPdfAnnotationSoundFromDict (_bbd *_ac .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_ccgf :=PdfAnnotationSound {};_ddcf ,_fcba :=_ddac .newPdfAnnotationMarkupFromDict (_bbd );if _fcba !=nil {return nil ,_fcba ;
|
||
};_ccgf .PdfAnnotationMarkup =_ddcf ;_ccgf .Name =_bbd .Get ("\u004e\u0061\u006d\u0065");_ccgf .Sound =_bbd .Get ("\u0053\u006f\u0075n\u0064");return &_ccgf ,nil ;};func (_aded *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _aded ._bgbdc };
|
||
func (_bafff *PdfWriter )writeBytes (_cagcb []byte ){if _bafff ._adace !=nil {return ;};_efaff ,_afcga :=_bafff ._abad .Write (_cagcb );_bafff ._edabb +=int64 (_efaff );_bafff ._adace =_afcga ;};
|
||
|
||
// NewPermissions returns a new permissions object.
|
||
func NewPermissions (docMdp *PdfSignature )*Permissions {_cdbea :=Permissions {};_cdbea .DocMDP =docMdp ;_ggfff :=_ac .MakeDict ();_ggfff .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_cdbea ._aebdd =_ggfff ;return &_cdbea ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_gfbc *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dabf ,_gfgdb :=_ac .GetNumbersAsFloat (objects );
|
||
if _gfgdb !=nil {return nil ,_gfgdb ;};return _gfbc .ColorFromFloats (_dabf );};
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ac .PdfObject ;MK _ac .PdfObject ;A _ac .PdfObject ;AA _ac .PdfObject ;BS _ac .PdfObject ;Parent _ac .PdfObject ;_gdb *PdfField ;_fed bool ;};
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_ac .PdfObjectString ;Q *_ac .PdfObjectInteger ;DS *_ac .PdfObjectString ;RV _ac .PdfObject ;MaxLen *_ac .PdfObjectInteger ;};func _faba (_dafb *PdfPage )map[_ac .PdfObjectName ]_ac .PdfObject {_ded :=make (map[_ac .PdfObjectName ]_ac .PdfObject );
|
||
if _dafb .Resources ==nil {return _ded ;};if _dafb .Resources .Font !=nil {if _afde ,_dffg :=_ac .GetDict (_dafb .Resources .Font );_dffg {for _ ,_badgb :=range _afde .Keys (){_ded [_badgb ]=_afde .Get (_badgb );};};};if _dafb .Resources .ExtGState !=nil {if _dfbc ,_beeea :=_ac .GetDict (_dafb .Resources .ExtGState );
|
||
_beeea {for _ ,_ddab :=range _dfbc .Keys (){_ded [_ddab ]=_dfbc .Get (_ddab );};};};if _dafb .Resources .XObject !=nil {if _def ,_acgfg :=_ac .GetDict (_dafb .Resources .XObject );_acgfg {for _ ,_eeb :=range _def .Keys (){_ded [_eeb ]=_def .Get (_eeb );
|
||
};};};if _dafb .Resources .Pattern !=nil {if _gfgde ,_abff :=_ac .GetDict (_dafb .Resources .Pattern );_abff {for _ ,_dag :=range _gfgde .Keys (){_ded [_dag ]=_gfgde .Get (_dag );};};};if _dafb .Resources .Shading !=nil {if _gbcd ,_eggd :=_ac .GetDict (_dafb .Resources .Shading );
|
||
_eggd {for _ ,_bcac :=range _gbcd .Keys (){_ded [_bcac ]=_gbcd .Get (_bcac );};};};if _dafb .Resources .ProcSet !=nil {if _ccgd ,_cagba :=_ac .GetDict (_dafb .Resources .ProcSet );_cagba {for _ ,_cgff :=range _ccgd .Keys (){_ded [_cgff ]=_ccgd .Get (_cgff );
|
||
};};};if _dafb .Resources .Properties !=nil {if _adfb ,_eedc :=_ac .GetDict (_dafb .Resources .Properties );_eedc {for _ ,_cfa :=range _adfb .Keys (){_ded [_cfa ]=_adfb .Get (_cfa );};};};return _ded ;};func (_cced *PdfReader )newPdfAnnotationTextFromDict (_dbga *_ac .PdfObjectDictionary )(*PdfAnnotationText ,error ){_aae :=PdfAnnotationText {};
|
||
_dffa ,_cdc :=_cced .newPdfAnnotationMarkupFromDict (_dbga );if _cdc !=nil {return nil ,_cdc ;};_aae .PdfAnnotationMarkup =_dffa ;_aae .Open =_dbga .Get ("\u004f\u0070\u0065\u006e");_aae .Name =_dbga .Get ("\u004e\u0061\u006d\u0065");_aae .State =_dbga .Get ("\u0053\u0074\u0061t\u0065");
|
||
_aae .StateModel =_dbga .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_aae ,nil ;};
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ac .PdfObjectBool ;SigFlags *_ac .PdfObjectInteger ;CO *_ac .PdfObjectArray ;DR *PdfPageResources ;DA *_ac .PdfObjectString ;Q *_ac .PdfObjectInteger ;XFA _ac .PdfObject ;
|
||
|
||
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
|
||
ADBEEchoSign _ac .PdfObject ;_abecf *_ac .PdfIndirectObject ;_dagc bool ;};func _cdef (_ccca StdFontName )(pdfFontSimple ,error ){_fdgg ,_fbdf :=_fda .NewStdFontByName (_ccca );if !_fbdf {return pdfFontSimple {},ErrFontNotSupported ;};_ggfe :=_fcbgg (_fdgg );
|
||
return _ggfe ,nil ;};
|
||
|
||
// GetCatalogMetadata gets the catalog defined XMP Metadata.
|
||
func (_beed *PdfReader )GetCatalogMetadata ()(_ac .PdfObject ,bool ){if _beed ._bdfc ==nil {return nil ,false ;};_decbb :=_beed ._bdfc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _decbb ,_decbb !=nil ;};
|
||
|
||
// NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the
|
||
// metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X.
|
||
// NOTE: This implementation is in experimental development state.
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
func NewCompliancePdfReader (rs _adc .ReadSeeker )(*CompliancePdfReader ,error ){const _gdae ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_caac ,_bbee :=_gaada (rs ,&ReaderOpts {ComplianceMode :true },false ,_gdae );
|
||
if _bbee !=nil {return nil ,_bbee ;};return &CompliancePdfReader {PdfReader :_caac },nil ;};
|
||
|
||
// AppendContentBytes creates a PDF stream from `cs` and appends it to the
|
||
// array of streams specified by the pages's Contents entry.
|
||
// If `wrapContents` is true, the content stream of the page is wrapped using
|
||
// a `q/Q` operator pair, so that its state does not affect the appended
|
||
// content stream.
|
||
func (_fbagea *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_bbca :=_fbagea .GetContentStreamObjs ();wrapContents =wrapContents &&len (_bbca )> 0;_geec :=_ac .NewFlateEncoder ();_accb :=_ac .MakeArray ();if wrapContents {_efgfg ,_cfege :=_ac .MakeStream ([]byte ("\u0071\u000a"),_geec );
|
||
if _cfege !=nil {return _cfege ;};_accb .Append (_efgfg );};_accb .Append (_bbca ...);if wrapContents {_cfff ,_gdga :=_ac .MakeStream ([]byte ("\u000a\u0051\u000a"),_geec );if _gdga !=nil {return _gdga ;};_accb .Append (_cfff );};_bdbae ,_feedd :=_ac .MakeStream (cs ,_geec );
|
||
if _feedd !=nil {return _feedd ;};_accb .Append (_bdbae );_fbagea .Contents =_accb ;return nil ;};func (_cbgce *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _cbgce ._eebeg .GetCrypter ()!=nil &&!_cbgce ._eebeg .IsAuthenticated (){return nil ,_d .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");
|
||
};_cbbff :=_cbgce ._bdfc ;_egag :=_cbbff .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _egag ==nil {return nil ,nil ;};_gd .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_cecb :=_ac .ResolveReference (_egag );
|
||
_gd .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_cecb );if _acccg :=_ac .IsNullObject (_cecb );_acccg {_gd .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 ;};_efecc ,_fbebcf :=_cecb .(*_ac .PdfIndirectObject );if !_fbebcf {if _ ,_cfdec :=_ac .GetDict (_cecb );!_cfdec {_gd .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 ;};_gd .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");
|
||
_efecc =_ac .MakeIndirectObject (_cecb );};_aadg ,_fbebcf :=_efecc .PdfObject .(*_ac .PdfObjectDictionary );if !_fbebcf {return nil ,_af .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");
|
||
};_gd .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_aadg );_ebce ,_ ,_efede :=_cbgce .buildOutlineTree (_efecc ,nil ,nil ,nil );if _efede !=nil {return nil ,_efede ;};_gd .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",_ebce );
|
||
return _ebce ,nil ;};func _fbgfd (_ebec *_ac .PdfIndirectObject ,_cdcd *_ac .PdfObjectDictionary )(*DSS ,error ){if _ebec ==nil {_ebec =_ac .MakeIndirectObject (nil );};_ebec .PdfObject =_ac .MakeDict ();_ebba :=map[string ]*VRI {};if _ecace ,_gagc :=_ac .GetDict (_cdcd .Get ("\u0056\u0052\u0049"));
|
||
_gagc {for _ ,_ceda :=range _ecace .Keys (){if _eeaf ,_gebf :=_ac .GetDict (_ecace .Get (_ceda ));_gebf {_ebba [_fg .ToUpper (_ceda .String ())]=_ggec (_eeaf );};};};return &DSS {Certs :_bcfac (_cdcd .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_bcfac (_cdcd .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_bcfac (_cdcd .Get ("\u0043\u0052\u004c\u0073")),VRI :_ebba ,_gfed :_ebec },nil ;
|
||
};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_cdbd FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_cdbd .Mask ()&^fl .Mask ())};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eeef *PdfAnnotationStamp )ToPdfObject ()_ac .PdfObject {_eeef .PdfAnnotation .ToPdfObject ();_ddbe :=_eeef ._fegd ;_bae :=_ddbe .PdfObject .(*_ac .PdfObjectDictionary );_eeef .PdfAnnotationMarkup .appendToPdfDictionary (_bae );_bae .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_bae .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eeef .Name );return _ddbe ;};func _cebcd (_cgce _ac .PdfObject )(*PdfColorspaceCalRGB ,error ){_cagbe :=NewPdfColorspaceCalRGB ();if _bafec ,_abef :=_cgce .(*_ac .PdfIndirectObject );_abef {_cagbe ._cffg =_bafec ;
|
||
};_cgce =_ac .TraceToDirectObject (_cgce );_gdgf ,_bfbf :=_cgce .(*_ac .PdfObjectArray );if !_bfbf {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gdgf .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_cgce =_ac .TraceToDirectObject (_gdgf .Get (0));_fbec ,_bfbf :=_cgce .(*_ac .PdfObjectName );if !_bfbf {return nil ,_d .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 *_fbec !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_d .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_cgce =_ac .TraceToDirectObject (_gdgf .Get (1));
|
||
_ccab ,_bfbf :=_cgce .(*_ac .PdfObjectDictionary );if !_bfbf {return nil ,_d .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");};_cgce =_ccab .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
|
||
_cgce =_ac .TraceToDirectObject (_cgce );_babe ,_bfbf :=_cgce .(*_ac .PdfObjectArray );if !_bfbf {return nil ,_d .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 _babe .Len ()!=3{return nil ,_d .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");};_dacc ,_efcc :=_babe .GetAsFloat64Slice ();
|
||
if _efcc !=nil {return nil ,_efcc ;};_cagbe .WhitePoint =_dacc ;_cgce =_ccab .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cgce !=nil {_cgce =_ac .TraceToDirectObject (_cgce );_cfde ,_ffga :=_cgce .(*_ac .PdfObjectArray );if !_ffga {return nil ,_d .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 _cfde .Len ()!=3{return nil ,_d .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");};_gbddc ,_fffec :=_cfde .GetAsFloat64Slice ();
|
||
if _fffec !=nil {return nil ,_fffec ;};_cagbe .BlackPoint =_gbddc ;};_cgce =_ccab .Get ("\u0047\u0061\u006dm\u0061");if _cgce !=nil {_cgce =_ac .TraceToDirectObject (_cgce );_abdg ,_face :=_cgce .(*_ac .PdfObjectArray );if !_face {return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");
|
||
};if _abdg .Len ()!=3{return nil ,_d .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");};_gbgf ,_fgdca :=_abdg .GetAsFloat64Slice ();if _fgdca !=nil {return nil ,_fgdca ;
|
||
};_cagbe .Gamma =_gbgf ;};_cgce =_ccab .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _cgce !=nil {_cgce =_ac .TraceToDirectObject (_cgce );_efgff ,_bgab :=_cgce .(*_ac .PdfObjectArray );if !_bgab {return nil ,_d .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");
|
||
};if _efgff .Len ()!=9{_gd .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_efgff .String ());return nil ,_d .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");
|
||
};_fbff ,_cegfb :=_efgff .GetAsFloat64Slice ();if _cegfb !=nil {return nil ,_cegfb ;};_cagbe .Matrix =_fbff ;};return _cagbe ,nil ;};
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_dgedcc *PdfPage )HasXObjectByName (name _ac .PdfObjectName )bool {_bbbf ,_afaf :=_dgedcc .Resources .XObject .(*_ac .PdfObjectDictionary );if !_afaf {return false ;};if _dedcb :=_bbbf .Get (name );_dedcb !=nil {return true ;};return false ;};
|
||
|
||
// 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 _ac .PdfObjectArray )(*PdfRectangle ,error ){_acff :=PdfRectangle {};if arr .Len ()!=4{return nil ,_af .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 _acgade error ;_acff .Llx ,_acgade =_ac .GetNumberAsFloat (arr .Get (0));if _acgade !=nil {return nil ,_acgade ;};_acff .Lly ,_acgade =_ac .GetNumberAsFloat (arr .Get (1));if _acgade !=nil {return nil ,_acgade ;};_acff .Urx ,_acgade =_ac .GetNumberAsFloat (arr .Get (2));
|
||
if _acgade !=nil {return nil ,_acgade ;};_acff .Ury ,_acgade =_ac .GetNumberAsFloat (arr .Get (3));if _acgade !=nil {return nil ,_acgade ;};return &_acff ,nil ;};
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_ecade *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
|
||
|
||
// NewCompositePdfFontFromTTFFile loads a composite font from a TTF font file. Composite fonts can
|
||
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
|
||
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
|
||
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
|
||
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
|
||
// NOTE: For simple fonts, use NewPdfFontFromTTFFile.
|
||
func NewCompositePdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_cebcb ,_eddca :=_cef .Open (filePath );if _eddca !=nil {_gd .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_eddca );
|
||
return nil ,_eddca ;};defer _cebcb .Close ();return NewCompositePdfFontFromTTF (_cebcb );};
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_cfeda *PdfOutlineItem )GetContainingPdfObject ()_ac .PdfObject {return _cfeda ._gbcec };func _gcag (_aedaa _ac .PdfObject )(*PdfFunctionType2 ,error ){_aeaff :=&PdfFunctionType2 {};var _cddf *_ac .PdfObjectDictionary ;if _edagg ,_dacg :=_aedaa .(*_ac .PdfIndirectObject );
|
||
_dacg {_bfggb ,_bdba :=_edagg .PdfObject .(*_ac .PdfObjectDictionary );if !_bdba {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aeaff ._eaadg =_edagg ;_cddf =_bfggb ;}else if _ccegag ,_gcbb :=_aedaa .(*_ac .PdfObjectDictionary );
|
||
_gcbb {_cddf =_ccegag ;}else {return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gd .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_cddf .String ());_dgegc ,_gdccg :=_ac .TraceToDirectObject (_cddf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );
|
||
if !_gdccg {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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 _dgegc .Len ()< 0||_dgegc .Len ()%2!=0{_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_bddb ,_gagea :=_dgegc .ToFloat64Array ();if _gagea !=nil {return nil ,_gagea ;};_aeaff .Domain =_bddb ;_dgegc ,_gdccg =_ac .TraceToDirectObject (_cddf .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );if _gdccg {if _dgegc .Len ()< 0||_dgegc .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_ggca ,_efaca :=_dgegc .ToFloat64Array ();if _efaca !=nil {return nil ,_efaca ;};_aeaff .Range =_ggca ;};_dgegc ,_gdccg =_ac .TraceToDirectObject (_cddf .Get ("\u0043\u0030")).(*_ac .PdfObjectArray );if _gdccg {_fcag ,_fdgbb :=_dgegc .ToFloat64Array ();
|
||
if _fdgbb !=nil {return nil ,_fdgbb ;};_aeaff .C0 =_fcag ;};_dgegc ,_gdccg =_ac .TraceToDirectObject (_cddf .Get ("\u0043\u0031")).(*_ac .PdfObjectArray );if _gdccg {_bdda ,_fadb :=_dgegc .ToFloat64Array ();if _fadb !=nil {return nil ,_fadb ;};_aeaff .C1 =_bdda ;
|
||
};if len (_aeaff .C0 )!=len (_aeaff .C1 ){_gd .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");return nil ,_ac .ErrRangeError ;};N ,_gagea :=_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_cddf .Get ("\u004e")));
|
||
if _gagea !=nil {_gd .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",_cddf .String ());return nil ,_gagea ;};_aeaff .N =N ;
|
||
return _aeaff ,nil ;};func _gbec (_beafe _ac .PdfObject )(*PdfColorspaceCalGray ,error ){_ecgf :=NewPdfColorspaceCalGray ();if _beegb ,_gbbg :=_beafe .(*_ac .PdfIndirectObject );_gbbg {_ecgf ._eabd =_beegb ;};_beafe =_ac .TraceToDirectObject (_beafe );
|
||
_fabg ,_dbac :=_beafe .(*_ac .PdfObjectArray );if !_dbac {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fabg .Len ()!=2{return nil ,_d .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");
|
||
};_beafe =_ac .TraceToDirectObject (_fabg .Get (0));_gedg ,_dbac :=_beafe .(*_ac .PdfObjectName );if !_dbac {return nil ,_d .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 *_gedg !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_d .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_beafe =_ac .TraceToDirectObject (_fabg .Get (1));
|
||
_dfeg ,_dbac :=_beafe .(*_ac .PdfObjectDictionary );if !_dbac {return nil ,_d .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");
|
||
};_beafe =_dfeg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_beafe =_ac .TraceToDirectObject (_beafe );_cbee ,_dbac :=_beafe .(*_ac .PdfObjectArray );if !_dbac {return nil ,_d .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 _cbee .Len ()!=3{return nil ,_d .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");};_adda ,_bdcf :=_cbee .GetAsFloat64Slice ();
|
||
if _bdcf !=nil {return nil ,_bdcf ;};_ecgf .WhitePoint =_adda ;_beafe =_dfeg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _beafe !=nil {_beafe =_ac .TraceToDirectObject (_beafe );_fbdc ,_fggd :=_beafe .(*_ac .PdfObjectArray );
|
||
if !_fggd {return nil ,_d .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 _fbdc .Len ()!=3{return nil ,_d .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");
|
||
};_bgcd ,_fag :=_fbdc .GetAsFloat64Slice ();if _fag !=nil {return nil ,_fag ;};_ecgf .BlackPoint =_bgcd ;};_beafe =_dfeg .Get ("\u0047\u0061\u006dm\u0061");if _beafe !=nil {_beafe =_ac .TraceToDirectObject (_beafe );_cabcg ,_gabf :=_ac .GetNumberAsFloat (_beafe );
|
||
if _gabf !=nil {return nil ,_d .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");};_ecgf .Gamma =_cabcg ;};return _ecgf ,nil ;};
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_adgcf *PdfPage )AddContentStreamByString (contentStr string )error {_dceg ,_gfbbc :=_ac .MakeStream ([]byte (contentStr ),_ac .NewFlateEncoder ());if _gfbbc !=nil {return _gfbbc ;};if _adgcf .Contents ==nil {_adgcf .Contents =_dceg ;}else {_cgadb :=_ac .TraceToDirectObject (_adgcf .Contents );
|
||
_ddgeb ,_aecae :=_cgadb .(*_ac .PdfObjectArray );if !_aecae {_ddgeb =_ac .MakeArray (_cgadb );};_ddgeb .Append (_dceg );_adgcf .Contents =_ddgeb ;};return nil ;};
|
||
|
||
// FieldFilterFunc represents a PDF field filtering function. If the function
|
||
// returns true, the PDF field is kept, otherwise it is discarded.
|
||
type FieldFilterFunc func (*PdfField )bool ;
|
||
|
||
// HasShadingByName checks whether a shading is defined by the specified keyName.
|
||
func (_acfae *PdfPageResources )HasShadingByName (keyName _ac .PdfObjectName )bool {_ ,_dgccddc :=_acfae .GetShadingByName (keyName );return _dgccddc ;};
|
||
|
||
// FieldImageProvider provides fields images for specified fields.
|
||
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};func _cacc (_ddcbb *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_gbgc ,_bdcef :=_ac .GetDict (_ddcbb .AP );if !_bdcef {return nil ,nil ,_af .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 _gbgc ==nil {return nil ,nil ,nil ;};_fade ,_bdcef :=_ac .GetArray (_ddcbb .Rect );if !_bdcef ||_fade .Len ()!=4{return nil ,nil ,_af .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_dedd ,_edgef :=NewPdfRectangle (*_fade );
|
||
if _edgef !=nil {return nil ,nil ,_edgef ;};_bffa :=_ac .TraceToDirectObject (_gbgc .Get ("\u004e"));switch _fcca :=_bffa .(type ){case *_ac .PdfObjectStream :_aecfb :=_fcca ;_befdc ,_babdf :=NewXObjectFormFromStream (_aecfb );return _befdc ,_dedd ,_babdf ;
|
||
case *_ac .PdfObjectDictionary :_ddbeg :=_fcca ;_bdbef ,_feeb :=_ac .GetName (_ddcbb .AS );if !_feeb {return nil ,nil ,nil ;};if _ddbeg .Get (*_bdbef )==nil {_gd .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 ;};_adbgec ,_feeb :=_ac .GetStream (_ddbeg .Get (*_bdbef ));if !_feeb {_gd .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",_bdbef );
|
||
return nil ,nil ,_af .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_bfdg ,_bebg :=NewXObjectFormFromStream (_adbgec );return _bfdg ,_dedd ,_bebg ;};_gd .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_bffa );
|
||
return nil ,nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};func (_cbecg *DSS )addCRLs (_bggb [][]byte )([]*_ac .PdfObjectStream ,error ){return _cbecg .add (&_cbecg .CRLs ,_cbecg ._gdbfa ,_bggb );
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_bdfe *PdfOutlineTreeNode )GetContainingPdfObject ()_ac .PdfObject {return _bdfe .GetContext ().GetContainingPdfObject ();};
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_bfbac *Image )AlphaMap (mapFunc AlphaMapFunc ){for _acae ,_abdb :=range _bfbac ._ebga {_bfbac ._ebga [_acae ]=mapFunc (_abdb );};};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_ecdcd pdfFontSimple )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){if _ecdcd ._gbbfd !=nil {_gggbf ,_fgdbg :=_ecdcd ._gbbfd .Read (r );if _fgdbg {return _gggbf ,true ;};};_bgdcf :=_ecdcd .Encoder ();if _bgdcf ==nil {_gd .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_ecdcd );
|
||
return _fda .CharMetrics {},false ;};_bggg ,_dgbf :=_bgdcf .RuneToCharcode (r );if !_dgbf {if r !=' '{_gd .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 ,_ecdcd );
|
||
};return _fda .CharMetrics {},false ;};_efaf ,_gdfd :=_ecdcd .GetCharMetrics (_bggg );return _efaf ,_gdfd ;};func (_bgde *PdfReader )newPdfAnnotationFromIndirectObject (_ceag *_ac .PdfIndirectObject )(*PdfAnnotation ,error ){_cegf ,_gee :=_ceag .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_gee {return nil ,_d .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 :=_bgde ._gbced .GetModelFromPrimitive (_cegf );model !=nil {_fcgb ,_ege :=model .(*PdfAnnotation );if !_ege {return nil ,_d .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 _fcgb ,nil ;};_ebf :=&PdfAnnotation {};_ebf ._fegd =_ceag ;_bgde ._gbced .Register (_cegf ,_ebf );if _baf :=_cegf .Get ("\u0054\u0079\u0070\u0065");_baf !=nil {_cdg ,_aeae :=_baf .(*_ac .PdfObjectName );if !_aeae {_gd .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",_baf );
|
||
}else {if *_cdg !="\u0041\u006e\u006eo\u0074"{_gd .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",*_cdg );};};};if _abbf :=_cegf .Get ("\u0052\u0065\u0063\u0074");
|
||
_abbf !=nil {_ebf .Rect =_abbf ;};if _bfa :=_cegf .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_bfa !=nil {_ebf .Contents =_bfa ;};if _agc :=_cegf .Get ("\u0050");_agc !=nil {_ebf .P =_agc ;};if _gfgd :=_cegf .Get ("\u004e\u004d");_gfgd !=nil {_ebf .NM =_gfgd ;
|
||
};if _bfg :=_cegf .Get ("\u004d");_bfg !=nil {_ebf .M =_bfg ;};if _gbd :=_cegf .Get ("\u0046");_gbd !=nil {_ebf .F =_gbd ;};if _cad :=_cegf .Get ("\u0041\u0050");_cad !=nil {_ebf .AP =_cad ;};if _egda :=_cegf .Get ("\u0041\u0053");_egda !=nil {_ebf .AS =_egda ;
|
||
};if _ecbg :=_cegf .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_ecbg !=nil {_ebf .Border =_ecbg ;};if _bfgf :=_cegf .Get ("\u0043");_bfgf !=nil {_ebf .C =_bfgf ;};if _gbdg :=_cegf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_gbdg !=nil {_ebf .StructParent =_gbdg ;};if _ccdg :=_cegf .Get ("\u004f\u0043");_ccdg !=nil {_ebf .OC =_ccdg ;};_daeda :=_cegf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _daeda ==nil {_gd .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");
|
||
_ebf ._cgf =nil ;return _ebf ,nil ;};_geaa ,_aedc :=_daeda .(*_ac .PdfObjectName );if !_aedc {_gd .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",_daeda );
|
||
return nil ,_d .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",_daeda );};switch *_geaa {case "\u0054\u0065\u0078\u0074":_dfbb ,_bce :=_bgde .newPdfAnnotationTextFromDict (_cegf );
|
||
if _bce !=nil {return nil ,_bce ;};_dfbb .PdfAnnotation =_ebf ;_ebf ._cgf =_dfbb ;return _ebf ,nil ;case "\u004c\u0069\u006e\u006b":_bad ,_fdee :=_bgde .newPdfAnnotationLinkFromDict (_cegf );if _fdee !=nil {return nil ,_fdee ;};_bad .PdfAnnotation =_ebf ;
|
||
_ebf ._cgf =_bad ;return _ebf ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_fedc ,_ece :=_bgde .newPdfAnnotationFreeTextFromDict (_cegf );if _ece !=nil {return nil ,_ece ;};_fedc .PdfAnnotation =_ebf ;_ebf ._cgf =_fedc ;return _ebf ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_caa ,_bbcd :=_bgde .newPdfAnnotationLineFromDict (_cegf );if _bbcd !=nil {return nil ,_bbcd ;};_caa .PdfAnnotation =_ebf ;_ebf ._cgf =_caa ;_gd .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",_ebf ,_ebf );
|
||
_gd .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",_caa ,_caa );_gd .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",_caa .PdfAnnotationMarkup ,_caa .PdfAnnotationMarkup );
|
||
return _ebf ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_afd ,_fee :=_bgde .newPdfAnnotationSquareFromDict (_cegf );if _fee !=nil {return nil ,_fee ;};_afd .PdfAnnotation =_ebf ;_ebf ._cgf =_afd ;return _ebf ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_ccfd ,_ccff :=_bgde .newPdfAnnotationCircleFromDict (_cegf );
|
||
if _ccff !=nil {return nil ,_ccff ;};_ccfd .PdfAnnotation =_ebf ;_ebf ._cgf =_ccfd ;return _ebf ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_ebe ,_efae :=_bgde .newPdfAnnotationPolygonFromDict (_cegf );if _efae !=nil {return nil ,_efae ;};_ebe .PdfAnnotation =_ebf ;
|
||
_ebf ._cgf =_ebe ;return _ebf ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_dgcc ,_gfd :=_bgde .newPdfAnnotationPolyLineFromDict (_cegf );if _gfd !=nil {return nil ,_gfd ;};_dgcc .PdfAnnotation =_ebf ;_ebf ._cgf =_dgcc ;return _ebf ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_dff ,_gefb :=_bgde .newPdfAnnotationHighlightFromDict (_cegf );if _gefb !=nil {return nil ,_gefb ;};_dff .PdfAnnotation =_ebf ;_ebf ._cgf =_dff ;return _ebf ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_bdag ,_dgcd :=_bgde .newPdfAnnotationUnderlineFromDict (_cegf );
|
||
if _dgcd !=nil {return nil ,_dgcd ;};_bdag .PdfAnnotation =_ebf ;_ebf ._cgf =_bdag ;return _ebf ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_ffcg ,_fbag :=_bgde .newPdfAnnotationSquigglyFromDict (_cegf );if _fbag !=nil {return nil ,_fbag ;
|
||
};_ffcg .PdfAnnotation =_ebf ;_ebf ._cgf =_ffcg ;return _ebf ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_gded ,_ebc :=_bgde .newPdfAnnotationStrikeOut (_cegf );if _ebc !=nil {return nil ,_ebc ;};_gded .PdfAnnotation =_ebf ;_ebf ._cgf =_gded ;
|
||
return _ebf ,nil ;case "\u0043\u0061\u0072e\u0074":_fbd ,_bdca :=_bgde .newPdfAnnotationCaretFromDict (_cegf );if _bdca !=nil {return nil ,_bdca ;};_fbd .PdfAnnotation =_ebf ;_ebf ._cgf =_fbd ;return _ebf ,nil ;case "\u0053\u0074\u0061m\u0070":_eee ,_gfge :=_bgde .newPdfAnnotationStampFromDict (_cegf );
|
||
if _gfge !=nil {return nil ,_gfge ;};_eee .PdfAnnotation =_ebf ;_ebf ._cgf =_eee ;return _ebf ,nil ;case "\u0049\u006e\u006b":_fede ,_cdge :=_bgde .newPdfAnnotationInkFromDict (_cegf );if _cdge !=nil {return nil ,_cdge ;};_fede .PdfAnnotation =_ebf ;_ebf ._cgf =_fede ;
|
||
return _ebf ,nil ;case "\u0050\u006f\u0070u\u0070":_bdbd ,_abf :=_bgde .newPdfAnnotationPopupFromDict (_cegf );if _abf !=nil {return nil ,_abf ;};_bdbd .PdfAnnotation =_ebf ;_ebf ._cgf =_bdbd ;return _ebf ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_egba ,_gfbf :=_bgde .newPdfAnnotationFileAttachmentFromDict (_cegf );
|
||
if _gfbf !=nil {return nil ,_gfbf ;};_egba .PdfAnnotation =_ebf ;_ebf ._cgf =_egba ;return _ebf ,nil ;case "\u0053\u006f\u0075n\u0064":_effa ,_fedb :=_bgde .newPdfAnnotationSoundFromDict (_cegf );if _fedb !=nil {return nil ,_fedb ;};_effa .PdfAnnotation =_ebf ;
|
||
_ebf ._cgf =_effa ;return _ebf ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_eceb ,_agb :=_bgde .newPdfAnnotationRichMediaFromDict (_cegf );if _agb !=nil {return nil ,_agb ;};_eceb .PdfAnnotation =_ebf ;_ebf ._cgf =_eceb ;return _ebf ,nil ;
|
||
case "\u004d\u006f\u0076i\u0065":_gafg ,_egbe :=_bgde .newPdfAnnotationMovieFromDict (_cegf );if _egbe !=nil {return nil ,_egbe ;};_gafg .PdfAnnotation =_ebf ;_ebf ._cgf =_gafg ;return _ebf ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_age ,_ddd :=_bgde .newPdfAnnotationScreenFromDict (_cegf );
|
||
if _ddd !=nil {return nil ,_ddd ;};_age .PdfAnnotation =_ebf ;_ebf ._cgf =_age ;return _ebf ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_bfea ,_eddb :=_bgde .newPdfAnnotationWidgetFromDict (_cegf );if _eddb !=nil {return nil ,_eddb ;};_bfea .PdfAnnotation =_ebf ;
|
||
_ebf ._cgf =_bfea ;return _ebf ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_gbb ,_ebg :=_bgde .newPdfAnnotationPrinterMarkFromDict (_cegf );if _ebg !=nil {return nil ,_ebg ;};_gbb .PdfAnnotation =_ebf ;_ebf ._cgf =_gbb ;return _ebf ,nil ;
|
||
case "\u0054r\u0061\u0070\u004e\u0065\u0074":_dea ,_cbdb :=_bgde .newPdfAnnotationTrapNetFromDict (_cegf );if _cbdb !=nil {return nil ,_cbdb ;};_dea .PdfAnnotation =_ebf ;_ebf ._cgf =_dea ;return _ebf ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fbf ,_gbdb :=_bgde .newPdfAnnotationWatermarkFromDict (_cegf );
|
||
if _gbdb !=nil {return nil ,_gbdb ;};_fbf .PdfAnnotation =_ebf ;_ebf ._cgf =_fbf ;return _ebf ,nil ;case "\u0033\u0044":_gfa ,_dbe :=_bgde .newPdfAnnotation3DFromDict (_cegf );if _dbe !=nil {return nil ,_dbe ;};_gfa .PdfAnnotation =_ebf ;_ebf ._cgf =_gfa ;
|
||
return _ebf ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_cgb ,_cfg :=_bgde .newPdfAnnotationProjectionFromDict (_cegf );if _cfg !=nil {return nil ,_cfg ;};_cgb .PdfAnnotation =_ebf ;_ebf ._cgf =_cgb ;return _ebf ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_beee ,_bded :=_bgde .newPdfAnnotationRedactFromDict (_cegf );
|
||
if _bded !=nil {return nil ,_bded ;};_beee .PdfAnnotation =_ebf ;_ebf ._cgf =_beee ;return _ebf ,nil ;};_gd .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",*_geaa );
|
||
return nil ,nil ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ac .PdfObject ;T3DV _ac .PdfObject ;T3DA _ac .PdfObject ;T3DI _ac .PdfObject ;T3DB _ac .PdfObject ;};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_febd *PdfFont )ToUnicode ()string {if _febd .baseFields ()._acbbb ==nil {return "";};return _febd .baseFields ()._acbbb .Name ();};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_fac :=NewPdfAction ();_bab :=&PdfActionJavaScript {};_bab .PdfAction =_fac ;_fac .SetContext (_bab );return _bab ;};func (_fefab *PdfReader )newPdfFieldFromIndirectObject (_becc *_ac .PdfIndirectObject ,_eeffe *PdfField )(*PdfField ,error ){if _egefd ,_fdba :=_fefab ._gbced .GetModelFromPrimitive (_becc ).(*PdfField );
|
||
_fdba {return _egefd ,nil ;};_agbgc ,_egee :=_ac .GetDict (_becc );if !_egee {return nil ,_d .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");
|
||
};_gfbb :=NewPdfField ();_gfbb ._bdde =_becc ;_gfbb ._bdde .PdfObject =_agbgc ;if _acdgb ,_bgaba :=_ac .GetName (_agbgc .Get ("\u0046\u0054"));_bgaba {_gfbb .FT =_acdgb ;};if _eeffe !=nil {_gfbb .Parent =_eeffe ;};_gfbb .T ,_ =_agbgc .Get ("\u0054").(*_ac .PdfObjectString );
|
||
_gfbb .TU ,_ =_agbgc .Get ("\u0054\u0055").(*_ac .PdfObjectString );_gfbb .TM ,_ =_agbgc .Get ("\u0054\u004d").(*_ac .PdfObjectString );_gfbb .Ff ,_ =_agbgc .Get ("\u0046\u0066").(*_ac .PdfObjectInteger );_gfbb .V =_agbgc .Get ("\u0056");_gfbb .DV =_agbgc .Get ("\u0044\u0056");
|
||
_gfbb .AA =_agbgc .Get ("\u0041\u0041");if DA :=_agbgc .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ac .GetString (DA );_gfbb .VariableText =&VariableText {DA :DA };Q ,_ :=_agbgc .Get ("\u0051").(*_ac .PdfObjectInteger );DS ,_ :=_agbgc .Get ("\u0044\u0053").(*_ac .PdfObjectString );
|
||
RV :=_agbgc .Get ("\u0052\u0056");_gfbb .VariableText .Q =Q ;_gfbb .VariableText .DS =DS ;_gfbb .VariableText .RV =RV ;};_adgfg :=_gfbb .FT ;if _adgfg ==nil &&_eeffe !=nil {_adgfg =_eeffe .FT ;};if _adgfg !=nil {switch *_adgfg {case "\u0054\u0078":_ega ,_gdfee :=_adggc (_agbgc );
|
||
if _gdfee !=nil {return nil ,_gdfee ;};_ega .PdfField =_gfbb ;_gfbb ._edab =_ega ;case "\u0043\u0068":_eaace ,_ffca :=_ebgfe (_agbgc );if _ffca !=nil {return nil ,_ffca ;};_eaace .PdfField =_gfbb ;_gfbb ._edab =_eaace ;case "\u0042\u0074\u006e":_gaab ,_gddb :=_dacaa (_agbgc );
|
||
if _gddb !=nil {return nil ,_gddb ;};_gaab .PdfField =_gfbb ;_gfbb ._edab =_gaab ;case "\u0053\u0069\u0067":_cdabd ,_dadbc :=_fefab .newPdfFieldSignatureFromDict (_agbgc );if _dadbc !=nil {return nil ,_dadbc ;};_cdabd .PdfField =_gfbb ;_gfbb ._edab =_cdabd ;
|
||
default:_gd .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",*_gfbb .FT );return nil ,_af .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
|
||
};};if _eccef ,_aegb :=_ac .GetName (_agbgc .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_aegb {if *_eccef =="\u0057\u0069\u0064\u0067\u0065\u0074"{_aebcc ,_ddba :=_fefab .newPdfAnnotationFromIndirectObject (_becc );if _ddba !=nil {return nil ,_ddba ;
|
||
};_bgae ,_fgfbd :=_aebcc .GetContext ().(*PdfAnnotationWidget );if !_fgfbd {return nil ,_af .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_bgae ._gdb =_gfbb ;_bgae .Parent =_gfbb ._bdde ;
|
||
_gfbb .Annotations =append (_gfbb .Annotations ,_bgae );return _gfbb ,nil ;};};_cebce :=true ;if _dafca ,_geed :=_ac .GetArray (_agbgc .Get ("\u004b\u0069\u0064\u0073"));_geed {_abgab :=make ([]*_ac .PdfIndirectObject ,0,_dafca .Len ());for _ ,_gegac :=range _dafca .Elements (){_fdcc ,_degca :=_ac .GetIndirect (_gegac );
|
||
if !_degca {_gbdc ,_geea :=_ac .GetStream (_gegac );if _geea &&_gbdc .PdfObjectDictionary !=nil {_cacb ,_fgce :=_ac .GetNameVal (_gbdc .Get ("\u0054\u0079\u0070\u0065"));if _fgce &&_cacb =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_gd .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 ,_af .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");};_afe ,_cffbe :=_ac .GetDict (_fdcc );
|
||
if !_cffbe {return nil ,ErrTypeCheck ;};if _cebce {_cebce =!_abdfg (_afe );};_abgab =append (_abgab ,_fdcc );};for _ ,_cafbe :=range _abgab {if _cebce {_dgdge ,_abae :=_fefab .newPdfAnnotationFromIndirectObject (_cafbe );if _abae !=nil {_gd .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",_abae );
|
||
return nil ,_abae ;};_afag ,_gadbg :=_dgdge ._cgf .(*PdfAnnotationWidget );if !_gadbg {return nil ,ErrTypeCheck ;};_afag ._gdb =_gfbb ;_gfbb .Annotations =append (_gfbb .Annotations ,_afag );}else {_ccgba ,_fbbaf :=_fefab .newPdfFieldFromIndirectObject (_cafbe ,_gfbb );
|
||
if _fbbaf !=nil {_gd .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",_fbbaf );return nil ,_fbbaf ;};_gfbb .Kids =append (_gfbb .Kids ,_ccgba );
|
||
};};};return _gfbb ,nil ;};func (_eagec *PdfWriter )copyObjects (){_dadbbd :=make (map[_ac .PdfObject ]_ac .PdfObject );_bfbfe :=make ([]_ac .PdfObject ,0,len (_eagec ._gdeaf ));_ffdb :=make (map[_ac .PdfObject ]struct{},len (_eagec ._gdeaf ));_eagfbc :=make (map[_ac .PdfObject ]struct{});
|
||
for _ ,_dbgeg :=range _eagec ._gdeaf {_acbee :=_eagec .copyObject (_dbgeg ,_dadbbd ,_eagfbc ,false );if _ ,_egbfdb :=_eagfbc [_dbgeg ];_egbfdb {continue ;};_bfbfe =append (_bfbfe ,_acbee );_ffdb [_acbee ]=struct{}{};};_eagec ._gdeaf =_bfbfe ;_eagec ._agbff =_ffdb ;
|
||
_eagec ._aefadb =_eagec .copyObject (_eagec ._aefadb ,_dadbbd ,nil ,false ).(*_ac .PdfIndirectObject );_eagec ._efcff =_eagec .copyObject (_eagec ._efcff ,_dadbbd ,nil ,false ).(*_ac .PdfIndirectObject );if _eagec ._ecgdb !=nil {_eagec ._ecgdb =_eagec .copyObject (_eagec ._ecgdb ,_dadbbd ,nil ,false ).(*_ac .PdfIndirectObject );
|
||
};if _eagec ._cfgc {_agef :=make (map[_ac .PdfObject ]int64 );for _degde ,_dbcfb :=range _eagec ._dgbfe {if _bgcbd ,_bfeff :=_dadbbd [_degde ];_bfeff {_agef [_bgcbd ]=_dbcfb ;}else {_gd .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");
|
||
};};_eagec ._dgbfe =_agef ;};};
|
||
|
||
// 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 (_agba *PdfWriter )ApplyStandard (optimizer StandardApplier ){_agba ._faega =optimizer };func _bbcfe (_dacac _ac .PdfObject )(*PdfPattern ,error ){_gegf :=&PdfPattern {};var _ebaa *_ac .PdfObjectDictionary ;if _agccd ,_acgcg :=_ac .GetIndirect (_dacac );
|
||
_acgcg {_gegf ._fddfb =_agccd ;_fbea ,_cgegg :=_agccd .PdfObject .(*_ac .PdfObjectDictionary );if !_cgegg {_gd .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",_agccd .PdfObject );
|
||
return nil ,_ac .ErrTypeError ;};_ebaa =_fbea ;}else if _bfgfg ,_dgfba :=_ac .GetStream (_dacac );_dgfba {_gegf ._fddfb =_bfgfg ;_ebaa =_bfgfg .PdfObjectDictionary ;}else {_gd .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",_dacac );
|
||
return nil ,_ac .ErrTypeError ;};_abbd :=_ebaa .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _abbd ==nil {_gd .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 ;};_eefe ,_bcgdf :=_abbd .(*_ac .PdfObjectInteger );if !_bcgdf {_gd .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",_abbd );
|
||
return nil ,_ac .ErrTypeError ;};if *_eefe !=1&&*_eefe !=2{_gd .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",*_eefe );return nil ,_ac .ErrRangeError ;
|
||
};_gegf .PatternType =int64 (*_eefe );switch *_eefe {case 1:_bfed ,_bcbcc :=_deccg (_ebaa );if _bcbcc !=nil {return nil ,_bcbcc ;};_bfed .PdfPattern =_gegf ;_gegf ._bfcc =_bfed ;return _gegf ,nil ;case 2:_bdbb ,_caabg :=_eeaca (_ebaa );if _caabg !=nil {return nil ,_caabg ;
|
||
};_bdbb .PdfPattern =_gegf ;_gegf ._bfcc =_bdbb ;return _gegf ,nil ;};return nil ,_af .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
|
||
|
||
// 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 *_ca .DiffResults ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _e .Time ;};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_aggdg *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ac .GetNumberAsFloat (_aggdg .Descent );};
|
||
|
||
// SetNameDictionary sets the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_aeagfa *PdfWriter )SetNameDictionary (names _ac .PdfObject )error {if names ==nil {return nil ;};_gd .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_aeagfa ._cgfegd .Set ("\u004e\u0061\u006de\u0073",names );return _aeagfa .addObjects (names );};func _dfce (_gecga _ac .PdfObject )(string ,error ){_gecga =_ac .TraceToDirectObject (_gecga );switch _bgccb :=_gecga .(type ){case *_ac .PdfObjectString :return _bgccb .Str (),nil ;
|
||
case *_ac .PdfObjectStream :_cgaac ,_degbf :=_ac .DecodeStream (_bgccb );if _degbf !=nil {return "",_degbf ;};return string (_cgaac ),nil ;};return "",_d .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",_gecga );
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_fceac *PdfShadingPattern )ToPdfObject ()_ac .PdfObject {_fceac .PdfPattern .ToPdfObject ();_cdfbf :=_fceac .getDict ();if _fceac .Shading !=nil {_cdfbf .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fceac .Shading .ToPdfObject ());};if _fceac .Matrix !=nil {_cdfbf .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fceac .Matrix );
|
||
};if _fceac .ExtGState !=nil {_cdfbf .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fceac .ExtGState );};return _fceac ._fddfb ;};
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_bdfbd FieldFlag )Has (fl FieldFlag )bool {return (_bdfbd .Mask ()&fl .Mask ())> 0};func (_cgfgea *PdfReader )loadStructure ()error {if _cgfgea ._eebeg .GetCrypter ()!=nil &&!_cgfgea ._eebeg .IsAuthenticated (){return _d .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");
|
||
};_aced :=_cgfgea ._eebeg .GetTrailer ();if _aced ==nil {return _d .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_acbbf ,_gefbf :=_aced .Get ("\u0052\u006f\u006f\u0074").(*_ac .PdfObjectReference );if !_gefbf {return _d .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",_aced );
|
||
};_edcc ,_gbcecg :=_cgfgea ._eebeg .LookupByReference (*_acbbf );if _gbcecg !=nil {_gd .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",_gbcecg );
|
||
return _gbcecg ;};_fgdce ,_gefbf :=_edcc .(*_ac .PdfIndirectObject );if !_gefbf {_gd .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",_edcc ,*_aced );
|
||
return _af .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ffbg ,_gefbf :=(*_fgdce ).PdfObject .(*_ac .PdfObjectDictionary );if !_gefbf {_gd .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",_fgdce .PdfObject );
|
||
return _af .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_gd .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_ffbg );_becfb ,_gefbf :=_ffbg .Get ("\u0050\u0061\u0067e\u0073").(*_ac .PdfObjectReference );
|
||
if !_gefbf {return _af .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");};_ceefg ,_gbcecg :=_cgfgea ._eebeg .LookupByReference (*_becfb );
|
||
if _gbcecg !=nil {_gd .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 _gbcecg ;};_bdbba ,_gefbf :=_ceefg .(*_ac .PdfIndirectObject );if !_gefbf {_gd .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");
|
||
_gd .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_bdbba );return _af .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_cccea ,_gefbf :=_bdbba .PdfObject .(*_ac .PdfObjectDictionary );if !_gefbf {_gd .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",_bdbba );
|
||
return _af .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ceccb ,_gefbf :=_ac .GetInt (_cccea .Get ("\u0043\u006f\u0075n\u0074"));if !_gefbf {_gd .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 _af .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_gefbf =_ac .GetName (_cccea .Get ("\u0054\u0079\u0070\u0065"));!_gefbf {_gd .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");
|
||
_cccea .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050\u0061\u0067e\u0073"));};if _dcage ,_cabdc :=_ac .GetInt (_cccea .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_cabdc {_gaaec :=int64 (*_dcage );_cgfgea .Rotate =&_gaaec ;};_cgfgea ._egfgf =_acbbf ;
|
||
_cgfgea ._bdfc =_ffbg ;_cgfgea ._eccec =_cccea ;_cgfgea ._efeee =_bdbba ;_cgfgea ._dageg =int (*_ceccb );_cgfgea ._acca =[]*_ac .PdfIndirectObject {};_bace :=map[_ac .PdfObject ]struct{}{};_gbcecg =_cgfgea .buildPageList (_bdbba ,nil ,_bace );if _gbcecg !=nil {return _gbcecg ;
|
||
};_gd .Log .Trace ("\u002d\u002d\u002d");_gd .Log .Trace ("\u0054\u004f\u0043");_gd .Log .Trace ("\u0050\u0061\u0067e\u0073");_gd .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_cgfgea ._acca ),_cgfgea ._acca );_cgfgea ._adbfg ,_gbcecg =_cgfgea .loadOutlines ();
|
||
if _gbcecg !=nil {_gd .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",_gbcecg );
|
||
return _gbcecg ;};_cgfgea .AcroForm ,_gbcecg =_cgfgea .loadForms ();if _gbcecg !=nil {return _gbcecg ;};_cgfgea .DSS ,_gbcecg =_cgfgea .loadDSS ();if _gbcecg !=nil {return _gbcecg ;};_cgfgea ._bddf ,_gbcecg =_cgfgea .loadPerms ();if _gbcecg !=nil {return _gbcecg ;
|
||
};return nil ;};
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_ged :=NewPdfAnnotation ();_bdb :=&PdfAnnotationCaret {};_bdb .PdfAnnotation =_ged ;_bdb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ged .SetContext (_bdb );return _bdb ;};
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_edbfg *PdfPage )HasFontByName (name _ac .PdfObjectName )bool {_caaddb ,_deae :=_edbfg .Resources .Font .(*_ac .PdfObjectDictionary );if !_deae {return false ;};if _ebac :=_caaddb .Get (name );_ebac !=nil {return true ;};return false ;};func (_ddg *PdfReader )newPdfAnnotationCircleFromDict (_bdbc *_ac .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_cfea :=PdfAnnotationCircle {};
|
||
_cab ,_gad :=_ddg .newPdfAnnotationMarkupFromDict (_bdbc );if _gad !=nil {return nil ,_gad ;};_cfea .PdfAnnotationMarkup =_cab ;_cfea .BS =_bdbc .Get ("\u0042\u0053");_cfea .IC =_bdbc .Get ("\u0049\u0043");_cfea .BE =_bdbc .Get ("\u0042\u0045");_cfea .RD =_bdbc .Get ("\u0052\u0044");
|
||
return &_cfea ,nil ;};func (_debe *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _debe ._bgbdc ==nil &&_debe .DescendantFont !=nil {return _debe .DescendantFont .FontDescriptor ();};return _debe ._bgbdc ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_gcffe *PdfColorspaceSpecialSeparation )ToPdfObject ()_ac .PdfObject {_eddc :=_ac .MakeArray (_ac .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_eddc .Append (_gcffe .ColorantName );_eddc .Append (_gcffe .AlternateSpace .ToPdfObject ());
|
||
_eddc .Append (_gcffe .TintTransform .ToPdfObject ());if _gcffe ._becg !=nil {_gcffe ._becg .PdfObject =_eddc ;return _gcffe ._becg ;};return _eddc ;};
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_gecfbc *PdfPageResources )GetContainingPdfObject ()_ac .PdfObject {return _gecfbc ._ccggg };
|
||
|
||
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
|
||
func NewPdfShadingType2 ()*PdfShadingType2 {_dcbdad :=&PdfShadingType2 {};_dcbdad .PdfShading =&PdfShading {};_dcbdad .PdfShading ._dffbg =_ac .MakeIndirectObject (_ac .MakeDict ());_dcbdad .PdfShading ._bfga =_dcbdad ;return _dcbdad ;};func (_gdcc *PdfReader )loadAction (_dged _ac .PdfObject )(*PdfAction ,error ){if _fbbc ,_fgc :=_ac .GetIndirect (_dged );
|
||
_fgc {_abe ,_dee :=_gdcc .newPdfActionFromIndirectObject (_fbbc );if _dee !=nil {return nil ,_dee ;};return _abe ,nil ;}else if !_ac .IsNullObject (_dged ){return nil ,_af .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 ;};
|
||
|
||
// 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 (_faae *LTV )EnableByName (name string ,extraCerts []*_fc .Certificate )error {_ccade :=_faae ._bcbad ._cbdcd .AcroForm ;for _ ,_fdfg :=range _ccade .AllFields (){_efdd ,_ :=_fdfg .GetContext ().(*PdfFieldSignature );if _efdd ==nil {continue ;};if _ccce :=_efdd .PartialName ();
|
||
_ccce !=name {continue ;};return _faae .Enable (_efdd .V ,extraCerts );};return nil ;};
|
||
|
||
// SetNamedDestinations sets the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_dfbdc *PdfWriter )SetNamedDestinations (dests _ac .PdfObject )error {if dests ==nil {return nil ;};_gd .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
|
||
_dfbdc ._cgfegd .Set ("\u0044\u0065\u0073t\u0073",dests );return _dfbdc .addObjects (dests );};
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_bdbdg *PdfColorDeviceRGB )R ()float64 {return _bdbdg [0]};
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_geca :=PdfColorDeviceGray (grayVal );return &_geca ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bfcgb *Permissions )GetContainingPdfObject ()_ac .PdfObject {return _bfcgb ._aebdd };
|
||
|
||
// 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 (_baga *PdfWriter )SetRotation (rotate int64 )error {_ddeg ,_bcbggeg :=_ac .GetDict (_baga ._dagba );if !_bcbggeg {return ErrTypeCheck ;};_ddeg .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ac .MakeInteger (rotate ));return nil ;};
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_bacb *PdfBorderStyle )GetBorderWidth ()float64 {if _bacb .W ==nil {return 1;};return *_bacb .W ;};
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;IC _ac .PdfObject ;RO _ac .PdfObject ;OverlayText _ac .PdfObject ;Repeat _ac .PdfObject ;DA _ac .PdfObject ;Q _ac .PdfObject ;};
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_dfc :=NewPdfAnnotation ();_fdad :=&PdfAnnotationText {};_fdad .PdfAnnotation =_dfc ;_fdad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dfc .SetContext (_fdad );return _fdad ;};func _ffce (_eagc *XObjectForm )(*PdfRectangle ,error ){if _bfee ,_fbddb :=_eagc .BBox .(*_ac .PdfObjectArray );
|
||
_fbddb {_cbbbe ,_dedcf :=NewPdfRectangle (*_bfee );if _dedcf !=nil {return nil ,_dedcf ;};if _agfed ,_cfdfb :=_eagc .Matrix .(*_ac .PdfObjectArray );_cfdfb {_deaf ,_egfae :=_agfed .ToFloat64Array ();if _egfae !=nil {return nil ,_egfae ;};_bgecg :=_ba .IdentityMatrix ();
|
||
if len (_deaf )==6{_bgecg =_ba .NewMatrix (_deaf [0],_deaf [1],_deaf [2],_deaf [3],_deaf [4],_deaf [5]);};_cbbbe .Transform (_bgecg );return _cbbbe ,nil ;};};return nil ,_af .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");
|
||
};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_gcdb *_ac .PdfIndirectObject ;};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;
|
||
|
||
// GetPdfVersion gets the version of the PDF used within this document.
|
||
func (_cebee *PdfWriter )GetPdfVersion ()string {return _cebee .getPdfVersion ()};func (_effd *PdfReader )newPdfActionMovieFromDict (_cbb *_ac .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_cbb .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_cbb .Get ("\u0054"),Operation :_cbb .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};
|
||
|
||
// GetCharMetrics returns the character metrics for the specified character code. A bool flag is
|
||
// returned to indicate whether or not the entry was found in the glyph to charcode mapping.
|
||
// How it works:
|
||
// 1) Return a value the /Widths array (charWidths) if there is one.
|
||
// 2) If the font has the same name as a standard 14 font then return width=250.
|
||
// 3) Otherwise return no match and let the caller substitute a default.
|
||
func (_cbga pdfFontSimple )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _ebgg ,_ggdgc :=_cbga ._bdaga [code ];_ggdgc {return _fda .CharMetrics {Wx :_ebgg },true ;};if _fda .IsStdFont (_fda .StdFontName (_cbga ._abab )){return _fda .CharMetrics {Wx :250},true ;
|
||
};return _fda .CharMetrics {},false ;};
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_gdfg *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gdfg .AlternateSpace ==nil {return nil ,_af .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 _gdfg .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
/*
|
||
Format: [/DeviceN names alternateSpace tintTransform]
|
||
or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
*/
|
||
func (_egff *PdfColorspaceDeviceN )ToPdfObject ()_ac .PdfObject {_afda :=_ac .MakeArray (_ac .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_afda .Append (_egff .ColorantNames );_afda .Append (_egff .AlternateSpace .ToPdfObject ());_afda .Append (_egff .TintTransform .ToPdfObject ());
|
||
if _egff .Attributes !=nil {_afda .Append (_egff .Attributes .ToPdfObject ());};if _egff ._cfcg !=nil {_egff ._cfcg .PdfObject =_afda ;return _egff ._cfcg ;};return _afda ;};func _aefea (_ccaad _ac .PdfObject )(*PdfColorspaceDeviceN ,error ){_fbbg :=NewPdfColorspaceDeviceN ();
|
||
if _gaga ,_cgddg :=_ccaad .(*_ac .PdfIndirectObject );_cgddg {_fbbg ._cfcg =_gaga ;};_ccaad =_ac .TraceToDirectObject (_ccaad );_ddebe ,_ebcb :=_ccaad .(*_ac .PdfObjectArray );if !_ebcb {return nil ,_d .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 _ddebe .Len ()!=4&&_ddebe .Len ()!=5{return nil ,_d .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");};_ccaad =_ddebe .Get (0);
|
||
_dcgf ,_ebcb :=_ccaad .(*_ac .PdfObjectName );if !_ebcb {return nil ,_d .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 *_dcgf !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_d .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");};_ccaad =_ddebe .Get (1);
|
||
_ccaad =_ac .TraceToDirectObject (_ccaad );_fafe ,_ebcb :=_ccaad .(*_ac .PdfObjectArray );if !_ebcb {return nil ,_d .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");
|
||
};_fbbg .ColorantNames =_fafe ;_ccaad =_ddebe .Get (2);_gcgc ,_beade :=NewPdfColorspaceFromPdfObject (_ccaad );if _beade !=nil {return nil ,_beade ;};_fbbg .AlternateSpace =_gcgc ;_aeaac ,_beade :=_gcddf (_ddebe .Get (3));if _beade !=nil {return nil ,_beade ;
|
||
};_fbbg .TintTransform =_aeaac ;if _ddebe .Len ()==5{_aaae ,_efbc :=_gdcaa (_ddebe .Get (4));if _efbc !=nil {return nil ,_efbc ;};_fbbg .Attributes =_aaae ;};return _fbbg ,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 *_dc .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_dc .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_dc .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_bcbad *PdfAppender ;_fdadg *DSS ;};func _eecd (_bcagd *_ac .PdfObjectDictionary )(*PdfShadingType7 ,error ){_eggag :=PdfShadingType7 {};_baccc :=_bcagd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _baccc ==nil {_gd .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 ;};_faeag ,_dadc :=_baccc .(*_ac .PdfObjectInteger );if !_dadc {_gd .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",_baccc );
|
||
return nil ,_ac .ErrTypeError ;};_eggag .BitsPerCoordinate =_faeag ;_baccc =_bcagd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _baccc ==nil {_gd .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 ;};_faeag ,_dadc =_baccc .(*_ac .PdfObjectInteger );if !_dadc {_gd .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",_baccc );
|
||
return nil ,_ac .ErrTypeError ;};_eggag .BitsPerComponent =_faeag ;_baccc =_bcagd .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _baccc ==nil {_gd .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 ;};_faeag ,_dadc =_baccc .(*_ac .PdfObjectInteger );if !_dadc {_gd .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",_baccc );
|
||
return nil ,_ac .ErrTypeError ;};_eggag .BitsPerComponent =_faeag ;_baccc =_bcagd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _baccc ==nil {_gd .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 ;};_daebf ,_dadc :=_baccc .(*_ac .PdfObjectArray );if !_dadc {_gd .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",_baccc );
|
||
return nil ,_ac .ErrTypeError ;};_eggag .Decode =_daebf ;if _gcae :=_bcagd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gcae !=nil {_eggag .Function =[]PdfFunction {};if _eagdc ,_dffag :=_gcae .(*_ac .PdfObjectArray );_dffag {for _ ,_ageeaa :=range _eagdc .Elements (){_cfeeb ,_dgdd :=_gcddf (_ageeaa );
|
||
if _dgdd !=nil {_gd .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",_dgdd );return nil ,_dgdd ;};_eggag .Function =append (_eggag .Function ,_cfeeb );
|
||
};}else {_gcgdc ,_fggebg :=_gcddf (_gcae );if _fggebg !=nil {_gd .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",_fggebg );return nil ,_fggebg ;
|
||
};_eggag .Function =append (_eggag .Function ,_gcgdc );};};return &_eggag ,nil ;};
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_ededa *PdfPageResources )SetXObjectFormByName (keyName _ac .PdfObjectName ,xform *XObjectForm )error {_bdgd :=xform .ToPdfObject ().(*_ac .PdfObjectStream );_aecge :=_ededa .SetXObjectByName (keyName ,_bdgd );return _aecge ;};func (_ebggb *pdfFontSimple )addEncoding ()error {var (_eaaef string ;
|
||
_gffb map[_gf .CharCode ]_gf .GlyphName ;_fabd _gf .SimpleEncoder ;);if _ebggb .Encoder ()!=nil {_accff ,_cfcf :=_ebggb .Encoder ().(_gf .SimpleEncoder );if _cfcf &&_accff !=nil {_eaaef =_accff .BaseName ();};};if _ebggb .Encoding !=nil {_addde ,_ffag ,_dgbe :=_ebggb .getFontEncoding ();
|
||
if _dgbe !=nil {_gd .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",_ebggb ._abab ,_ebggb ._efebg ,_ebggb .Encoding ,_ebggb .Encoding ,_dgbe );
|
||
return _dgbe ;};if _addde !=""{_eaaef =_addde ;};_gffb =_ffag ;_fabd ,_dgbe =_gf .NewSimpleTextEncoder (_eaaef ,_gffb );if _dgbe !=nil {return _dgbe ;};};if _fabd ==nil {_gcde :=_ebggb ._bgbdc ;if _gcde !=nil {switch _ebggb ._efebg {case "\u0054\u0079\u0070e\u0031":if _gcde .fontFile !=nil &&_gcde .fontFile ._bcdea !=nil {_gd .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_fabd =_gcde .fontFile ._bcdea ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _gcde ._edfg !=nil {_gd .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bcbb ,_dbddb :=_gcde ._edfg .MakeEncoder ();
|
||
if _dbddb ==nil {_fabd =_bcbb ;};};};};};if _fabd !=nil {if _gffb !=nil {_gd .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gffb ,_ebggb .baseFields ());_fabd =_gf .ApplyDifferences (_fabd ,_gffb );
|
||
};_ebggb .SetEncoder (_fabd );};return nil ;};func _agfec (_deef *_ac .PdfObjectDictionary ,_edbd *fontCommon )(*pdfFontType3 ,error ){_gaccb :=_daedc (_edbd );_baab :=_deef .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _baab ==nil {_baab =_ac .MakeInteger (0);
|
||
};_gaccb .FirstChar =_baab ;_dfbbe ,_fggabd :=_ac .GetIntVal (_baab );if !_fggabd {_gd .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",_baab );
|
||
return nil ,_ac .ErrTypeError ;};_bbdg :=_gf .CharCode (_dfbbe );_baab =_deef .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _baab ==nil {_baab =_ac .MakeInteger (255);};_gaccb .LastChar =_baab ;_dfbbe ,_fggabd =_ac .GetIntVal (_baab );if !_fggabd {_gd .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",_baab );
|
||
return nil ,_ac .ErrTypeError ;};_deaa :=_gf .CharCode (_dfbbe );_baab =_deef .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _baab !=nil {_gaccb .Resources =_baab ;};_baab =_deef .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _baab ==nil {_gd .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",_baab );
|
||
return nil ,_ac .ErrNotSupported ;};_gaccb .CharProcs =_baab ;_baab =_deef .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _baab ==nil {_gd .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",_baab );
|
||
return nil ,_ac .ErrNotSupported ;};_gaccb .FontMatrix =_baab ;_gaccb ._fbad =make (map[_gf .CharCode ]float64 );_baab =_deef .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _baab !=nil {_gaccb .Widths =_baab ;_bgggf ,_eabb :=_ac .GetArray (_baab );if !_eabb {_gd .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",_baab );
|
||
return nil ,_ac .ErrTypeError ;};_ggea ,_fabfa :=_bgggf .ToFloat64Array ();if _fabfa !=nil {_gd .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 ,_fabfa ;};if len (_ggea )!=int (_deaa -_bbdg +1){_gd .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",_deaa -_bbdg +1,len (_ggea ));
|
||
return nil ,_ac .ErrRangeError ;};_gbgdb ,_eabb :=_ac .GetArray (_gaccb .FontMatrix );if !_eabb {_gd .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",_gbgdb );
|
||
return nil ,_fabfa ;};_dgfda ,_fabfa :=_gbgdb .ToFloat64Array ();if _fabfa !=nil {_gd .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 ,_fabfa ;};_fcec :=_ba .NewMatrix (_dgfda [0],_dgfda [1],_dgfda [2],_dgfda [3],_dgfda [4],_dgfda [5]);for _cace ,_cfgg :=range _ggea {_ggff ,_ :=_fcec .Transform (_cfgg ,_cfgg );_gaccb ._fbad [_bbdg +_gf .CharCode (_cace )]=_ggff ;};};_gaccb .Encoding =_ac .TraceToDirectObject (_deef .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
_dcbd :=_deef .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _dcbd !=nil {_gaccb ._babg =_ac .TraceToDirectObject (_dcbd );_edbf ,_gebaa :=_dgfc (_gaccb ._babg ,&_gaccb .fontCommon );if _gebaa !=nil {return nil ,_gebaa ;};_gaccb ._acbbb =_edbf ;
|
||
};if _fafdc :=_gaccb ._acbbb ;_fafdc !=nil {_gaccb ._ebcbd =_gf .NewCMapEncoder ("",nil ,_fafdc );}else {_gaccb ._ebcbd =_gf .NewPdfDocEncoder ();};return _gaccb ,nil ;};type pdfSignDictionary struct{*_ac .PdfObjectDictionary ;_abgad *SignatureHandler ;
|
||
_aacfd *PdfSignature ;_aedff int64 ;_gaegg int ;_cgdfee int ;_dbcgg int ;_gdfcd int ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efb *PdfAnnotationUnderline )ToPdfObject ()_ac .PdfObject {_efb .PdfAnnotation .ToPdfObject ();_ffdg :=_efb ._fegd ;_fdfa :=_ffdg .PdfObject .(*_ac .PdfObjectDictionary );_efb .PdfAnnotationMarkup .appendToPdfDictionary (_fdfa );_fdfa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_fdfa .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_efb .QuadPoints );return _ffdg ;};func (_gdcae *PdfReader )newPdfAnnotationTrapNetFromDict (_cga *_ac .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_befd :=PdfAnnotationTrapNet {};
|
||
return &_befd ,nil ;};
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_gcgf *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_gcgf .ToPdfOutline ().PdfOutlineTreeNode ;};func (_ddcd *PdfReader )buildPageList (_acgef *_ac .PdfIndirectObject ,_cgceg *_ac .PdfIndirectObject ,_cafe map[_ac .PdfObject ]struct{})error {if _acgef ==nil {return nil ;
|
||
};if _ ,_aacce :=_cafe [_acgef ];_aacce {_gd .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",_acgef .ObjectNumber );
|
||
return nil ;};_cafe [_acgef ]=struct{}{};_aabaf ,_ebcgfg :=_acgef .PdfObject .(*_ac .PdfObjectDictionary );if !_ebcgfg {return _af .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_geagg ,_ebcgfg :=(*_aabaf ).Get ("\u0054\u0079\u0070\u0065").(*_ac .PdfObjectName );
|
||
if !_ebcgfg {if _aabaf .Get ("\u004b\u0069\u0064\u0073")==nil {return _af .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");};_gd .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.");
|
||
_geagg =_ac .MakeName ("\u0050\u0061\u0067e\u0073");_aabaf .Set ("\u0054\u0079\u0070\u0065",_geagg );};_gd .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",*_geagg ,_acgef );
|
||
if *_geagg =="\u0050\u0061\u0067\u0065"{_fgeg ,_dadbcc :=_ddcd .newPdfPageFromDict (_aabaf );if _dadbcc !=nil {return _dadbcc ;};_fgeg .setContainer (_acgef );if _cgceg !=nil {_aabaf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgceg );};_ddcd ._acca =append (_ddcd ._acca ,_acgef );
|
||
_ddcd .PageList =append (_ddcd .PageList ,_fgeg );return nil ;};if *_geagg !="\u0050\u0061\u0067e\u0073"{_gd .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",_geagg );
|
||
return _af .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 _cgceg !=nil {_aabaf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cgceg );};if !_ddcd ._dfgg {_dbae :=_ddcd .traverseObjectData (_acgef );if _dbae !=nil {return _dbae ;};};_adeae ,_ddagd :=_ddcd ._eebeg .Resolve (_aabaf .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _ddagd !=nil {_gd .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 _ddagd ;};var _ababd *_ac .PdfObjectArray ;
|
||
_ababd ,_ebcgfg =_adeae .(*_ac .PdfObjectArray );if !_ebcgfg {_bebab ,_accdf :=_adeae .(*_ac .PdfIndirectObject );if !_accdf {return _af .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};
|
||
_ababd ,_ebcgfg =_bebab .PdfObject .(*_ac .PdfObjectArray );if !_ebcgfg {return _af .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");};};_gd .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_ababd );
|
||
for _eagea ,_dbecg :=range _ababd .Elements (){_agaag ,_gbcea :=_ac .GetIndirect (_dbecg );if !_gbcea {_gd .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",_agaag );
|
||
return _af .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ababd .Set (_eagea ,_agaag );_ddagd =_ddcd .buildPageList (_agaag ,_acgef ,_cafe );if _ddagd !=nil {return _ddagd ;
|
||
};};return nil ;};
|
||
|
||
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
|
||
func NewPdfOutputIntentFromPdfObject (object _ac .PdfObject )(*PdfOutputIntent ,error ){_gadf :=&PdfOutputIntent {};if _agedg :=_gadf .ParsePdfObject (object );_agedg !=nil {return nil ,_agedg ;};return _gadf ,nil ;};func (_gafab *PdfReader )newPdfOutlineItemFromIndirectObject (_abfgcg *_ac .PdfIndirectObject )(*PdfOutlineItem ,error ){_ggddb ,_facaa :=_abfgcg .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_facaa {return nil ,_d .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");};_cabbgd :=NewPdfOutlineItem ();_dcef :=_ggddb .Get ("\u0054\u0069\u0074l\u0065");
|
||
if _dcef ==nil {return nil ,_d .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");
|
||
};_gabda ,_fdcdg :=_ac .GetString (_dcef );if !_fdcdg {return nil ,_d .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dcef );};_cabbgd .Title =_gabda ;if _abbfed :=_ggddb .Get ("\u0043\u006f\u0075n\u0074");
|
||
_abbfed !=nil {_faadc ,_cbffg :=_abbfed .(*_ac .PdfObjectInteger );if !_cbffg {return nil ,_d .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_abbfed );};_gdad :=int64 (*_faadc );
|
||
_cabbgd .Count =&_gdad ;};if _ccdag :=_ggddb .Get ("\u0044\u0065\u0073\u0074");_ccdag !=nil {_cabbgd .Dest =_ac .ResolveReference (_ccdag );if !_gafab ._dfgg {_cafd :=_gafab .traverseObjectData (_cabbgd .Dest );if _cafd !=nil {return nil ,_cafd ;};};};
|
||
if _cgdcd :=_ggddb .Get ("\u0041");_cgdcd !=nil {_cabbgd .A =_ac .ResolveReference (_cgdcd );if !_gafab ._dfgg {_ebae :=_gafab .traverseObjectData (_cabbgd .A );if _ebae !=nil {return nil ,_ebae ;};};};if _dddgd :=_ggddb .Get ("\u0053\u0045");_dddgd !=nil {_cabbgd .SE =nil ;
|
||
};if _bfag :=_ggddb .Get ("\u0043");_bfag !=nil {_cabbgd .C =_ac .ResolveReference (_bfag );};if _adcgf :=_ggddb .Get ("\u0046");_adcgf !=nil {_cabbgd .F =_ac .ResolveReference (_adcgf );};return _cabbgd ,nil ;};
|
||
|
||
// 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 (_cdcge *PdfPageResources )GetFontByName (keyName _ac .PdfObjectName )(_ac .PdfObject ,bool ){if _cdcge .Font ==nil {return nil ,false ;};_aaeea ,_cadf :=_ac .TraceToDirectObject (_cdcge .Font ).(*_ac .PdfObjectDictionary );if !_cadf {_gd .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",_ac .TraceToDirectObject (_cdcge .Font ));
|
||
return nil ,false ;};if _gadfa :=_aaeea .Get (keyName );_gadfa !=nil {return _gadfa ,true ;};return nil ,false ;};
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_eecf *PdfFontDescriptor )ToPdfObject ()_ac .PdfObject {_ebcbf :=_ac .MakeDict ();if _eecf ._adfg ==nil {_eecf ._adfg =&_ac .PdfIndirectObject {};};_eecf ._adfg .PdfObject =_ebcbf ;_ebcbf .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _eecf .FontName !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_eecf .FontName );};if _eecf .FontFamily !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_eecf .FontFamily );};if _eecf .FontStretch !=nil {_ebcbf .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_eecf .FontStretch );
|
||
};if _eecf .FontWeight !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_eecf .FontWeight );};if _eecf .Flags !=nil {_ebcbf .Set ("\u0046\u006c\u0061g\u0073",_eecf .Flags );};if _eecf .FontBBox !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_eecf .FontBBox );
|
||
};if _eecf .ItalicAngle !=nil {_ebcbf .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_eecf .ItalicAngle );};if _eecf .Ascent !=nil {_ebcbf .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_eecf .Ascent );};if _eecf .Descent !=nil {_ebcbf .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_eecf .Descent );
|
||
};if _eecf .Leading !=nil {_ebcbf .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_eecf .Leading );};if _eecf .CapHeight !=nil {_ebcbf .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_eecf .CapHeight );};if _eecf .XHeight !=nil {_ebcbf .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_eecf .XHeight );
|
||
};if _eecf .StemV !=nil {_ebcbf .Set ("\u0053\u0074\u0065m\u0056",_eecf .StemV );};if _eecf .StemH !=nil {_ebcbf .Set ("\u0053\u0074\u0065m\u0048",_eecf .StemH );};if _eecf .AvgWidth !=nil {_ebcbf .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_eecf .AvgWidth );
|
||
};if _eecf .MaxWidth !=nil {_ebcbf .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_eecf .MaxWidth );};if _eecf .MissingWidth !=nil {_ebcbf .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_eecf .MissingWidth );};if _eecf .FontFile !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_eecf .FontFile );
|
||
};if _eecf .FontFile2 !=nil {_ebcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_eecf .FontFile2 );};if _eecf .FontFile3 !=nil {_ebcbf .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_eecf .FontFile3 );};if _eecf .CharSet !=nil {_ebcbf .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_eecf .CharSet );
|
||
};if _eecf .Style !=nil {_ebcbf .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_eecf .FontName );};if _eecf .Lang !=nil {_ebcbf .Set ("\u004c\u0061\u006e\u0067",_eecf .Lang );};if _eecf .FD !=nil {_ebcbf .Set ("\u0046\u0044",_eecf .FD );};if _eecf .CIDSet !=nil {_ebcbf .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_eecf .CIDSet );
|
||
};return _eecf ._adfg ;};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_gabba =creator };func (_cdbaf *fontFile )loadFromSegments (_ebbc ,_befea []byte )error {_gd .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_ebbc ),len (_befea ));
|
||
_ddbb :=_cdbaf .parseASCIIPart (_ebbc );if _ddbb !=nil {return _ddbb ;};_gd .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cdbaf );if len (_befea )==0{return nil ;};_gd .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_cdbaf );
|
||
return nil ;};var _fead =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":{}};
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cdcg *PdfAnnotationInk )ToPdfObject ()_ac .PdfObject {_cdcg .PdfAnnotation .ToPdfObject ();_gfgf :=_cdcg ._fegd ;_ffgb :=_gfgf .PdfObject .(*_ac .PdfObjectDictionary );_cdcg .PdfAnnotationMarkup .appendToPdfDictionary (_ffgb );_ffgb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0049\u006e\u006b"));
|
||
_ffgb .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_cdcg .InkList );_ffgb .SetIfNotNil ("\u0042\u0053",_cdcg .BS );return _gfgf ;};func (_gbge *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
|
||
|
||
// 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 (_defb *PdfReader )CheckAccessRights (password []byte )(bool ,_eece .Permissions ,error ){return _defb ._eebeg .CheckAccessRights (password );};type modelManager struct{_ebgfb map[PdfModel ]_ac .PdfObject ;_bbefe map[_ac .PdfObject ]PdfModel ;};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_dgc :=NewPdfAnnotation ();_bcc :=&PdfAnnotationPolyLine {};_bcc .PdfAnnotation =_dgc ;_bcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgc .SetContext (_bcc );return _bcc ;};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_ebefe *PdfReader )GetTrailer ()(*_ac .PdfObjectDictionary ,error ){_aadgf :=_ebefe ._eebeg .GetTrailer ();if _aadgf ==nil {return nil ,_af .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _aadgf ,nil ;
|
||
};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_degb *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _degb .MediaBox !=nil {return _degb .MediaBox ,nil ;};_eaea :=_degb .Parent ;for _eaea !=nil {_fcaga ,_gaafdb :=_ac .GetDict (_eaea );if !_gaafdb {return nil ,_af .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 _bgad :=_fcaga .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_bgad !=nil {_gdcda ,_egbaf :=_ac .GetArray (_bgad );if !_egbaf {return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_aabg ,_abbbe :=NewPdfRectangle (*_gdcda );if _abbbe !=nil {return nil ,_abbbe ;};return _aabg ,nil ;};_eaea =_fcaga .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_af .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_ecbbg *PdfSignature )GetCerts ()([]*_fc .Certificate ,error ){var _ceada []func ()([]*_fc .Certificate ,error );switch _aeccae ,_ :=_ac .GetNameVal (_ecbbg .SubFilter );_aeccae {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":_ceada =append (_ceada ,_ecbbg .extractChainFromPKCS7 ,_ecbbg .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_ceada =append (_ceada ,_ecbbg .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_ceada =append (_ceada ,_ecbbg .extractChainFromPKCS7 );
|
||
default:return nil ,_d .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_aeccae );};for _ ,_adbde :=range _ceada {_cdgd ,_gefce :=_adbde ();if _gefce !=nil {return nil ,_gefce ;
|
||
};if len (_cdgd )> 0{return _cdgd ,nil ;};};return nil ,ErrSignNoCertificates ;};
|
||
|
||
// 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 ;
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbba *PdfAnnotationTrapNet )ToPdfObject ()_ac .PdfObject {_fbba .PdfAnnotation .ToPdfObject ();_cgfb :=_fbba ._fegd ;_eeee :=_cgfb .PdfObject .(*_ac .PdfObjectDictionary );_eeee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _cgfb ;};
|
||
|
||
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
|
||
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ac .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ac .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
|
||
};
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_fgbgce *XObjectForm )GetContainingPdfObject ()_ac .PdfObject {return _fgbgce ._fggc };
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_daaa *PdfField )IsTerminal ()bool {return len (_daaa .Kids )==0};
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_dffada *PdfInfo )GetCustomInfo (name string )*_ac .PdfObjectString {var _gcaf *_ac .PdfObjectString ;if _dffada ._ggfb ==nil {return _gcaf ;};if _gbfa ,_dbcf :=_dffada ._ggfb .Get (*_ac .MakeName (name )).(*_ac .PdfObjectString );_dbcf {_gcaf =_gbfa ;
|
||
};return _gcaf ;};
|
||
|
||
// 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 (_fbcg *Image )ConvertToBinary ()error {if _fbcg .ColorComponents ==1&&_fbcg .BitsPerComponent ==1{return nil ;};_caea ,_ccag :=_fbcg .ToGoImage ();if _ccag !=nil {return _ccag ;};_agdde ,_ccag :=_ed .MonochromeConverter .Convert (_caea );if _ccag !=nil {return _ccag ;
|
||
};_fbcg .Data =_agdde .Base ().Data ;_fbcg ._ebga ,_ccag =_ed .ScaleAlphaToMonochrome (_fbcg ._ebga ,int (_fbcg .Width ),int (_fbcg .Height ));if _ccag !=nil {return _ccag ;};_fbcg .BitsPerComponent =1;_fbcg .ColorComponents =1;_fbcg ._gffd =nil ;return nil ;
|
||
};
|
||
|
||
// 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{_ebdca *_ac .PdfObjectDictionary ;Type *_ac .PdfObjectName ;TransformMethod *_ac .PdfObjectName ;TransformParams _ac .PdfObject ;Data _ac .PdfObject ;DigestMethod *_ac .PdfObjectName ;};func (_eafee *LTV )validateSig (_adff *PdfSignature )error {if _adff ==nil ||_adff .Contents ==nil ||len (_adff .Contents .Bytes ())==0{return _d .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_adff );
|
||
};return nil ;};func _cfccc ()_e .Time {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _ggag };func (_dedca *PdfReader )newPdfSignatureFromIndirect (_cbcfa *_ac .PdfIndirectObject )(*PdfSignature ,error ){_bbffg ,_cbceg :=_cbcfa .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_cbceg {_gd .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 _daggc ,_aabb :=_dedca ._gbced .GetModelFromPrimitive (_cbcfa ).(*PdfSignature );_aabb {return _daggc ,nil ;};_gace :=&PdfSignature {};_gace ._bfgde =_cbcfa ;_gace .Type ,_ =_ac .GetName (_bbffg .Get ("\u0054\u0079\u0070\u0065"));
|
||
_gace .Filter ,_cbceg =_ac .GetName (_bbffg .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_cbceg {_gd .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 ;};_gace .SubFilter ,_ =_ac .GetName (_bbffg .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_gace .Contents ,_cbceg =_ac .GetString (_bbffg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_cbceg {_gd .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 _egbb ,_gddae :=_ac .GetArray (_bbffg .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_gddae {_gace .Reference =_ac .MakeArray ();for _ ,_gbfcbe :=range _egbb .Elements (){_eeaga ,_ceefb :=_ac .GetDict (_gbfcbe );
|
||
if !_ceefb {_gd .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 ;
|
||
};_fgdf ,_bgcfc :=_dedca .newPdfSignatureReferenceFromDict (_eeaga );if _bgcfc !=nil {return nil ,_bgcfc ;};_gace .Reference .Append (_fgdf .ToPdfObject ());};};_gace .Cert =_bbffg .Get ("\u0043\u0065\u0072\u0074");_gace .ByteRange ,_ =_ac .GetArray (_bbffg .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
|
||
_gace .Changes ,_ =_ac .GetArray (_bbffg .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_gace .Name ,_ =_ac .GetString (_bbffg .Get ("\u004e\u0061\u006d\u0065"));_gace .M ,_ =_ac .GetString (_bbffg .Get ("\u004d"));_gace .Location ,_ =_ac .GetString (_bbffg .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_gace .Reason ,_ =_ac .GetString (_bbffg .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_gace .ContactInfo ,_ =_ac .GetString (_bbffg .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_gace .R ,_ =_ac .GetInt (_bbffg .Get ("\u0052"));
|
||
_gace .V ,_ =_ac .GetInt (_bbffg .Get ("\u0056"));_gace .PropBuild ,_ =_ac .GetDict (_bbffg .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_gace .PropAuthTime ,_ =_ac .GetInt (_bbffg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_gace .PropAuthType ,_ =_ac .GetName (_bbffg .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_dedca ._gbced .Register (_cbcfa ,_gace );return _gace ,nil ;};
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_ffgge :=PdfWriter {};_ffgge ._agbff =map[_ac .PdfObject ]struct{}{};_ffgge ._gdeaf =[]_ac .PdfObject {};_ffgge ._fage =map[_ac .PdfObject ][]*_ac .PdfObjectDictionary {};_ffgge ._ebade =map[_ac .PdfObject ]struct{}{};_ffgge ._gdfdc .Major =1;
|
||
_ffgge ._gdfdc .Minor =3;_cbebb :=_ac .MakeDict ();_ggfaab :=[]struct{_ggdec _ac .PdfObjectName ;_gcace string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_fecbg ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_dagfca ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_bcefb ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_feac ()},{"\u0054\u0069\u0074l\u0065",_facbg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_efcac ()}};
|
||
for _ ,_egeb :=range _ggfaab {if _egeb ._gcace !=""{_cbebb .Set (_egeb ._ggdec ,_ac .MakeString (_egeb ._gcace ));};};if _beaae :=_cagd ();!_beaae .IsZero (){if _eedcg ,_baddf :=NewPdfDateFromTime (_beaae );_baddf ==nil {_cbebb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eedcg .ToPdfObject ());
|
||
};};if _ffcggb :=_cfccc ();!_ffcggb .IsZero (){if _bcaa ,_cebgf :=NewPdfDateFromTime (_ffcggb );_cebgf ==nil {_cbebb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_bcaa .ToPdfObject ());};};_dcbfa :=_ac .PdfIndirectObject {};_dcbfa .PdfObject =_cbebb ;
|
||
_ffgge ._aefadb =&_dcbfa ;_ffgge .addObject (&_dcbfa );_cgdgd :=_ac .PdfIndirectObject {};_ceddd :=_ac .MakeDict ();_ceddd .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_cgdgd .PdfObject =_ceddd ;_ffgge ._efcff =&_cgdgd ;
|
||
_ffgge .addObject (_ffgge ._efcff );_dcadd ,_daacf :=_ceec ("\u0077");if _daacf !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_daacf );};_ffgge ._gafbg =_dcadd ;_agca :=_ac .PdfIndirectObject {};_ccgaa :=_ac .MakeDict ();_ccgaa .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050\u0061\u0067e\u0073"));
|
||
_gccb :=_ac .PdfObjectArray {};_ccgaa .Set ("\u004b\u0069\u0064\u0073",&_gccb );_ccgaa .Set ("\u0043\u006f\u0075n\u0074",_ac .MakeInteger (0));_agca .PdfObject =_ccgaa ;_ffgge ._dagba =&_agca ;_ffgge ._gafba =map[_ac .PdfObject ]struct{}{};_ffgge .addObject (_ffgge ._dagba );
|
||
_ceddd .Set ("\u0050\u0061\u0067e\u0073",&_agca );_ffgge ._cgfegd =_ceddd ;_gd .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_cgdgd );return _ffgge ;};
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_dgcg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_gdec :=_cg .NewReader (img .getBase ());_abga :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._ebga ,img ._gffd );
|
||
_ecce :=_cg .NewWriter (_abga );_dcdga :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_bbcf :=_dgcg .GetNumComponents ();_efcb :=make ([]uint32 ,_bbcf );_cdgc :=make ([]float64 ,_bbcf );for {_cgeg :=_gdec .ReadSamples (_efcb );if _cgeg ==_adc .EOF {break ;
|
||
}else if _cgeg !=nil {return img ,_cgeg ;};for _fafd :=0;_fafd < _bbcf ;_fafd ++{_dcde :=float64 (_efcb [_fafd ])/_dcdga ;_cdgc [_fafd ]=_dcde ;};_cbgfc ,_cgeg :=_dgcg .TintTransform .Evaluate (_cdgc );if _cgeg !=nil {return img ,_cgeg ;};for _ ,_cafgb :=range _cbgfc {_cafgb =_da .Min (_da .Max (0,_cafgb ),1.0);
|
||
if _cgeg =_ecce .WriteSample (uint32 (_cafgb *_dcdga ));_cgeg !=nil {return img ,_cgeg ;};};};return _dgcg .AlternateSpace .ImageToRGB (_affb (&_abga ));};func _gfgdad (_cgcf []byte )([]byte ,error ){_gacdf :=_bf .New ();if _ ,_fegga :=_adc .Copy (_gacdf ,_fd .NewReader (_cgcf ));
|
||
_fegga !=nil {return nil ,_fegga ;};return _gacdf .Sum (nil ),nil ;};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_befae DefaultImageHandler )Read (reader _adc .Reader )(*Image ,error ){_edefd ,_ ,_degd :=_ad .Decode (reader );if _degd !=nil {_gd .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_degd );
|
||
return nil ,_degd ;};return _befae .NewImageFromGoImage (_edefd );};
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_bdcg *Outline )Add (item *OutlineItem ){_bdcg .Entries =append (_bdcg .Entries ,item )};
|
||
|
||
// 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 _adc .ReadSeeker )(*PdfFont ,error ){_cdfdc ,_feeg :=_ea .ReadAll (r );if _feeg !=nil {_gd .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",_feeg );
|
||
return nil ,_feeg ;};_cgdc ,_feeg :=_fda .TtfParse (_fd .NewReader (_cdfdc ));if _feeg !=nil {_gd .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",_feeg );
|
||
return nil ,_feeg ;};_cgcg :=&pdfCIDFontType2 {fontCommon :fontCommon {_efebg :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ac .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_cgdc .Widths )<=0{return nil ,_af .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");
|
||
};_ggbc :=1000.0/float64 (_cgdc .UnitsPerEm );_afca :=_ggbc *float64 (_cgdc .Widths [0]);_bcacc :=make (map[rune ]int );_babgg :=make (map[_fda .GID ]int );_gdcac :=_fda .GID (len (_cgdc .Widths ));for _bggde ,_facff :=range _cgdc .Chars {if _facff > _gdcac -1{continue ;
|
||
};_gcba :=int (_ggbc *float64 (_cgdc .Widths [_facff ]));_bcacc [_bggde ]=_gcba ;_babgg [_facff ]=_gcba ;};_cgcg ._adef =_bcacc ;_cgcg .DW =_ac .MakeInteger (int64 (_afca ));_afaca :=_ccbfe (_babgg ,uint16 (_gdcac ));_cgcg .W =_ac .MakeIndirectObject (_afaca );
|
||
_aeda :=_ac .MakeDict ();_aeda .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ac .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_aeda .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ac .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_aeda .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ac .MakeInteger (0));_cgcg .CIDSystemInfo =_aeda ;_bcba :=&PdfFontDescriptor {FontName :_ac .MakeName (_cgdc .PostScriptName ),Ascent :_ac .MakeFloat (_ggbc *float64 (_cgdc .TypoAscender )),Descent :_ac .MakeFloat (_ggbc *float64 (_cgdc .TypoDescender )),CapHeight :_ac .MakeFloat (_ggbc *float64 (_cgdc .CapHeight )),FontBBox :_ac .MakeArrayFromFloats ([]float64 {_ggbc *float64 (_cgdc .Xmin ),_ggbc *float64 (_cgdc .Ymin ),_ggbc *float64 (_cgdc .Xmax ),_ggbc *float64 (_cgdc .Ymax )}),ItalicAngle :_ac .MakeFloat (_cgdc .ItalicAngle ),MissingWidth :_ac .MakeFloat (_afca )};
|
||
_aaba ,_feeg :=_ac .MakeStream (_cdfdc ,_ac .NewFlateEncoder ());if _feeg !=nil {_gd .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",_feeg );
|
||
return nil ,_feeg ;};_aaba .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ac .MakeInteger (int64 (len (_cdfdc ))));_bcba .FontFile2 =_aaba ;if _cgdc .Bold {_bcba .StemV =_ac .MakeInteger (120);}else {_bcba .StemV =_ac .MakeInteger (70);
|
||
};_gecg :=_feaae ;if _cgdc .IsFixedPitch {_gecg |=_beacg ;};if _cgdc .ItalicAngle !=0{_gecg |=_cebda ;};_bcba .Flags =_ac .MakeInteger (int64 (_gecg ));_cgcg ._abab =_cgdc .PostScriptName ;_cgcg ._bgbdc =_bcba ;_ccbf :=pdfFontType0 {fontCommon :fontCommon {_efebg :"\u0054\u0079\u0070e\u0030",_abab :_cgdc .PostScriptName },DescendantFont :&PdfFont {_gegb :_cgcg },Encoding :_ac .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_edfdd :_cgdc .NewEncoder ()};
|
||
if len (_cgdc .Chars )> 0{_caeed :=make (map[_eg .CharCode ]rune ,len (_cgdc .Chars ));for _fcad ,_dbcgd :=range _cgdc .Chars {_gabe :=_eg .CharCode (_dbcgd );if _acccc ,_bdbfd :=_caeed [_gabe ];!_bdbfd ||(_bdbfd &&_acccc > _fcad ){_caeed [_gabe ]=_fcad ;
|
||
};};_ccbf ._acbbb =_eg .NewToUnicodeCMap (_caeed );};_fcfa :=PdfFont {_gegb :&_ccbf };return &_fcfa ,nil ;};
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _e .Time )(PdfDate ,error ){_dbfca :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_adgfa ,_ :=_ae .ParseInt (_dbfca [1:3],10,32);_cbba ,_ :=_ae .ParseInt (_dbfca [4:6],10,32);return PdfDate {_bfbe :int64 (timeObj .Year ()),_dbbcd :int64 (timeObj .Month ()),_dgfeb :int64 (timeObj .Day ()),_ffgecb :int64 (timeObj .Hour ()),_eega :int64 (timeObj .Minute ()),_dcebf :int64 (timeObj .Second ()),_cbcad :_dbfca [0],_bbdfd :_adgfa ,_ecccg :_cbba },nil ;
|
||
};
|
||
|
||
// 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 *_ac .PdfObjectStream )(*XObjectImage ,error ){_agdga :=&XObjectImage {};_agdga ._gfbdff =stream ;_addgd :=*(stream .PdfObjectDictionary );_geee ,_ecggc :=_ac .NewEncoderFromStream (stream );if _ecggc !=nil {return nil ,_ecggc ;
|
||
};_agdga .Filter =_geee ;if _gabec :=_ac .TraceToDirectObject (_addgd .Get ("\u0057\u0069\u0064t\u0068"));_gabec !=nil {_afbab ,_fgbca :=_gabec .(*_ac .PdfObjectInteger );if !_fgbca {return nil ,_af .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");
|
||
};_abcfa :=int64 (*_afbab );_agdga .Width =&_abcfa ;}else {return nil ,_af .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _ebgbdd :=_ac .TraceToDirectObject (_addgd .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_ebgbdd !=nil {_egccb ,_abadb :=_ebgbdd .(*_ac .PdfObjectInteger );if !_abadb {return nil ,_af .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_gfbag :=int64 (*_egccb );
|
||
_agdga .Height =&_gfbag ;}else {return nil ,_af .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _dgggf :=_ac .TraceToDirectObject (_addgd .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_dgggf !=nil {_gbcb ,_feaf :=NewPdfColorspaceFromPdfObject (_dgggf );if _feaf !=nil {return nil ,_feaf ;};_agdga .ColorSpace =_gbcb ;}else {_gd .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");
|
||
_agdga .ColorSpace =NewPdfColorspaceDeviceGray ();};if _ccdbf :=_ac .TraceToDirectObject (_addgd .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_ccdbf !=nil {_dggff ,_fffbe :=_ccdbf .(*_ac .PdfObjectInteger );
|
||
if !_fffbe {return nil ,_af .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_caegg :=int64 (*_dggff );_agdga .BitsPerComponent =&_caegg ;};_agdga .Intent =_addgd .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_agdga .ImageMask =_addgd .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_agdga .Mask =_addgd .Get ("\u004d\u0061\u0073\u006b");_agdga .Decode =_addgd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_agdga .Interpolate =_addgd .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_agdga .Alternatives =_addgd .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_agdga .SMask =_addgd .Get ("\u0053\u004d\u0061s\u006b");_agdga .SMaskInData =_addgd .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_agdga .Matte =_addgd .Get ("\u004d\u0061\u0074t\u0065");_agdga .Name =_addgd .Get ("\u004e\u0061\u006d\u0065");_agdga .StructParent =_addgd .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_agdga .ID =_addgd .Get ("\u0049\u0044");
|
||
_agdga .OPI =_addgd .Get ("\u004f\u0050\u0049");_agdga .Metadata =_addgd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_agdga .OC =_addgd .Get ("\u004f\u0043");_agdga .Stream =stream .Stream ;return _agdga ,nil ;};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_fgdc *PdfAppender )Write (w _adc .Writer )error {if _fgdc ._gae {return _af .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");
|
||
};_dccf :=NewPdfWriter ();_eadc ,_ffcb :=_ac .GetDict (_dccf ._dagba );if !_ffcb {return _af .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");
|
||
};_aafa ,_ffcb :=_eadc .Get ("\u004b\u0069\u0064\u0073").(*_ac .PdfObjectArray );if !_ffcb {return _af .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");
|
||
};_fdeea ,_ffcb :=_eadc .Get ("\u0043\u006f\u0075n\u0074").(*_ac .PdfObjectInteger );if !_ffcb {return _af .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");
|
||
};_bbaf :=_fgdc ._cbdcd ._eebeg ;_dcad :=_bbaf .GetTrailer ();if _dcad ==nil {return _af .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bbf ,_ffcb :=_ac .GetIndirect (_dcad .Get ("\u0052\u006f\u006f\u0074"));
|
||
if !_ffcb {return _af .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_gbfe ,_ffcb :=_ac .GetDict (_bbf );if !_ffcb {_gd .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",_bbf ,*_dcad );
|
||
return _af .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_ebgd :=range _gbfe .Keys (){if _dccf ._cgfegd .Get (_ebgd )==nil {_bfbda :=_gbfe .Get (_ebgd );_dccf ._cgfegd .Set (_ebgd ,_bfbda );};};if _fgdc ._cabc !=nil {if _fgdc ._cabc ._dagc {if _gdbg :=_ac .TraceToDirectObject (_fgdc ._cabc .ToPdfObject ());
|
||
!_ac .IsNullObject (_gdbg ){_dccf ._cgfegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_gdbg );_fgdc .updateObjectsDeep (_gdbg ,nil );}else {_gd .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 {_dccf ._cgfegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_fgdc ._cabc .ToPdfObject ());_fgdc .updateObjectsDeep (_fgdc ._cabc .ToPdfObject (),nil );};};if _fgdc ._acaf !=nil {_fgdc .updateObjectsDeep (_fgdc ._acaf .ToPdfObject (),nil );
|
||
_dccf ._cgfegd .Set ("\u0044\u0053\u0053",_fgdc ._acaf .GetContainingPdfObject ());};if _fgdc ._adf !=nil {_dccf ._cgfegd .Set ("\u0050\u0065\u0072m\u0073",_fgdc ._adf .ToPdfObject ());_fgdc .updateObjectsDeep (_fgdc ._adf .ToPdfObject (),nil );};if _dccf ._gdfdc .Major < 2{_dccf .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
|
||
_dccf .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _cecf ,_ccbb :=_ac .GetDict (_dcad .Get ("\u0049\u006e\u0066\u006f"));_ccbb {if _cebe ,_gegc :=_ac .GetDict (_dccf ._aefadb );_gegc {for _ ,_gbgdg :=range _cecf .Keys (){if _cebe .Get (_gbgdg )==nil {_cebe .Set (_gbgdg ,_cecf .Get (_gbgdg ));
|
||
};};};};if _fgdc ._aead !=nil {_dccf ._aefadb =_ac .MakeIndirectObject (_fgdc ._aead .ToPdfObject ());};_fgdc .addNewObject (_dccf ._aefadb );_fgdc .addNewObject (_dccf ._efcff );_dgcbd :=false ;if len (_fgdc ._cbdcd .PageList )!=len (_fgdc ._abda ){_dgcbd =true ;
|
||
}else {for _efad :=range _fgdc ._cbdcd .PageList {switch {case _fgdc ._abda [_efad ]==_fgdc ._cbdcd .PageList [_efad ]:case _fgdc ._abda [_efad ]==_fgdc .Reader .PageList [_efad ]:default:_dgcbd =true ;};if _dgcbd {break ;};};};if _dgcbd {_fgdc .updateObjectsDeep (_dccf ._dagba ,nil );
|
||
}else {_fgdc ._fbfga [_dccf ._dagba ]=struct{}{};};_dccf ._dagba .ObjectNumber =_fgdc .Reader ._efeee .ObjectNumber ;_fgdc ._degfa [_dccf ._dagba ]=_fgdc .Reader ._efeee .ObjectNumber ;_ggad :=[]_ac .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 _ ,_bcfd :=range _fgdc ._abda {_aeec :=_bcfd .ToPdfObject ();*_fdeea =*_fdeea +1;if _aggab ,_fbgf :=_aeec .(*_ac .PdfIndirectObject );_fbgf &&_aggab .GetParser ()==_fgdc ._cbdcd ._eebeg {_aafa .Append (&_aggab .PdfObjectReference );continue ;};if _gcfa ,_fgab :=_ac .GetDict (_aeec );
|
||
_fgab {_cgef ,_gbca :=_gcfa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ac .PdfIndirectObject );for _gbca {_gd .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_cgef );_fafa ,_adfbg :=_cgef .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_adfbg {return _af .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_cafg :=range _ggad {_gd .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cafg );if _dgga :=_gcfa .Get (_cafg );
|
||
_dgga !=nil {_gd .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_bcfd ._cecfa .Keys ())> 0&&!_dgcbd {_ceea :=_bcfd ._cecfa ;if _eeeec :=_ceea .Get (_cafg );_eeeec !=nil {if _dgga !=_eeeec {_gd .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",_cafg ,_eeeec );
|
||
_gcfa .Set (_cafg ,_eeeec );};};};continue ;};if _acdg :=_fafa .Get (_cafg );_acdg !=nil {_gd .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_cafg );_gcfa .Set (_cafg ,_acdg );};};
|
||
_cgef ,_gbca =_fafa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ac .PdfIndirectObject );_gd .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fafa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_gcfa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_dccf ._dagba );
|
||
};_fgdc .updateObjectsDeep (_aeec ,nil );_aafa .Append (_aeec );};if _ ,_bbeb :=_fgdc ._dcaa .Seek (0,_adc .SeekStart );_bbeb !=nil {return _bbeb ;};_aeaeg :=make (map[SignatureHandler ]_adc .Writer );_fgde :=_ac .MakeArray ();for _ ,_dbad :=range _fgdc ._fgee {if _bedc ,_ffcgg :=_ac .GetIndirect (_dbad );
|
||
_ffcgg {if _gdefd ,_cgdb :=_bedc .PdfObject .(*pdfSignDictionary );_cgdb {_abec :=*_gdefd ._abgad ;var _cfeb error ;_aeaeg [_abec ],_cfeb =_abec .NewDigest (_gdefd ._aacfd );if _cfeb !=nil {return _cfeb ;};_fgde .Append (_ac .MakeInteger (0xfffff),_ac .MakeInteger (0xfffff));
|
||
};};};if _fgde .Len ()> 0{_fgde .Append (_ac .MakeInteger (0xfffff),_ac .MakeInteger (0xfffff));};for _ ,_afge :=range _fgdc ._fgee {if _gfeg ,_dcee :=_ac .GetIndirect (_afge );_dcee {if _cafb ,_cgade :=_gfeg .PdfObject .(*pdfSignDictionary );_cgade {_cafb .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_fgde );
|
||
};};};_dfda :=len (_aeaeg )> 0;var _fefa _adc .Reader =_fgdc ._dcaa ;if _dfda {_gcfb :=make ([]_adc .Writer ,0,len (_aeaeg ));for _ ,_eefff :=range _aeaeg {_gcfb =append (_gcfb ,_eefff );};_fefa =_adc .TeeReader (_fgdc ._dcaa ,_adc .MultiWriter (_gcfb ...));
|
||
};_ddeb ,_gbbf :=_adc .Copy (w ,_fefa );if _gbbf !=nil {return _gbbf ;};if len (_fgdc ._fgee )==0{return nil ;};_dccf ._deff =_ddeb ;_dccf .ObjNumOffset =_fgdc ._dgfe ;_dccf ._cfgc =true ;_dccf ._febgg =_fgdc ._gdg ;_dccf ._bcbcd =_fgdc ._adgf ;_dccf ._gccgde =_fgdc ._fcef ;
|
||
_dccf ._gdfdc =_fgdc ._cbdcd .PdfVersion ();_dccf ._dgbfe =_fgdc ._degfa ;_dccf ._bggef =_fgdc ._bbbg .GetCrypter ();_dccf ._ecgdb =_fgdc ._bbbg .GetEncryptObj ();_dfbcf :=_fgdc ._bbbg .GetXrefType ();if _dfbcf !=nil {_ggdg :=*_dfbcf ==_ac .XrefTypeObjectStream ;
|
||
_dccf ._fdfcfb =&_ggdg ;};_dccf ._agbff =map[_ac .PdfObject ]struct{}{};_dccf ._gdeaf =[]_ac .PdfObject {};for _ ,_dbf :=range _fgdc ._fgee {if _ ,_fgga :=_fgdc ._fbfga [_dbf ];_fgga {continue ;};_dccf .addObject (_dbf );};_gff :=w ;if _dfda {_gff =_fd .NewBuffer (nil );
|
||
};if _fgdc ._abgb !=""&&_dccf ._bggef ==nil {_dccf .Encrypt ([]byte (_fgdc ._abgb ),[]byte (_fgdc ._abgb ),_fgdc ._abea );};if _agd :=_dcad .Get ("\u0049\u0044");_agd !=nil {if _ccda ,_deag :=_ac .GetArray (_agd );_deag {_dccf ._bffaf =_ccda ;};};if _dfbfe :=_dccf .Write (_gff );
|
||
_dfbfe !=nil {return _dfbfe ;};if _dfda {_ddebc :=_gff .(*_fd .Buffer ).Bytes ();_aecd :=_ac .MakeArray ();var _aaeb []*pdfSignDictionary ;var _cgdf int64 ;for _ ,_cbdf :=range _dccf ._gdeaf {if _fbfc ,_gcdg :=_ac .GetIndirect (_cbdf );_gcdg {if _agdd ,_efebc :=_fbfc .PdfObject .(*pdfSignDictionary );
|
||
_efebc {_aaeb =append (_aaeb ,_agdd );_dcadf :=_agdd ._aedff +int64 (_agdd ._gaegg );_aecd .Append (_ac .MakeInteger (_cgdf ),_ac .MakeInteger (_dcadf -_cgdf ));_cgdf =_agdd ._aedff +int64 (_agdd ._cgdfee );};};};_aecd .Append (_ac .MakeInteger (_cgdf ),_ac .MakeInteger (_ddeb +int64 (len (_ddebc ))-_cgdf ));
|
||
_eebb :=[]byte (_aecd .WriteString ());for _ ,_dab :=range _aaeb {_ffcc :=int (_dab ._aedff -_ddeb );for _fggb :=_dab ._dbcgg ;_fggb < _dab ._gdfcd ;_fggb ++{_ddebc [_ffcc +_fggb ]=' ';};_gafc :=_ddebc [_ffcc +_dab ._dbcgg :_ffcc +_dab ._gdfcd ];copy (_gafc ,_eebb );
|
||
};var _ecgb int ;for _ ,_cgffd :=range _aaeb {_efea :=int (_cgffd ._aedff -_ddeb );_bbaac :=_ddebc [_ecgb :_efea +_cgffd ._gaegg ];_adde :=*_cgffd ._abgad ;_aeaeg [_adde ].Write (_bbaac );_ecgb =_efea +_cgffd ._cgdfee ;};for _ ,_beec :=range _aaeb {_aefee :=_ddebc [_ecgb :];
|
||
_ffbe :=*_beec ._abgad ;_aeaeg [_ffbe ].Write (_aefee );};for _ ,_eggc :=range _aaeb {_dcfe :=int (_eggc ._aedff -_ddeb );_aegd :=*_eggc ._abgad ;_eebc :=_aeaeg [_aegd ];if _dgedc :=_aegd .Sign (_eggc ._aacfd ,_eebc );_dgedc !=nil {return _dgedc ;};_eggc ._aacfd .ByteRange =_aecd ;
|
||
_bfde :=[]byte (_eggc ._aacfd .Contents .WriteString ());for _aecc :=_eggc ._dbcgg ;_aecc < _eggc ._gdfcd ;_aecc ++{_ddebc [_dcfe +_aecc ]=' ';};for _gbdba :=_eggc ._gaegg ;_gbdba < _eggc ._cgdfee ;_gbdba ++{_ddebc [_dcfe +_gbdba ]=' ';};_ebee :=_ddebc [_dcfe +_eggc ._dbcgg :_dcfe +_eggc ._gdfcd ];
|
||
copy (_ebee ,_eebb );_ebee =_ddebc [_dcfe +_eggc ._gaegg :_dcfe +_eggc ._cgdfee ];copy (_ebee ,_bfde );};_gcgb :=_fd .NewBuffer (_ddebc );_ ,_gbbf =_adc .Copy (w ,_gcgb );if _gbbf !=nil {return _gbbf ;};};_fgdc ._gae =true ;return nil ;};
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_eagfd *PdfPage )GetContainingPdfObject ()_ac .PdfObject {return _eagfd ._ffda };func (_cbae *PdfReader )newPdfAnnotationLinkFromDict (_aaea *_ac .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_ede :=PdfAnnotationLink {};_ede .A =_aaea .Get ("\u0041");
|
||
_ede .Dest =_aaea .Get ("\u0044\u0065\u0073\u0074");_ede .H =_aaea .Get ("\u0048");_ede .PA =_aaea .Get ("\u0050\u0041");_ede .QuadPoints =_aaea .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_ede .BS =_aaea .Get ("\u0042\u0053");
|
||
return &_ede ,nil ;};func (_dgff *PdfReader )resolveReference (_dbbcb *_ac .PdfObjectReference )(_ac .PdfObject ,bool ,error ){_cdddd ,_bccd :=_dgff ._eebeg .ObjCache [int (_dbbcb .ObjectNumber )];if !_bccd {_gd .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_dbbcb );
|
||
_fcbgc ,_fbbad :=_dgff ._eebeg .LookupByReference (*_dbbcb );if _fbbad !=nil {return nil ,false ,_fbbad ;};_dgff ._eebeg .ObjCache [int (_dbbcb .ObjectNumber )]=_fcbgc ;return _fcbgc ,false ,nil ;};return _cdddd ,true ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_bgdc *PdfColorspaceICCBased )GetNumComponents ()int {return _bgdc .N };
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_egfff *DSS )GetContainingPdfObject ()_ac .PdfObject {return _egfff ._gfed };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eade *PdfAnnotationProjection )ToPdfObject ()_ac .PdfObject {_eade .PdfAnnotation .ToPdfObject ();_gdfef :=_eade ._fegd ;_ffbb :=_gdfef .PdfObject .(*_ac .PdfObjectDictionary );_eade .PdfAnnotationMarkup .appendToPdfDictionary (_ffbb );return _gdfef ;
|
||
};
|
||
|
||
// 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 (_abfbec *Image )Resample (targetBitsPerComponent int64 ){if _abfbec .BitsPerComponent ==targetBitsPerComponent {return ;};_fdebd :=_abfbec .GetSamples ();if targetBitsPerComponent < _abfbec .BitsPerComponent {_gafac :=_abfbec .BitsPerComponent -targetBitsPerComponent ;
|
||
for _ecfg :=range _fdebd {_fdebd [_ecfg ]>>=uint (_gafac );};}else if targetBitsPerComponent > _abfbec .BitsPerComponent {_fagf :=targetBitsPerComponent -_abfbec .BitsPerComponent ;for _gcdab :=range _fdebd {_fdebd [_gcdab ]<<=uint (_fagf );};};_abfbec .BitsPerComponent =targetBitsPerComponent ;
|
||
if _abfbec .BitsPerComponent < 8{_abfbec .resampleLowBits (_fdebd );return ;};_cdca :=_ed .BytesPerLine (int (_abfbec .Width ),int (_abfbec .BitsPerComponent ),_abfbec .ColorComponents );_addf :=make ([]byte ,_cdca *int (_abfbec .Height ));var (_bfcd ,_abbc ,_ecdg ,_fgfad int ;
|
||
_egffb uint32 ;);for _ecdg =0;_ecdg < int (_abfbec .Height );_ecdg ++{_bfcd =_ecdg *_cdca ;_abbc =(_ecdg +1)*_cdca -1;_eefc :=_cg .ResampleUint32 (_fdebd [_bfcd :_abbc ],int (targetBitsPerComponent ),8);for _fgfad ,_egffb =range _eefc {_addf [_fgfad +_bfcd ]=byte (_egffb );
|
||
};};_abfbec .Data =_addf ;};
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_bgbb :=NewPdfAnnotation ();_eaad :=&PdfAnnotationFreeText {};_eaad .PdfAnnotation =_bgbb ;_eaad .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bgbb .SetContext (_eaad );return _eaad ;};
|
||
|
||
// 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 };};
|
||
|
||
// 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 (_cabeg *XObjectForm )SetContentStream (content []byte ,encoder _ac .StreamEncoder )error {_ggcdd :=content ;if encoder ==nil {if _cabeg .Filter !=nil {encoder =_cabeg .Filter ;}else {encoder =_ac .NewRawEncoder ();};};_caeca ,_cgbegd :=encoder .EncodeBytes (_ggcdd );
|
||
if _cgbegd !=nil {return _cgbegd ;};_ggcdd =_caeca ;_cabeg .Stream =_ggcdd ;_cabeg .Filter =encoder ;return nil ;};
|
||
|
||
// ReaderOpts defines options for creating PdfReader instances.
|
||
type ReaderOpts struct{
|
||
|
||
// Password password of the PDF file encryption.
|
||
// Default: empty ("").
|
||
Password string ;
|
||
|
||
// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
|
||
// Default: true.
|
||
LazyLoad bool ;
|
||
|
||
// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
|
||
ComplianceMode bool ;};
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_gdeb *PdfFieldText )ToPdfObject ()_ac .PdfObject {_gdeb .PdfField .ToPdfObject ();_aecff :=_gdeb ._bdde ;_cafc :=_aecff .PdfObject .(*_ac .PdfObjectDictionary );_cafc .Set ("\u0046\u0054",_ac .MakeName ("\u0054\u0078"));if _gdeb .DA !=nil {_cafc .Set ("\u0044\u0041",_gdeb .DA );
|
||
};if _gdeb .Q !=nil {_cafc .Set ("\u0051",_gdeb .Q );};if _gdeb .DS !=nil {_cafc .Set ("\u0044\u0053",_gdeb .DS );};if _gdeb .RV !=nil {_cafc .Set ("\u0052\u0056",_gdeb .RV );};if _gdeb .MaxLen !=nil {_cafc .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_gdeb .MaxLen );
|
||
};return _aecff ;};
|
||
|
||
// 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 ;
|
||
|
||
// 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 (_gafe *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_af .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");
|
||
};_ddceb :=&PdfColorPattern {};_eecbg ,_gcgd :=objects [len (objects )-1].(*_ac .PdfObjectName );if !_gcgd {_gd .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 ;};_ddceb .PatternName =*_eecbg ;if len (objects )> 1{_cfdae :=objects [0:len (objects )-1];if _gafe .UnderlyingCS ==nil {_gd .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 ,_af .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_gaa ,_cggc :=_gafe .UnderlyingCS .ColorFromPdfObjects (_cfdae );if _cggc !=nil {_gd .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",_cggc );
|
||
return nil ,_cggc ;};_ddceb .Color =_gaa ;};return _ddceb ,nil ;};func (_bgfe *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
|
||
|
||
// 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 _ac .StreamEncoder )(*XObjectImage ,error ){_efeacd :=NewXObjectImage ();return UpdateXObjectImageFromImage (_efeacd ,img ,cs ,encoder );};
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_fgg *PdfAnnotation )SetContext (ctx PdfModel ){_fgg ._cgf =ctx };
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cdde pdfCIDFontType0 )Encoder ()_gf .TextEncoder {return _cdde ._bbea };
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_ecbga *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _ecbga .AlternateSpace ==nil {return nil ,_af .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 _ecbga .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_dgac *pdfCIDFontType2 )ToPdfObject ()_ac .PdfObject {if _dgac ._dabfe ==nil {_dgac ._dabfe =&_ac .PdfIndirectObject {};};_gdcd :=_dgac .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");_dgac ._dabfe .PdfObject =_gdcd ;
|
||
if _dgac .CIDSystemInfo !=nil {_gdcd .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_dgac .CIDSystemInfo );};if _dgac .DW !=nil {_gdcd .Set ("\u0044\u0057",_dgac .DW );};if _dgac .DW2 !=nil {_gdcd .Set ("\u0044\u0057\u0032",_dgac .DW2 );
|
||
};if _dgac .W !=nil {_gdcd .Set ("\u0057",_dgac .W );};if _dgac .W2 !=nil {_gdcd .Set ("\u0057\u0032",_dgac .W2 );};if _dgac .CIDToGIDMap !=nil {_gdcd .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_dgac .CIDToGIDMap );};return _dgac ._dabfe ;
|
||
};func (_ebbgc *PdfReader )loadAnnotations (_gafea _ac .PdfObject )([]*PdfAnnotation ,error ){_eafdd ,_dgbca :=_ac .GetArray (_gafea );if !_dgbca {return nil ,_d .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _gdff []*PdfAnnotation ;for _ ,_bgfg :=range _eafdd .Elements (){_bgfg =_ac .ResolveReference (_bgfg );if _ ,_gcebf :=_bgfg .(*_ac .PdfObjectNull );_gcebf {continue ;};_dcede ,_faccg :=_bgfg .(*_ac .PdfObjectDictionary );_ggdgcf ,_fdabcg :=_bgfg .(*_ac .PdfIndirectObject );
|
||
if _faccg {_ggdgcf =&_ac .PdfIndirectObject {};_ggdgcf .PdfObject =_dcede ;}else {if !_fdabcg {return nil ,_d .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");
|
||
};};_ccegbf ,_bdad :=_ebbgc .newPdfAnnotationFromIndirectObject (_ggdgcf );if _bdad !=nil {return nil ,_bdad ;};switch _faee :=_ccegbf .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_gbfcd :=range _ebbgc .AcroForm .AllFields (){if _gbfcd ._bdde ==_faee .Parent {_faee ._gdb =_gbfcd ;
|
||
break ;};};};if _ccegbf !=nil {_gdff =append (_gdff ,_ccegbf );};};return _gdff ,nil ;};
|
||
|
||
// PdfField contains the common attributes of a form field. The context object contains the specific field data
|
||
// which can represent a button, text, choice or signature.
|
||
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
|
||
// PdfFieldButton etc (i.e. the context attribute).
|
||
type PdfField struct{_edab PdfModel ;_bdde *_ac .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ac .PdfObjectName ;T *_ac .PdfObjectString ;TU *_ac .PdfObjectString ;TM *_ac .PdfObjectString ;Ff *_ac .PdfObjectInteger ;
|
||
V _ac .PdfObject ;DV _ac .PdfObject ;AA _ac .PdfObject ;VariableText *VariableText ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_ebcff *PdfPattern )ToPdfObject ()_ac .PdfObject {_bbbfd :=_ebcff .getDict ();_bbbfd .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_bbbfd .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (_ebcff .PatternType ));
|
||
return _ebcff ._fddfb ;};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_cbcbf *PdfPage )AppendContentStream (contentStr string )error {_fadbf ,_cgeae :=_cbcbf .GetContentStreams ();if _cgeae !=nil {return _cgeae ;};if len (_fadbf )==0{_fadbf =[]string {contentStr };return _cbcbf .SetContentStreams (_fadbf ,_ac .NewFlateEncoder ());
|
||
};var _gfga _fd .Buffer ;_gfga .WriteString (_fadbf [len (_fadbf )-1]);_gfga .WriteString ("\u000a");_gfga .WriteString (contentStr );_fadbf [len (_fadbf )-1]=_gfga .String ();return _cbcbf .SetContentStreams (_fadbf ,_ac .NewFlateEncoder ());};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_bfbg *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fdebg ,_gcfg :=_ac .GetNumbersAsFloat (objects );
|
||
if _gcfg !=nil {return nil ,_gcfg ;};return _bfbg .ColorFromFloats (_fdebg );};func _gccgd (_bdecb _ac .PdfObject )(*PdfShading ,error ){_gfgac :=&PdfShading {};var _edca *_ac .PdfObjectDictionary ;if _bdcdee ,_gdecg :=_ac .GetIndirect (_bdecb );_gdecg {_gfgac ._dffbg =_bdcdee ;
|
||
_ecdcdg ,_ebafd :=_bdcdee .PdfObject .(*_ac .PdfObjectDictionary );if !_ebafd {_gd .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 ,_ac .ErrTypeError ;
|
||
};_edca =_ecdcdg ;}else if _dbadab ,_gefaa :=_ac .GetStream (_bdecb );_gefaa {_gfgac ._dffbg =_dbadab ;_edca =_dbadab .PdfObjectDictionary ;}else if _fcggg ,_bcge :=_ac .GetDict (_bdecb );_bcge {_gfgac ._dffbg =_fcggg ;_edca =_fcggg ;}else {_gd .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",_bdecb );
|
||
return nil ,_ac .ErrTypeError ;};if _edca ==nil {_gd .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_af .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};
|
||
_bdecb =_edca .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _bdecb ==nil {_gd .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 ;};_bdecb =_ac .TraceToDirectObject (_bdecb );_bffge ,_gbbdbc :=_bdecb .(*_ac .PdfObjectInteger );if !_gbbdbc {_gd .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",_bdecb );
|
||
return nil ,_ac .ErrTypeError ;};if *_bffge < 1||*_bffge > 7{_gd .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",*_bffge );
|
||
return nil ,_ac .ErrTypeError ;};_gfgac .ShadingType =_bffge ;_bdecb =_edca .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _bdecb ==nil {_gd .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 ;};_gffbc ,_bffcc :=NewPdfColorspaceFromPdfObject (_bdecb );if _bffcc !=nil {_gd .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",_bffcc );
|
||
return nil ,_bffcc ;};_gfgac .ColorSpace =_gffbc ;_bdecb =_edca .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _bdecb !=nil {_bdecb =_ac .TraceToDirectObject (_bdecb );_aadae ,_cfgb :=_bdecb .(*_ac .PdfObjectArray );if !_cfgb {_gd .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)",_bdecb );
|
||
return nil ,_ac .ErrTypeError ;};_gfgac .Background =_aadae ;};_bdecb =_edca .Get ("\u0042\u0042\u006f\u0078");if _bdecb !=nil {_bdecb =_ac .TraceToDirectObject (_bdecb );_bbegd ,_afgfd :=_bdecb .(*_ac .PdfObjectArray );if !_afgfd {_gd .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)",_bdecb );
|
||
return nil ,_ac .ErrTypeError ;};_cgdgg ,_ggbca :=NewPdfRectangle (*_bbegd );if _ggbca !=nil {_gd .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_ggbca );return nil ,_ggbca ;};_gfgac .BBox =_cgdgg ;};_bdecb =_edca .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _bdecb !=nil {_bdecb =_ac .TraceToDirectObject (_bdecb );_aebad ,_dcdfb :=_bdecb .(*_ac .PdfObjectBool );if !_dcdfb {_gd .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",_bdecb );
|
||
return nil ,_ac .ErrTypeError ;};_gfgac .AntiAlias =_aebad ;};switch *_bffge {case 1:_bbgbf ,_gfafd :=_fdgge (_edca );if _gfafd !=nil {return nil ,_gfafd ;};_bbgbf .PdfShading =_gfgac ;_gfgac ._bfga =_bbgbf ;return _gfgac ,nil ;case 2:_fadff ,_ffefc :=_cfggcg (_edca );
|
||
if _ffefc !=nil {return nil ,_ffefc ;};_fadff .PdfShading =_gfgac ;_gfgac ._bfga =_fadff ;return _gfgac ,nil ;case 3:_cdbec ,_dacee :=_ccgdd (_edca );if _dacee !=nil {return nil ,_dacee ;};_cdbec .PdfShading =_gfgac ;_gfgac ._bfga =_cdbec ;return _gfgac ,nil ;
|
||
case 4:_cacbf ,_babce :=_adfff (_edca );if _babce !=nil {return nil ,_babce ;};_cacbf .PdfShading =_gfgac ;_gfgac ._bfga =_cacbf ;return _gfgac ,nil ;case 5:_abeaeg ,_ddafb :=_afeg (_edca );if _ddafb !=nil {return nil ,_ddafb ;};_abeaeg .PdfShading =_gfgac ;
|
||
_gfgac ._bfga =_abeaeg ;return _gfgac ,nil ;case 6:_cegcf ,_adfd :=_babfa (_edca );if _adfd !=nil {return nil ,_adfd ;};_cegcf .PdfShading =_gfgac ;_gfgac ._bfga =_cegcf ;return _gfgac ,nil ;case 7:_cgbab ,_efdfg :=_eecd (_edca );if _efdfg !=nil {return nil ,_efdfg ;
|
||
};_cgbab .PdfShading =_gfgac ;_gfgac ._bfga =_cgbab ;return _gfgac ,nil ;};return nil ,_af .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_bdacb pdfFontType0 )Encoder ()_gf .TextEncoder {return _bdacb ._edfdd };
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};func (_gfaf *PdfReader )newPdfAnnotationUnderlineFromDict (_aggd *_ac .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_ced :=PdfAnnotationUnderline {};_bceb ,_dgcf :=_gfaf .newPdfAnnotationMarkupFromDict (_aggd );
|
||
if _dgcf !=nil {return nil ,_dgcf ;};_ced .PdfAnnotationMarkup =_bceb ;_ced .QuadPoints =_aggd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_ced ,nil ;};
|
||
|
||
// PdfReader represents a PDF file reader. It is a frontend to the lower level parsing mechanism and provides
|
||
// a higher level access to work with PDF structure and information, such as the page structure etc.
|
||
type PdfReader struct{_eebeg *_ac .PdfParser ;_egfgf _ac .PdfObject ;_efeee *_ac .PdfIndirectObject ;_eccec *_ac .PdfObjectDictionary ;_acca []*_ac .PdfIndirectObject ;PageList []*PdfPage ;_dageg int ;_bdfc *_ac .PdfObjectDictionary ;_adbfg *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_bddf *Permissions ;_geega map[*PdfReader ]*PdfReader ;_aedce []*PdfReader ;_gbced *modelManager ;_dfgg bool ;_cccb map[_ac .PdfObject ]struct{};_fafc _adc .ReadSeeker ;_cdgb string ;_edcge bool ;_dcbgf *ReaderOpts ;
|
||
_agfbe bool ;};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_dfebf *PdfPage )GetContentStreams ()([]string ,error ){_aadbe :=_dfebf .GetContentStreamObjs ();var _cdbaa []string ;for _ ,_dade :=range _aadbe {_beeec ,_fgag :=_dfce (_dade );if _fgag !=nil {return nil ,_fgag ;};_cdbaa =append (_cdbaa ,_beeec );
|
||
};return _cdbaa ,nil ;};
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_abceg *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _abceg .Base ==nil {return nil ,_af .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 _abceg .Base .ColorToRGB (color );};
|
||
|
||
// 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 (_cccfc *LTV )EnableChain (chain []*_fc .Certificate )error {return _cccfc .enable (nil ,chain ,"")};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _ac .PdfObject ;Popup *PdfAnnotationPopup ;CA _ac .PdfObject ;RC _ac .PdfObject ;CreationDate _ac .PdfObject ;IRT _ac .PdfObject ;Subj _ac .PdfObject ;RT _ac .PdfObject ;IT _ac .PdfObject ;ExData _ac .PdfObject ;};
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_ac .PdfObjectArray ;_aegde *Image ;};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _ac .StreamEncoder ;FormType _ac .PdfObject ;BBox _ac .PdfObject ;Matrix _ac .PdfObject ;Resources *PdfPageResources ;Group _ac .PdfObject ;Ref _ac .PdfObject ;MetaData _ac .PdfObject ;PieceInfo _ac .PdfObject ;LastModified _ac .PdfObject ;
|
||
StructParent _ac .PdfObject ;StructParents _ac .PdfObject ;OPI _ac .PdfObject ;OC _ac .PdfObject ;Name _ac .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_fggc *_ac .PdfObjectStream ;};func (_cggab *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_gfad *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_cebg :=range pages {_cebg =_cebg .Duplicate ();_gfbe (_cebg );_gfad ._abda =append (_gfad ._abda ,_cebg );};};
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_dfcba *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_eabed ,_ggbd :=color .(*PdfColorCalRGB );if !_ggbd {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baae :=_eabed .A ();_faga :=_eabed .B ();_agfc :=_eabed .C ();X :=_dfcba .Matrix [0]*_da .Pow (_baae ,_dfcba .Gamma [0])+_dfcba .Matrix [3]*_da .Pow (_faga ,_dfcba .Gamma [1])+_dfcba .Matrix [6]*_da .Pow (_agfc ,_dfcba .Gamma [2]);
|
||
Y :=_dfcba .Matrix [1]*_da .Pow (_baae ,_dfcba .Gamma [0])+_dfcba .Matrix [4]*_da .Pow (_faga ,_dfcba .Gamma [1])+_dfcba .Matrix [7]*_da .Pow (_agfc ,_dfcba .Gamma [2]);Z :=_dfcba .Matrix [2]*_da .Pow (_baae ,_dfcba .Gamma [0])+_dfcba .Matrix [5]*_da .Pow (_faga ,_dfcba .Gamma [1])+_dfcba .Matrix [8]*_da .Pow (_agfc ,_dfcba .Gamma [2]);
|
||
_fgbg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_cbab :=-0.969256*X +1.875992*Y +0.041556*Z ;_adgd :=0.055648*X +-0.204043*Y +1.057311*Z ;_fgbg =_da .Min (_da .Max (_fgbg ,0),1.0);_cbab =_da .Min (_da .Max (_cbab ,0),1.0);_adgd =_da .Min (_da .Max (_adgd ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_fgbg ,_cbab ,_adgd ),nil ;};
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_ecbec FieldFlag )Mask ()uint32 {return uint32 (_ecbec )};
|
||
|
||
// Items returns all children outline items.
|
||
func (_gcbg *Outline )Items ()[]*OutlineItem {return _gcbg .Entries };
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_eeag :=NewPdfAnnotation ();_dfe :=&PdfAnnotationUnderline {};_dfe .PdfAnnotation =_eeag ;_dfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eeag .SetContext (_dfe );return _dfe ;};
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;func (_gefc *PdfReader )newPdfAnnotationStampFromDict (_fcfc *_ac .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_aege :=PdfAnnotationStamp {};_gddd ,_fgd :=_gefc .newPdfAnnotationMarkupFromDict (_fcfc );if _fgd !=nil {return nil ,_fgd ;
|
||
};_aege .PdfAnnotationMarkup =_gddd ;_aege .Name =_fcfc .Get ("\u004e\u0061\u006d\u0065");return &_aege ,nil ;};
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_eebg :=PdfColorCalRGB {a ,b ,c };return &_eebg ;};func _aeeaae (_agcf *_ac .PdfObjectDictionary ,_egffg *fontCommon ,_dffef _gf .TextEncoder )(*pdfFontSimple ,error ){_eaaced :=_daae (_egffg );
|
||
_eaaced ._abbba =_dffef ;if _dffef ==nil {_decf :=_agcf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _decf ==nil {_decf =_ac .MakeInteger (0);};_eaaced .FirstChar =_decf ;_ggfab ,_abgcc :=_ac .GetIntVal (_decf );if !_abgcc {_gd .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",_decf );
|
||
return nil ,_ac .ErrTypeError ;};_fdag :=_gf .CharCode (_ggfab );_decf =_agcf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _decf ==nil {_decf =_ac .MakeInteger (255);};_eaaced .LastChar =_decf ;_ggfab ,_abgcc =_ac .GetIntVal (_decf );if !_abgcc {_gd .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",_decf );
|
||
return nil ,_ac .ErrTypeError ;};_fbde :=_gf .CharCode (_ggfab );_eaaced ._bdaga =make (map[_gf .CharCode ]float64 );_decf =_agcf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _decf !=nil {_eaaced .Widths =_decf ;_ebge ,_feca :=_ac .GetArray (_decf );
|
||
if !_feca {_gd .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",_decf );return nil ,_ac .ErrTypeError ;
|
||
};_eaacd ,_dgbc :=_ebge .ToFloat64Array ();if _dgbc !=nil {_gd .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 ,_dgbc ;};if len (_eaacd )!=int (_fbde -_fdag +1){_gd .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",_fbde -_fdag +1,len (_eaacd ));
|
||
return nil ,_ac .ErrRangeError ;};for _bceg ,_gcbac :=range _eaacd {_eaaced ._bdaga [_fdag +_gf .CharCode (_bceg )]=_gcbac ;};};};_eaaced .Encoding =_ac .TraceToDirectObject (_agcf .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _eaaced ,nil ;
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_bfecac *PdfShading )ToPdfObject ()_ac .PdfObject {_gdecfc :=_bfecac ._dffbg ;_cdgbg ,_efbba :=_bfecac .getShadingDict ();if _efbba !=nil {_gd .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 _bfecac .ShadingType !=nil {_cdgbg .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_bfecac .ShadingType );};if _bfecac .ColorSpace !=nil {_cdgbg .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_bfecac .ColorSpace .ToPdfObject ());
|
||
};if _bfecac .Background !=nil {_cdgbg .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_bfecac .Background );};if _bfecac .BBox !=nil {_cdgbg .Set ("\u0042\u0042\u006f\u0078",_bfecac .BBox .ToPdfObject ());};if _bfecac .AntiAlias !=nil {_cdgbg .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_bfecac .AntiAlias );
|
||
};return _gdecfc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egdf *PdfAnnotationPopup )ToPdfObject ()_ac .PdfObject {_egdf .PdfAnnotation .ToPdfObject ();_aada :=_egdf ._fegd ;_fbdb :=_aada .PdfObject .(*_ac .PdfObjectDictionary );_fbdb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_fbdb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_egdf .Parent );_fbdb .SetIfNotNil ("\u004f\u0070\u0065\u006e",_egdf .Open );return _aada ;};func (_cdfdca *PdfWriter )writeObject (_fbded int ,_dgadf _ac .PdfObject ){_gd .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_fbded );
|
||
if _dccbb ,_dgab :=_dgadf .(*_ac .PdfIndirectObject );_dgab {_cdfdca ._ggbab [_fbded ]=crossReference {Type :1,Offset :_cdfdca ._edabb ,Generation :_dccbb .GenerationNumber };_cfdc :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbded );
|
||
if _bbfde ,_eccba :=_dccbb .PdfObject .(*pdfSignDictionary );_eccba {_bbfde ._aedff =_cdfdca ._edabb +int64 (len (_cfdc ));};if _dccbb .PdfObject ==nil {_gd .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");
|
||
_dccbb .PdfObject =_ac .MakeNull ();};_cfdc +=_dccbb .PdfObject .WriteString ();_cfdc +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_cdfdca .writeString (_cfdc );return ;};if _fcadc ,_ccgfgd :=_dgadf .(*_ac .PdfObjectStream );_ccgfgd {_cdfdca ._ggbab [_fbded ]=crossReference {Type :1,Offset :_cdfdca ._edabb ,Generation :_fcadc .GenerationNumber };
|
||
_agdf :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbded );_agdf +=_fcadc .PdfObjectDictionary .WriteString ();_agdf +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cdfdca .writeString (_agdf );_cdfdca .writeBytes (_fcadc .Stream );
|
||
_cdfdca .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _cbfdf ,_gacga :=_dgadf .(*_ac .PdfObjectStreams );_gacga {_cdfdca ._ggbab [_fbded ]=crossReference {Type :1,Offset :_cdfdca ._edabb ,Generation :_cbfdf .GenerationNumber };
|
||
_eecgg :=_d .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbded );var _fagc []string ;var _eggef string ;var _eaebaa int64 ;for _cddab ,_eaaf :=range _cbfdf .Elements (){_gfeaf ,_ddegb :=_eaaf .(*_ac .PdfIndirectObject );if !_ddegb {_gd .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",_fbded ,_eaaf );
|
||
continue ;};_cedfa :=_gfeaf .PdfObject .WriteString ()+"\u0020";_eggef =_eggef +_cedfa ;_fagc =append (_fagc ,_d .Sprintf ("\u0025\u0064\u0020%\u0064",_gfeaf .ObjectNumber ,_eaebaa ));_cdfdca ._ggbab [int (_gfeaf .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_fbded ,Index :_cddab };
|
||
_eaebaa =_eaebaa +int64 (len ([]byte (_cedfa )));};_beabdf :=_fg .Join (_fagc ,"\u0020")+"\u0020";_cdace :=_ac .NewFlateEncoder ();_dcbb :=_cdace .MakeStreamDict ();_dcbb .Set (_ac .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ac .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_fcdbd :=int64 (_cbfdf .Len ());_dcbb .Set (_ac .PdfObjectName ("\u004e"),_ac .MakeInteger (_fcdbd ));_bbbgga :=int64 (len (_beabdf ));_dcbb .Set (_ac .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ac .MakeInteger (_bbbgga ));_gdccb ,_ :=_cdace .EncodeBytes ([]byte (_beabdf +_eggef ));
|
||
_adaaa :=int64 (len (_gdccb ));_dcbb .Set (_ac .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ac .MakeInteger (_adaaa ));_eecgg +=_dcbb .WriteString ();_eecgg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_cdfdca .writeString (_eecgg );
|
||
_cdfdca .writeBytes (_gdccb );_cdfdca .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_cdfdca .writeString (_dgadf .WriteString ());};func (_cacefb *LTV )generateVRIKey (_gbddf *PdfSignature )(string ,error ){_eebea ,_dbecb :=_gfgdad (_gbddf .Contents .Bytes ());
|
||
if _dbecb !=nil {return "",_dbecb ;};return _fg .ToUpper (_f .EncodeToString (_eebea )),nil ;};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_adcda *PdfFont )String ()string {_faagg :="";if _adcda ._gegb .Encoder ()!=nil {_faagg =_adcda ._gegb .Encoder ().String ();};return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_adcda ._gegb ,_adcda .baseFields ().coreString (),_faagg );
|
||
};func _adggc (_bbdf *_ac .PdfObjectDictionary )(*PdfFieldText ,error ){_cegfe :=&PdfFieldText {};_cegfe .DA ,_ =_ac .GetString (_bbdf .Get ("\u0044\u0041"));_cegfe .Q ,_ =_ac .GetInt (_bbdf .Get ("\u0051"));_cegfe .DS ,_ =_ac .GetString (_bbdf .Get ("\u0044\u0053"));
|
||
_cegfe .RV =_bbdf .Get ("\u0052\u0056");_cegfe .MaxLen ,_ =_ac .GetInt (_bbdf .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _cegfe ,nil ;};func (_acdc *pdfFontType0 )bytesToCharcodes (_gede []byte )([]_gf .CharCode ,bool ){if _acdc ._gcaa ==nil {return nil ,false ;
|
||
};_egfg ,_abeaf :=_acdc ._gcaa .BytesToCharcodes (_gede );if !_abeaf {return nil ,false ;};_dbgbf :=make ([]_gf .CharCode ,len (_egfg ));for _gfgg ,_abced :=range _egfg {_dbgbf [_gfgg ]=_gf .CharCode (_abced );};return _dbgbf ,true ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ceef pdfFontType3 )Encoder ()_gf .TextEncoder {return _ceef ._ebcbd };
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_edabg *PdfPattern )IsShading ()bool {return _edabg .PatternType ==2};
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_cfegc *PdfPageResourcesColorspaces )Set (key _ac .PdfObjectName ,val PdfColorspace ){if _ ,_eeaaa :=_cfegc .Colorspaces [string (key )];!_eeaaa {_cfegc .Names =append (_cfegc .Names ,string (key ));};_cfegc .Colorspaces [string (key )]=val ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eca *PdfAnnotationLine )ToPdfObject ()_ac .PdfObject {_eca .PdfAnnotation .ToPdfObject ();_fdbc :=_eca ._fegd ;_efdf :=_fdbc .PdfObject .(*_ac .PdfObjectDictionary );_eca .PdfAnnotationMarkup .appendToPdfDictionary (_efdf );_efdf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_efdf .SetIfNotNil ("\u004c",_eca .L );_efdf .SetIfNotNil ("\u0042\u0053",_eca .BS );_efdf .SetIfNotNil ("\u004c\u0045",_eca .LE );_efdf .SetIfNotNil ("\u0049\u0043",_eca .IC );_efdf .SetIfNotNil ("\u004c\u004c",_eca .LL );_efdf .SetIfNotNil ("\u004c\u004c\u0045",_eca .LLE );
|
||
_efdf .SetIfNotNil ("\u0043\u0061\u0070",_eca .Cap );_efdf .SetIfNotNil ("\u0049\u0054",_eca .IT );_efdf .SetIfNotNil ("\u004c\u004c\u004f",_eca .LLO );_efdf .SetIfNotNil ("\u0043\u0050",_eca .CP );_efdf .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_eca .Measure );
|
||
_efdf .SetIfNotNil ("\u0043\u004f",_eca .CO );return _fdbc ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_fecd *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_caffb :=_da .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_caffb *_fecd .R ()),uint32 (_caffb *_fecd .G ()),uint32 (_caffb *_fecd .B ())};};
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_cebc *PdfAppender )UpdatePage (page *PdfPage ){_cebc .updateObjectsDeep (page .ToPdfObject (),nil )};func (_fcfae *PdfShading )getShadingDict ()(*_ac .PdfObjectDictionary ,error ){_bdabg :=_fcfae ._dffbg ;if _bafdde ,_ebaea :=_bdabg .(*_ac .PdfIndirectObject );
|
||
_ebaea {_gfege ,_caccd :=_bafdde .PdfObject .(*_ac .PdfObjectDictionary );if !_caccd {return nil ,_ac .ErrTypeError ;};return _gfege ,nil ;}else if _ceeba ,_fded :=_bdabg .(*_ac .PdfObjectStream );_fded {return _ceeba .PdfObjectDictionary ,nil ;}else if _bffe ,_agac :=_bdabg .(*_ac .PdfObjectDictionary );
|
||
_agac {return _bffe ,nil ;}else {_gd .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 ,_ac .ErrTypeError ;
|
||
};};
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_dda :=NewPdfAnnotation ();_cbbd :=&PdfAnnotationSound {};_cbbd .PdfAnnotation =_dda ;_cbbd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dda .SetContext (_cbbd );return _cbbd ;};
|
||
|
||
// 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 (_aaeac *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_ddadf :=_aaeac .actualFont ();if _ddadf ==nil {_gd .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",_aaeac ._gegb );
|
||
return _fda .CharMetrics {},false ;};if _afecb ,_adecd :=_ddadf .GetRuneMetrics (r );_adecd {return _afecb ,true ;};if _abac ,_cdba :=_aaeac .GetFontDescriptor ();_cdba ==nil &&_abac !=nil {return _fda .CharMetrics {Wx :_abac ._fffd },true ;};_gd .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",_aaeac );
|
||
return _fda .CharMetrics {},false ;};
|
||
|
||
// SetFillImage attach a model.Image to push button.
|
||
func (_gafgg *PdfFieldButton )SetFillImage (image *Image ){if _gafgg .IsPush (){_gafgg ._aegde =image ;};};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ceff *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_dded :=_da .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_dded *_ceff .C ()),uint32 (_dded *_ceff .M ()),uint32 (_dded *_ceff .Y ()),uint32 (_dded *_ceff .K ())};};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_fgbef fontCommon )String ()string {return _d .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_fgbef .coreString ());};
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
|
||
|
||
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
|
||
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_gbbe :=&PdfAppender {_dcaa :reader ._fafc ,Reader :reader ,_bbbg :reader ._eebeg ,_gbe :reader ._cccb };_fcgd ,_fced :=_gbbe ._dcaa .Seek (0,_adc .SeekEnd );
|
||
if _fced !=nil {return nil ,_fced ;};_gbbe ._fcef =_fcgd ;if _ ,_fced =_gbbe ._dcaa .Seek (0,_adc .SeekStart );_fced !=nil {return nil ,_fced ;};_gbbe ._cbdcd ,_fced =NewPdfReaderWithOpts (_gbbe ._dcaa ,opts );if _fced !=nil {return nil ,_fced ;};for _ ,_cbgb :=range _gbbe .Reader .GetObjectNums (){if _gbbe ._dgfe < _cbgb {_gbbe ._dgfe =_cbgb ;
|
||
};};_gbbe ._gdg =_gbbe ._bbbg .GetXrefTable ();_gbbe ._adgf =_gbbe ._bbbg .GetXrefOffset ();_gbbe ._abda =append (_gbbe ._abda ,_gbbe ._cbdcd .PageList ...);_gbbe ._eddbd =make (map[_ac .PdfObject ]struct{});_gbbe ._degfa =make (map[_ac .PdfObject ]int64 );
|
||
_gbbe ._fbfga =make (map[_ac .PdfObject ]struct{});_gbbe ._cabc =_gbbe ._cbdcd .AcroForm ;_gbbe ._acaf =_gbbe ._cbdcd .DSS ;if opts !=nil {_gbbe ._abgb =opts .Password ;};if encryptOptions !=nil {_gbbe ._abea =encryptOptions ;};return _gbbe ,nil ;};
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_ccgg :=NewPdfAnnotation ();_beeae :=&PdfAnnotationStamp {};_beeae .PdfAnnotation =_ccgg ;_beeae .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccgg .SetContext (_beeae );return _beeae ;};
|
||
|
||
// ParsePdfObject parses input pdf object into given output intent.
|
||
func (_fffae *PdfOutputIntent )ParsePdfObject (object _ac .PdfObject )error {_dccdc ,_cfeca :=_ac .GetDict (object );if !_cfeca {_gd .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 _af .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");
|
||
};_fffae ._egeec =_dccdc ;_fffae .Type ,_ =_dccdc .GetString ("\u0054\u0079\u0070\u0065");_fegb ,_cfeca :=_dccdc .GetString ("\u0053");if _cfeca {switch _fegb {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_fffae .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_fffae .S =PdfOutputIntentTypeA2 ;
|
||
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_fffae .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_fffae .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_fffae .S =PdfOutputIntentTypeX ;
|
||
};};_fffae .OutputCondition ,_ =_dccdc .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_fffae .OutputConditionIdentifier ,_ =_dccdc .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
|
||
_fffae .RegistryName ,_ =_dccdc .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_fffae .Info ,_ =_dccdc .GetString ("\u0049\u006e\u0066\u006f");if _ccba ,_afcg :=_ac .GetStream (_dccdc .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
|
||
_afcg {_fffae .ColorComponents ,_ =_ac .GetIntVal (_ccba .Get ("\u004e"));_edae ,_aacag :=_ac .DecodeStream (_ccba );if _aacag !=nil {return _aacag ;};_fffae .DestOutputProfile =_edae ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cfbab *PdfSignature )ToPdfObject ()_ac .PdfObject {_fffdba :=_cfbab ._bfgde ;var _fadfed *_ac .PdfObjectDictionary ;if _ggbbf ,_babgb :=_fffdba .PdfObject .(*pdfSignDictionary );_babgb {_fadfed =_ggbbf .PdfObjectDictionary ;}else {_fadfed =_fffdba .PdfObject .(*_ac .PdfObjectDictionary );
|
||
};_fadfed .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cfbab .Type );_fadfed .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_cfbab .Filter );_fadfed .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_cfbab .SubFilter );_fadfed .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_cfbab .ByteRange );
|
||
_fadfed .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cfbab .Contents );_fadfed .SetIfNotNil ("\u0043\u0065\u0072\u0074",_cfbab .Cert );_fadfed .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cfbab .Name );_fadfed .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_cfbab .Reason );
|
||
_fadfed .SetIfNotNil ("\u004d",_cfbab .M );_fadfed .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_cfbab .Reference );_fadfed .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_cfbab .Changes );_fadfed .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_cfbab .ContactInfo );
|
||
return _fffdba ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cagb *PdfAnnotation3D )ToPdfObject ()_ac .PdfObject {_cagb .PdfAnnotation .ToPdfObject ();_dcfg :=_cagb ._fegd ;_fddf :=_dcfg .PdfObject .(*_ac .PdfObjectDictionary );_fddf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0033\u0044"));
|
||
_fddf .SetIfNotNil ("\u0033\u0044\u0044",_cagb .T3DD );_fddf .SetIfNotNil ("\u0033\u0044\u0056",_cagb .T3DV );_fddf .SetIfNotNil ("\u0033\u0044\u0041",_cagb .T3DA );_fddf .SetIfNotNil ("\u0033\u0044\u0049",_cagb .T3DI );_fddf .SetIfNotNil ("\u0033\u0044\u0042",_cagb .T3DB );
|
||
return _dcfg ;};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_gegb pdfFont };
|
||
|
||
// 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 _adc .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _ggefg ="\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 _gaada (rs ,opts ,true ,_ggefg );
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_egdbc *PdfShadingType6 )ToPdfObject ()_ac .PdfObject {_egdbc .PdfShading .ToPdfObject ();_cffdb ,_fecb :=_egdbc .getShadingDict ();if _fecb !=nil {_gd .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 _egdbc .BitsPerCoordinate !=nil {_cffdb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_egdbc .BitsPerCoordinate );};if _egdbc .BitsPerComponent !=nil {_cffdb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_egdbc .BitsPerComponent );
|
||
};if _egdbc .BitsPerFlag !=nil {_cffdb .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_egdbc .BitsPerFlag );};if _egdbc .Decode !=nil {_cffdb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_egdbc .Decode );};if _egdbc .Function !=nil {if len (_egdbc .Function )==1{_cffdb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egdbc .Function [0].ToPdfObject ());
|
||
}else {_debac :=_ac .MakeArray ();for _ ,_aagg :=range _egdbc .Function {_debac .Append (_aagg .ToPdfObject ());};_cffdb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_debac );};};return _egdbc ._dffbg ;};
|
||
|
||
// NewPdfColorPattern returns an empty color pattern.
|
||
func NewPdfColorPattern ()*PdfColorPattern {_ccggd :=&PdfColorPattern {};return _ccggd };
|
||
|
||
// Items returns all children outline items.
|
||
func (_bfgce *OutlineItem )Items ()[]*OutlineItem {return _bfgce .Entries };
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_efccb *PdfOutlineTreeNode )ToPdfObject ()_ac .PdfObject {return _efccb .GetContext ().ToPdfObject ();};
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_dafe *PdfColorspaceDeviceN )GetNumComponents ()int {return _dafe .ColorantNames .Len ()};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};
|
||
|
||
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
|
||
func (_becdfe *PdfReader )GetCatalogStructTreeRoot ()(_ac .PdfObject ,bool ){if _becdfe ._bdfc ==nil {return nil ,false ;};_eddeg :=_becdfe ._bdfc .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _eddeg ,_eddeg !=nil ;
|
||
};func (_ddcedf *PdfWriter )writeTrailer (_eadge int ){_ddcedf .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _dfaf :=0;_dfaf <=_eadge ;{for ;_dfaf <=_eadge ;_dfaf ++{_fadad ,_caeba :=_ddcedf ._ggbab [_dfaf ];if _caeba &&(!_ddcedf ._cfgc ||_ddcedf ._cfgc &&(_fadad .Type ==1&&_fadad .Offset >=_ddcedf ._gccgde ||_fadad .Type ==0)){break ;
|
||
};};var _adfcb int ;for _adfcb =_dfaf +1;_adfcb <=_eadge ;_adfcb ++{_cdedc ,_fgcce :=_ddcedf ._ggbab [_adfcb ];if _fgcce &&(!_ddcedf ._cfgc ||_ddcedf ._cfgc &&(_cdedc .Type ==1&&_cdedc .Offset > _ddcedf ._gccgde )){continue ;};break ;};_dcdfbd :=_d .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_dfaf ,_adfcb -_dfaf );
|
||
_ddcedf .writeString (_dcdfbd );for _ceee :=_dfaf ;_ceee < _adfcb ;_ceee ++{_dgfcc :=_ddcedf ._ggbab [_ceee ];switch _dgfcc .Type {case 0:_dcdfbd =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);_ddcedf .writeString (_dcdfbd );
|
||
case 1:_dcdfbd =_d .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_dgfcc .Offset ,0);_ddcedf .writeString (_dcdfbd );};};_dfaf =_adfcb +1;};_begfd :=_ac .MakeDict ();_begfd .Set ("\u0049\u006e\u0066\u006f",_ddcedf ._aefadb );
|
||
_begfd .Set ("\u0052\u006f\u006f\u0074",_ddcedf ._efcff );_begfd .Set ("\u0053\u0069\u007a\u0065",_ac .MakeInteger (int64 (_eadge +1)));if _ddcedf ._cfgc &&_ddcedf ._bcbcd > 0{_begfd .Set ("\u0050\u0072\u0065\u0076",_ac .MakeInteger (_ddcedf ._bcbcd ));
|
||
};if _ddcedf ._bggef !=nil {_begfd .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_ddcedf ._ecgdb );};if _ddcedf ._bffaf ==nil &&_ddcedf ._becagg !=""&&_ddcedf ._bcefa !=""{_ddcedf ._bffaf =_ac .MakeArray (_ac .MakeHexString (_ddcedf ._becagg ),_ac .MakeHexString (_ddcedf ._bcefa ));
|
||
};if _ddcedf ._bffaf !=nil {_begfd .Set ("\u0049\u0044",_ddcedf ._bffaf );_gd .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_ddcedf ._bffaf );};_ddcedf .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_ddcedf .writeString (_begfd .WriteString ());
|
||
_ddcedf .writeString ("\u000a");};func (_cfee *fontFile )parseASCIIPart (_babf []byte )error {if len (_babf )< 2||string (_babf [:2])!="\u0025\u0021"{return _af .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");
|
||
};_gcab ,_efaef ,_dfffd :=_fdcde (_babf );if _dfffd !=nil {return _dfffd ;};_cgfeg :=_caae (_gcab );_cfee ._bedba =_cgfeg ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _cfee ._bedba ==""{_gd .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 _efaef !=""{_gccga ,_edda :=_caaca (_efaef );if _edda !=nil {return _edda ;};_fgcdg ,_edda :=_gf .NewCustomSimpleTextEncoder (_gccga ,nil );if _edda !=nil {_gd .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",_edda );
|
||
return nil ;};_cfee ._bcdea =_fgcdg ;};return nil ;};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _ac .PdfObject ;};func (_ffa *PdfReader )newPdfActionRenditionFromDict (_beg *_ac .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_beg .Get ("\u0052"),AN :_beg .Get ("\u0041\u004e"),OP :_beg .Get ("\u004f\u0050"),JS :_beg .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_dagfd interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egfd *PdfAnnotationWidget )ToPdfObject ()_ac .PdfObject {_egfd .PdfAnnotation .ToPdfObject ();_bdgb :=_egfd ._fegd ;_gadb :=_bdgb .PdfObject .(*_ac .PdfObjectDictionary );if _egfd ._fed {return _bdgb ;};_egfd ._fed =true ;_gadb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_gadb .SetIfNotNil ("\u0048",_egfd .H );_gadb .SetIfNotNil ("\u004d\u004b",_egfd .MK );_gadb .SetIfNotNil ("\u0041",_egfd .A );_gadb .SetIfNotNil ("\u0041\u0041",_egfd .AA );_gadb .SetIfNotNil ("\u0042\u0053",_egfd .BS );_eaaa :=_egfd .Parent ;if _egfd ._gdb !=nil {if _egfd ._gdb ._bdde ==_egfd ._fegd {_egfd ._gdb .ToPdfObject ();
|
||
};_eaaa =_egfd ._gdb .GetContainingPdfObject ();};if _eaaa !=_bdgb {_gadb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_eaaa );};_egfd ._fed =false ;return _bdgb ;};
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};func (_gddg *PdfReader )newPdfActionGotoFromDict (_cce *_ac .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cce .Get ("\u0044")},nil ;};
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_addd *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ac .GetNumberAsFloat (_addd .CapHeight );};func (_eagdbb *LTV )getOCSPs (_eaeb []*_fc .Certificate ,_fgfe map[string ]*_fc .Certificate )([][]byte ,error ){_cadeg :=make ([][]byte ,0,len (_eaeb ));
|
||
for _ ,_cfddf :=range _eaeb {for _ ,_bffff :=range _cfddf .OCSPServer {if _eagdbb .CertClient .IsCA (_cfddf ){continue ;};_fedac ,_ddgd :=_fgfe [_cfddf .Issuer .CommonName ];if !_ddgd {_gd .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 ;};_ ,_ggade ,_cdfg :=_eagdbb .OCSPClient .MakeRequest (_bffff ,_cfddf ,_fedac );if _cdfg !=nil {_gd .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",_cdfg );
|
||
continue ;};_cadeg =append (_cadeg ,_ggade );};};return _cadeg ,nil ;};func (_fbce *PdfAcroForm )filteredFields (_gebe FieldFilterFunc ,_dadg bool )[]*PdfField {if _fbce ==nil {return nil ;};return _gfcbd (_fbce .Fields ,_gebe ,_dadg );};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_fadc *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fadc .updateObjectsDeep (dss .ToPdfObject (),nil );};_fadc ._acaf =dss ;};
|
||
|
||
// 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 *_ac .PdfObjectName ;Colorants _ac .PdfObject ;Process _ac .PdfObject ;MixingHints _ac .PdfObject ;_gaag *_ac .PdfIndirectObject ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_gacf *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cgeed *PdfShadingType4 )ToPdfObject ()_ac .PdfObject {_cgeed .PdfShading .ToPdfObject ();_aecca ,_cbafe :=_cgeed .getShadingDict ();if _cbafe !=nil {_gd .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 _cgeed .BitsPerCoordinate !=nil {_aecca .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cgeed .BitsPerCoordinate );};if _cgeed .BitsPerComponent !=nil {_aecca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cgeed .BitsPerComponent );
|
||
};if _cgeed .BitsPerFlag !=nil {_aecca .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cgeed .BitsPerFlag );};if _cgeed .Decode !=nil {_aecca .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cgeed .Decode );};if _cgeed .Function !=nil {if len (_cgeed .Function )==1{_aecca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgeed .Function [0].ToPdfObject ());
|
||
}else {_bgfea :=_ac .MakeArray ();for _ ,_abbcf :=range _cgeed .Function {_bgfea .Append (_abbcf .ToPdfObject ());};_aecca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgfea );};};return _cgeed ._dffbg ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgge *PdfAnnotationPolygon )ToPdfObject ()_ac .PdfObject {_fgge .PdfAnnotation .ToPdfObject ();_cgac :=_fgge ._fegd ;_fbaf :=_cgac .PdfObject .(*_ac .PdfObjectDictionary );_fgge .PdfAnnotationMarkup .appendToPdfDictionary (_fbaf );_fbaf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_fbaf .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_fgge .Vertices );_fbaf .SetIfNotNil ("\u004c\u0045",_fgge .LE );_fbaf .SetIfNotNil ("\u0042\u0053",_fgge .BS );_fbaf .SetIfNotNil ("\u0049\u0043",_fgge .IC );_fbaf .SetIfNotNil ("\u0042\u0045",_fgge .BE );
|
||
_fbaf .SetIfNotNil ("\u0049\u0054",_fgge .IT );_fbaf .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fgge .Measure );return _cgac ;};func _gabb (_aabf _ac .PdfObject )(*PdfFontDescriptor ,error ){_gdbgb :=&PdfFontDescriptor {};_aabf =_ac .ResolveReference (_aabf );
|
||
if _bdcdc ,_feab :=_aabf .(*_ac .PdfIndirectObject );_feab {_gdbgb ._adfg =_bdcdc ;_aabf =_bdcdc .PdfObject ;};_ebbad ,_gcbc :=_ac .GetDict (_aabf );if !_gcbc {_gd .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",_aabf );
|
||
return nil ,_ac .ErrTypeError ;};if _cgggd :=_ebbad .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_cgggd !=nil {_gdbgb .FontName =_cgggd ;}else {_gd .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");
|
||
};_eaegc ,_ :=_ac .GetName (_gdbgb .FontName );if _dfbca :=_ebbad .Get ("\u0054\u0079\u0070\u0065");_dfbca !=nil {_eebd ,_adgfe :=_dfbca .(*_ac .PdfObjectName );if !_adgfe ||string (*_eebd )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_gd .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",_dfbca ,_eaegc ,_gdbgb .FontName );
|
||
};}else {_gd .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",_eaegc ,_gdbgb .FontName );
|
||
};_gdbgb .FontFamily =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gdbgb .FontStretch =_ebbad .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gdbgb .FontWeight =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_gdbgb .Flags =_ebbad .Get ("\u0046\u006c\u0061g\u0073");_gdbgb .FontBBox =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gdbgb .ItalicAngle =_ebbad .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gdbgb .Ascent =_ebbad .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_gdbgb .Descent =_ebbad .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gdbgb .Leading =_ebbad .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gdbgb .CapHeight =_ebbad .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gdbgb .XHeight =_ebbad .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_gdbgb .StemV =_ebbad .Get ("\u0053\u0074\u0065m\u0056");_gdbgb .StemH =_ebbad .Get ("\u0053\u0074\u0065m\u0048");_gdbgb .AvgWidth =_ebbad .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gdbgb .MaxWidth =_ebbad .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_gdbgb .MissingWidth =_ebbad .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gdbgb .FontFile =_ebbad .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gdbgb .FontFile2 =_ebbad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_gdbgb .FontFile3 =_ebbad .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gdbgb .CharSet =_ebbad .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gdbgb .Style =_ebbad .Get ("\u0053\u0074\u0079l\u0065");_gdbgb .Lang =_ebbad .Get ("\u004c\u0061\u006e\u0067");
|
||
_gdbgb .FD =_ebbad .Get ("\u0046\u0044");_gdbgb .CIDSet =_ebbad .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gdbgb .Flags !=nil {if _edbg ,_fbebc :=_ac .GetIntVal (_gdbgb .Flags );_fbebc {_gdbgb ._dbfcb =_edbg ;};};if _gdbgb .MissingWidth !=nil {if _befg ,_dcgge :=_ac .GetNumberAsFloat (_gdbgb .MissingWidth );
|
||
_dcgge ==nil {_gdbgb ._fffd =_befg ;};};if _gdbgb .FontFile !=nil {_dcbg ,_cffgdf :=_egga (_gdbgb .FontFile );if _cffgdf !=nil {return _gdbgb ,_cffgdf ;};_gd .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dcbg );_gdbgb .fontFile =_dcbg ;
|
||
};if _gdbgb .FontFile2 !=nil {_bbcdg ,_edfc :=_fda .NewFontFile2FromPdfObject (_gdbgb .FontFile2 );if _edfc !=nil {return _gdbgb ,_edfc ;};_gd .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_bbcdg .String ());_gdbgb ._edfg =&_bbcdg ;
|
||
};return _gdbgb ,nil ;};func _efgde (_bbebg _ac .PdfObject ,_bfbc *PdfReader )(*OutlineDest ,error ){_fbdcf ,_dfcc :=_ac .GetArray (_bbebg );if !_dfcc {return nil ,_af .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");
|
||
};_aeeaad :=_fbdcf .Len ();if _aeeaad < 2{return nil ,_d .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",_aeeaad );
|
||
};_fafdga :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_fcdaa :=_fbdcf .Get (0);if _fbed ,_dfbbb :=_ac .GetIndirect (_fcdaa );_dfbbb {if _ ,_dafaf ,_egac :=_bfbc .PageFromIndirectObject (_fbed );_egac ==nil {_fafdga .Page =int64 (_dafaf -1);}else {_gd .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",_fbed );
|
||
};_fafdga .PageObj =_fbed ;}else if _ffbef ,_dgbfb :=_ac .GetIntVal (_fcdaa );_dgbfb {if _ffbef >=0&&_ffbef < len (_bfbc .PageList ){_fafdga .PageObj =_bfbc .PageList [_ffbef ].GetPageAsIndirectObject ();}else {_gd .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",_ffbef );
|
||
};_fafdga .Page =int64 (_ffbef );}else {return nil ,_d .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",_fcdaa );};_gagb ,_dfcc :=_ac .GetNameVal (_fbdcf .Get (1));
|
||
if !_dfcc {_gd .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",_fbdcf .Get (1));
|
||
return _fafdga ,nil ;};switch _gagb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _aeeaad > 2{_fafdga .Y ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _aeeaad > 2{_fafdga .X ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _aeeaad > 4{_fafdga .X ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (2)));_fafdga .Y ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (3)));_fafdga .Zoom ,_ =_ac .GetNumberAsFloat (_ac .TraceToDirectObject (_fbdcf .Get (4)));
|
||
};default:_gagb ="\u0046\u0069\u0074";};_fafdga .Mode =_gagb ;return _fafdga ,nil ;};func (_afga *PdfWriter )writeXRefStreams (_gfdfg int ,_bdcdd int64 )error {_bcfca :=_gfdfg +1;_afga ._ggbab [_bcfca ]=crossReference {Type :1,ObjectNumber :_bcfca ,Offset :_bdcdd };
|
||
_cdcgd :=_fd .NewBuffer (nil );_gfbbb :=_ac .MakeArray ();for _defec :=0;_defec <=_gfdfg ;{for ;_defec <=_gfdfg ;_defec ++{_fedacc ,_babdgd :=_afga ._ggbab [_defec ];if _babdgd &&(!_afga ._cfgc ||_afga ._cfgc &&(_fedacc .Type ==1&&_fedacc .Offset >=_afga ._gccgde ||_fedacc .Type ==0)){break ;
|
||
};};var _agaage int ;for _agaage =_defec +1;_agaage <=_gfdfg ;_agaage ++{_bacccf ,_dddaa :=_afga ._ggbab [_agaage ];if _dddaa &&(!_afga ._cfgc ||_afga ._cfgc &&(_bacccf .Type ==1&&_bacccf .Offset > _afga ._gccgde )){continue ;};break ;};_gfbbb .Append (_ac .MakeInteger (int64 (_defec )),_ac .MakeInteger (int64 (_agaage -_defec )));
|
||
for _agfba :=_defec ;_agfba < _agaage ;_agfba ++{_aceff :=_afga ._ggbab [_agfba ];switch _aceff .Type {case 0:_ee .Write (_cdcgd ,_ee .BigEndian ,byte (0));_ee .Write (_cdcgd ,_ee .BigEndian ,uint32 (0));_ee .Write (_cdcgd ,_ee .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_ee .Write (_cdcgd ,_ee .BigEndian ,byte (1));_ee .Write (_cdcgd ,_ee .BigEndian ,uint32 (_aceff .Offset ));_ee .Write (_cdcgd ,_ee .BigEndian ,uint16 (_aceff .Generation ));case 2:_ee .Write (_cdcgd ,_ee .BigEndian ,byte (2));_ee .Write (_cdcgd ,_ee .BigEndian ,uint32 (_aceff .ObjectNumber ));
|
||
_ee .Write (_cdcgd ,_ee .BigEndian ,uint16 (_aceff .Index ));};};_defec =_agaage +1;};_bdbcb ,_bggce :=_ac .MakeStream (_cdcgd .Bytes (),_ac .NewFlateEncoder ());if _bggce !=nil {return _bggce ;};_bdbcb .ObjectNumber =int64 (_bcfca );_bdbcb .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_bdbcb .PdfObjectDictionary .Set ("\u0057",_ac .MakeArray (_ac .MakeInteger (1),_ac .MakeInteger (4),_ac .MakeInteger (2)));_bdbcb .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_gfbbb );_bdbcb .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ac .MakeInteger (int64 (_bcfca +1)));
|
||
_bdbcb .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_afga ._aefadb );_bdbcb .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_afga ._efcff );if _afga ._cfgc &&_afga ._bcbcd > 0{_bdbcb .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ac .MakeInteger (_afga ._bcbcd ));
|
||
};if _afga ._bggef !=nil {_bdbcb .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_afga ._ecgdb );};if _afga ._bffaf ==nil &&_afga ._becagg !=""&&_afga ._bcefa !=""{_afga ._bffaf =_ac .MakeArray (_ac .MakeHexString (_afga ._becagg ),_ac .MakeHexString (_afga ._bcefa ));
|
||
};if _afga ._bffaf !=nil {_gd .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_afga ._bffaf );_bdbcb .Set ("\u0049\u0044",_afga ._bffaf );};_afga .writeObject (int (_bdbcb .ObjectNumber ),_bdbcb );return nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_ebafa pdfFontType0 )GetCharMetrics (code _gf .CharCode )(_fda .CharMetrics ,bool ){if _ebafa .DescendantFont ==nil {_gd .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",_ebafa );
|
||
return _fda .CharMetrics {},false ;};return _ebafa .DescendantFont .GetCharMetrics (code );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bde *PdfActionGoTo )ToPdfObject ()_ac .PdfObject {_bde .PdfAction .ToPdfObject ();_bdf :=_bde ._eef ;_de :=_bdf .PdfObject .(*_ac .PdfObjectDictionary );_de .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoTo )));_de .SetIfNotNil ("\u0044",_bde .D );
|
||
return _bdf ;};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_ggcg *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_afeb ,_ebgfa :=_ggcg .GetTrailer ();if _ebgfa !=nil {return nil ,_ebgfa ;};var _eacef *_ac .PdfObjectDictionary ;_fffded :=_afeb .Get ("\u0049\u006e\u0066\u006f");switch _gccef :=_fffded .(type ){case *_ac .PdfObjectReference :_gccfc :=_gccef ;
|
||
_fffded ,_ebgfa =_ggcg .GetIndirectObjectByNumber (int (_gccfc .ObjectNumber ));_fffded =_ac .TraceToDirectObject (_fffded );if _ebgfa !=nil {return nil ,_ebgfa ;};_eacef ,_ =_fffded .(*_ac .PdfObjectDictionary );case *_ac .PdfObjectDictionary :_eacef =_gccef ;
|
||
};if _eacef ==nil {return nil ,_af .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_dbead ,_ebgfa :=NewPdfInfoFromObject (_eacef );if _ebgfa !=nil {return nil ,_ebgfa ;
|
||
};return _dbead ,nil ;};var _bfcbg =_ce .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");func (_facb *PdfPattern )getDict ()*_ac .PdfObjectDictionary {if _aeade ,_fbab :=_facb ._fddfb .(*_ac .PdfIndirectObject );_fbab {_bcecc ,_aaefg :=_aeade .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_aaefg {return nil ;};return _bcecc ;}else if _gecfb ,_bgacg :=_facb ._fddfb .(*_ac .PdfObjectStream );_bgacg {return _gecfb .PdfObjectDictionary ;}else {_gd .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",_facb ._fddfb );
|
||
return nil ;};};
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_fcdg *PdfPageResources )GenerateXObjectName ()_ac .PdfObjectName {_edbe :=1;for {_dbcba :=_ac .MakeName (_d .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_edbe ));if !_fcdg .HasXObjectByName (*_dbcba ){return *_dbcba ;};_edbe ++;};};
|
||
|
||
// 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 (_cffdbb *PdfWriter )SetOpenAction (dest _ac .PdfObject )error {if dest ==nil ||_ac .IsNullObject (dest ){return nil ;};_cffdbb ._cgfegd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _cffdbb .addObjects (dest );
|
||
};
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _e .Time ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_ggag =modifiedDate ;};
|
||
|
||
// String returns a string representation of the field.
|
||
func (_cfdf *PdfField )String ()string {if _aegee ,_gaafg :=_cfdf .ToPdfObject ().(*_ac .PdfIndirectObject );_gaafg {return _d .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_cfdf ._edab ,_aegee .PdfObject .String ());};return "";};func (_ddgg *PdfWriter )writeString (_bcbfd string ){if _ddgg ._adace !=nil {return ;
|
||
};_bbcaa ,_acfda :=_ddgg ._abad .WriteString (_bcbfd );_ddgg ._edabb +=int64 (_bbcaa );_ddgg ._adace =_acfda ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_ffec *PdfOutlineItem )ToPdfObject ()_ac .PdfObject {_bacbd :=_ffec ._gbcec ;_bebba :=_bacbd .PdfObject .(*_ac .PdfObjectDictionary );_bebba .Set ("\u0054\u0069\u0074l\u0065",_ffec .Title );if _ffec .A !=nil {_bebba .Set ("\u0041",_ffec .A );};if _bgeed :=_bebba .Get ("\u0053\u0045");
|
||
_bgeed !=nil {_bebba .Remove ("\u0053\u0045");};if _ffec .C !=nil {_bebba .Set ("\u0043",_ffec .C );};if _ffec .Dest !=nil {_bebba .Set ("\u0044\u0065\u0073\u0074",_ffec .Dest );};if _ffec .F !=nil {_bebba .Set ("\u0046",_ffec .F );};if _ffec .Count !=nil {_bebba .Set ("\u0043\u006f\u0075n\u0074",_ac .MakeInteger (*_ffec .Count ));
|
||
};if _ffec .Next !=nil {_bebba .Set ("\u004e\u0065\u0078\u0074",_ffec .Next .ToPdfObject ());};if _ffec .First !=nil {_bebba .Set ("\u0046\u0069\u0072s\u0074",_ffec .First .ToPdfObject ());};if _ffec .Prev !=nil {_bebba .Set ("\u0050\u0072\u0065\u0076",_ffec .Prev .GetContext ().GetContainingPdfObject ());
|
||
};if _ffec .Last !=nil {_bebba .Set ("\u004c\u0061\u0073\u0074",_ffec .Last .GetContext ().GetContainingPdfObject ());};if _ffec .Parent !=nil {_bebba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_ffec .Parent .GetContext ().GetContainingPdfObject ());
|
||
};return _bacbd ;};
|
||
|
||
// 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 (_bgebf *PdfReader )GetObjectNums ()[]int {return _bgebf ._eebeg .GetObjectNums ()};
|
||
|
||
// 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 _ac .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_ac .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_ddadc ,_bbgbg :=encoder .EncodeBytes (img .Data );
|
||
if _bbgbg !=nil {_gd .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_bbgbg );return nil ,_bbgbg ;};_fbgbb :=NewXObjectImage ();_afbf :=img .Width ;_acbcc :=img .Height ;
|
||
_fbgbb .Width =&_afbf ;_fbgbb .Height =&_acbcc ;_cebcg :=img .BitsPerComponent ;_fbgbb .BitsPerComponent =&_cebcg ;_fbgbb .Filter =encoder ;_fbgbb .Stream =_ddadc ;if cs ==nil {if img .ColorComponents ==1{_fbgbb .ColorSpace =NewPdfColorspaceDeviceGray ();
|
||
}else if img .ColorComponents ==3{_fbgbb .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{_fbgbb .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return nil ,_af .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
|
||
};}else {_fbgbb .ColorSpace =cs ;};if len (img ._ebga )!=0{_faeba :=NewXObjectImage ();_faeba .Filter =encoder ;_bcga ,_affca :=encoder .EncodeBytes (img ._ebga );if _affca !=nil {_gd .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_affca );
|
||
return nil ,_affca ;};_faeba .Stream =_bcga ;_faeba .BitsPerComponent =_fbgbb .BitsPerComponent ;_faeba .Width =&img .Width ;_faeba .Height =&img .Height ;_faeba .ColorSpace =NewPdfColorspaceDeviceGray ();_fbgbb .SMask =_faeba .ToPdfObject ();}else {_fbgbb .SMask =xobjIn .SMask ;
|
||
_fbgbb .ImageMask =xobjIn .ImageMask ;if _fbgbb .ColorSpace .GetNumComponents ()==1{_eeeea (_fbgbb );};};return _fbgbb ,nil ;};
|
||
|
||
// Val returns the color value.
|
||
func (_acec *PdfColorDeviceGray )Val ()float64 {return float64 (*_acec )};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_bdge *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aage :=vals [0];_fccg :=[]float64 {_aage };_ccbea ,_aaga :=_bdge .TintTransform .Evaluate (_fccg );
|
||
if _aaga !=nil {_gd .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",_aaga );_gd .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bdge .TintTransform );
|
||
return nil ,_aaga ;};_gd .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",_ccbea ,_bdge .AlternateSpace );
|
||
_fgdga ,_aaga :=_bdge .AlternateSpace .ColorFromFloats (_ccbea );if _aaga !=nil {_gd .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",_aaga );
|
||
return nil ,_aaga ;};return _fgdga ,nil ;};
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_aefb *PdfColorDeviceRGB )B ()float64 {return _aefb [2]};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_ccea *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_fffdb *Image )SetAlpha (alpha []byte ){_fffdb ._ebga =alpha };
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_bfggd *PdfSignature )Initialize ()error {if _bfggd .Handler ==nil {return _af .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 _bfggd .Handler .InitSignature (_bfggd );};
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_bcfba *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_bcfba ._bdcee =colorspace ;};
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_baeb *PdfPage )GetXObjectByName (name _ac .PdfObjectName )(_ac .PdfObject ,bool ){_dacgf ,_debb :=_baeb .Resources .XObject .(*_ac .PdfObjectDictionary );if !_debb {return nil ,false ;};if _gaaeg :=_dacgf .Get (name );_gaaeg !=nil {return _gaaeg ,true ;
|
||
};return nil ,false ;};
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_gedf :=&PdfOutlineItem {_gbcec :_ac .MakeIndirectObject (_ac .MakeDict ())};_gedf ._dagfd =_gedf ;return _gedf ;};
|
||
|
||
// 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 ,_egeec :_ac .MakeDict ()};
|
||
};func _bcfac (_cdcdf _ac .PdfObject )[]*_ac .PdfObjectStream {if _cdcdf ==nil {return nil ;};_ddada ,_gebdf :=_ac .GetArray (_cdcdf );if !_gebdf ||_ddada .Len ()==0{return nil ;};_gbace :=make ([]*_ac .PdfObjectStream ,0,_ddada .Len ());for _ ,_affdb :=range _ddada .Elements (){if _aabgge ,_fabb :=_ac .GetStream (_affdb );
|
||
_fabb {_gbace =append (_gbace ,_aabgge );};};return _gbace ;};
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_eae *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_fbef :=pageNum -1;for _fbagg :=range _eae ._abda {if _fbagg ==_fbef {_bbcb :=page .Duplicate ();_gfbe (_bbcb );_eae ._abda [_fbagg ]=_bbcb ;};};};
|
||
|
||
// GetContainingPdfObject gets the primitive used to parse the color space.
|
||
func (_fgaf *PdfColorspaceICCBased )GetContainingPdfObject ()_ac .PdfObject {return _fgaf ._gafd };func _ebgb (_egdg _ac .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_bbfe :=NewPdfColorspaceSpecialIndexed ();if _gage ,_fgged :=_egdg .(*_ac .PdfIndirectObject );
|
||
_fgged {_bbfe ._dbeed =_gage ;};_egdg =_ac .TraceToDirectObject (_egdg );_aeacf ,_abce :=_egdg .(*_ac .PdfObjectArray );if !_abce {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _aeacf .Len ()!=4{return nil ,_d .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");
|
||
};_egdg =_aeacf .Get (0);_dafcg ,_abce :=_egdg .(*_ac .PdfObjectName );if !_abce {return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_dafcg !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_d .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_egdg =_aeacf .Get (1);_ddacb ,_bbbgf :=DetermineColorspaceNameFromPdfObject (_egdg );if _bbbgf !=nil {return nil ,_bbbgf ;};if _ddacb =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_ddacb =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_gd .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",_ddacb );
|
||
return nil ,_gbda ;};_cbcf ,_bbbgf :=NewPdfColorspaceFromPdfObject (_egdg );if _bbbgf !=nil {return nil ,_bbbgf ;};_bbfe .Base =_cbcf ;_egdg =_aeacf .Get (2);_fcbb ,_bbbgf :=_ac .GetNumberAsInt64 (_egdg );if _bbbgf !=nil {return nil ,_bbbgf ;};if _fcbb > 255{return nil ,_d .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_bbfe .HiVal =int (_fcbb );_egdg =_aeacf .Get (3);_bbfe .Lookup =_egdg ;_egdg =_ac .TraceToDirectObject (_egdg );var _effdb []byte ;if _ggee ,_cbdea :=_egdg .(*_ac .PdfObjectString );_cbdea {_effdb =_ggee .Bytes ();_gd .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",_effdb );
|
||
}else if _agbf ,_edeg :=_egdg .(*_ac .PdfObjectStream );_edeg {_gd .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_egdg .String ());_gd .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_agbf .Stream ),_agbf .Stream );
|
||
_bdab ,_dccce :=_ac .DecodeStream (_agbf );if _dccce !=nil {return nil ,_dccce ;};_gd .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_bdab ),_bdab );_effdb =_bdab ;}else {_gd .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_egdg );
|
||
return nil ,_d .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 (_effdb )< _bbfe .Base .GetNumComponents ()*(_bbfe .HiVal +1){_gd .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");
|
||
_gd .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 (_effdb ),_bbfe .Base .GetNumComponents (),_bbfe .HiVal );
|
||
}else {_effdb =_effdb [:_bbfe .Base .GetNumComponents ()*(_bbfe .HiVal +1)];};_bbfe ._dagf =_effdb ;return _bbfe ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_ffgee *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ffgee .Alternate ==nil {if _ffgee .N ==1{_befc :=NewPdfColorspaceDeviceGray ();return _befc .ColorFromFloats (vals );}else if _ffgee .N ==3{_bfae :=NewPdfColorspaceDeviceRGB ();
|
||
return _bfae .ColorFromFloats (vals );}else if _ffgee .N ==4{_ecgbg :=NewPdfColorspaceDeviceCMYK ();return _ecgbg .ColorFromFloats (vals );}else {return nil ,_af .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 _ffgee .Alternate .ColorFromFloats (vals );};func (_ccgb *PdfReader )newPdfActionHideFromDict (_ceb *_ac .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_ceb .Get ("\u0054"),H :_ceb .Get ("\u0048")},nil ;};
|
||
|
||
// GetFillImage get attached model.Image in push button.
|
||
func (_baac *PdfFieldButton )GetFillImage ()*Image {if _baac .IsPush (){return _baac ._aegde ;};return nil ;};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ac .PdfObject ;BS _ac .PdfObject ;LE _ac .PdfObject ;IC _ac .PdfObject ;LL _ac .PdfObject ;LLE _ac .PdfObject ;Cap _ac .PdfObject ;IT _ac .PdfObject ;LLO _ac .PdfObject ;CP _ac .PdfObject ;
|
||
Measure _ac .PdfObject ;CO _ac .PdfObject ;};
|
||
|
||
// 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 (_eefdg *PdfSignature ,_gebdb Hasher ,_eagcbb SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ac .PdfObject ;};
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_edgfb *PdfFieldButton )ToPdfObject ()_ac .PdfObject {_edgfb .PdfField .ToPdfObject ();_gbac :=_edgfb ._bdde ;_fedf :=_gbac .PdfObject .(*_ac .PdfObjectDictionary );_fedf .Set ("\u0046\u0054",_ac .MakeName ("\u0042\u0074\u006e"));if _edgfb .Opt !=nil {_fedf .Set ("\u004f\u0070\u0074",_edgfb .Opt );
|
||
};return _gbac ;};func (_bbgf *DSS )add (_cfae *[]*_ac .PdfObjectStream ,_bcff map[string ]*_ac .PdfObjectStream ,_aabda [][]byte )([]*_ac .PdfObjectStream ,error ){_fabe :=make ([]*_ac .PdfObjectStream ,0,len (_aabda ));for _ ,_bgcfb :=range _aabda {_ecf ,_feef :=_gfgdad (_bgcfb );
|
||
if _feef !=nil {return nil ,_feef ;};_edgf ,_cgbc :=_bcff [string (_ecf )];if !_cgbc {_edgf ,_feef =_ac .MakeStream (_bgcfb ,_ac .NewRawEncoder ());if _feef !=nil {return nil ,_feef ;};_bcff [string (_ecf )]=_edgf ;*_cfae =append (*_cfae ,_edgf );};_fabe =append (_fabe ,_edgf );
|
||
};return _fabe ,nil ;};func _ddgea (_eadf *PdfField ,_bfec _ac .PdfObject )error {switch _eadf .GetContext ().(type ){case *PdfFieldText :switch _eccf :=_bfec .(type ){case *_ac .PdfObjectName :_aaaaf :=_eccf ;_gd .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",_aaaaf .String ());
|
||
_eadf .V =_ac .MakeEncodedString (_eccf .String (),true );case *_ac .PdfObjectString :_eadf .V =_ac .MakeEncodedString (_eccf .String (),true );default:_gd .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",_eccf ,_eccf );
|
||
};case *PdfFieldButton :switch _bfec .(type ){case *_ac .PdfObjectName :if len (_bfec .String ())> 0{_eadf .V =_bfec ;_cgffe (_eadf ,_bfec );};case *_ac .PdfObjectString :if len (_bfec .String ())> 0{_eadf .V =_ac .MakeName (_bfec .String ());_cgffe (_eadf ,_eadf .V );
|
||
};default:_gd .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",_eadf .PartialName (),_bfec );_eadf .V =_bfec ;};case *PdfFieldChoice :switch _bfec .(type ){case *_ac .PdfObjectName :if len (_bfec .String ())> 0{_eadf .V =_ac .MakeString (_bfec .String ());
|
||
_cgffe (_eadf ,_bfec );};case *_ac .PdfObjectString :if len (_bfec .String ())> 0{_eadf .V =_bfec ;_cgffe (_eadf ,_ac .MakeName (_bfec .String ()));};default:_gd .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",_eadf .PartialName (),_bfec );
|
||
_eadf .V =_bfec ;};case *PdfFieldSignature :_gd .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",_eadf .PartialName (),_bfec );
|
||
};return nil ;};
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_gba *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _gba ._abaf !=nil {return _gba ._abaf ,nil ;};if _gba .A ==nil {return nil ,nil ;};if _gba ._bede ==nil {return nil ,nil ;};_fad ,_bbg :=_gba ._bede .loadAction (_gba .A );if _bbg !=nil {return nil ,_bbg ;
|
||
};_gba ._abaf =_fad ;return _gba ._abaf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bbdd *PdfAnnotationScreen )ToPdfObject ()_ac .PdfObject {_bbdd .PdfAnnotation .ToPdfObject ();_ebgf :=_bbdd ._fegd ;_ffge :=_ebgf .PdfObject .(*_ac .PdfObjectDictionary );_ffge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_ffge .SetIfNotNil ("\u0054",_bbdd .T );_ffge .SetIfNotNil ("\u004d\u004b",_bbdd .MK );_ffge .SetIfNotNil ("\u0041",_bbdd .A );_ffge .SetIfNotNil ("\u0041\u0041",_bbdd .AA );return _ebgf ;};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_aggea *PdfFieldButton )IsCheckbox ()bool {return _aggea .GetType ()==ButtonTypeCheckbox };
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_ac .PdfObjectString ;Author *_ac .PdfObjectString ;Subject *_ac .PdfObjectString ;Keywords *_ac .PdfObjectString ;Creator *_ac .PdfObjectString ;Producer *_ac .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_ac .PdfObjectName ;
|
||
_ggfb *_ac .PdfObjectDictionary ;};
|
||
|
||
// Val returns the value of the color.
|
||
func (_beda *PdfColorCalGray )Val ()float64 {return float64 (*_beda )};func (_cbeecb *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_ac .PdfIndirectObject )*PdfOutlineItem {_bcgfb :=PdfOutlineItem {};_bcgfb ._dagfd =&_bcgfb ;_bcgfb .Title =_ac .MakeString (title );_egaa :=_ac .MakeArray ();_egaa .Append (page );_egaa .Append (_ac .MakeName ("\u0046\u0069\u0074"));
|
||
_bcgfb .Dest =_egaa ;return &_bcgfb ;};var (CourierName =_fda .CourierName ;CourierBoldName =_fda .CourierBoldName ;CourierObliqueName =_fda .CourierObliqueName ;CourierBoldObliqueName =_fda .CourierBoldObliqueName ;HelveticaName =_fda .HelveticaName ;
|
||
HelveticaBoldName =_fda .HelveticaBoldName ;HelveticaObliqueName =_fda .HelveticaObliqueName ;HelveticaBoldObliqueName =_fda .HelveticaBoldObliqueName ;SymbolName =_fda .SymbolName ;ZapfDingbatsName =_fda .ZapfDingbatsName ;TimesRomanName =_fda .TimesRomanName ;
|
||
TimesBoldName =_fda .TimesBoldName ;TimesItalicName =_fda .TimesItalicName ;TimesBoldItalicName =_fda .TimesBoldItalicName ;);
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fec *PdfActionSound )ToPdfObject ()_ac .PdfObject {_fec .PdfAction .ToPdfObject ();_cf :=_fec ._eef ;_ead :=_cf .PdfObject .(*_ac .PdfObjectDictionary );_ead .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeSound )));_ead .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fec .Sound );
|
||
_ead .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_fec .Volume );_ead .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_fec .Synchronous );_ead .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fec .Repeat );_ead .SetIfNotNil ("\u004d\u0069\u0078",_fec .Mix );
|
||
return _cf ;};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_acgf :=NewPdfAnnotation ();_bgf :=&PdfAnnotationPopup {};_bgf .PdfAnnotation =_acgf ;_acgf .SetContext (_bgf );return _bgf ;};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_gefg :=NewPdfAction ();_cde :=&PdfActionRendition {};_cde .PdfAction =_gefg ;_gefg .SetContext (_cde );return _cde ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_cfcb *PdfFunctionType0 )ToPdfObject ()_ac .PdfObject {if _cfcb ._gcca ==nil {_cfcb ._gcca =&_ac .PdfObjectStream {};};_ecaa :=_ac .MakeDict ();_ecaa .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ac .MakeInteger (0));
|
||
_edee :=&_ac .PdfObjectArray {};for _ ,_bbgeg :=range _cfcb .Domain {_edee .Append (_ac .MakeFloat (_bbgeg ));};_ecaa .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_edee );_cecfb :=&_ac .PdfObjectArray {};for _ ,_ddef :=range _cfcb .Range {_cecfb .Append (_ac .MakeFloat (_ddef ));
|
||
};_ecaa .Set ("\u0052\u0061\u006eg\u0065",_cecfb );_cegfbc :=&_ac .PdfObjectArray {};for _ ,_dbda :=range _cfcb .Size {_cegfbc .Append (_ac .MakeInteger (int64 (_dbda )));};_ecaa .Set ("\u0053\u0069\u007a\u0065",_cegfbc );_ecaa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ac .MakeInteger (int64 (_cfcb .BitsPerSample )));
|
||
if _cfcb .Order !=1{_ecaa .Set ("\u004f\u0072\u0064e\u0072",_ac .MakeInteger (int64 (_cfcb .Order )));};_ecaa .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_cfcb ._egecf ))));_cfcb ._gcca .Stream =_cfcb ._egecf ;_cfcb ._gcca .PdfObjectDictionary =_ecaa ;
|
||
return _cfcb ._gcca ;};type fontCommon struct{_abab string ;_efebg string ;_fgfd string ;_babg _ac .PdfObject ;_acbbb *_eg .CMap ;_bgbdc *PdfFontDescriptor ;_ccega int64 ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_adedg *PdfTilingPattern )ToPdfObject ()_ac .PdfObject {_adedg .PdfPattern .ToPdfObject ();_babde :=_adedg .getDict ();if _adedg .PaintType !=nil {_babde .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_adedg .PaintType );};if _adedg .TilingType !=nil {_babde .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_adedg .TilingType );
|
||
};if _adedg .BBox !=nil {_babde .Set ("\u0042\u0042\u006f\u0078",_adedg .BBox .ToPdfObject ());};if _adedg .XStep !=nil {_babde .Set ("\u0058\u0053\u0074e\u0070",_adedg .XStep );};if _adedg .YStep !=nil {_babde .Set ("\u0059\u0053\u0074e\u0070",_adedg .YStep );
|
||
};if _adedg .Resources !=nil {_babde .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_adedg .Resources .ToPdfObject ());};if _adedg .Matrix !=nil {_babde .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_adedg .Matrix );};return _adedg ._fddfb ;};func _gfada (_gafgb *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_gafgb }};
|
||
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_ccedd *PdfColorLab )L ()float64 {return _ccedd [0]};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_ffddd *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _ffddd ._adbfg };func _cgffe (_bagee *PdfField ,_dafda _ac .PdfObject ){for _ ,_edbde :=range _bagee .Annotations {_edbde .AS =_dafda ;_edbde .ToPdfObject ();};};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_baaac *modelManager )GetPrimitiveFromModel (model PdfModel )_ac .PdfObject {_aega ,_dcfa :=_baaac ._ebgfb [model ];if !_dcfa {return nil ;};return _aega ;};
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_bdcff :=&XObjectImage {};_fdfcb :=&_ac .PdfObjectStream {};_fdfcb .PdfObjectDictionary =_ac .MakeDict ();_bdcff ._gfbdff =_fdfcb ;return _bdcff ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_abedd pdfFontType3 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){_cfbe :=_abedd .Encoder ();if _cfbe ==nil {_gd .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_abedd );
|
||
return _fda .CharMetrics {},false ;};_addg ,_gcda :=_cfbe .RuneToCharcode (r );if !_gcda {if r !=' '{_gd .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 ,_abedd );
|
||
};return _fda .CharMetrics {},false ;};_cfag ,_acfd :=_abedd .GetCharMetrics (_addg );return _cfag ,_acfd ;};
|
||
|
||
// 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 {_beac ,_fafdg :=NewStandard14Font (basefont );if _fafdg !=nil {panic (_d .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 _beac ;};func _babfa (_cegea *_ac .PdfObjectDictionary )(*PdfShadingType6 ,error ){_gfbgbg :=PdfShadingType6 {};_aaefc :=_cegea .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _aaefc ==nil {_gd .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 ;};_aadd ,_dfac :=_aaefc .(*_ac .PdfObjectInteger );if !_dfac {_gd .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",_aaefc );
|
||
return nil ,_ac .ErrTypeError ;};_gfbgbg .BitsPerCoordinate =_aadd ;_aaefc =_cegea .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _aaefc ==nil {_gd .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 ;};_aadd ,_dfac =_aaefc .(*_ac .PdfObjectInteger );if !_dfac {_gd .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",_aaefc );
|
||
return nil ,_ac .ErrTypeError ;};_gfbgbg .BitsPerComponent =_aadd ;_aaefc =_cegea .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _aaefc ==nil {_gd .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 ;};_aadd ,_dfac =_aaefc .(*_ac .PdfObjectInteger );if !_dfac {_gd .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",_aaefc );
|
||
return nil ,_ac .ErrTypeError ;};_gfbgbg .BitsPerComponent =_aadd ;_aaefc =_cegea .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _aaefc ==nil {_gd .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 ;};_ggecg ,_dfac :=_aaefc .(*_ac .PdfObjectArray );if !_dfac {_gd .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",_aaefc );
|
||
return nil ,_ac .ErrTypeError ;};_gfbgbg .Decode =_ggecg ;if _fdfgc :=_cegea .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_fdfgc !=nil {_gfbgbg .Function =[]PdfFunction {};if _aggdgga ,_fbabg :=_fdfgc .(*_ac .PdfObjectArray );_fbabg {for _ ,_ebcgg :=range _aggdgga .Elements (){_eddag ,_gcbcd :=_gcddf (_ebcgg );
|
||
if _gcbcd !=nil {_gd .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",_gcbcd );return nil ,_gcbcd ;};_gfbgbg .Function =append (_gfbgbg .Function ,_eddag );
|
||
};}else {_gbaef ,_aagfa :=_gcddf (_fdfgc );if _aagfa !=nil {_gd .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",_aagfa );return nil ,_aagfa ;
|
||
};_gfbgbg .Function =append (_gfbgbg .Function ,_gbaef );};};return &_gfbgbg ,nil ;};
|
||
|
||
// 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 (_aaefe PdfOutputIntentType )String ()string {switch _aaefe {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";};};const (ButtonTypeCheckbox ButtonType =iota ;
|
||
ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_fggeb :=&PdfBorderStyle {};return _fggeb };
|
||
|
||
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
|
||
func NewPdfShadingType3 ()*PdfShadingType3 {_abdfa :=&PdfShadingType3 {};_abdfa .PdfShading =&PdfShading {};_abdfa .PdfShading ._dffbg =_ac .MakeIndirectObject (_ac .MakeDict ());_abdfa .PdfShading ._bfga =_abdfa ;return _abdfa ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_cfbb *Outline )ToPdfObject ()_ac .PdfObject {return _cfbb .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ac .PdfObject ;Q _ac .PdfObject ;RC _ac .PdfObject ;DS _ac .PdfObject ;CL _ac .PdfObject ;IT _ac .PdfObject ;BE _ac .PdfObject ;RD _ac .PdfObject ;BS _ac .PdfObject ;LE _ac .PdfObject ;
|
||
};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_ceab *pdfFontType0 )ToPdfObject ()_ac .PdfObject {if _ceab ._agcb ==nil {_ceab ._agcb =&_ac .PdfIndirectObject {};};_ffcbc :=_ceab .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_ceab ._agcb .PdfObject =_ffcbc ;if _ceab .Encoding !=nil {_ffcbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ceab .Encoding );
|
||
}else if _ceab ._edfdd !=nil {_ffcbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ceab ._edfdd .ToPdfObject ());};if _ceab .DescendantFont !=nil {_ffcbc .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ac .MakeArray (_ceab .DescendantFont .ToPdfObject ()));
|
||
};return _ceab ._agcb ;};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_ceaca *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};func (_bbef *PdfFont )baseFields ()*fontCommon {if _bbef ._gegb ==nil {_gd .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 _bbef ._gegb .baseFields ();};
|
||
|
||
// 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 (_efec *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _af .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");
|
||
};_dccc :=field .V ;if _dccc ==nil {return _af .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");};_dcddb :=pageNum -1;
|
||
if _dcddb < 0||_dcddb > len (_efec ._abda )-1{return _d .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_dcccd :=_efec .Reader .PageList [_dcddb ];field .P =_dcccd .ToPdfObject ();
|
||
if field .T ==nil ||field .T .String ()==""{field .T =_ac .MakeString (_d .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));};_dcccd .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _efec ._cabc ==_efec ._cbdcd .AcroForm {_efec ._cabc =_efec .Reader .AcroForm ;
|
||
};_ebda :=_efec ._cabc ;if _ebda ==nil {_ebda =NewPdfAcroForm ();};_ebda .SigFlags =_ac .MakeInteger (3);_ecde :=append (_ebda .AllFields (),field .PdfField );_ebda .Fields =&_ecde ;_efec .ReplaceAcroForm (_ebda );_efec .UpdatePage (_dcccd );_efec ._abda [_dcddb ]=_dcccd ;
|
||
if _ ,_adea :=field .V .GetDocMDPPermission ();_adea {_efec ._adf =NewPermissions (field .V );};return nil ;};
|
||
|
||
// GetStructRoot gets the StructTreeRoot object
|
||
func (_edbcb *PdfPage )GetStructTreeRoot ()(*_ac .PdfObject ,bool ){_aegc ,_afbgd :=_edbcb ._bcfff .GetCatalogStructTreeRoot ();return &_aegc ,_afbgd ;};
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_dgfdg *Image )GetParamsDict ()*_ac .PdfObjectDictionary {_ggef :=_ac .MakeDict ();_ggef .Set ("\u0057\u0069\u0064t\u0068",_ac .MakeInteger (_dgfdg .Width ));_ggef .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ac .MakeInteger (_dgfdg .Height ));_ggef .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ac .MakeInteger (int64 (_dgfdg .ColorComponents )));
|
||
_ggef .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ac .MakeInteger (_dgfdg .BitsPerComponent ));return _ggef ;};
|
||
|
||
// 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 (_bgadb *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _fffeg []*PdfField ;if _bgadb .AcroForm !=nil {_fffeg =_bgadb .AcroForm .AllFields ();};_eedgd :=make (map[*PdfField ]struct{},len (_fffeg ));for _ ,_gbgad :=range _fffeg {_eedgd [_gbgad ]=struct{}{};
|
||
};for _ ,_gcbf :=range _bgadb .PageList {_badga ,_debgb :=_gcbf .GetAnnotations ();if _debgb !=nil {return false ,_debgb ;};for _ ,_fgfg :=range _badga {_efegb ,_addgg :=_fgfg .GetContext ().(*PdfAnnotationWidget );if !_addgg {continue ;};_dgbee :=_efegb .Field ();
|
||
if _dgbee ==nil {return true ,nil ;};if _ ,_eadedf :=_eedgd [_dgbee ];!_eadedf {return true ,nil ;};};};return false ,nil ;};
|
||
|
||
// 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 (_egea *PdfFont )CharcodesToUnicodeWithStats (charcodes []_gf .CharCode )(_eccce []rune ,_bedb ,_dgaf int ){_eaacf ,_bedb ,_dgaf :=_egea .CharcodesToStrings (charcodes );return []rune (_fg .Join (_eaacf ,"")),_bedb ,_dgaf ;};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_facf :=NewPdfAnnotation ();_cea :=&PdfAnnotationProjection {};_cea .PdfAnnotation =_facf ;_cea .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_facf .SetContext (_cea );return _cea ;};func (_gadg *PdfField )inherit (_bdbe func (*PdfField )bool )(bool ,error ){_gbdf :=map[*PdfField ]bool {};
|
||
_dbcb :=false ;_dceag :=_gadg ;for _dceag !=nil {if _ ,_bfff :=_gbdf [_dceag ];_bfff {return false ,_af .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_gcafg :=_bdbe (_dceag );if _gcafg {_dbcb =true ;
|
||
break ;};_gbdf [_dceag ]=true ;_dceag =_dceag .Parent ;};return _dbcb ,nil ;};
|
||
|
||
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
|
||
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_ac .PdfObjectArray ;ExtGState _ac .PdfObject ;};func (_daafg *PdfWriter )copyObject (_bgbgfc _ac .PdfObject ,_dgcef map[_ac .PdfObject ]_ac .PdfObject ,_aedgd map[_ac .PdfObject ]struct{},_cafcc bool )_ac .PdfObject {_gfebd :=!_daafg ._cfgc &&_aedgd !=nil ;
|
||
if _ebebb ,_bgfbb :=_dgcef [_bgbgfc ];_bgfbb {if _gfebd &&!_cafcc {delete (_aedgd ,_bgbgfc );};return _ebebb ;};if _bgbgfc ==nil {_aabec :=_ac .MakeNull ();return _aabec ;};_cdebf :=_bgbgfc ;switch _dafcac :=_bgbgfc .(type ){case *_ac .PdfObjectArray :_adgfb :=_ac .MakeArray ();
|
||
_cdebf =_adgfb ;_dgcef [_bgbgfc ]=_cdebf ;for _ ,_bfgfb :=range _dafcac .Elements (){_adgfb .Append (_daafg .copyObject (_bfgfb ,_dgcef ,_aedgd ,_cafcc ));};case *_ac .PdfObjectStreams :_fbfcc :=&_ac .PdfObjectStreams {PdfObjectReference :_dafcac .PdfObjectReference };
|
||
_cdebf =_fbfcc ;_dgcef [_bgbgfc ]=_cdebf ;for _ ,_dbeea :=range _dafcac .Elements (){_fbfcc .Append (_daafg .copyObject (_dbeea ,_dgcef ,_aedgd ,_cafcc ));};case *_ac .PdfObjectStream :_cabfa :=&_ac .PdfObjectStream {Stream :_dafcac .Stream ,PdfObjectReference :_dafcac .PdfObjectReference };
|
||
_cdebf =_cabfa ;_dgcef [_bgbgfc ]=_cdebf ;_cabfa .PdfObjectDictionary =_daafg .copyObject (_dafcac .PdfObjectDictionary ,_dgcef ,_aedgd ,_cafcc ).(*_ac .PdfObjectDictionary );case *_ac .PdfObjectDictionary :var _dacb bool ;if _gfebd &&!_cafcc {if _ceaaa ,_ :=_ac .GetNameVal (_dafcac .Get ("\u0054\u0079\u0070\u0065"));
|
||
_ceaaa =="\u0050\u0061\u0067\u0065"{_ ,_eafaef :=_daafg ._gafba [_dafcac ];_cafcc =!_eafaef ;_dacb =_cafcc ;};};_dagfcc :=_ac .MakeDict ();_cdebf =_dagfcc ;_dgcef [_bgbgfc ]=_cdebf ;for _ ,_bcacd :=range _dafcac .Keys (){_dagfcc .Set (_bcacd ,_daafg .copyObject (_dafcac .Get (_bcacd ),_dgcef ,_aedgd ,_cafcc ));
|
||
};if _dacb {_cdebf =_ac .MakeNull ();_cafcc =false ;};case *_ac .PdfIndirectObject :_agcad :=&_ac .PdfIndirectObject {PdfObjectReference :_dafcac .PdfObjectReference };_cdebf =_agcad ;_dgcef [_bgbgfc ]=_cdebf ;_agcad .PdfObject =_daafg .copyObject (_dafcac .PdfObject ,_dgcef ,_aedgd ,_cafcc );
|
||
case *_ac .PdfObjectString :_eacggc :=*_dafcac ;_cdebf =&_eacggc ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectName :_cgaaa :=*_dafcac ;_cdebf =&_cgaaa ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectNull :_cdebf =_ac .MakeNull ();_dgcef [_bgbgfc ]=_cdebf ;
|
||
case *_ac .PdfObjectInteger :_ebgga :=*_dafcac ;_cdebf =&_ebgga ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectReference :_decgg :=*_dafcac ;_cdebf =&_decgg ;_dgcef [_bgbgfc ]=_cdebf ;case *_ac .PdfObjectFloat :_cffe :=*_dafcac ;_cdebf =&_cffe ;_dgcef [_bgbgfc ]=_cdebf ;
|
||
case *_ac .PdfObjectBool :_aacb :=*_dafcac ;_cdebf =&_aacb ;_dgcef [_bgbgfc ]=_cdebf ;case *pdfSignDictionary :_cdcc :=&pdfSignDictionary {PdfObjectDictionary :_ac .MakeDict (),_abgad :_dafcac ._abgad ,_aacfd :_dafcac ._aacfd };_cdebf =_cdcc ;_dgcef [_bgbgfc ]=_cdebf ;
|
||
for _ ,_fegcb :=range _dafcac .Keys (){_cdcc .Set (_fegcb ,_daafg .copyObject (_dafcac .Get (_fegcb ),_dgcef ,_aedgd ,_cafcc ));};default:_gd .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",_bgbgfc );
|
||
};if _gfebd &&_cafcc {_aedgd [_bgbgfc ]=struct{}{};};return _cdebf ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
|
||
|
||
// 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 ;_dcbab *_ac .PdfIndirectObject ;};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_fcabg *PdfPageResources )HasColorspaceByName (keyName _ac .PdfObjectName )bool {_dgfea ,_afeba :=_fcabg .GetColorspaces ();if _afeba !=nil {_gd .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",_afeba );
|
||
return false ;};if _dgfea ==nil {return false ;};_ ,_deeec :=_dgfea .Colorspaces [string (keyName )];return _deeec ;};
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_dcaa _adc .ReadSeeker ;_bbbg *_ac .PdfParser ;_cbdcd *PdfReader ;Reader *PdfReader ;_abda []*PdfPage ;_cabc *PdfAcroForm ;_acaf *DSS ;_adf *Permissions ;_gdg _ac .XrefTable ;_adgf int64 ;_dgfe int ;_fgee []_ac .PdfObject ;_eddbd map[_ac .PdfObject ]struct{};
|
||
_degfa map[_ac .PdfObject ]int64 ;_fbfga map[_ac .PdfObject ]struct{};_gbe map[_ac .PdfObject ]struct{};_fcef int64 ;_gae bool ;_abgb string ;_abea *EncryptOptions ;_aead *PdfInfo ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_cgggf *XObjectForm )ToPdfObject ()_ac .PdfObject {_cedbaa :=_cgggf ._fggc ;_dfgcc :=_cedbaa .PdfObjectDictionary ;if _cgggf .Filter !=nil {_dfgcc =_cgggf .Filter .MakeStreamDict ();_cedbaa .PdfObjectDictionary =_dfgcc ;};_dfgcc .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_dfgcc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0046\u006f\u0072\u006d"));_dfgcc .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_cgggf .FormType );_dfgcc .SetIfNotNil ("\u0042\u0042\u006f\u0078",_cgggf .BBox );_dfgcc .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgggf .Matrix );
|
||
if _cgggf .Resources !=nil {_dfgcc .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cgggf .Resources .ToPdfObject ());};_dfgcc .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cgggf .Group );_dfgcc .SetIfNotNil ("\u0052\u0065\u0066",_cgggf .Ref );
|
||
_dfgcc .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_cgggf .MetaData );_dfgcc .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cgggf .PieceInfo );_dfgcc .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cgggf .LastModified );
|
||
_dfgcc .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_cgggf .StructParent );_dfgcc .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cgggf .StructParents );_dfgcc .SetIfNotNil ("\u004f\u0050\u0049",_cgggf .OPI );
|
||
_dfgcc .SetIfNotNil ("\u004f\u0043",_cgggf .OC );_dfgcc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cgggf .Name );_dfgcc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_cgggf .Stream ))));_cedbaa .Stream =_cgggf .Stream ;return _cedbaa ;
|
||
};func (_cabaa *PdfWriter )writeDocumentVersion (){if _cabaa ._cfgc {_cabaa .writeString ("\u000a");}else {_cabaa .writeString (_d .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_cabaa ._gdfdc .Major ,_cabaa ._gdfdc .Minor ));
|
||
_cabaa .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_fdgac *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fdgac .Alternate ==nil {_gd .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 _fdgac .N ==1{_gd .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");
|
||
_fdebb :=NewPdfColorspaceDeviceGray ();return _fdebb .ColorToRGB (color );}else if _fdgac .N ==3{_gd .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 _fdgac .N ==4{_gd .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");
|
||
_aebd :=NewPdfColorspaceDeviceCMYK ();return _aebd .ColorToRGB (color );}else {return nil ,_af .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");
|
||
};};_gd .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",_fdgac );
|
||
return _fdgac .Alternate .ColorToRGB (color );};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_dfad *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_ffcbg :=func (_gbea float64 )float64 {if _gbea >=6.0/29{return _gbea *_gbea *_gbea ;};return 108.0/841*(_gbea -4.0/29.0);};_fgf ,_cdfa :=color .(*PdfColorLab );if !_cdfa {_gd .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_fgf .L ();AStar :=_fgf .A ();BStar :=_fgf .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_dfad .WhitePoint [0]*_ffcbg (L );Y :=_dfad .WhitePoint [1]*_ffcbg (M );Z :=_dfad .WhitePoint [2]*_ffcbg (N );_dfeb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ddag :=-0.969256*X +1.875992*Y +0.041556*Z ;_gfc :=0.055648*X +-0.204043*Y +1.057311*Z ;_dfeb =_da .Min (_da .Max (_dfeb ,0),1.0);
|
||
_ddag =_da .Min (_da .Max (_ddag ,0),1.0);_gfc =_da .Min (_da .Max (_gfc ,0),1.0);return NewPdfColorDeviceRGB (_dfeb ,_ddag ,_gfc ),nil ;};
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};func (_acegf *PdfReader )lookupPageByObject (_ebfbe _ac .PdfObject )(*PdfPage ,error ){return nil ,_af .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
||
|
||
// 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 (_dfcg *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_acdb ,_ ,_aaeed :=_dfcg .CharcodesToUnicodeWithStats (_dfcg .BytesToCharcodes (data ));_aacc :=_gf .ExpandLigatures (_acdb );return _aacc ,_gb .RuneCountInString (_aacc ),_aaeed ;
|
||
};
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_bbgbb *modelManager )GetModelFromPrimitive (primitive _ac .PdfObject )PdfModel {model ,_bedfe :=_bbgbb ._bbefe [primitive ];if !_bedfe {return nil ;};return model ;};
|
||
|
||
// 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 ){_dbfba ,_gbag :=_cdef (basefont );if _gbag !=nil {return nil ,_gbag ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_dbfba ._caed =_gf .NewWinAnsiEncoder ();};return &PdfFont {_gegb :&_dbfba },nil ;
|
||
};
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _e .Time ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_cdacg =creationDate ;};
|
||
|
||
// ToPdfObject implements model.PdfModel interface.
|
||
func (_egacg *PdfOutputIntent )ToPdfObject ()_ac .PdfObject {if _egacg ._egeec ==nil {_egacg ._egeec =_ac .MakeDict ();};_geaf :=_egacg ._egeec ;if _egacg .Type !=""{_geaf .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName (_egacg .Type ));};_geaf .Set ("\u0053",_ac .MakeName (_egacg .S .String ()));
|
||
if _egacg .OutputCondition !=""{_geaf .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ac .MakeString (_egacg .OutputCondition ));};_geaf .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ac .MakeString (_egacg .OutputConditionIdentifier ));
|
||
_geaf .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ac .MakeString (_egacg .RegistryName ));if _egacg .Info !=""{_geaf .Set ("\u0049\u006e\u0066\u006f",_ac .MakeString (_egacg .Info ));};if len (_egacg .DestOutputProfile )!=0{_dfdca ,_ffcea :=_ac .MakeStream (_egacg .DestOutputProfile ,_ac .NewFlateEncoder ());
|
||
if _ffcea !=nil {_gd .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",_ffcea );
|
||
};_dfdca .PdfObjectDictionary .Set ("\u004e",_ac .MakeInteger (int64 (_egacg .ColorComponents )));_dbcd :=make ([]float64 ,_egacg .ColorComponents *2);for _eadeg :=0;_eadeg < _egacg .ColorComponents *2;_eadeg ++{_decg :=0.0;if _eadeg %2!=0{_decg =1.0;};
|
||
_dbcd [_eadeg ]=_decg ;};_dfdca .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ac .MakeArrayFromFloats (_dbcd ));_geaf .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_dfdca );};return _geaf ;
|
||
};func (_fbcf *PdfReader )newPdfActionLaunchFromDict (_aff *_ac .PdfObjectDictionary )(*PdfActionLaunch ,error ){_fbe ,_gdca :=_caec (_aff .Get ("\u0046"));if _gdca !=nil {return nil ,_gdca ;};return &PdfActionLaunch {Win :_aff .Get ("\u0057\u0069\u006e"),Mac :_aff .Get ("\u004d\u0061\u0063"),Unix :_aff .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_aff .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_fbe },nil ;
|
||
};func _gdfda (_feeae _ac .PdfObject ){_gd .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_feeae ,_feeae .String ());if _adddd ,_gaaaa :=_feeae .(*_ac .PdfObjectStream );_gaaaa {_agfbb ,_gbbbb :=_ac .DecodeStream (_adddd );
|
||
if _gbbbb !=nil {_gd .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_gbbbb );return ;};_gd .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_agfbb );}else if _caeef ,_fbbdb :=_feeae .(*_ac .PdfIndirectObject );_fbbdb {_gd .Log .Debug ("\u0025\u0054\u0020%\u0076",_caeef .PdfObject ,_caeef .PdfObject );
|
||
_gd .Log .Debug ("\u0025\u0073",_caeef .PdfObject .String ());};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bfba *PdfAnnotationMovie )ToPdfObject ()_ac .PdfObject {_bfba .PdfAnnotation .ToPdfObject ();_bdgf :=_bfba ._fegd ;_adgg :=_bdgf .PdfObject .(*_ac .PdfObjectDictionary );_adgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_adgg .SetIfNotNil ("\u0054",_bfba .T );_adgg .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_bfba .Movie );_adgg .SetIfNotNil ("\u0041",_bfba .A );return _bdgf ;};func (_dcge *DSS )addOCSPs (_fdab [][]byte )([]*_ac .PdfObjectStream ,error ){return _dcge .add (&_dcge .OCSPs ,_dcge ._edag ,_fdab );
|
||
};func (_bddg *PdfSignature )extractChainFromPKCS7 ()([]*_fc .Certificate ,error ){_cfdea ,_bdddg :=_eec .Parse (_bddg .Contents .Bytes ());if _bdddg !=nil {return nil ,_bdddg ;};return _cfdea .Certificates ,nil ;};
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_caecf :=&PdfFieldSignature {};_caecf .PdfField =NewPdfField ();_caecf .PdfField .SetContext (_caecf );_caecf .PdfAnnotationWidget =NewPdfAnnotationWidget ();_caecf .PdfAnnotationWidget .SetContext (_caecf );
|
||
_caecf .PdfAnnotationWidget ._fegd =_caecf .PdfField ._bdde ;_caecf .T =_ac .MakeString ("");_caecf .F =_ac .MakeInteger (132);_caecf .V =signature ;return _caecf ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_dbgga *pdfSignDictionary )WriteString ()string {_dbgga ._gaegg =0;_dbgga ._cgdfee =0;_dbgga ._dbcgg =0;_dbgga ._gdfcd =0;_gafcc :=_fd .NewBuffer (nil );_gafcc .WriteString ("\u003c\u003c");for _ ,_efacf :=range _dbgga .Keys (){_babee :=_dbgga .Get (_efacf );
|
||
switch _efacf {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_gafcc .WriteString (_efacf .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._dbcgg =_gafcc .Len ();_gafcc .WriteString (_babee .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._gdfcd =_gafcc .Len ()-1;
|
||
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_gafcc .WriteString (_efacf .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._gaegg =_gafcc .Len ();_gafcc .WriteString (_babee .WriteString ());_gafcc .WriteString ("\u0020");_dbgga ._cgdfee =_gafcc .Len ()-1;
|
||
default:_gafcc .WriteString (_efacf .WriteString ());_gafcc .WriteString ("\u0020");_gafcc .WriteString (_babee .WriteString ());};};_gafcc .WriteString ("\u003e\u003e");return _gafcc .String ();};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func _fgbed (_agcc []byte )bool {if len (_agcc )< 4{return true ;};for _cafa :=range _agcc [:4]{_bbga :=rune (_cafa );if !_ffb .Is (_ffb .ASCII_Hex_Digit ,_bbga )&&!_ffb .IsSpace (_bbga ){return true ;
|
||
};};return false ;};func _fdgfc (_gbgef *_ac .PdfObjectStream )(*PdfFunctionType0 ,error ){_bcaccb :=&PdfFunctionType0 {};_bcaccb ._gcca =_gbgef ;_abaec :=_gbgef .PdfObjectDictionary ;_ecbc ,_ffada :=_ac .TraceToDirectObject (_abaec .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ac .PdfObjectArray );
|
||
if !_ffada {_gd .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_af .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 _ecbc .Len ()< 0||_ecbc .Len ()%2!=0{_gd .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_bcaccb .NumInputs =_ecbc .Len ()/2;_baba ,_fdebe :=_ecbc .ToFloat64Array ();if _fdebe !=nil {return nil ,_fdebe ;};_bcaccb .Domain =_baba ;_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0052\u0061\u006eg\u0065")).(*_ac .PdfObjectArray );if !_ffada {_gd .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_af .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 _ecbc .Len ()< 0||_ecbc .Len ()%2!=0{return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_bcaccb .NumOutputs =_ecbc .Len ()/2;_aefc ,_fdebe :=_ecbc .ToFloat64Array ();if _fdebe !=nil {return nil ,_fdebe ;};_bcaccb .Range =_aefc ;_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0053\u0069\u007a\u0065")).(*_ac .PdfObjectArray );if !_ffada {_gd .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_af .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");};_fadd ,_fdebe :=_ecbc .ToIntegerArray ();
|
||
if _fdebe !=nil {return nil ,_fdebe ;};if len (_fadd )!=_bcaccb .NumInputs {_gd .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 ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcaccb .Size =_fadd ;_bfddb ,_ffada :=_ac .TraceToDirectObject (_abaec .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ac .PdfObjectInteger );
|
||
if !_ffada {_gd .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 ,_af .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 *_bfddb !=1&&*_bfddb !=2&&*_bfddb !=4&&*_bfddb !=8&&*_bfddb !=12&&*_bfddb !=16&&*_bfddb !=24&&*_bfddb !=32{_gd .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",*_bfddb );
|
||
return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcaccb .BitsPerSample =int (*_bfddb );_bcaccb .Order =1;_bbac ,_ffada :=_ac .TraceToDirectObject (_abaec .Get ("\u004f\u0072\u0064e\u0072")).(*_ac .PdfObjectInteger );
|
||
if _ffada {if *_bbac !=1&&*_bbac !=3{_gd .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_bbac );return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bcaccb .Order =int (*_bbac );
|
||
};_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ac .PdfObjectArray );if _ffada {_gbcg ,_dbff :=_ecbc .ToFloat64Array ();if _dbff !=nil {return nil ,_dbff ;};_bcaccb .Encode =_gbcg ;};_ecbc ,_ffada =_ac .TraceToDirectObject (_abaec .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ac .PdfObjectArray );
|
||
if _ffada {_egcbb ,_fgbgc :=_ecbc .ToFloat64Array ();if _fgbgc !=nil {return nil ,_fgbgc ;};_bcaccb .Decode =_egcbb ;};_abfbaf ,_fdebe :=_ac .DecodeStream (_gbgef );if _fdebe !=nil {return nil ,_fdebe ;};_bcaccb ._egecf =_abfbaf ;return _bcaccb ,nil ;};
|
||
func (_egbag *PdfReader )newPdfAnnotationMarkupFromDict (_efg *_ac .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_fbg :=&PdfAnnotationMarkup {};if _ffaa :=_efg .Get ("\u0054");_ffaa !=nil {_fbg .T =_ffaa ;};if _cfd :=_efg .Get ("\u0050\u006f\u0070u\u0070");
|
||
_cfd !=nil {_daf ,_efee :=_cfd .(*_ac .PdfIndirectObject );if !_efee {if _ ,_dgccc :=_cfd .(*_ac .PdfObjectNull );!_dgccc {return nil ,_af .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 {_ada ,_cdfd :=_egbag .newPdfAnnotationFromIndirectObject (_daf );if _cdfd !=nil {return nil ,_cdfd ;};if _ada !=nil {_ccfa ,_bacd :=_ada ._cgf .(*PdfAnnotationPopup );if !_bacd {return nil ,_af .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");
|
||
};_fbg .Popup =_ccfa ;};};};if _ddaf :=_efg .Get ("\u0043\u0041");_ddaf !=nil {_fbg .CA =_ddaf ;};if _fcab :=_efg .Get ("\u0052\u0043");_fcab !=nil {_fbg .RC =_fcab ;};if _edgb :=_efg .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_edgb !=nil {_fbg .CreationDate =_edgb ;};if _gbab :=_efg .Get ("\u0049\u0052\u0054");_gbab !=nil {_fbg .IRT =_gbab ;};if _afdd :=_efg .Get ("\u0053\u0075\u0062\u006a");_afdd !=nil {_fbg .Subj =_afdd ;};if _edcf :=_efg .Get ("\u0052\u0054");_edcf !=nil {_fbg .RT =_edcf ;
|
||
};if _fbac :=_efg .Get ("\u0049\u0054");_fbac !=nil {_fbg .IT =_fbac ;};if _feed :=_efg .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_feed !=nil {_fbg .ExData =_feed ;};return _fbg ,nil ;};func (_fgbf *PdfPage )setContainer (_aadaf *_ac .PdfIndirectObject ){_aadaf .PdfObject =_fgbf ._egcd ;
|
||
_fgbf ._ffda =_aadaf ;};func _ddabf ()*modelManager {_gggc :=modelManager {};_gggc ._ebgfb =map[PdfModel ]_ac .PdfObject {};_gggc ._bbefe =map[_ac .PdfObject ]PdfModel {};return &_gggc ;};
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_fegg DefaultImageHandler )NewImageFromGoImage (goimg _ad .Image )(*Image ,error ){_cabf ,_fbgad :=_ed .FromGoImage (goimg );if _fbgad !=nil {return nil ,_fbgad ;};_aeafb :=_affb (_cabf .Base ());return &_aeafb ,nil ;};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_gfed :_ac .MakeIndirectObject (_ac .MakeDict ()),VRI :map[string ]*VRI {}};};
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_ccgdaa *pdfSignDictionary )GetSubFilter ()string {_becfg :=_ccgdaa .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _becfg ==nil {return "";};if _fcga ,_fdccb :=_ac .GetNameVal (_becfg );_fdccb {return _fcga ;};return "";};
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_aeab *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_aeab .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_aeab ._cabc =acroForm ;};
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_cba :=NewPdfAnnotation ();_dgcb :=&PdfAnnotationSquiggly {};_dgcb .PdfAnnotation =_cba ;_dgcb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cba .SetContext (_dgcb );return _dgcb ;};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_fdgb *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_ebage ,_ecca :=color .(*PdfColorDeviceCMYK );if !_ecca {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bebae :=_ebage .C ();_bafe :=_ebage .M ();_gbdd :=_ebage .Y ();_dfdd :=_ebage .K ();_bebae =_bebae *(1-_dfdd )+_dfdd ;_bafe =_bafe *(1-_dfdd )+_dfdd ;
|
||
_gbdd =_gbdd *(1-_dfdd )+_dfdd ;_gaba :=1-_bebae ;_caga :=1-_bafe ;_cbec :=1-_gbdd ;return NewPdfColorDeviceRGB (_gaba ,_caga ,_cbec ),nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_abgbg *PdfColorLab )ToInteger (bits int )[3]uint32 {_gega :=_da .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_gega *_abgbg .L ()),uint32 (_gega *_abgbg .A ()),uint32 (_gega *_abgbg .B ())};};func _cggbg (_ffbba *PdfField )[]*PdfField {_gaafd :=[]*PdfField {_ffbba };
|
||
for _ ,_daaf :=range _ffbba .Kids {_gaafd =append (_gaafd ,_cggbg (_daaf )...);};return _gaafd ;};
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_aebde *PdfPageResources )GetExtGState (keyName _ac .PdfObjectName )(_ac .PdfObject ,bool ){if _aebde .ExtGState ==nil {return nil ,false ;};_fcfff ,_bcbbf :=_ac .TraceToDirectObject (_aebde .ExtGState ).(*_ac .PdfObjectDictionary );if !_bcbbf {_gd .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",_aebde .ExtGState );
|
||
return nil ,false ;};if _ccac :=_fcfff .Get (keyName );_ccac !=nil {return _ccac ,true ;};return nil ,false ;};
|
||
|
||
// 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 (_bgcg *PdfFont )CharcodesToUnicode (charcodes []_gf .CharCode )[]rune {_daea ,_ ,_ :=_bgcg .CharcodesToUnicodeWithStats (charcodes );return _daea ;};
|
||
|
||
// GetRevision returns the specific version of the PdfReader for the current Pdf document
|
||
func (_ebdb *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_feeaa :=_ebdb ._eebeg .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _feeaa {return nil ,_af .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
|
||
};if revisionNumber ==_feeaa {return _ebdb ,nil ;};if _ebdb ._aedce [revisionNumber ]!=nil {return _ebdb ._aedce [revisionNumber ],nil ;};_bdaae :=_ebdb ;for _fadfg :=_feeaa -1;_fadfg >=revisionNumber ;_fadfg --{_acbc ,_bfdde :=_bdaae .GetPreviousRevision ();
|
||
if _bfdde !=nil {return nil ,_bfdde ;};_ebdb ._aedce [_fadfg ]=_acbc ;_bdaae =_acbc ;};return _bdaae ,nil ;};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ac .PdfObject ;LE _ac .PdfObject ;BS _ac .PdfObject ;IC _ac .PdfObject ;BE _ac .PdfObject ;IT _ac .PdfObject ;Measure _ac .PdfObject ;};
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ac .PdfObject ;};
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_ga :=NewPdfAction ();_eaa :=&PdfActionSound {};_eaa .PdfAction =_ga ;_ga .SetContext (_eaa );return _eaa ;};
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_fcge *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_af .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");
|
||
};_dgbd ,_eaeg :=_ed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ebga ,img ._gffd );if _eaeg !=nil {return img ,_eaeg ;};_added ,_eaeg :=_ed .NRGBAConverter .Convert (_dgbd );if _eaeg !=nil {return img ,_eaeg ;
|
||
};_bead :=_affb (_added .Base ());_gd .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_gd .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );_gd .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_bead .Data );
|
||
_gd .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_bead );return _bead ,nil ;};var _dddg =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":{}};
|
||
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _ac .PdfObject ;H _ac .PdfObject ;};func (_egaaa *PdfWriter )writeOutlines ()error {if _egaaa ._ddece ==nil {return nil ;};_gd .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_egaaa ._ddece );
|
||
_gffgc :=_egaaa ._ddece .ToPdfObject ();_gd .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gffgc ,_gffgc ,_gffgc );_egaaa ._cgfegd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gffgc );
|
||
_beadd :=_egaaa .addObjects (_gffgc );if _beadd !=nil {return _beadd ;};return nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_dbcec *PdfSignatureReference )GetContainingPdfObject ()_ac .PdfObject {return _dbcec ._ebdca };
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_feda *PdfColorspaceLab )DecodeArray ()[]float64 {_fdcg :=[]float64 {0,100};if _feda .Range !=nil &&len (_feda .Range )==4{_fdcg =append (_fdcg ,_feda .Range ...);}else {_fdcg =append (_fdcg ,-100,100,-100,100);};return _fdcg ;};
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_abaecg :=NewPdfOutline ();_abaecg ._dagfd =&_abaecg ;return _abaecg ;};func (_bcaee *PdfWriter )checkLicense ()error {_acdde :=_cb .GetLicenseKey ();if (_acdde ==nil ||!_acdde .IsLicensed ())&&!_edfda {_d .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");
|
||
_d .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 _af .New ("\u0075\u006e\u0069\u0070d\u0066\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020c\u006fd\u0065\u0020\u0072\u0065\u0071\u0075\u0069r\u0065\u0064");};return nil ;};func _aefbc (_bgee *_ac .PdfIndirectObject )(*PdfOutline ,error ){_cabdf ,_abfbg :=_bgee .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_abfbg {return nil ,_d .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");};_cccac :=NewPdfOutline ();if _fadaa :=_cabdf .Get ("\u0054\u0079\u0070\u0065");
|
||
_fadaa !=nil {_eccdc ,_fegdc :=_fadaa .(*_ac .PdfObjectName );if _fegdc {if *_eccdc !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_gd .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",*_eccdc );
|
||
};};};if _bdefa :=_cabdf .Get ("\u0043\u006f\u0075n\u0074");_bdefa !=nil {_ggdc ,_fcdda :=_ac .GetNumberAsInt64 (_bdefa );if _fcdda !=nil {return nil ,_fcdda ;};_cccac .Count =&_ggdc ;};return _cccac ,nil ;};
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_gcce :=&PdfColorspaceLab {};_gcce .BlackPoint =[]float64 {0.0,0.0,0.0};_gcce .Range =[]float64 {-100,100,-100,100};return _gcce ;};func (_dggg fontCommon )fontFlags ()int {if _dggg ._bgbdc ==nil {return 0;
|
||
};return _dggg ._bgbdc ._dbfcb ;};
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_cbdec *PdfReader )PdfVersion ()_ac .Version {return _cbdec ._eebeg .PdfVersion ()};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdg *PdfBorderStyle )ToPdfObject ()_ac .PdfObject {_ggfg :=_ac .MakeDict ();if _fdg ._gcc !=nil {if _dcae ,_dgfd :=_fdg ._gcc .(*_ac .PdfIndirectObject );_dgfd {_dcae .PdfObject =_ggfg ;};};_ggfg .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _fdg .W !=nil {_ggfg .Set ("\u0057",_ac .MakeFloat (*_fdg .W ));};if _fdg .S !=nil {_ggfg .Set ("\u0053",_ac .MakeName (_fdg .S .GetPdfName ()));};if _fdg .D !=nil {_ggfg .Set ("\u0044",_ac .MakeArrayFromIntegers (*_fdg .D ));};if _fdg ._gcc !=nil {return _fdg ._gcc ;
|
||
};return _ggfg ;};
|
||
|
||
// 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 *_ac .PdfObjectInteger ;TilingType *_ac .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ac .PdfObjectFloat ;YStep *_ac .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ac .PdfObjectArray ;};
|
||
|
||
// 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 (_fccc int ,_eeba *PdfPage );
|
||
|
||
// 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 *_ac .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_cfcg *_ac .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_gggd *PdfColorspaceDeviceGray )ToPdfObject ()_ac .PdfObject {return _ac .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_cebcbe *XObjectImage )SetFilter (encoder _ac .StreamEncoder )error {_gdgga :=_cebcbe .Stream ;_adccb ,_cdbg :=_cebcbe .Filter .DecodeBytes (_gdgga );if _cdbg !=nil {return _cdbg ;};_cebcbe .Filter =encoder ;encoder .UpdateParams (_cebcbe .getParamsDict ());
|
||
_gdgga ,_cdbg =encoder .EncodeBytes (_adccb );if _cdbg !=nil {return _cdbg ;};_cebcbe .Stream =_gdgga ;return nil ;};func (_ggg *PdfReader )newPdfAnnotationScreenFromDict (_abeg *_ac .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_abee :=PdfAnnotationScreen {};
|
||
_abee .T =_abeg .Get ("\u0054");_abee .MK =_abeg .Get ("\u004d\u004b");_abee .A =_abeg .Get ("\u0041");_abee .AA =_abeg .Get ("\u0041\u0041");return &_abee ,nil ;};
|
||
|
||
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
|
||
type PdfOutputIntentType int ;
|
||
|
||
// 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 _ac .PdfObject )(_ac .PdfObjectName ,error ){var _ecgbf *_ac .PdfObjectName ;var _befa *_ac .PdfObjectArray ;if _aeea ,_faa :=obj .(*_ac .PdfIndirectObject );_faa {if _fgdb ,_efaae :=_aeea .PdfObject .(*_ac .PdfObjectArray );
|
||
_efaae {_befa =_fgdb ;}else if _cgaa ,_abgd :=_aeea .PdfObject .(*_ac .PdfObjectName );_abgd {_ecgbf =_cgaa ;};}else if _aecdf ,_cged :=obj .(*_ac .PdfObjectArray );_cged {_befa =_aecdf ;}else if _ggge ,_babb :=obj .(*_ac .PdfObjectName );_babb {_ecgbf =_ggge ;
|
||
};if _ecgbf !=nil {switch *_ecgbf {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 *_ecgbf ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_ecgbf ,nil ;
|
||
};};if _befa !=nil &&_befa .Len ()> 0{if _fbacg ,_ddda :=_befa .Get (0).(*_ac .PdfObjectName );_ddda {switch *_fbacg {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 _befa .Len ()==1{return *_fbacg ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_fbacg ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_fbacg ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_fbacg ,nil ;};};};return "",nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_eeeg *PdfFilespec )GetContainingPdfObject ()_ac .PdfObject {return _eeeg ._fege };func (_ggc *PdfReader )newPdfAnnotationStrikeOut (_dadd *_ac .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_becd :=PdfAnnotationStrikeOut {};_dfff ,_agga :=_ggc .newPdfAnnotationMarkupFromDict (_dadd );
|
||
if _agga !=nil {return nil ,_agga ;};_becd .PdfAnnotationMarkup =_dfff ;_becd .QuadPoints =_dadd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_becd ,nil ;};func (_gabaf *pdfFontSimple )updateStandard14Font (){_cffbf ,_caaa :=_gabaf .Encoder ().(_gf .SimpleEncoder );
|
||
if !_caaa {_gd .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",_gabaf .Encoder (),_gabaf );return ;};_gdbed :=_cffbf .Charcodes ();
|
||
_gabaf ._bdaga =make (map[_gf .CharCode ]float64 ,len (_gdbed ));for _ ,_bdede :=range _gdbed {_gbbc ,_ :=_cffbf .CharcodeToRune (_bdede );_fcdaf ,_ :=_gabaf ._gbbfd .Read (_gbbc );_gabaf ._bdaga [_bdede ]=_fcdaf .Wx ;};};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_bdfb *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_bdfb .Base .GetNumComponents ();if N < 1{return Image {},_d .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 );
|
||
};_cgbeg :=_ed .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._ebga ,img ._gffd );_faag :=_cg .NewReader (img .getBase ());_bgeb :=_cg .NewWriter (_cgbeg );var (_bfab uint32 ;_fbfff int ;_dbgd error ;);for {_bfab ,_dbgd =_faag .ReadSample ();
|
||
if _dbgd ==_adc .EOF {break ;}else if _dbgd !=nil {return img ,_dbgd ;};_fbfff =int (_bfab );_gd .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",_fbfff ,N ,len (_bdfb ._dagf ));
|
||
if (_fbfff +1)*N > len (_bdfb ._dagf ){_fbfff =len (_bdfb ._dagf )/N -1;_gd .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_fbfff );if _fbfff < 0{_gd .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 _efbe :=_fbfff *N ;_efbe < (_fbfff +1)*N ;_efbe ++{if _dbgd =_bgeb .WriteSample (uint32 (_bdfb ._dagf [_efbe ]));_dbgd !=nil {return img ,_dbgd ;};};};return _bdfb .Base .ImageToRGB (_affb (&_cgbeg ));};func (_dcdd *PdfReader )newPdfActionThreadFromDict (_efdc *_ac .PdfObjectDictionary )(*PdfActionThread ,error ){_cag ,_dfg :=_caec (_efdc .Get ("\u0046"));
|
||
if _dfg !=nil {return nil ,_dfg ;};return &PdfActionThread {D :_efdc .Get ("\u0044"),B :_efdc .Get ("\u0042"),F :_cag },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 _adc .ReadSeeker )(*PdfReader ,error ){const _eaca ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _gaada (rs ,&ReaderOpts {},false ,_eaca );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dafdc *PdfAnnotationText )ToPdfObject ()_ac .PdfObject {_dafdc .PdfAnnotation .ToPdfObject ();_egfc :=_dafdc ._fegd ;_aeag :=_egfc .PdfObject .(*_ac .PdfObjectDictionary );if _dafdc .PdfAnnotationMarkup !=nil {_dafdc .PdfAnnotationMarkup .appendToPdfDictionary (_aeag );
|
||
};_aeag .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0054\u0065\u0078\u0074"));_aeag .SetIfNotNil ("\u004f\u0070\u0065\u006e",_dafdc .Open );_aeag .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dafdc .Name );_aeag .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_dafdc .State );
|
||
_aeag .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_dafdc .StateModel );return _egfc ;};
|
||
|
||
// 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 ;_cegba *_ac .PdfIndirectObject ;};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ac .PdfObject ;Name _ac .PdfObject ;};
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_bfe :=NewPdfAnnotation ();_acfe :=&PdfAnnotationWatermark {};_acfe .PdfAnnotation =_bfe ;_bfe .SetContext (_acfe );return _acfe ;};
|
||
|
||
// 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 (_dgccdd byte )byte ;
|
||
|
||
// GetPerms returns the Permissions dictionary
|
||
func (_cfgeb *PdfReader )GetPerms ()*Permissions {return _cfgeb ._bddf };
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_dbdd *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_aee :=NewPdfAction ();_dgb :=&PdfActionResetForm {};_dgb .PdfAction =_aee ;_aee .SetContext (_dgb );return _dgb ;};
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _ac .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ac .PdfObject ;Contents _ac .PdfObject ;
|
||
Rotate *int64 ;Group _ac .PdfObject ;Thumb _ac .PdfObject ;B _ac .PdfObject ;Dur _ac .PdfObject ;Trans _ac .PdfObject ;AA _ac .PdfObject ;Metadata _ac .PdfObject ;PieceInfo _ac .PdfObject ;StructParents _ac .PdfObject ;ID _ac .PdfObject ;PZ _ac .PdfObject ;
|
||
SeparationInfo _ac .PdfObject ;Tabs _ac .PdfObject ;TemplateInstantiated _ac .PdfObject ;PresSteps _ac .PdfObject ;UserUnit _ac .PdfObject ;VP _ac .PdfObject ;Annots _ac .PdfObject ;_ceca []*PdfAnnotation ;_egcd *_ac .PdfObjectDictionary ;_ffda *_ac .PdfIndirectObject ;
|
||
_cecfa _ac .PdfObjectDictionary ;_bcfff *PdfReader ;};
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_bebgd *PdfFontDescriptor )String ()string {var _abdd []string ;if _bebgd .FontName !=nil {_abdd =append (_abdd ,_bebgd .FontName .String ());};if _bebgd .FontFamily !=nil {_abdd =append (_abdd ,_bebgd .FontFamily .String ());};if _bebgd .fontFile !=nil {_abdd =append (_abdd ,_bebgd .fontFile .String ());
|
||
};if _bebgd ._edfg !=nil {_abdd =append (_abdd ,_bebgd ._edfg .String ());};_abdd =append (_abdd ,_d .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_bebgd .FontFile3 !=nil ));return _d .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_fg .Join (_abdd ,"\u002c\u0020"));
|
||
};
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_ggf :=NewPdfAnnotation ();_ffc :=&PdfAnnotationLine {};_ffc .PdfAnnotation =_ggf ;_ffc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggf .SetContext (_ffc );return _ffc ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_aaceg *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=_aaceg .GetNumComponents (){return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cege ,_fffc :=_ac .GetNumbersAsFloat (objects );
|
||
if _fffc !=nil {return nil ,_fffc ;};return _aaceg .ColorFromFloats (_cege );};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_cbfb *PdfField )GetContext ()PdfModel {return _cbfb ._edab };func (_dacfa *PdfWriter )checkCrossReferenceStream ()bool {_feadd :=_dacfa ._gdfdc .Major > 1||(_dacfa ._gdfdc .Major ==1&&_dacfa ._gdfdc .Minor > 4);if _dacfa ._fdfcfb !=nil {_feadd =*_dacfa ._fdfcfb ;
|
||
};return _feadd ;};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_gddea *PdfReader )GetOCProperties ()(_ac .PdfObject ,error ){_dcbga :=_gddea ._bdfc ;_dbca :=_dcbga .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_dbca =_ac .ResolveReference (_dbca );if !_gddea ._dfgg {_dabg :=_gddea .traverseObjectData (_dbca );
|
||
if _dabg !=nil {return nil ,_dabg ;};};return _dbca ,nil ;};func _acfec (_bbgfg []byte )[]byte {const _bddc =52845;const _edaae =22719;_dbeae :=55665;for _ ,_acbd :=range _bbgfg [:4]{_dbeae =(int (_acbd )+_dbeae )*_bddc +_edaae ;};_eafcd :=make ([]byte ,len (_bbgfg )-4);
|
||
for _bcab ,_ccgc :=range _bbgfg [4:]{_eafcd [_bcab ]=byte (int (_ccgc )^_dbeae >>8);_dbeae =(int (_ccgc )+_dbeae )*_bddc +_edaae ;};return _eafcd ;};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_fgfeg *PdfPageResources )HasFontByName (keyName _ac .PdfObjectName )bool {_ ,_agcbaa :=_fgfeg .GetFontByName (keyName );return _agcbaa ;};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_aeeb *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cgfa ,_beeg :=color .(*PdfColorDeviceGray );if !_beeg {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_cgfa ),float64 (*_cgfa ),float64 (*_cgfa )),nil ;};const (ActionTypeGoTo PdfActionType ="\u0047\u006f\u0054\u006f";
|
||
ActionTypeGoTo3DView PdfActionType ="\u0047\u006f\u0054\u006f\u0033\u0044\u0056\u0069\u0065\u0077";ActionTypeGoToE PdfActionType ="\u0047\u006f\u0054o\u0045";ActionTypeGoToR PdfActionType ="\u0047\u006f\u0054o\u0052";ActionTypeHide PdfActionType ="\u0048\u0069\u0064\u0065";
|
||
ActionTypeImportData PdfActionType ="\u0049\u006d\u0070\u006f\u0072\u0074\u0044\u0061\u0074\u0061";ActionTypeJavaScript PdfActionType ="\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074";ActionTypeLaunch PdfActionType ="\u004c\u0061\u0075\u006e\u0063\u0068";
|
||
ActionTypeMovie PdfActionType ="\u004d\u006f\u0076i\u0065";ActionTypeNamed PdfActionType ="\u004e\u0061\u006de\u0064";ActionTypeRendition PdfActionType ="\u0052e\u006e\u0064\u0069\u0074\u0069\u006fn";ActionTypeResetForm PdfActionType ="\u0052e\u0073\u0065\u0074\u0046\u006f\u0072m";
|
||
ActionTypeSetOCGState PdfActionType ="S\u0065\u0074\u004f\u0043\u0047\u0053\u0074\u0061\u0074\u0065";ActionTypeSound PdfActionType ="\u0053\u006f\u0075n\u0064";ActionTypeSubmitForm PdfActionType ="\u0053\u0075\u0062\u006d\u0069\u0074\u0046\u006f\u0072\u006d";
|
||
ActionTypeThread PdfActionType ="\u0054\u0068\u0072\u0065\u0061\u0064";ActionTypeTrans PdfActionType ="\u0054\u0072\u0061n\u0073";ActionTypeURI PdfActionType ="\u0055\u0052\u0049";);
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_ccgdg DefaultImageHandler )NewGrayImageFromGoImage (goimg _ad .Image )(*Image ,error ){_fecf :=goimg .Bounds ();_gdda :=&Image {Width :int64 (_fecf .Dx ()),Height :int64 (_fecf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _cabea :=goimg .(type ){case *_ad .Gray :if len (_cabea .Pix )!=_fecf .Dx ()*_fecf .Dy (){_cbeb ,_bddd :=_ed .GrayConverter .Convert (goimg );
|
||
if _bddd !=nil {return nil ,_bddd ;};_gdda .Data =_cbeb .Pix ();}else {_gdda .Data =_cabea .Pix ;};case *_ad .Gray16 :_gdda .BitsPerComponent =16;if len (_cabea .Pix )!=_fecf .Dx ()*_fecf .Dy ()*2{_cbeae ,_daad :=_ed .Gray16Converter .Convert (goimg );
|
||
if _daad !=nil {return nil ,_daad ;};_gdda .Data =_cbeae .Pix ();}else {_gdda .Data =_cabea .Pix ;};case _ed .Image :_bgcbg :=_cabea .Base ();if _bgcbg .ColorComponents ==1{_gdda .BitsPerComponent =int64 (_bgcbg .BitsPerComponent );_gdda .Data =_bgcbg .Data ;
|
||
return _gdda ,nil ;};_cbgd ,_aefbg :=_ed .GrayConverter .Convert (goimg );if _aefbg !=nil {return nil ,_aefbg ;};_gdda .Data =_cbgd .Pix ();default:_eeeff ,_ddcfe :=_ed .GrayConverter .Convert (goimg );if _ddcfe !=nil {return nil ,_ddcfe ;};_gdda .Data =_eeeff .Pix ();
|
||
};return _gdda ,nil ;};
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_cedf *PdfPage )error ;};
|
||
|
||
// IsValid checks if the given pdf output intent type is valid.
|
||
func (_cgggb PdfOutputIntentType )IsValid ()bool {return _cgggb >=PdfOutputIntentTypeA1 &&_cgggb <=PdfOutputIntentTypeX ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cfec *PdfAnnotationWatermark )ToPdfObject ()_ac .PdfObject {_cfec .PdfAnnotation .ToPdfObject ();_afg :=_cfec ._fegd ;_ecg :=_afg .PdfObject .(*_ac .PdfObjectDictionary );_ecg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_ecg .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_cfec .FixedPrint );return _afg ;};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_cdede :=&PdfOutline {_eggfe :_ac .MakeIndirectObject (_ac .MakeDict ())};_cdede ._dagfd =_cdede ;return _cdede ;};func (_cc *PdfReader )newPdfActionFromIndirectObject (_beea *_ac .PdfIndirectObject )(*PdfAction ,error ){_cae ,_ddc :=_beea .PdfObject .(*_ac .PdfObjectDictionary );
|
||
if !_ddc {return nil ,_d .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 :=_cc ._gbced .GetModelFromPrimitive (_cae );model !=nil {_cbd ,_ccf :=model .(*PdfAction );if !_ccf {return nil ,_d .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 _cbd ,nil ;};_cgd :=&PdfAction {};_cgd ._eef =_beea ;_cc ._gbced .Register (_cae ,_cgd );if _bfc :=_cae .Get ("\u0054\u0079\u0070\u0065");_bfc !=nil {_egf ,_dgg :=_bfc .(*_ac .PdfObjectName );if !_dgg {_gd .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",_bfc );
|
||
}else {if *_egf !="\u0041\u0063\u0074\u0069\u006f\u006e"{_gd .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",*_egf );
|
||
};_cgd .Type =_egf ;};};if _dcab :=_cae .Get ("\u004e\u0065\u0078\u0074");_dcab !=nil {_cgd .Next =_dcab ;};if _ccd :=_cae .Get ("\u0053");_ccd !=nil {_cgd .S =_ccd ;};_ddbd ,_gebg :=_cgd .S .(*_ac .PdfObjectName );if !_gebg {_gd .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",_cgd .S );
|
||
return nil ,_d .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",_cgd .S );};_adb :=PdfActionType (_ddbd .String ());
|
||
switch _adb {case ActionTypeGoTo :_bda ,_befe :=_cc .newPdfActionGotoFromDict (_cae );if _befe !=nil {return nil ,_befe ;};_bda .PdfAction =_cgd ;_cgd ._gc =_bda ;return _cgd ,nil ;case ActionTypeGoToR :_egc ,_eeff :=_cc .newPdfActionGotoRFromDict (_cae );
|
||
if _eeff !=nil {return nil ,_eeff ;};_egc .PdfAction =_cgd ;_cgd ._gc =_egc ;return _cgd ,nil ;case ActionTypeGoToE :_cdb ,_dgba :=_cc .newPdfActionGotoEFromDict (_cae );if _dgba !=nil {return nil ,_dgba ;};_cdb .PdfAction =_cgd ;_cgd ._gc =_cdb ;return _cgd ,nil ;
|
||
case ActionTypeLaunch :_fdf ,_fcf :=_cc .newPdfActionLaunchFromDict (_cae );if _fcf !=nil {return nil ,_fcf ;};_fdf .PdfAction =_cgd ;_cgd ._gc =_fdf ;return _cgd ,nil ;case ActionTypeThread :_eaab ,_aeb :=_cc .newPdfActionThreadFromDict (_cae );if _aeb !=nil {return nil ,_aeb ;
|
||
};_eaab .PdfAction =_cgd ;_cgd ._gc =_eaab ;return _cgd ,nil ;case ActionTypeURI :_afae ,_deg :=_cc .newPdfActionURIFromDict (_cae );if _deg !=nil {return nil ,_deg ;};_afae .PdfAction =_cgd ;_cgd ._gc =_afae ;return _cgd ,nil ;case ActionTypeSound :_fdfc ,_dbb :=_cc .newPdfActionSoundFromDict (_cae );
|
||
if _dbb !=nil {return nil ,_dbb ;};_fdfc .PdfAction =_cgd ;_cgd ._gc =_fdfc ;return _cgd ,nil ;case ActionTypeMovie :_bdef ,_dbdb :=_cc .newPdfActionMovieFromDict (_cae );if _dbdb !=nil {return nil ,_dbdb ;};_bdef .PdfAction =_cgd ;_cgd ._gc =_bdef ;return _cgd ,nil ;
|
||
case ActionTypeHide :_fff ,_gfe :=_cc .newPdfActionHideFromDict (_cae );if _gfe !=nil {return nil ,_gfe ;};_fff .PdfAction =_cgd ;_cgd ._gc =_fff ;return _cgd ,nil ;case ActionTypeNamed :_fcb ,_eff :=_cc .newPdfActionNamedFromDict (_cae );if _eff !=nil {return nil ,_eff ;
|
||
};_fcb .PdfAction =_cgd ;_cgd ._gc =_fcb ;return _cgd ,nil ;case ActionTypeSubmitForm :_cgdd ,_gdd :=_cc .newPdfActionSubmitFormFromDict (_cae );if _gdd !=nil {return nil ,_gdd ;};_cgdd .PdfAction =_cgd ;_cgd ._gc =_cgdd ;return _cgd ,nil ;case ActionTypeResetForm :_bcad ,_gfb :=_cc .newPdfActionResetFormFromDict (_cae );
|
||
if _gfb !=nil {return nil ,_gfb ;};_bcad .PdfAction =_cgd ;_cgd ._gc =_bcad ;return _cgd ,nil ;case ActionTypeImportData :_eac ,_fbb :=_cc .newPdfActionImportDataFromDict (_cae );if _fbb !=nil {return nil ,_fbb ;};_eac .PdfAction =_cgd ;_cgd ._gc =_eac ;
|
||
return _cgd ,nil ;case ActionTypeSetOCGState :_gcd ,_ddce :=_cc .newPdfActionSetOCGStateFromDict (_cae );if _ddce !=nil {return nil ,_ddce ;};_gcd .PdfAction =_cgd ;_cgd ._gc =_gcd ;return _cgd ,nil ;case ActionTypeRendition :_bgd ,_cgg :=_cc .newPdfActionRenditionFromDict (_cae );
|
||
if _cgg !=nil {return nil ,_cgg ;};_bgd .PdfAction =_cgd ;_cgd ._gc =_bgd ;return _cgd ,nil ;case ActionTypeTrans :_agf ,_ccg :=_cc .newPdfActionTransFromDict (_cae );if _ccg !=nil {return nil ,_ccg ;};_agf .PdfAction =_cgd ;_cgd ._gc =_agf ;return _cgd ,nil ;
|
||
case ActionTypeGoTo3DView :_bbb ,_ace :=_cc .newPdfActionGoTo3DViewFromDict (_cae );if _ace !=nil {return nil ,_ace ;};_bbb .PdfAction =_cgd ;_cgd ._gc =_bbb ;return _cgd ,nil ;case ActionTypeJavaScript :_gcg ,_fdeb :=_cc .newPdfActionJavaScriptFromDict (_cae );
|
||
if _fdeb !=nil {return nil ,_fdeb ;};_gcg .PdfAction =_cgd ;_cgd ._gc =_gcg ;return _cgd ,nil ;};_gd .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",_adb );
|
||
return nil ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfb *PdfActionURI )ToPdfObject ()_ac .PdfObject {_dfb .PdfAction .ToPdfObject ();_gdc :=_dfb ._eef ;_gcf :=_gdc .PdfObject .(*_ac .PdfObjectDictionary );_gcf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeURI )));_gcf .SetIfNotNil ("\u0055\u0052\u0049",_dfb .URI );
|
||
_gcf .SetIfNotNil ("\u0049\u0073\u004da\u0070",_dfb .IsMap );return _gdc ;};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_aegea *PdfFieldButton )IsPush ()bool {return _aegea .GetType ()==ButtonTypePush };
|
||
|
||
// 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 *_ac .PdfObjectName ;P *_ac .PdfObjectInteger ;V *_ac .PdfObjectName ;};func _bbcdd (_dcgg _ac .PdfObject )(*PdfColorspaceLab ,error ){_ggbe :=NewPdfColorspaceLab ();if _afgga ,_agffg :=_dcgg .(*_ac .PdfIndirectObject );
|
||
_agffg {_ggbe ._gacg =_afgga ;};_dcgg =_ac .TraceToDirectObject (_dcgg );_cceae ,_aebcf :=_dcgg .(*_ac .PdfObjectArray );if !_aebcf {return nil ,_d .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cceae .Len ()!=2{return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_dcgg =_ac .TraceToDirectObject (_cceae .Get (0));_bgdd ,_aebcf :=_dcgg .(*_ac .PdfObjectName );if !_aebcf {return nil ,_d .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 *_bgdd !="\u004c\u0061\u0062"{return nil ,_d .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_dcgg =_ac .TraceToDirectObject (_cceae .Get (1));_dfag ,_aebcf :=_dcgg .(*_ac .PdfObjectDictionary );
|
||
if !_aebcf {return nil ,_d .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");};
|
||
_dcgg =_dfag .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_dcgg =_ac .TraceToDirectObject (_dcgg );_gagf ,_aebcf :=_dcgg .(*_ac .PdfObjectArray );if !_aebcf {return nil ,_d .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
|
||
};if _gagf .Len ()!=3{return nil ,_d .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");};_aeadf ,_cgae :=_gagf .GetAsFloat64Slice ();
|
||
if _cgae !=nil {return nil ,_cgae ;};_ggbe .WhitePoint =_aeadf ;_dcgg =_dfag .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _dcgg !=nil {_dcgg =_ac .TraceToDirectObject (_dcgg );_agde ,_bgce :=_dcgg .(*_ac .PdfObjectArray );if !_bgce {return nil ,_d .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");
|
||
};if _agde .Len ()!=3{return nil ,_d .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");};_eeecg ,_dcea :=_agde .GetAsFloat64Slice ();
|
||
if _dcea !=nil {return nil ,_dcea ;};_ggbe .BlackPoint =_eeecg ;};_dcgg =_dfag .Get ("\u0052\u0061\u006eg\u0065");if _dcgg !=nil {_dcgg =_ac .TraceToDirectObject (_dcgg );_ddfd ,_ffgg :=_dcgg .(*_ac .PdfObjectArray );if !_ffgg {_gd .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
return nil ,_d .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _ddfd .Len ()!=4{_gd .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_d .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_gcdgb ,_dcddc :=_ddfd .GetAsFloat64Slice ();if _dcddc !=nil {return nil ,_dcddc ;};_ggbe .Range =_gcdgb ;};return _ggbe ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_bedfef *PdfPageResourcesColorspaces )ToPdfObject ()_ac .PdfObject {_ddgdd :=_ac .MakeDict ();for _ ,_cbfgc :=range _bedfef .Names {_ddgdd .Set (_ac .PdfObjectName (_cbfgc ),_bedfef .Colorspaces [_cbfgc ].ToPdfObject ());};if _bedfef ._cegba !=nil {_bedfef ._cegba .PdfObject =_ddgdd ;
|
||
return _bedfef ._cegba ;};return _ddgdd ;};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_dgdga *Image )SetDecode (decode []float64 ){_dgdga ._gffd =decode };func (_afc *PdfReader )newPdfAnnotationRichMediaFromDict (_bgff *_ac .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_dgbg :=&PdfAnnotationRichMedia {};_dgbg .RichMediaSettings =_bgff .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");
|
||
_dgbg .RichMediaContent =_bgff .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");return _dgbg ,nil ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";
|
||
TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
|
||
|
||
// 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 ,_gf .SimpleEncoder ,error ){_fcefb ,_adeab :=_cdef (basefont );if _adeab !=nil {return nil ,nil ,_adeab ;};_fggdb ,_edfd :=_fcefb .Encoder ().(_gf .SimpleEncoder );
|
||
if !_edfd {return nil ,nil ,_d .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",_fcefb .Encoder ());
|
||
};_abaa :=make (map[rune ]_gf .GlyphName );for _afb :=range alphabet {if _ ,_fbfd :=_fggdb .RuneToCharcode (_afb );!_fbfd {_ ,_fcgdg :=_fcefb ._gbbfd .Read (_afb );if !_fcgdg {_gd .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",_afb ,_afb );
|
||
continue ;};_gdbae ,_fcgdg :=_gf .RuneToGlyph (_afb );if !_fcgdg {_gd .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_afb ,_afb );continue ;};if len (_abaa )>=255{return nil ,nil ,_af .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");
|
||
};_abaa [_afb ]=_gdbae ;};};var (_eedb []_gf .CharCode ;_geef []_gf .CharCode ;);for _fgfbb :=_gf .CharCode (1);_fgfbb <=0xff;_fgfbb ++{_bccb ,_gadag :=_fggdb .CharcodeToRune (_fgfbb );if !_gadag {_eedb =append (_eedb ,_fgfbb );continue ;};if _ ,_gadag =alphabet [_bccb ];
|
||
!_gadag {_geef =append (_geef ,_fgfbb );};};_bfabe :=append (_eedb ,_geef ...);if len (_bfabe )< len (_abaa ){return nil ,nil ,_d .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 (_abaa ),len (_bfabe ));
|
||
};_ageb :=make ([]rune ,0,len (_abaa ));for _fgfa :=range _abaa {_ageb =append (_ageb ,_fgfa );};_fb .Slice (_ageb ,func (_cacbg ,_fada int )bool {return _ageb [_cacbg ]< _ageb [_fada ]});_bfge :=make (map[_gf .CharCode ]_gf .GlyphName ,len (_ageb ));for _ ,_dgedb :=range _ageb {_edba :=_bfabe [0];
|
||
_bfabe =_bfabe [1:];_bfge [_edba ]=_abaa [_dgedb ];};_fggdb =_gf .ApplyDifferences (_fggdb ,_bfge );_fcefb .SetEncoder (_fggdb );return &PdfFont {_gegb :&_fcefb },_fggdb ,nil ;};
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_befcf *PdfPageResources )GetXObjectByName (keyName _ac .PdfObjectName )(*_ac .PdfObjectStream ,XObjectType ){if _befcf .XObject ==nil {return nil ,XObjectTypeUndefined ;};_ffebd ,_befgg :=_ac .TraceToDirectObject (_befcf .XObject ).(*_ac .PdfObjectDictionary );
|
||
if !_befgg {_gd .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",_ac .TraceToDirectObject (_befcf .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _bfbb :=_ffebd .Get (keyName );_bfbb !=nil {_bbecg ,_fcdfe :=_ac .GetStream (_bfbb );if !_fcdfe {_gd .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",_bfbb );
|
||
return nil ,XObjectTypeUndefined ;};_adfa :=_bbecg .PdfObjectDictionary ;_ccdfg ,_fcdfe :=_ac .TraceToDirectObject (_adfa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ac .PdfObjectName );if !_fcdfe {_gd .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",_adfa .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_ccdfg =="\u0049\u006d\u0061g\u0065"{return _bbecg ,XObjectTypeImage ;}else if *_ccdfg =="\u0046\u006f\u0072\u006d"{return _bbecg ,XObjectTypeForm ;}else if *_ccdfg =="\u0050\u0053"{return _bbecg ,XObjectTypePS ;
|
||
}else {_gd .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",*_ccdfg );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
|
||
};};func (_dceea *PdfWriter )addObject (_ddacbe _ac .PdfObject )bool {_cddea :=_dceea .hasObject (_ddacbe );if !_cddea {_begdb :=_ac .ResolveReferencesDeep (_ddacbe ,_dceea ._ebade );if _begdb !=nil {_gd .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_begdb );
|
||
};_dceea ._gdeaf =append (_dceea ._gdeaf ,_ddacbe );_dceea ._agbff [_ddacbe ]=struct{}{};return true ;};return false ;};
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_gdf :=NewPdfAction ();_gda :=&PdfActionThread {};_gda .PdfAction =_gdf ;_gdf .SetContext (_gda );return _gda ;};func (_ggba *PdfReader )loadPerms ()(*Permissions ,error ){if _gccgg :=_ggba ._bdfc .Get ("\u0050\u0065\u0072m\u0073");
|
||
_gccgg !=nil {if _feggg ,_eaag :=_ac .GetDict (_gccgg );_eaag {_abfge :=_feggg .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _abfge ==nil {return nil ,nil ;};if _febbb ,_edfffge :=_ac .GetIndirect (_abfge );_edfffge {_cbac ,_efag :=_ggba .newPdfSignatureFromIndirect (_febbb );
|
||
if _efag !=nil {return nil ,_efag ;};return NewPermissions (_cbac ),nil ;};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");};return nil ,_d .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");
|
||
};return nil ,nil ;};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_cdae *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_cgbd ,_gdge :=color .(*PdfColorCalGray );if !_gdge {_gd .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 ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_cgbd .Val ();X :=_cdae .WhitePoint [0]*_da .Pow (ANorm ,_cdae .Gamma );Y :=_cdae .WhitePoint [1]*_da .Pow (ANorm ,_cdae .Gamma );
|
||
Z :=_cdae .WhitePoint [2]*_da .Pow (ANorm ,_cdae .Gamma );_febfc :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bage :=-0.969256*X +1.875992*Y +0.041556*Z ;_dgcca :=0.055648*X +-0.204043*Y +1.057311*Z ;_febfc =_da .Min (_da .Max (_febfc ,0),1.0);_bage =_da .Min (_da .Max (_bage ,0),1.0);
|
||
_dgcca =_da .Min (_da .Max (_dgcca ,0),1.0);return NewPdfColorDeviceRGB (_febfc ,_bage ,_dgcca ),nil ;};
|
||
|
||
// ImageHandler interface implements common image loading and processing tasks.
|
||
// Implementing as an interface allows for the possibility to use non-standard libraries for faster
|
||
// loading and processing of images.
|
||
type ImageHandler interface{
|
||
|
||
// Read any image type and load into a new Image object.
|
||
Read (_gecfa _adc .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_cbfa _ad .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_fdaea _ad .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_dcbda *Image ,_beag int64 )(*Image ,error );};
|
||
|
||
// GetXHeight returns the XHeight of the font `descriptor`.
|
||
func (_facd *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _ac .GetNumberAsFloat (_facd .XHeight );};func (_bbeaf *PdfReader )newPdfSignatureReferenceFromDict (_gbfefa *_ac .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _efba ,_fcbc :=_bbeaf ._gbced .GetModelFromPrimitive (_gbfefa ).(*PdfSignatureReference );
|
||
_fcbc {return _efba ,nil ;};_aeefe :=&PdfSignatureReference {_ebdca :_gbfefa ,Data :_gbfefa .Get ("\u0044\u0061\u0074\u0061")};var _cfgbb bool ;_aeefe .Type ,_ =_ac .GetName (_gbfefa .Get ("\u0054\u0079\u0070\u0065"));_aeefe .TransformMethod ,_cfgbb =_ac .GetName (_gbfefa .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
if !_cfgbb {_gd .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 ;};_aeefe .TransformParams ,_ =_ac .GetDict (_gbfefa .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_aeefe .DigestMethod ,_ =_ac .GetName (_gbfefa .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
return _aeefe ,nil ;};
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _ac .PdfObject ;Flags _ac .PdfObject ;};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_ab :=NewPdfAction ();_dbd :=&PdfActionGoToR {};_dbd .PdfAction =_ab ;_ab .SetContext (_dbd );return _dbd ;};
|
||
|
||
// 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 (_efdbg *PdfReader )Inspect ()(map[string ]int ,error ){return _efdbg ._eebeg .Inspect ()};func (_dfgd *PdfReader )newPdfAnnotationLineFromDict (_dcag *_ac .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_dgdg :=PdfAnnotationLine {};_bgg ,_badg :=_dfgd .newPdfAnnotationMarkupFromDict (_dcag );
|
||
if _badg !=nil {return nil ,_badg ;};_dgdg .PdfAnnotationMarkup =_bgg ;_dgdg .L =_dcag .Get ("\u004c");_dgdg .BS =_dcag .Get ("\u0042\u0053");_dgdg .LE =_dcag .Get ("\u004c\u0045");_dgdg .IC =_dcag .Get ("\u0049\u0043");_dgdg .LL =_dcag .Get ("\u004c\u004c");
|
||
_dgdg .LLE =_dcag .Get ("\u004c\u004c\u0045");_dgdg .Cap =_dcag .Get ("\u0043\u0061\u0070");_dgdg .IT =_dcag .Get ("\u0049\u0054");_dgdg .LLO =_dcag .Get ("\u004c\u004c\u004f");_dgdg .CP =_dcag .Get ("\u0043\u0050");_dgdg .Measure =_dcag .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
|
||
_dgdg .CO =_dcag .Get ("\u0043\u004f");return &_dgdg ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ecac *PdfAnnotationStrikeOut )ToPdfObject ()_ac .PdfObject {_ecac .PdfAnnotation .ToPdfObject ();_cff :=_ecac ._fegd ;_bedd :=_cff .PdfObject .(*_ac .PdfObjectDictionary );_ecac .PdfAnnotationMarkup .appendToPdfDictionary (_bedd );_bedd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_bedd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ecac .QuadPoints );return _cff ;};
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ac .PdfObject ;B _ac .PdfObject ;};func _fdcde (_dedcd []byte )(_bfgfce ,_fgffd string ,_cfgab error ){_gd .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_dedcd ));
|
||
_dfbd :=_dafaca .FindIndex (_dedcd );if _dfbd ==nil {_gd .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 "","",_ac .ErrTypeError ;};_dgbb :=_dfbd [1];_gfebc :=_fg .Index (string (_dedcd [_dgbb :]),_geac );if _gfebc < 0{_bfgfce =string (_dedcd [_dgbb :]);return _bfgfce ,"",nil ;};_bbdea :=_dgbb +_gfebc ;_bfgfce =string (_dedcd [_dgbb :_bbdea ]);_bbebf :=_bbdea ;
|
||
_gfebc =_fg .Index (string (_dedcd [_bbebf :]),_ddec );if _gfebc < 0{_gd .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",_cfgab );
|
||
return "","",_ac .ErrTypeError ;};_gefee :=_bbebf +_gfebc ;_fgffd =string (_dedcd [_bbebf :_gefee ]);return _bfgfce ,_fgffd ,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 (_becf *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bgdeg :=vals [0];if _bgdeg < 0.0||_bgdeg > 100.0{_gd .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",_bgdeg );
|
||
return nil ,ErrColorOutOfRange ;};_feaa :=vals [1];_cabbd :=float64 (-100);_gbcdc :=float64 (100);if len (_becf .Range )> 1{_cabbd =_becf .Range [0];_gbcdc =_becf .Range [1];};if _feaa < _cabbd ||_feaa > _gbcdc {_gd .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",_feaa ,_cabbd ,_gbcdc );
|
||
return nil ,ErrColorOutOfRange ;};_gdbd :=vals [2];_cbeec :=float64 (-100);_acee :=float64 (100);if len (_becf .Range )> 3{_cbeec =_becf .Range [2];_acee =_becf .Range [3];};if _gdbd < _cbeec ||_gdbd > _acee {_gd .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",_gdbd ,_cbeec ,_acee );
|
||
return nil ,ErrColorOutOfRange ;};_dfcd :=NewPdfColorLab (_bgdeg ,_feaa ,_gdbd );return _dfcd ,nil ;};
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_fadfe *PdfPageResources )GetShadingByName (keyName _ac .PdfObjectName )(*PdfShading ,bool ){if _fadfe .Shading ==nil {return nil ,false ;};_gfbgb ,_fcdfb :=_ac .TraceToDirectObject (_fadfe .Shading ).(*_ac .PdfObjectDictionary );if !_fcdfb {_gd .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",_fadfe .Shading );
|
||
return nil ,false ;};if _bcgfc :=_gfbgb .Get (keyName );_bcgfc !=nil {_abaab ,_eeegg :=_gccgd (_bcgfc );if _eeegg !=nil {_gd .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",_eeegg );
|
||
return nil ,false ;};return _abaab ,true ;};return nil ,false ;};func _gaada (_dabae _adc .ReadSeeker ,_edgce *ReaderOpts ,_defg bool ,_gbcad string )(*PdfReader ,error ){if _edgce ==nil {_edgce =NewReaderOpts ();};_ddced :=*_edgce ;_dbba :=&PdfReader {_fafc :_dabae ,_cccb :map[_ac .PdfObject ]struct{}{},_gbced :_ddabf (),_dfgg :_edgce .LazyLoad ,_edcge :_edgce .ComplianceMode ,_agfbe :_defg ,_dcbgf :&_ddced };
|
||
_gdfdb ,_ebcc :=_ceec ("\u0072");if _ebcc !=nil {return nil ,_ebcc ;};_ebcc =_cb .Track (_gdfdb ,_gbcad );if _ebcc !=nil {return nil ,_ebcc ;};_dbba ._cdgb =_gdfdb ;var _abgg *_ac .PdfParser ;if !_dbba ._edcge {_abgg ,_ebcc =_ac .NewParser (_dabae );}else {_abgg ,_ebcc =_ac .NewCompliancePdfParser (_dabae );
|
||
};if _ebcc !=nil {return nil ,_ebcc ;};_dbba ._eebeg =_abgg ;_aeabe ,_ebcc :=_dbba .IsEncrypted ();if _ebcc !=nil {return nil ,_ebcc ;};if !_aeabe {_ebcc =_dbba .loadStructure ();if _ebcc !=nil {return nil ,_ebcc ;};}else if _defg {_bcae ,_aebeb :=_dbba .Decrypt ([]byte (_edgce .Password ));
|
||
if _aebeb !=nil {return nil ,_aebeb ;};if !_bcae {return nil ,_af .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");
|
||
};};_dbba ._geega =make (map[*PdfReader ]*PdfReader );_dbba ._aedce =make ([]*PdfReader ,_abgg .GetRevisionNumber ());return _dbba ,nil ;};
|
||
|
||
// GetVersion gets the document version.
|
||
func (_cebgc *PdfWriter )GetVersion ()_ac .Version {return _cebgc ._gdfdc };func _caec (_eefb _ac .PdfObject )(*PdfFilespec ,error ){if _eefb ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_eefb );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbgadf *PdfTransformParamsDocMDP )ToPdfObject ()_ac .PdfObject {_dcefb :=_ac .MakeDict ();_dcefb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_fbgadf .Type );_dcefb .SetIfNotNil ("\u0056",_fbgadf .V );_dcefb .SetIfNotNil ("\u0050",_fbgadf .P );return _dcefb ;
|
||
};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_bcddc *XObjectForm )GetContentStream ()([]byte ,error ){_eaceb ,_daddg :=_ac .DecodeStream (_bcddc ._fggc );if _daddg !=nil {return nil ,_daddg ;};return _eaceb ,nil ;};
|
||
|
||
// XObjectImage (Table 89 in 8.9.5.1).
|
||
// Implements PdfModel interface.
|
||
type XObjectImage struct{
|
||
|
||
//ColorSpace PdfObject
|
||
Width *int64 ;Height *int64 ;ColorSpace PdfColorspace ;BitsPerComponent *int64 ;Filter _ac .StreamEncoder ;Intent _ac .PdfObject ;ImageMask _ac .PdfObject ;Mask _ac .PdfObject ;Matte _ac .PdfObject ;Decode _ac .PdfObject ;Interpolate _ac .PdfObject ;Alternatives _ac .PdfObject ;
|
||
SMask _ac .PdfObject ;SMaskInData _ac .PdfObject ;Name _ac .PdfObject ;StructParent _ac .PdfObject ;ID _ac .PdfObject ;OPI _ac .PdfObject ;Metadata _ac .PdfObject ;OC _ac .PdfObject ;Stream []byte ;_gfbdff *_ac .PdfObjectStream ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bac *PdfActionGoTo3DView )ToPdfObject ()_ac .PdfObject {_bac .PdfAction .ToPdfObject ();_edd :=_bac ._eef ;_gaf :=_edd .PdfObject .(*_ac .PdfObjectDictionary );_gaf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoTo3DView )));_gaf .SetIfNotNil ("\u0054\u0041",_bac .TA );
|
||
_gaf .SetIfNotNil ("\u0056",_bac .V );return _edd ;};
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_gbagg *PdfPage )GetContentStreamObjs ()[]_ac .PdfObject {if _gbagg .Contents ==nil {return nil ;};_daag :=_ac .TraceToDirectObject (_gbagg .Contents );if _eaeba ,_dabb :=_daag .(*_ac .PdfObjectArray );_dabb {return _eaeba .Elements ();};return []_ac .PdfObject {_daag };
|
||
};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_bfcf *PdfPageResources )AddExtGState (gsName _ac .PdfObjectName ,gsDict _ac .PdfObject )error {if _bfcf .ExtGState ==nil {_bfcf .ExtGState =_ac .MakeDict ();};_afbd :=_bfcf .ExtGState ;_facfe ,_bdedeg :=_ac .TraceToDirectObject (_afbd ).(*_ac .PdfObjectDictionary );
|
||
if !_bdedeg {_gd .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",_afbd ,_ac .TraceToDirectObject (_afbd ));
|
||
return _ac .ErrTypeError ;};_facfe .Set (gsName ,gsDict );return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gga *PdfActionJavaScript )ToPdfObject ()_ac .PdfObject {_gga .PdfAction .ToPdfObject ();_cfe :=_gga ._eef ;_ecbf :=_cfe .PdfObject .(*_ac .PdfObjectDictionary );_ecbf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeJavaScript )));_ecbf .SetIfNotNil ("\u004a\u0053",_gga .JS );
|
||
return _cfe ;};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_ccfgc *PdfFont )BaseFont ()string {return _ccfgc .baseFields ()._abab };
|
||
|
||
// 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 (_geage *CompliancePdfReader )error ;};func _dgfc (_aggb _ac .PdfObject ,_bfgfc *fontCommon )(*_eg .CMap ,error ){_ebgbc ,_facebf :=_ac .GetStream (_aggb );if !_facebf {_gd .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",_aggb );
|
||
return nil ,_ac .ErrTypeError ;};_aaad ,_edfffg :=_ac .DecodeStream (_ebgbc );if _edfffg !=nil {return nil ,_edfffg ;};_ddff ,_edfffg :=_eg .LoadCmapFromData (_aaad ,!_bfgfc .isCIDFont ());if _edfffg !=nil {_gd .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",_ebgbc .ObjectNumber ,_edfffg );
|
||
};return _ddff ,_edfffg ;};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_egb :=NewPdfAction ();_adce :=&PdfActionNamed {};_adce .PdfAction =_egb ;_egb .SetContext (_adce );return _adce ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_bcg *PdfColorspaceCalGray )GetNumComponents ()int {return 1};var (ErrRequiredAttributeMissing =_af .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 =_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_af .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_gbda =_af .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
||
ErrEncrypted =_af .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 =_af .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
ErrFontNotSupported =_bg .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ac .ErrNotSupported );ErrType1CFontNotSupported =_bg .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",_ac .ErrNotSupported );
|
||
ErrType3FontNotSupported =_bg .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",_ac .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_bg .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",_ac .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_bg .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 =_bg .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"););
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_fffdf *PdfPageResources )SetColorspaceByName (keyName _ac .PdfObjectName ,cs PdfColorspace )error {_fegba ,_gdcfd :=_fffdf .GetColorspaces ();if _gdcfd !=nil {_gd .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",_gdcfd );
|
||
return _gdcfd ;};if _fegba ==nil {_fegba =NewPdfPageResourcesColorspaces ();_fffdf .SetColorSpace (_fegba );};_fegba .Set (keyName ,cs );return nil ;};func _bcefb ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _bffb };
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_cbe *PdfAnnotation )GetContext ()PdfModel {if _cbe ==nil {return nil ;};return _cbe ._cgf ;};func (_caaf *PdfReader )newPdfAnnotationCaretFromDict (_fab *_ac .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_fbcb :=PdfAnnotationCaret {};_dac ,_cggg :=_caaf .newPdfAnnotationMarkupFromDict (_fab );
|
||
if _cggg !=nil {return nil ,_cggg ;};_fbcb .PdfAnnotationMarkup =_dac ;_fbcb .RD =_fab .Get ("\u0052\u0044");_fbcb .Sy =_fab .Get ("\u0053\u0079");return &_fbcb ,nil ;};func (_facbf *XObjectImage )getParamsDict ()*_ac .PdfObjectDictionary {_deeff :=_ac .MakeDict ();
|
||
_deeff .Set ("\u0057\u0069\u0064t\u0068",_ac .MakeInteger (*_facbf .Width ));_deeff .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ac .MakeInteger (*_facbf .Height ));_deeff .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ac .MakeInteger (int64 (_facbf .ColorSpace .GetNumComponents ())));
|
||
_deeff .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ac .MakeInteger (*_facbf .BitsPerComponent ));return _deeff ;};func (_cafbb *pdfCIDFontType2 )baseFields ()*fontCommon {return &_cafbb .fontCommon };
|
||
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_cdad *PdfTilingPattern )SetContentStream (content []byte ,encoder _ac .StreamEncoder )error {_eacfe ,_ggggd :=_cdad ._fddfb .(*_ac .PdfObjectStream );if !_ggggd {_gd .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",_cdad ._fddfb );
|
||
return _ac .ErrTypeError ;};if encoder ==nil {encoder =_ac .NewRawEncoder ();};_bcag :=_eacfe .PdfObjectDictionary ;_agec :=encoder .MakeStreamDict ();_bcag .Merge (_agec );_cdbf ,_ccefa :=encoder .EncodeBytes (content );if _ccefa !=nil {return _ccefa ;
|
||
};_bcag .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_cdbf ))));_eacfe .Stream =_cdbf ;return 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 (_bdgc *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dafc :=vals [0];if _dafc < 0.0||_dafc > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_dafc );
|
||
return nil ,ErrColorOutOfRange ;};_gdba :=vals [1];if _gdba < 0.0||_gdba > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdba );return nil ,ErrColorOutOfRange ;
|
||
};_bdd :=vals [2];if _bdd < 0.0||_bdd > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bdd );return nil ,ErrColorOutOfRange ;};_beaf :=vals [3];if _beaf < 0.0||_beaf > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beaf );
|
||
return nil ,ErrColorOutOfRange ;};_febf :=NewPdfColorDeviceCMYK (_dafc ,_gdba ,_bdd ,_beaf );return _febf ,nil ;};var (_dafaca =_ce .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
|
||
_bbbe =_ce .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");_dfedc =_ce .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");
|
||
_geac ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ddec ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_ecddaf ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_efffa *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ac .GetNumberAsFloat (_efffa .Ascent );};func (_ecc *PdfReader )newPdfActionResetFormFromDict (_eaf *_ac .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_eaf .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_eaf .Get ("\u0046\u006c\u0061g\u0073")},nil ;
|
||
};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _ac .PdfObject ;ColorSpace _ac .PdfObject ;Pattern _ac .PdfObject ;Shading _ac .PdfObject ;XObject _ac .PdfObject ;Font _ac .PdfObject ;ProcSet _ac .PdfObject ;Properties _ac .PdfObject ;_ccggg *_ac .PdfObjectDictionary ;
|
||
_bdcee *PdfPageResourcesColorspaces ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_cbc *PdfAction )GetContainingPdfObject ()_ac .PdfObject {return _cbc ._eef };
|
||
|
||
// GetRevisionNumber returns the version of the current Pdf document
|
||
func (_cdaed *PdfReader )GetRevisionNumber ()int {return _cdaed ._eebeg .GetRevisionNumber ()};
|
||
|
||
// 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 (_afdec *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fdaf :=vals [0];if _fdaf < 0.0||_fdaf > 1.0{_gd .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fdaf );
|
||
return nil ,ErrColorOutOfRange ;};_efc :=NewPdfColorCalGray (_fdaf );return _efc ,nil ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
|
||
);
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_aaaca *PdfField )SetFlag (flag FieldFlag ){_aaaca .Ff =_ac .MakeInteger (int64 (flag ))};
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_fbcfg *PdfReader )GetNumPages ()(int ,error ){if _fbcfg ._eebeg .GetCrypter ()!=nil &&!_fbcfg ._eebeg .IsAuthenticated (){return 0,_d .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 (_fbcfg ._acca ),nil ;};
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_dcfbg *PdfPageResources )SetFontByName (keyName _ac .PdfObjectName ,obj _ac .PdfObject )error {if _dcfbg .Font ==nil {_dcfbg .Font =_ac .MakeDict ();};_eabfe ,_gbedc :=_ac .TraceToDirectObject (_dcfbg .Font ).(*_ac .PdfObjectDictionary );if !_gbedc {_gd .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",_ac .TraceToDirectObject (_dcfbg .Font ));
|
||
return _ac .ErrTypeError ;};_eabfe .Set (keyName ,obj );return nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_adad *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_cbebd OutlineDest )ToPdfObject ()_ac .PdfObject {if (_cbebd .PageObj ==nil &&_cbebd .Page < 0)||_cbebd .Mode ==""{return _ac .MakeNull ();};_caadd :=_ac .MakeArray ();if _cbebd .PageObj !=nil {_caadd .Append (_cbebd .PageObj );}else {_caadd .Append (_ac .MakeInteger (_cbebd .Page ));
|
||
};_caadd .Append (_ac .MakeName (_cbebd .Mode ));switch _cbebd .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_caadd .Append (_ac .MakeFloat (_cbebd .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_caadd .Append (_ac .MakeFloat (_cbebd .X ));
|
||
case "\u0058\u0059\u005a":_caadd .Append (_ac .MakeFloat (_cbebd .X ));_caadd .Append (_ac .MakeFloat (_cbebd .Y ));_caadd .Append (_ac .MakeFloat (_cbebd .Zoom ));default:_caadd .Set (1,_ac .MakeName ("\u0046\u0069\u0074"));};return _caadd ;};var ImageHandling ImageHandler =DefaultImageHandler {};
|
||
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_ggce *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_fbafc *PdfInfo )CustomKeys ()[]string {if _fbafc ._ggfb ==nil {return nil ;};_dcff :=make ([]string ,len (_fbafc ._ggfb .Keys ()));for _ ,_ffea :=range _fbafc ._ggfb .Keys (){_dcff =append (_dcff ,_ffea .String ());};return _dcff ;};
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_bcaeb *PdfPageResources )GetColorspaceByName (keyName _ac .PdfObjectName )(PdfColorspace ,bool ){_afbb ,_dbdef :=_bcaeb .GetColorspaces ();if _dbdef !=nil {_gd .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",_dbdef );
|
||
return nil ,false ;};if _afbb ==nil {return nil ,false ;};_afccf ,_cagg :=_afbb .Colorspaces [string (keyName )];if !_cagg {return nil ,false ;};return _afccf ,true ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_dggb *PdfColorCalRGB )B ()float64 {return _dggb [1]};func _fcbgg (_bdacd _fda .StdFont )pdfFontSimple {_fgcgf :=_bdacd .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_efebg :"\u0054\u0079\u0070e\u0031",_abab :_bdacd .Name ()},_gbbfd :_bdacd .GetMetricsTable (),_ffbea :&PdfFontDescriptor {FontName :_ac .MakeName (string (_fgcgf .Name )),FontFamily :_ac .MakeName (_fgcgf .Family ),FontWeight :_ac .MakeFloat (float64 (_fgcgf .Weight )),Flags :_ac .MakeInteger (int64 (_fgcgf .Flags )),FontBBox :_ac .MakeArrayFromFloats (_fgcgf .BBox [:]),ItalicAngle :_ac .MakeFloat (_fgcgf .ItalicAngle ),Ascent :_ac .MakeFloat (_fgcgf .Ascent ),Descent :_ac .MakeFloat (_fgcgf .Descent ),CapHeight :_ac .MakeFloat (_fgcgf .CapHeight ),XHeight :_ac .MakeFloat (_fgcgf .XHeight ),StemV :_ac .MakeFloat (_fgcgf .StemV ),StemH :_ac .MakeFloat (_fgcgf .StemH )},_abbba :_bdacd .Encoder ()};
|
||
};func (_cadaa *PdfWriter )setDocumentIDs (_egfdb ,_afgc string ){_cadaa ._bffaf =_ac .MakeArray (_ac .MakeHexString (_egfdb ),_ac .MakeHexString (_afgc ));};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_cafcf *PdfReader )GetPageLabels ()(_ac .PdfObject ,error ){_cdebe :=_ac .ResolveReference (_cafcf ._bdfc .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _cdebe ==nil {return nil ,nil ;};if !_cafcf ._dfgg {_fbcd :=_cafcf .traverseObjectData (_cdebe );
|
||
if _fbcd !=nil {return nil ,_fbcd ;};};return _cdebe ,nil ;};
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_bbce *PdfAppender )RemovePage (pageNum int ){_abbbg :=pageNum -1;_bbce ._abda =append (_bbce ._abda [0:_abbbg ],_bbce ._abda [pageNum :]...);};func (_ecfa *PdfWriter )seekByName (_efccga _ac .PdfObject ,_abeda []string ,_agaf string )([]_ac .PdfObject ,error ){_gd .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_efccga );
|
||
var _aaggf []_ac .PdfObject ;if _ffccg ,_eagaf :=_efccga .(*_ac .PdfIndirectObject );_eagaf {return _ecfa .seekByName (_ffccg .PdfObject ,_abeda ,_agaf );};if _eccfd ,_cdacc :=_efccga .(*_ac .PdfObjectStream );_cdacc {return _ecfa .seekByName (_eccfd .PdfObjectDictionary ,_abeda ,_agaf );
|
||
};if _acfea ,_gdbega :=_efccga .(*_ac .PdfObjectDictionary );_gdbega {_gd .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_gdefg :=range _acfea .Keys (){_ecaag :=_acfea .Get (_gdefg );if string (_gdefg )==_agaf {_aaggf =append (_aaggf ,_ecaag );};for _ ,_cfegd :=range _abeda {if string (_gdefg )==_cfegd {_gd .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_cfegd );
|
||
_fcggga ,_effca :=_ecfa .seekByName (_ecaag ,_abeda ,_agaf );if _effca !=nil {return _aaggf ,_effca ;};_aaggf =append (_aaggf ,_fcggga ...);break ;};};};return _aaggf ,nil ;};return _aaggf ,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 (_fdaed *Image )GetSamples ()[]uint32 {_dgfcd :=_cg .ResampleBytes (_fdaed .Data ,int (_fdaed .BitsPerComponent ));if _fdaed .BitsPerComponent < 8{_dgfcd =_fdaed .samplesTrimPadding (_dgfcd );};_fgeaf :=int (_fdaed .Width )*int (_fdaed .Height )*_fdaed .ColorComponents ;
|
||
if len (_dgfcd )< _fgeaf {_gd .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 (_dgfcd ),_fgeaf );
|
||
return _dgfcd ;}else if len (_dgfcd )> _fgeaf {_gd .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 (_dgfcd ),_fgeaf );
|
||
_dgfcd =_dgfcd [:_fgeaf ];};return _dgfcd ;};func (_gagcf fontCommon )coreString ()string {_fagab :="";if _gagcf ._bgbdc !=nil {_fagab =_gagcf ._bgbdc .String ();};return _d .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",_gagcf ._efebg ,_gagcf ._abab ,_gagcf ._fgfd ,_gagcf ._ccega ,_gagcf ._babg !=nil ,_gagcf .fontFlags (),_fagab );
|
||
};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_fdabe *PdfPage )AddImageResource (name _ac .PdfObjectName ,ximg *XObjectImage )error {var _aeebg *_ac .PdfObjectDictionary ;if _fdabe .Resources .XObject ==nil {_aeebg =_ac .MakeDict ();_fdabe .Resources .XObject =_aeebg ;}else {var _cfgec bool ;
|
||
_aeebg ,_cfgec =(_fdabe .Resources .XObject ).(*_ac .PdfObjectDictionary );if !_cfgec {return _af .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_aeebg .Set (name ,ximg .ToPdfObject ());
|
||
return 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 (_gbfc PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_ac .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_edb []_ac .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_gfbg []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};func (_cbedf PdfFont )actualFont ()pdfFont {if _cbedf ._gegb ==nil {_gd .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",_cbedf );
|
||
};return _cbedf ._gegb ;};func (_bed *PdfReader )newPdfActionURIFromDict (_adbd *_ac .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_adbd .Get ("\u0055\u0052\u0049"),IsMap :_adbd .Get ("\u0049\u0073\u004da\u0070")},nil ;};
|
||
|
||
// GetStandardApplier gets currently used StandardApplier..
|
||
func (_dffbe *PdfWriter )GetStandardApplier ()StandardApplier {return _dffbe ._faega };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbfa *PdfAnnotationPolyLine )ToPdfObject ()_ac .PdfObject {_fbfa .PdfAnnotation .ToPdfObject ();_cbef :=_fbfa ._fegd ;_affd :=_cbef .PdfObject .(*_ac .PdfObjectDictionary );_fbfa .PdfAnnotationMarkup .appendToPdfDictionary (_affd );_affd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_affd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_fbfa .Vertices );_affd .SetIfNotNil ("\u004c\u0045",_fbfa .LE );_affd .SetIfNotNil ("\u0042\u0053",_fbfa .BS );_affd .SetIfNotNil ("\u0049\u0043",_fbfa .IC );_affd .SetIfNotNil ("\u0042\u0045",_fbfa .BE );
|
||
_affd .SetIfNotNil ("\u0049\u0054",_fbfa .IT );_affd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_fbfa .Measure );return _cbef ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efgd *PdfAnnotationFileAttachment )ToPdfObject ()_ac .PdfObject {_efgd .PdfAnnotation .ToPdfObject ();_fdea :=_efgd ._fegd ;_gbc :=_fdea .PdfObject .(*_ac .PdfObjectDictionary );_efgd .PdfAnnotationMarkup .appendToPdfDictionary (_gbc );_gbc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_gbc .SetIfNotNil ("\u0046\u0053",_efgd .FS );_gbc .SetIfNotNil ("\u004e\u0061\u006d\u0065",_efgd .Name );return _fdea ;};func (_cgbdf *PdfReader )buildNameNodes (_ebbe *_ac .PdfIndirectObject ,_afcc map[_ac .PdfObject ]struct{})error {if _ebbe ==nil {return nil ;
|
||
};if _ ,_bagec :=_afcc [_ebbe ];_bagec {_gd .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",_ebbe .ObjectNumber );
|
||
return nil ;};_afcc [_ebbe ]=struct{}{};_ecbcg ,_gbgeb :=_ebbe .PdfObject .(*_ac .PdfObjectDictionary );if !_gbgeb {return _af .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _edbfe ,_abgcd :=_ac .GetDict (_ecbcg .Get ("\u0044\u0065\u0073t\u0073"));
|
||
_abgcd {_cfaea ,_gdgab :=_ac .GetArray (_edbfe .Get ("\u004b\u0069\u0064\u0073"));if !_gdgab {return _af .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_gd .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_cfaea );
|
||
for _eeeac ,_dcgceb :=range _cfaea .Elements (){_dbbcbe ,_gaed :=_ac .GetIndirect (_dcgceb );if !_gaed {_gd .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",_dbbcbe );
|
||
return _af .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_cfaea .Set (_eeeac ,_dbbcbe );_cbcgf :=_cgbdf .buildNameNodes (_dbbcbe ,_afcc );if _cbcgf !=nil {return _cbcgf ;
|
||
};};};if _dbfg ,_edbb :=_ac .GetDict (_ecbcg );_edbb {if !_ac .IsNullObject (_dbfg .Get ("\u004b\u0069\u0064\u0073")){if _gcaab ,_abgaf :=_ac .GetArray (_dbfg .Get ("\u004b\u0069\u0064\u0073"));_abgaf {for _ffgbc ,_dbeaed :=range _gcaab .Elements (){if _ecefc ,_ggcde :=_ac .GetIndirect (_dbeaed );
|
||
_ggcde {_gcaab .Set (_ffgbc ,_ecefc );_gabef :=_cgbdf .buildNameNodes (_ecefc ,_afcc );if _gabef !=nil {return _gabef ;};};};};};};return nil ;};
|
||
|
||
// Transform rectangle with the supplied matrix.
|
||
func (_bbdbe *PdfRectangle )Transform (transformMatrix _ba .Matrix ){_bbdbe .Llx ,_bbdbe .Lly =transformMatrix .Transform (_bbdbe .Llx ,_bbdbe .Lly );_bbdbe .Urx ,_bbdbe .Ury =transformMatrix .Transform (_bbdbe .Urx ,_bbdbe .Ury );_bbdbe .Normalize ();
|
||
};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_ebeg *PdfColorCalRGB )A ()float64 {return _ebeg [0]};
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ac .PdfObject ;RichMediaContent _ac .PdfObject ;};
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_dbacf *PdfReader )Decrypt (password []byte )(bool ,error ){_badaa ,_ccada :=_dbacf ._eebeg .Decrypt (password );if _ccada !=nil {return false ,_ccada ;};if !_badaa {return false ,nil ;};_ccada =_dbacf .loadStructure ();if _ccada !=nil {_gd .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",_ccada );
|
||
return false ,_ccada ;};return true ,nil ;};
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_gcgda *PdfField )PartialName ()string {_gedd :="";if _gcgda .T !=nil {_gedd =_gcgda .T .Decoded ();}else {_gd .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 _gedd ;};func _bbebd (_gbae _ac .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_gd .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",_gbae .String (),_gbae );
|
||
_bgea :=NewPdfColorspaceSpecialPattern ();if _aebdf ,_eeac :=_gbae .(*_ac .PdfIndirectObject );_eeac {_bgea ._gcdb =_aebdf ;};_gbae =_ac .TraceToDirectObject (_gbae );if _fdac ,_bbbgg :=_gbae .(*_ac .PdfObjectName );_bbbgg {if *_fdac !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _bgea ,nil ;};_cfcc ,_fbdag :=_gbae .(*_ac .PdfObjectArray );if !_fbdag {_gd .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",_gbae );
|
||
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _cfcc .Len ()!=1&&_cfcc .Len ()!=2{_gd .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",_cfcc );
|
||
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_gbae =_cfcc .Get (0);if _gbga ,_ccad :=_gbae .(*_ac .PdfObjectName );_ccad {if *_gbga !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_gd .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",_gbga );
|
||
return nil ,_d .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _cfcc .Len ()> 1{_gbae =_cfcc .Get (1);_gbae =_ac .TraceToDirectObject (_gbae );_dfbfeb ,_fceb :=NewPdfColorspaceFromPdfObject (_gbae );if _fceb !=nil {return nil ,_fceb ;
|
||
};_bgea .UnderlyingCS =_dfbfeb ;};_gd .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",_bgea .UnderlyingCS );
|
||
return _bgea ,nil ;};func _fbfdb ()string {return _gd .Version };
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_dabgb *PdfPageResources )GetXObjectImageByName (keyName _ac .PdfObjectName )(*XObjectImage ,error ){_acecf ,_dggd :=_dabgb .GetXObjectByName (keyName );if _acecf ==nil {return nil ,nil ;};if _dggd !=XObjectTypeImage {return nil ,_af .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_fafcg ,_dggf :=NewXObjectImageFromStream (_acecf );if _dggf !=nil {return nil ,_dggf ;};return _fafcg ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_abafa *PdfField )GetContainingPdfObject ()_ac .PdfObject {return _abafa ._bdde };
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_gcc _ac .PdfObject ;};
|
||
|
||
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
|
||
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_ceadg :=&PdfShadingPatternType3 {};_ceadg .Matrix =_ac .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_ceadg .PdfPattern =&PdfPattern {};_ceadg .PdfPattern .PatternType =int64 (*_ac .MakeInteger (2));
|
||
_ceadg .PdfPattern ._bfcc =_ceadg ;_ceadg .PdfPattern ._fddfb =_ac .MakeIndirectObject (_ac .MakeDict ());return _ceadg ;};type pdfFont interface{_fda .Font ;
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_ac .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};func _ccgdd (_affeb *_ac .PdfObjectDictionary )(*PdfShadingType3 ,error ){_egdab :=PdfShadingType3 {};_abdgc :=_affeb .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
|
||
if _abdgc ==nil {_gd .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 ;
|
||
};_dgebb ,_ceffg :=_abdgc .(*_ac .PdfObjectArray );if !_ceffg {_gd .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",_abdgc );return nil ,_ac .ErrTypeError ;
|
||
};if _dgebb .Len ()!=6{_gd .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",_dgebb .Len ());return nil ,ErrInvalidAttribute ;};_egdab .Coords =_dgebb ;
|
||
if _aecdd :=_affeb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_aecdd !=nil {_aecdd =_ac .TraceToDirectObject (_aecdd );_fcead ,_dfbdb :=_aecdd .(*_ac .PdfObjectArray );if !_dfbdb {_gd .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",_aecdd );
|
||
return nil ,_ac .ErrTypeError ;};_egdab .Domain =_fcead ;};_abdgc =_affeb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _abdgc ==nil {_gd .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 ;};_egdab .Function =[]PdfFunction {};if _ddfcf ,_efada :=_abdgc .(*_ac .PdfObjectArray );_efada {for _ ,_fgac :=range _ddfcf .Elements (){_fggbfd ,_cbfcb :=_gcddf (_fgac );if _cbfcb !=nil {_gd .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",_cbfcb );
|
||
return nil ,_cbfcb ;};_egdab .Function =append (_egdab .Function ,_fggbfd );};}else {_bedg ,_cbfce :=_gcddf (_abdgc );if _cbfce !=nil {_gd .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",_cbfce );
|
||
return nil ,_cbfce ;};_egdab .Function =append (_egdab .Function ,_bedg );};if _bdacfc :=_affeb .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bdacfc !=nil {_bdacfc =_ac .TraceToDirectObject (_bdacfc );_bbfb ,_dcfdb :=_bdacfc .(*_ac .PdfObjectArray );if !_dcfdb {_gd .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",_bdacfc );
|
||
return nil ,_ac .ErrTypeError ;};if _bbfb .Len ()!=2{_gd .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",_bbfb .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_egdab .Extend =_bbfb ;};return &_egdab ,nil ;};
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_gebee *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_cafaa ,_caaaf :=_ac .GetDict (_gebee ._cgfegd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_caaaf {_cafaa =_ac .MakeDict ();_gebee ._cgfegd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_cafaa );
|
||
};_eaaeb ,_caaaf :=_ac .GetDict (_cafaa .Get (_ac .PdfObjectName (extName )));if !_caaaf {_eaaeb =_ac .MakeDict ();_cafaa .Set (_ac .PdfObjectName (extName ),_eaaeb );};if _afedeb ,_ :=_ac .GetNameVal (_eaaeb .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_afedeb !=baseVersion {_eaaeb .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ac .MakeName (baseVersion ));};if _dgfdd ,_ :=_ac .GetIntVal (_eaaeb .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_dgfdd !=extLevel {_eaaeb .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ac .MakeInteger (int64 (extLevel )));};};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_babgf *PdfPageResources )GetXObjectFormByName (keyName _ac .PdfObjectName )(*XObjectForm ,error ){_ebafc ,_cgfgg :=_babgf .GetXObjectByName (keyName );if _ebafc ==nil {return nil ,nil ;};if _cgfgg !=XObjectTypeForm {return nil ,_af .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_fegac ,_ffab :=NewXObjectFormFromStream (_ebafc );if _ffab !=nil {return nil ,_ffab ;};return _fegac ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_bfdf *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};func (_baea *PdfAppender )addNewObject (_acdd _ac .PdfObject ){if _ ,_bdff :=_baea ._eddbd [_acdd ];!_bdff {_baea ._fgee =append (_baea ._fgee ,_acdd );_baea ._eddbd [_acdd ]=struct{}{};
|
||
};};
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _eece .Permissions ;Algorithm EncryptionAlgorithm ;};func (_fbfaeg *PdfPage )getParentResources ()(*PdfPageResources ,error ){_gdfea :=_fbfaeg .Parent ;for _gdfea !=nil {_efca ,_acef :=_ac .GetDict (_gdfea );if !_acef {_gd .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 ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _aaccf :=_efca .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_aaccf !=nil {_efbceg ,_bdaa :=_ac .GetDict (_aaccf );
|
||
if !_bdaa {return nil ,_af .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_fgdgg ,_fdabb :=NewPdfPageResourcesFromDict (_efbceg );if _fdabb !=nil {return nil ,_fdabb ;};return _fgdgg ,nil ;
|
||
};_gdfea =_efca .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_fbdeb *PdfPageResources )ToPdfObject ()_ac .PdfObject {_aeaga :=_fbdeb ._ccggg ;_aeaga .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fbdeb .ExtGState );if _fbdeb ._bdcee !=nil {_fbdeb .ColorSpace =_fbdeb ._bdcee .ToPdfObject ();};
|
||
_aeaga .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fbdeb .ColorSpace );_aeaga .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_fbdeb .Pattern );_aeaga .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fbdeb .Shading );
|
||
_aeaga .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_fbdeb .XObject );_aeaga .SetIfNotNil ("\u0046\u006f\u006e\u0074",_fbdeb .Font );_aeaga .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_fbdeb .ProcSet );_aeaga .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_fbdeb .Properties );
|
||
return _aeaga ;};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_aaaec ,_ccga :=_fda .NewStdFontByName (HelveticaName );if !_ccga {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");
|
||
};_gbcaf :=_fcbgg (_aaaec );return &PdfFont {_gegb :&_gbcaf };};
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _ac .PdfObject ;PreserveRB _ac .PdfObject ;};
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_aagbc *PdfPattern )GetContainingPdfObject ()_ac .PdfObject {return _aagbc ._fddfb };
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_dffff *Image )ToGoImage ()(_ad .Image ,error ){_gd .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_fagba ,_ddedc :=_ed .NewImage (int (_dffff .Width ),int (_dffff .Height ),int (_dffff .BitsPerComponent ),_dffff .ColorComponents ,_dffff .Data ,_dffff ._ebga ,_dffff ._gffd );
|
||
if _ddedc !=nil {return nil ,_ddedc ;};return _fagba ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_dgef *PdfColorDeviceGray )ToInteger (bits int )uint32 {_eggb :=_da .Pow (2,float64 (bits ))-1;return uint32 (_eggb *_dgef .Val ());};
|
||
|
||
// 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 ;
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_aeba *PdfPage )GetPageDict ()*_ac .PdfObjectDictionary {_bbdba :=_aeba ._egcd ;_bbdba .Clear ();_bbdba .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0050\u0061\u0067\u0065"));_bbdba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_aeba .Parent );
|
||
if _aeba .LastModified !=nil {_bbdba .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_aeba .LastModified .ToPdfObject ());};if _aeba .Resources !=nil {_bbdba .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_aeba .Resources .ToPdfObject ());
|
||
};if _aeba .CropBox !=nil {_bbdba .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_aeba .CropBox .ToPdfObject ());};if _aeba .MediaBox !=nil {_bbdba .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_aeba .MediaBox .ToPdfObject ());};if _aeba .BleedBox !=nil {_bbdba .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_aeba .BleedBox .ToPdfObject ());
|
||
};if _aeba .TrimBox !=nil {_bbdba .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_aeba .TrimBox .ToPdfObject ());};if _aeba .ArtBox !=nil {_bbdba .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_aeba .ArtBox .ToPdfObject ());};_bbdba .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_aeba .BoxColorInfo );
|
||
_bbdba .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_aeba .Contents );if _aeba .Rotate !=nil {_bbdba .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ac .MakeInteger (*_aeba .Rotate ));};_bbdba .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_aeba .Group );
|
||
_bbdba .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_aeba .Thumb );_bbdba .SetIfNotNil ("\u0042",_aeba .B );_bbdba .SetIfNotNil ("\u0044\u0075\u0072",_aeba .Dur );_bbdba .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_aeba .Trans );_bbdba .SetIfNotNil ("\u0041\u0041",_aeba .AA );
|
||
_bbdba .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_aeba .Metadata );_bbdba .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_aeba .PieceInfo );_bbdba .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_aeba .StructParents );
|
||
_bbdba .SetIfNotNil ("\u0049\u0044",_aeba .ID );_bbdba .SetIfNotNil ("\u0050\u005a",_aeba .PZ );_bbdba .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_aeba .SeparationInfo );_bbdba .SetIfNotNil ("\u0054\u0061\u0062\u0073",_aeba .Tabs );
|
||
_bbdba .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_aeba .TemplateInstantiated );_bbdba .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_aeba .PresSteps );_bbdba .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_aeba .UserUnit );
|
||
_bbdba .SetIfNotNil ("\u0056\u0050",_aeba .VP );if _aeba ._ceca !=nil {_ddffa :=_ac .MakeArray ();for _ ,_baca :=range _aeba ._ceca {if _adgag :=_baca .GetContext ();_adgag !=nil {_ddffa .Append (_adgag .ToPdfObject ());}else {_ddffa .Append (_baca .ToPdfObject ());
|
||
};};if _ddffa .Len ()> 0{_bbdba .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_ddffa );};}else if _aeba .Annots !=nil {_bbdba .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_aeba .Annots );};return _bbdba ;};func (_fadbd *PdfWriter )hasObject (_ebfdc _ac .PdfObject )bool {_ ,_aeccb :=_fadbd ._agbff [_ebfdc ];
|
||
return _aeccb ;};
|
||
|
||
// 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"`;};
|
||
|
||
// GetCatalogMarkInfo gets catalog MarkInfo object.
|
||
func (_cdgba *PdfReader )GetCatalogMarkInfo ()(_ac .PdfObject ,bool ){if _cdgba ._bdfc ==nil {return nil ,false ;};_eefcc :=_cdgba ._bdfc .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _eefcc ,_eefcc !=nil ;};
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_ggcd *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_gd .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_gd .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 );
|
||
_gd .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_gd .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_cfc ,_ddfc :=_ed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ebga ,img ._gffd );if _ddfc !=nil {return Image {},_ddfc ;};_ccaa ,_ddfc :=_ed .NRGBAConverter .Convert (_cfc );if _ddfc !=nil {return Image {},_ddfc ;
|
||
};return _affb (_ccaa .Base ()),nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_eecc *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func (_dfcff *PdfWriter )setWriter (_aabfg _adc .Writer ){_dfcff ._edabb =_dfcff ._deff ;_dfcff ._abad =_b .NewWriter (_aabfg );};
|
||
|
||
// 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 _adc .ReadSeeker )(*PdfReader ,error ){const _ffgec ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _gaada (rs ,&ReaderOpts {LazyLoad :true },false ,_ffgec );
|
||
};
|
||
|
||
// 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 *_ac .PdfParser ;DiffPolicy _ca .DiffPolicy ;};
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_ffbeg *PdfField )ToPdfObject ()_ac .PdfObject {_gbece :=_ffbeg ._bdde ;_dfcbb :=_gbece .PdfObject .(*_ac .PdfObjectDictionary );_eage :=_ac .MakeArray ();for _ ,_dcfb :=range _ffbeg .Kids {_eage .Append (_dcfb .ToPdfObject ());};for _ ,_agdc :=range _ffbeg .Annotations {if _agdc ._fegd !=_ffbeg ._bdde {_eage .Append (_agdc .GetContext ().ToPdfObject ());
|
||
};};if _ffbeg .Parent !=nil {_dfcbb .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ffbeg .Parent .GetContainingPdfObject ());};if _eage .Len ()> 0{_dfcbb .Set ("\u004b\u0069\u0064\u0073",_eage );};_dfcbb .SetIfNotNil ("\u0046\u0054",_ffbeg .FT );
|
||
_dfcbb .SetIfNotNil ("\u0054",_ffbeg .T );_dfcbb .SetIfNotNil ("\u0054\u0055",_ffbeg .TU );_dfcbb .SetIfNotNil ("\u0054\u004d",_ffbeg .TM );_dfcbb .SetIfNotNil ("\u0046\u0066",_ffbeg .Ff );_dfcbb .SetIfNotNil ("\u0056",_ffbeg .V );_dfcbb .SetIfNotNil ("\u0044\u0056",_ffbeg .DV );
|
||
_dfcbb .SetIfNotNil ("\u0041\u0041",_ffbeg .AA );if _ffbeg .VariableText !=nil {_dfcbb .SetIfNotNil ("\u0044\u0041",_ffbeg .VariableText .DA );_dfcbb .SetIfNotNil ("\u0051",_ffbeg .VariableText .Q );_dfcbb .SetIfNotNil ("\u0044\u0053",_ffbeg .VariableText .DS );
|
||
_dfcbb .SetIfNotNil ("\u0052\u0056",_ffbeg .VariableText .RV );};return _gbece ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_cagbg *PdfOutline )GetContainingPdfObject ()_ac .PdfObject {return _cagbg ._eggfe };
|
||
|
||
// 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 (_fdbba *LTV )Enable (sig *PdfSignature ,extraCerts []*_fc .Certificate )error {if _cdbeb :=_fdbba .validateSig (sig );_cdbeb !=nil {return _cdbeb ;};_dabdd ,_gcafb :=_fdbba .generateVRIKey (sig );if _gcafb !=nil {return _gcafb ;};if _ ,_cabad :=_fdbba ._fdadg .VRI [_dabdd ];
|
||
_cabad &&_fdbba .SkipExisting {return nil ;};_fbfde ,_gcafb :=sig .GetCerts ();if _gcafb !=nil {return _gcafb ;};return _fdbba .enable (_fbfde ,extraCerts ,_dabdd );};func (_fbbb *PdfAnnotationMarkup )appendToPdfDictionary (_abg *_ac .PdfObjectDictionary ){_abg .SetIfNotNil ("\u0054",_fbbb .T );
|
||
if _fbbb .Popup !=nil {_abg .Set ("\u0050\u006f\u0070u\u0070",_fbbb .Popup .ToPdfObject ());};_abg .SetIfNotNil ("\u0043\u0041",_fbbb .CA );_abg .SetIfNotNil ("\u0052\u0043",_fbbb .RC );_abg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_fbbb .CreationDate );
|
||
_abg .SetIfNotNil ("\u0049\u0052\u0054",_fbbb .IRT );_abg .SetIfNotNil ("\u0053\u0075\u0062\u006a",_fbbb .Subj );_abg .SetIfNotNil ("\u0052\u0054",_fbbb .RT );_abg .SetIfNotNil ("\u0049\u0054",_fbbb .IT );_abg .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_fbbb .ExData );
|
||
};
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_ffecb *PdfRectangle )Height ()float64 {return _da .Abs (_ffecb .Ury -_ffecb .Lly )};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ac .PdfObject ;Mac _ac .PdfObject ;Unix _ac .PdfObject ;NewWindow _ac .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_cgge *DSS )ToPdfObject ()_ac .PdfObject {_edff :=_cgge ._gfed .PdfObject .(*_ac .PdfObjectDictionary );_edff .Clear ();_dedc :=_ac .MakeDict ();for _gacgc ,_afdb :=range _cgge .VRI {_dedc .Set (*_ac .MakeName (_gacgc ),_afdb .ToPdfObject ());};_edff .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_ccae (_cgge .Certs ));
|
||
_edff .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_ccae (_cgge .OCSPs ));_edff .SetIfNotNil ("\u0043\u0052\u004c\u0073",_ccae (_cgge .CRLs ));_edff .Set ("\u0056\u0052\u0049",_dedc );return _cgge ._gfed ;};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_dbbe :=NewPdfAnnotation ();_gdfc :=&PdfAnnotationWidget {};_gdfc .PdfAnnotation =_dbbe ;_dbbe .SetContext (_gdfc );return _gdfc ;};
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_fecc *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_gdce :=_cg .NewReader (img .getBase ());_gaaf :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_fecc .AlternateSpace .GetNumComponents (),nil ,img ._ebga ,nil );
|
||
_aaac :=_cg .NewWriter (_gaaf );_efacd :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_gd .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");
|
||
_gd .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_fecc .TintTransform );_gdbf :=_fecc .AlternateSpace .DecodeArray ();var (_feaad uint32 ;_afdg error ;);for {_feaad ,_afdg =_gdce .ReadSample ();
|
||
if _afdg ==_adc .EOF {break ;};if _afdg !=nil {return img ,_afdg ;};_eeda :=float64 (_feaad )/_efacd ;_gaad ,_gfgda :=_fecc .TintTransform .Evaluate ([]float64 {_eeda });if _gfgda !=nil {return img ,_gfgda ;};for _daca ,_fbga :=range _gaad {_bcdb :=_ed .LinearInterpolate (_fbga ,_gdbf [_daca *2],_gdbf [_daca *2+1],0,1);
|
||
if _gfgda =_aaac .WriteSample (uint32 (_bcdb *_efacd ));_gfgda !=nil {return img ,_gfgda ;};};};return _fecc .AlternateSpace .ImageToRGB (_affb (&_gaaf ));};func _agfef (_gdgdc *_ac .PdfObjectDictionary ){_afec ,_baed :=_ac .GetArray (_gdgdc .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));
|
||
_bdagb ,_begb :=_ac .GetIntVal (_gdgdc .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));_ccfe ,_dbcg :=_ac .GetIntVal (_gdgdc .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _baed &&_begb &&_dbcg {_bbcdc :=_afec .Len ();if _bbcdc !=_ccfe -_bdagb +1{_gd .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",_bbcdc ,_ccfe );
|
||
_eedcd :=_ac .PdfObjectInteger (_bdagb +_bbcdc -1);_gdgdc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_eedcd );};};};func (_eded *PdfReader )newPdfAnnotationSquigglyFromDict (_dafd *_ac .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_deac :=PdfAnnotationSquiggly {};
|
||
_bagb ,_gce :=_eded .newPdfAnnotationMarkupFromDict (_dafd );if _gce !=nil {return nil ,_gce ;};_deac .PdfAnnotationMarkup =_bagb ;_deac .QuadPoints =_dafd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_deac ,nil ;};
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_ccgda :=appender .Reader .DSS ;if _ccgda ==nil {_ccgda =NewDSS ();};if _ffeg :=_ccgda .generateHashMaps ();_ffeg !=nil {return nil ,_ffeg ;};return <V {CertClient :_dc .NewCertClient (),OCSPClient :_dc .NewOCSPClient (),CRLClient :_dc .NewCRLClient (),SkipExisting :true ,_bcbad :appender ,_fdadg :_ccgda },nil ;
|
||
};
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ac .PdfObject ;Movie _ac .PdfObject ;A _ac .PdfObject ;};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ac .PdfObject ;};
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ac .PdfObject ;};func (_facc *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};func (_bggf *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _bggf ._eebeg .GetCrypter ()!=nil &&!_bggf ._eebeg .IsAuthenticated (){return nil ,_d .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");
|
||
};_eaccc :=_bggf ._bdfc ;_ecga :=_eaccc .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _ecga ==nil {return nil ,nil ;};_dcadfg ,_fbfdgg :=_ac .GetIndirect (_ecga );_ecga =_ac .TraceToDirectObject (_ecga );if _ac .IsNullObject (_ecga ){_gd .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 ;};_ebgaf ,_fedbb :=_ac .GetDict (_ecga );if !_fedbb {_gd .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ecga );_gd .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_d .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_ecga );};_gd .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_gd .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 !_bggf ._dfgg {_gffca :=_bggf .traverseObjectData (_ebgaf );
|
||
if _gffca !=nil {_gd .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",_gffca );
|
||
return nil ,_gffca ;};};_dfddf ,_fdce :=_bggf .newPdfAcroFormFromDict (_dcadfg ,_ebgaf );if _fdce !=nil {return nil ,_fdce ;};_dfddf ._dagc =!_fbfdgg ;return _dfddf ,nil ;};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ac .PdfObject ;Flags _ac .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ggfaa *PdfFilespec )ToPdfObject ()_ac .PdfObject {_dege :=_ggfaa .getDict ();_dege .Clear ();_dege .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_dege .SetIfNotNil ("\u0046\u0053",_ggfaa .FS );
|
||
_dege .SetIfNotNil ("\u0046",_ggfaa .F );_dege .SetIfNotNil ("\u0055\u0046",_ggfaa .UF );_dege .SetIfNotNil ("\u0044\u004f\u0053",_ggfaa .DOS );_dege .SetIfNotNil ("\u004d\u0061\u0063",_ggfaa .Mac );_dege .SetIfNotNil ("\u0055\u006e\u0069\u0078",_ggfaa .Unix );
|
||
_dege .SetIfNotNil ("\u0049\u0044",_ggfaa .ID );_dege .SetIfNotNil ("\u0056",_ggfaa .V );_dege .SetIfNotNil ("\u0045\u0046",_ggfaa .EF );_dege .SetIfNotNil ("\u0052\u0046",_ggfaa .RF );_dege .SetIfNotNil ("\u0044\u0065\u0073\u0063",_ggfaa .Desc );_dege .SetIfNotNil ("\u0043\u0049",_ggfaa .CI );
|
||
return _ggfaa ._fege ;};
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_faggg *PdfWriter )SetOptimizer (optimizer Optimizer ){_faggg ._bddgd =optimizer };
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_fcbbe *PdfShadingType2 )ToPdfObject ()_ac .PdfObject {_fcbbe .PdfShading .ToPdfObject ();_cbceb ,_ffaaff :=_fcbbe .getShadingDict ();if _ffaaff !=nil {_gd .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 _cbceb ==nil {_gd .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _fcbbe .Coords !=nil {_cbceb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_fcbbe .Coords );
|
||
};if _fcbbe .Domain !=nil {_cbceb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fcbbe .Domain );};if _fcbbe .Function !=nil {if len (_fcbbe .Function )==1{_cbceb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fcbbe .Function [0].ToPdfObject ());
|
||
}else {_ecada :=_ac .MakeArray ();for _ ,_eafaa :=range _fcbbe .Function {_ecada .Append (_eafaa .ToPdfObject ());};_cbceb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_ecada );};};if _fcbbe .Extend !=nil {_cbceb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_fcbbe .Extend );
|
||
};return _fcbbe ._dffbg ;};
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ac .PdfObject ;};
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_bdde :_ac .MakeIndirectObject (_ac .MakeDict ())}};
|
||
|
||
// GetDocMDPPermission returns the DocMDP level of the restrictions
|
||
func (_adgdd *PdfSignature )GetDocMDPPermission ()(_ca .DocMDPPermission ,bool ){for _ ,_fdec :=range _adgdd .Reference .Elements (){if _dbgfd ,_ecdfc :=_ac .GetDict (_fdec );_ecdfc {if _aebcca ,_dgcdb :=_ac .GetNameVal (_dbgfd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
_dgcdb &&_aebcca =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _abeddc ,_gebgc :=_ac .GetDict (_dbgfd .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_gebgc {if P ,_cdeff :=_ac .GetIntVal (_abeddc .Get ("\u0050"));
|
||
_cdeff {return _ca .DocMDPPermission (P ),true ;};};};};};return 0,false ;};
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_cddb *PdfShading )GetContext ()PdfModel {return _cddb ._bfga };
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_agg *PdfAnnotationLink )SetAction (action *PdfAction ){_agg ._abaf =action ;if action ==nil {_agg .A =nil ;};};func (_dage *pdfFontType0 )baseFields ()*fontCommon {return &_dage .fontCommon };func (_dbggc Image )getBase ()_ed .ImageBase {return _ed .NewImageBase (int (_dbggc .Width ),int (_dbggc .Height ),int (_dbggc .BitsPerComponent ),_dbggc .ColorComponents ,_dbggc .Data ,_dbggc ._ebga ,_dbggc ._gffd );
|
||
};func (_eecfd *pdfFontSimple )getFontEncoding ()(_caaba string ,_fceff map[_gf .CharCode ]_gf .GlyphName ,_bcfe error ){_caaba ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _bcbgge ,_edaa :=_dcagc [_eecfd ._abab ];
|
||
_edaa {_caaba =_bcbgge ;}else if _eecfd .fontFlags ()&_feaae !=0{for _cfgdf ,_dgfbd :=range _dcagc {if _fg .Contains (_eecfd ._abab ,_cfgdf ){_caaba =_dgfbd ;break ;};};};if _eecfd .Encoding ==nil {return _caaba ,nil ,nil ;};switch _ceacc :=_eecfd .Encoding .(type ){case *_ac .PdfObjectName :return string (*_ceacc ),nil ,nil ;
|
||
case *_ac .PdfObjectDictionary :_cedba ,_cfba :=_ac .GetName (_ceacc .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _cfba {_caaba =_cedba .String ();};if _bdacf :=_ceacc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");
|
||
_bdacf !=nil {_gagg ,_gcbce :=_ac .GetArray (_bdacf );if !_gcbce {_gd .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",_ceacc ,_ceacc .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_ac .ErrTypeError ;};_fceff ,_bcfe =_gf .FromFontDifferences (_gagg );};return _caaba ,_fceff ,_bcfe ;default:_gd .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",_eecfd .Encoding ,_eecfd .Encoding );
|
||
return "",nil ,_ac .ErrTypeError ;};};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_gfbdf *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _gfbdf ._bfcc .(*PdfTilingPattern );};
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _ac .PdfObject ;T _ac .PdfObject ;Operation _ac .PdfObject ;};func _cfggcg (_cfcbg *_ac .PdfObjectDictionary )(*PdfShadingType2 ,error ){_cefff :=PdfShadingType2 {};_cbfcd :=_cfcbg .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
|
||
if _cbfcd ==nil {_gd .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 ;
|
||
};_bbcee ,_baee :=_cbfcd .(*_ac .PdfObjectArray );if !_baee {_gd .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",_cbfcd );return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _bbcee .Len ()!=4{_gd .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",_bbcee .Len ());return nil ,_af .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");
|
||
};_cefff .Coords =_bbcee ;if _cggef :=_cfcbg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cggef !=nil {_cggef =_ac .TraceToDirectObject (_cggef );_ageee ,_dbgea :=_cggef .(*_ac .PdfObjectArray );if !_dbgea {_gd .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",_cggef );
|
||
return nil ,_af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cefff .Domain =_ageee ;};_cbfcd =_cfcbg .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _cbfcd ==nil {_gd .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 ;};_cefff .Function =[]PdfFunction {};if _fbbgca ,_cafab :=_cbfcd .(*_ac .PdfObjectArray );_cafab {for _ ,_gcbd :=range _fbbgca .Elements (){_adbed ,_bgge :=_gcddf (_gcbd );if _bgge !=nil {_gd .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",_bgge );
|
||
return nil ,_bgge ;};_cefff .Function =append (_cefff .Function ,_adbed );};}else {_fbegg ,_bfbfce :=_gcddf (_cbfcd );if _bfbfce !=nil {_gd .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",_bfbfce );
|
||
return nil ,_bfbfce ;};_cefff .Function =append (_cefff .Function ,_fbegg );};if _ffed :=_cfcbg .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_ffed !=nil {_ffed =_ac .TraceToDirectObject (_ffed );_efce ,_fdfcg :=_ffed .(*_ac .PdfObjectArray );if !_fdfcg {_gd .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",_ffed );
|
||
return nil ,_ac .ErrTypeError ;};if _efce .Len ()!=2{_gd .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",_efce .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_cefff .Extend =_efce ;};return &_cefff ,nil ;};var _edfda =false ;
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_ffgc *PdfSignature )SetDate (date _e .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_ffgc .M =_ac .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_feb *PdfActionHide )ToPdfObject ()_ac .PdfObject {_feb .PdfAction .ToPdfObject ();_geg :=_feb ._eef ;_feg :=_geg .PdfObject .(*_ac .PdfObjectDictionary );_feg .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeHide )));_feg .SetIfNotNil ("\u0054",_feb .T );
|
||
_feg .SetIfNotNil ("\u0048",_feb .H );return _geg ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_afea *pdfCIDFontType0 )ToPdfObject ()_ac .PdfObject {return _ac .MakeNull ()};
|
||
|
||
// 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 (_bccfe *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_abcae :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_cada ,_gbgg :=_bccfe .GetNumPages ();if _gbgg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gbgg );
|
||
return nil ,_gbgg ;};for _eabf :=1;_eabf <=_cada ;_eabf ++{_gafb ,_dgcfb :=_bccfe .GetPage (_eabf );if _dgcfb !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgcfb );return nil ,_dgcfb ;};if opts .PageProcessCallback !=nil {_dgcfb =opts .PageProcessCallback (_eabf ,_gafb );
|
||
if _dgcfb !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgcfb );return nil ,_dgcfb ;};}else if opts .PageCallback !=nil {opts .PageCallback (_eabf ,_gafb );};_dgcfb =_abcae .AddPage (_gafb );if _dgcfb !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgcfb );
|
||
return nil ,_dgcfb ;};};_abcae ._gdfdc =_bccfe .PdfVersion ();if !opts .SkipInfo {_aaacbe ,_gagd :=_bccfe .GetPdfInfo ();if _gagd !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gagd );}else {_abcae ._aefadb .PdfObject =_aaacbe .ToPdfObject ();
|
||
};};if !opts .SkipMetadata {if _abdac :=_bccfe ._bdfc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_abdac !=nil {if _gaabb :=_abcae .SetCatalogMetadata (_abdac );_gaabb !=nil {return nil ,_gaabb ;};};};if !opts .SkipAcroForm {_bafdd :=_abcae .SetForms (_bccfe .AcroForm );
|
||
if _bafdd !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bafdd );return nil ,_bafdd ;};};if !opts .SkipOutlines {_abcae .AddOutlineTree (_bccfe .GetOutlineTree ());};if !opts .SkipOCProperties {_dfgc ,_dbaa :=_bccfe .GetOCProperties ();
|
||
if _dbaa !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbaa );}else {_dbaa =_abcae .SetOCProperties (_dfgc );if _dbaa !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbaa );};};};if !opts .SkipPageLabels {_edfce ,_gaafe :=_bccfe .GetPageLabels ();
|
||
if _gaafe !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaafe );}else {_gaafe =_abcae .SetPageLabels (_edfce );if _gaafe !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaafe );};};};if !opts .SkipNamedDests {_efadb ,_ffggc :=_bccfe .GetNamedDestinations ();
|
||
if _ffggc !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ffggc );}else {_ffggc =_abcae .SetNamedDestinations (_efadb );if _ffggc !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ffggc );};};};if !opts .SkipNameDictionary {_bcdf ,_debebg :=_bccfe .GetNameDictionary ();
|
||
if _debebg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_debebg );}else {_debebg =_abcae .SetNameDictionary (_bcdf );if _debebg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_debebg );};};};if !opts .SkipRotation &&_bccfe .Rotate !=nil {if _dbaceg :=_abcae .SetRotation (*_bccfe .Rotate );
|
||
_dbaceg !=nil {_gd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dbaceg );};};return &_abcae ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_efdcd *PdfShadingPatternType3 )ToPdfObject ()_ac .PdfObject {_efdcd .PdfPattern .ToPdfObject ();_eccff :=_efdcd .getDict ();if _efdcd .Shading !=nil {_eccff .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_efdcd .Shading .ToPdfObject ());};if _efdcd .Matrix !=nil {_eccff .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_efdcd .Matrix );
|
||
};if _efdcd .ExtGState !=nil {_eccff .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_efdcd .ExtGState );};return _efdcd ._fddfb ;};
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_ecaf *PdfAcroForm )GetContainingPdfObject ()_ac .PdfObject {return _ecaf ._abecf };
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_dccfcc *PdfPage )GetAllContentStreams ()(string ,error ){_efegc ,_ffcd :=_dccfcc .GetContentStreams ();if _ffcd !=nil {return "",_ffcd ;};return _fg .Join (_efegc ,"\u0020"),nil ;};
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_cgbfg *PdfFont )IsCID ()bool {return _cgbfg .baseFields ().isCIDFont ()};func _gfcbd (_aeagd *[]*PdfField ,_gegbb FieldFilterFunc ,_fcac bool )[]*PdfField {if _aeagd ==nil {return nil ;};_daec :=*_aeagd ;if len (*_aeagd )==0{return nil ;};_bgca :=_daec [:0];
|
||
if _gegbb ==nil {_gegbb =func (*PdfField )bool {return true };};var _dbce []*PdfField ;for _ ,_dgeba :=range _daec {_cdbe :=_gegbb (_dgeba );if _cdbe {_dbce =append (_dbce ,_dgeba );if len (_dgeba .Kids )> 0{_dbce =append (_dbce ,_gfcbd (&_dgeba .Kids ,_gegbb ,_fcac )...);
|
||
};};if !_fcac ||!_cdbe ||len (_dgeba .Kids )> 0{_bgca =append (_bgca ,_dgeba );};};*_aeagd =_bgca ;return _dbce ;};
|
||
|
||
// 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 (_fcdb *PdfAnnotationWidget )Field ()*PdfField {return _fcdb ._gdb };
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_beffd *PdfColorCalGray )GetNumComponents ()int {return 1};func _dagfca ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();if len (_gabba )> 0{return _gabba ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
|
||
};
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_ecgd *PdfColorDeviceCMYK )K ()float64 {return _ecgd [3]};func (_dcb *PdfReader )newPdfActionGotoRFromDict (_dad *_ac .PdfObjectDictionary )(*PdfActionGoToR ,error ){_dadf ,_aed :=_caec (_dad .Get ("\u0046"));if _aed !=nil {return nil ,_aed ;};return &PdfActionGoToR {D :_dad .Get ("\u0044"),NewWindow :_dad .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dadf },nil ;
|
||
};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_aeac :=PdfColorLab {l ,a ,b };return &_aeac };
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;BitsPerFlag *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};func _adfff (_bfad *_ac .PdfObjectDictionary )(*PdfShadingType4 ,error ){_abgbge :=PdfShadingType4 {};
|
||
_bbegb :=_bfad .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _bbegb ==nil {_gd .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 ;};_dccdd ,_bcggd :=_bbegb .(*_ac .PdfObjectInteger );if !_bcggd {_gd .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",_bbegb );
|
||
return nil ,_ac .ErrTypeError ;};_abgbge .BitsPerCoordinate =_dccdd ;_bbegb =_bfad .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bbegb ==nil {_gd .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 ;};_dccdd ,_bcggd =_bbegb .(*_ac .PdfObjectInteger );if !_bcggd {_gd .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",_bbegb );
|
||
return nil ,_ac .ErrTypeError ;};_abgbge .BitsPerComponent =_dccdd ;_bbegb =_bfad .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _bbegb ==nil {_gd .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 ;};_dccdd ,_bcggd =_bbegb .(*_ac .PdfObjectInteger );if !_bcggd {_gd .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",_bbegb );
|
||
return nil ,_ac .ErrTypeError ;};_abgbge .BitsPerComponent =_dccdd ;_bbegb =_bfad .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bbegb ==nil {_gd .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 ;};_gadgc ,_bcggd :=_bbegb .(*_ac .PdfObjectArray );if !_bcggd {_gd .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",_bbegb );
|
||
return nil ,_ac .ErrTypeError ;};_abgbge .Decode =_gadgc ;_bbegb =_bfad .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bbegb ==nil {_gd .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 ;};_abgbge .Function =[]PdfFunction {};if _cdaedd ,_ecaaa :=_bbegb .(*_ac .PdfObjectArray );_ecaaa {for _ ,_abeb :=range _cdaedd .Elements (){_cfdgd ,_ecgg :=_gcddf (_abeb );if _ecgg !=nil {_gd .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",_ecgg );
|
||
return nil ,_ecgg ;};_abgbge .Function =append (_abgbge .Function ,_cfdgd );};}else {_ffcafg ,_dcgde :=_gcddf (_bbegb );if _dcgde !=nil {_gd .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",_dcgde );
|
||
return nil ,_dcgde ;};_abgbge .Function =append (_abgbge .Function ,_ffcafg );};return &_abgbge ,nil ;};func _ggec (_dcfd *_ac .PdfObjectDictionary )*VRI {_fdgd ,_ :=_ac .GetString (_dcfd .Get ("\u0054\u0055"));_bdbf ,_ :=_ac .GetString (_dcfd .Get ("\u0054\u0053"));
|
||
return &VRI {Cert :_bcfac (_dcfd .Get ("\u0043\u0065\u0072\u0074")),OCSP :_bcfac (_dcfd .Get ("\u004f\u0043\u0053\u0050")),CRL :_bcfac (_dcfd .Get ("\u0043\u0052\u004c")),TU :_fdgd ,TS :_bdbf };};
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ac .PdfObject ;Sy _ac .PdfObject ;};func _feac ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _baggd };
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_affcb =producer };
|
||
|
||
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
|
||
func (_bgdcg *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _bgdcg ._eebeg .GetRevisionNumber ()==0{return nil ,_af .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 _cafae ,_ddaeg :=_bgdcg ._geega [_bgdcg ];_ddaeg {return _cafae ,nil ;};_edfae ,_affbd :=_bgdcg ._eebeg .GetPreviousRevisionReadSeeker ();if _affbd !=nil {return nil ,_affbd ;};_baaee ,_affbd :=_gaada (_edfae ,_bgdcg ._dcbgf ,_bgdcg ._agfbe ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
|
||
if _affbd !=nil {return nil ,_affbd ;};_bgdcg ._aedce [_bgdcg ._eebeg .GetRevisionNumber ()-1]=_baaee ;_bgdcg ._geega [_bgdcg ]=_baaee ;_baaee ._geega =_bgdcg ._geega ;return _baaee ,nil ;};func (_cgga *PdfReader )newPdfActionJavaScriptFromDict (_dfd *_ac .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_dfd .Get ("\u004a\u0053")},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 (_aeega *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _aeega .baseFields ()._bgbdc !=nil {return _aeega .baseFields ()._bgbdc ;};if _dadfg :=_aeega ._gegb .getFontDescriptor ();_dadfg !=nil {return _dadfg ;};_gd .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",_aeega );
|
||
return nil ;};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;BitsPerFlag *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_dfged *Outline )Insert (index uint ,item *OutlineItem ){_egcbc :=uint (len (_dfged .Entries ));if index > _egcbc {index =_egcbc ;};_dfged .Entries =append (_dfged .Entries [:index ],append ([]*OutlineItem {item },_dfged .Entries [index :]...)...);
|
||
};func (_gfcgb *LTV )getCerts (_fcebc []*_fc .Certificate )([][]byte ,error ){_efeeb :=make ([][]byte ,0,len (_fcebc ));for _ ,_cggae :=range _fcebc {_efeeb =append (_efeeb ,_cggae .Raw );};return _efeeb ,nil ;};
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;BitsPerFlag *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};func (_fbecg *LTV )enable (_cgfge ,_dfcgg []*_fc .Certificate ,_cfgac string )error {_bffc ,_ageec ,_gegacg :=_fbecg .buildCertChain (_cgfge ,_dfcgg );
|
||
if _gegacg !=nil {return _gegacg ;};_aegdd ,_gegacg :=_fbecg .getCerts (_bffc );if _gegacg !=nil {return _gegacg ;};var _gddgd ,_efbb [][]byte ;if _fbecg .OCSPClient !=nil {_gddgd ,_gegacg =_fbecg .getOCSPs (_bffc ,_ageec );if _gegacg !=nil {return _gegacg ;
|
||
};};if _fbecg .CRLClient !=nil {_efbb ,_gegacg =_fbecg .getCRLs (_bffc );if _gegacg !=nil {return _gegacg ;};};_dcdgf :=_fbecg ._fdadg ;_ggac ,_gegacg :=_dcdgf .addCerts (_aegdd );if _gegacg !=nil {return _gegacg ;};_gcfgb ,_gegacg :=_dcdgf .addOCSPs (_gddgd );
|
||
if _gegacg !=nil {return _gegacg ;};_gbaca ,_gegacg :=_dcdgf .addCRLs (_efbb );if _gegacg !=nil {return _gegacg ;};if _cfgac !=""{_dcdgf .VRI [_cfgac ]=&VRI {Cert :_ggac ,OCSP :_gcfgb ,CRL :_gbaca };};_fbecg ._bcbad .SetDSS (_dcdgf );return nil ;};
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_eacg PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _eacg ._gegb .getFontDescriptor (),nil ;};func (_dacd *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_abdc *PdfWriter )SetPageLabels (pageLabels _ac .PdfObject )error {if pageLabels ==nil {return nil ;};_gd .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");
|
||
_abdc ._cgfegd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _abdc .addObjects (pageLabels );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgaac *PdfAnnotationSound )ToPdfObject ()_ac .PdfObject {_bgaac .PdfAnnotation .ToPdfObject ();_bba :=_bgaac ._fegd ;_abed :=_bba .PdfObject .(*_ac .PdfObjectDictionary );_bgaac .PdfAnnotationMarkup .appendToPdfDictionary (_abed );_abed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_abed .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_bgaac .Sound );_abed .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bgaac .Name );return _bba ;};
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ac .PdfObject ;BS _ac .PdfObject ;};func (_feaba SignatureValidationResult )String ()string {var _bccca _fd .Buffer ;_bccca .WriteString (_d .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_feaba .Name ));
|
||
if _feaba .Date ._bfbe > 0{_bccca .WriteString (_d .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_feaba .Date .ToGoTime ().String ()));}else {_bccca .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_feaba .Reason )> 0{_bccca .WriteString (_d .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_feaba .Reason ));}else {_bccca .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
|
||
};if len (_feaba .Location )> 0{_bccca .WriteString (_d .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_feaba .Location ));}else {_bccca .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_feaba .ContactInfo )> 0{_bccca .WriteString (_d .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_feaba .ContactInfo ));}else {_bccca .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
|
||
};_bccca .WriteString (_d .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_feaba .Fields )));if _feaba .IsSigned {_bccca .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 {_bccca .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _feaba .IsVerified {_bccca .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 {_bccca .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 _feaba .IsTrusted {_bccca .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 {_bccca .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 !_feaba .GeneralizedTime .IsZero (){_bccca .WriteString (_d .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_feaba .GeneralizedTime .String ()));
|
||
};if _feaba .DiffResults !=nil {_bccca .WriteString (_d .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_feaba .DiffResults .IsPermitted ()));if len (_feaba .DiffResults .Warnings )> 0{_bccca .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");
|
||
for _ ,_edce :=range _feaba .DiffResults .Warnings {_bccca .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_edce ));};};if len (_feaba .DiffResults .Errors )> 0{_bccca .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");
|
||
for _ ,_egbbg :=range _feaba .DiffResults .Errors {_bccca .WriteString (_d .Sprintf ("\u0009\u0025\u0073\u000a",_egbbg ));};};};return _bccca .String ();};func _gddc (_gfcb *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_gfcb }};
|
||
|
||
// IsSimple returns true if `font` is a simple font.
|
||
func (_ccdgg *PdfFont )IsSimple ()bool {_ ,_egbfc :=_ccdgg ._gegb .(*pdfFontSimple );return _egbfc };var _ pdfFont =(*pdfFontType3 )(nil );type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};func (_beabc *PdfWriter )addObjects (_dgcfe _ac .PdfObject )error {_gd .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _aedfff ,_cadcg :=_dgcfe .(*_ac .PdfIndirectObject );
|
||
_cadcg {_gd .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_gd .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_dgcfe ,_aedfff );_gd .Log .Trace ("\u002d\u0020\u0025\u0073",_aedfff .PdfObject );if _beabc .addObject (_aedfff ){_efeec :=_beabc .addObjects (_aedfff .PdfObject );
|
||
if _efeec !=nil {return _efeec ;};};return nil ;};if _ccfda ,_caag :=_dgcfe .(*_ac .PdfObjectStream );_caag {_gd .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_gd .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_dgcfe ,_dgcfe );if _beabc .addObject (_ccfda ){_ecae :=_beabc .addObjects (_ccfda .PdfObjectDictionary );
|
||
if _ecae !=nil {return _ecae ;};};return nil ;};if _abbg ,_fbacge :=_dgcfe .(*_ac .PdfObjectDictionary );_fbacge {_gd .Log .Trace ("\u0044\u0069\u0063\u0074");_gd .Log .Trace ("\u002d\u0020\u0025\u0073",_dgcfe );for _ ,_ebbeb :=range _abbg .Keys (){_baeca :=_abbg .Get (_ebbeb );
|
||
if _faagf ,_baddfe :=_baeca .(*_ac .PdfObjectReference );_baddfe {_baeca =_faagf .Resolve ();_abbg .Set (_ebbeb ,_baeca );};if _ebbeb !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _gaece :=_beabc .addObjects (_baeca );_gaece !=nil {return _gaece ;};}else {if _ ,_cggea :=_baeca .(*_ac .PdfObjectNull );
|
||
_cggea {continue ;};if _aaeg :=_beabc .hasObject (_baeca );!_aaeg {_gd .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",_baeca ,_baeca ,_baeca );
|
||
_beabc ._fage [_baeca ]=append (_beabc ._fage [_baeca ],_abbg );};};};return nil ;};if _gcfad ,_afead :=_dgcfe .(*_ac .PdfObjectArray );_afead {_gd .Log .Trace ("\u0041\u0072\u0072a\u0079");_gd .Log .Trace ("\u002d\u0020\u0025\u0073",_dgcfe );if _gcfad ==nil {return _af .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _dgge ,_aafba :=range _gcfad .Elements (){if _fccd ,_bgbdcd :=_aafba .(*_ac .PdfObjectReference );_bgbdcd {_aafba =_fccd .Resolve ();_gcfad .Set (_dgge ,_aafba );};if _cfega :=_beabc .addObjects (_aafba );_cfega !=nil {return _cfega ;};};return nil ;
|
||
};if _ ,_bbefd :=_dgcfe .(*_ac .PdfObjectReference );_bbefd {_gd .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",_dgcfe );
|
||
return _af .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;
|
||
|
||
// 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 (_gdbge *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _gdbge .flattenFieldsWithOpts (allannots ,appgen ,nil );};
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_bffd *XObjectImage )GetContainingPdfObject ()_ac .PdfObject {return _bffd ._gfbdff };
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_bbgdc *PdfPageResources )GetPatternByName (keyName _ac .PdfObjectName )(*PdfPattern ,bool ){if _bbgdc .Pattern ==nil {return nil ,false ;};_fgagc ,_ecag :=_ac .TraceToDirectObject (_bbgdc .Pattern ).(*_ac .PdfObjectDictionary );if !_ecag {_gd .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",_bbgdc .Pattern );
|
||
return nil ,false ;};if _efde :=_fgagc .Get (keyName );_efde !=nil {_acefc ,_gbad :=_bbcfe (_efde );if _gbad !=nil {_gd .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",_gbad );
|
||
return nil ,false ;};return _acefc ,true ;};return nil ,false ;};
|
||
|
||
// 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 ){_gbbbd ,_beae :=_cd .ParsePdfTime (dateStr );if _beae !=nil {return PdfDate {},_beae ;};return NewPdfDateFromTime (_gbbbd );};
|
||
|
||
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
|
||
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_beeee :=&PdfColorPatternType3 {};return _beeee ;};
|
||
|
||
// 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 (_aebbf *PdfFont )CharcodesToStrings (charcodes []_gf .CharCode )([]string ,int ,int ){_cdaa :=_aebbf .baseFields ();_bbde :=make ([]string ,0,len (charcodes ));_cgagf :=0;_acgc :=_aebbf .Encoder ();_ecdc :=_cdaa ._acbbb !=nil &&_aebbf .IsSimple ()&&_aebbf .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_fg .Contains (_cdaa ._acbbb .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
|
||
if !_ecdc &&_acgc !=nil {switch _eedba :=_acgc .(type ){case _gf .SimpleEncoder :_cbfc :=_eedba .BaseName ();if _ ,_acdgf :=_dddg [_cbfc ];_acdgf {for _ ,_egefdb :=range charcodes {if _aeca ,_fefe :=_acgc .CharcodeToRune (_egefdb );_fefe {_bbde =append (_bbde ,string (_aeca ));
|
||
}else {_gd .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",_egefdb ,charcodes ,_cdaa .isCIDFont (),_aebbf ,_acgc );
|
||
_cgagf ++;_bbde =append (_bbde ,_eg .MissingCodeString );};};return _bbde ,len (_bbde ),_cgagf ;};};};for _ ,_cccf :=range charcodes {if _cdaa ._acbbb !=nil {if _afce ,_dgec :=_cdaa ._acbbb .CharcodeToUnicode (_eg .CharCode (_cccf ));_dgec {_bbde =append (_bbde ,_afce );
|
||
continue ;};};if _acgc !=nil {if _bfgeg ,_acdf :=_acgc .CharcodeToRune (_cccf );_acdf {_bbde =append (_bbde ,string (_bfgeg ));continue ;};};_gd .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",_cccf ,charcodes ,_cdaa .isCIDFont (),_aebbf ,_acgc );
|
||
_cgagf ++;_bbde =append (_bbde ,_eg .MissingCodeString );};if _cgagf !=0{_gd .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 ),_cgagf ,_aebbf );
|
||
};return _bbde ,len (_bbde ),_cgagf ;};
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_cgddge *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _cgddge ._bdgfa ==nil {_cgddge ._bdgfa =_bb .NewPSExecutor (_cgddge .Program );};var _abeae []_bb .PSObject ;for _ ,_eadee :=range xVec {_abeae =append (_abeae ,_bb .MakeReal (_eadee ));
|
||
};_abdff ,_gbgcg :=_cgddge ._bdgfa .Execute (_abeae );if _gbgcg !=nil {return nil ,_gbgcg ;};_cbbbd ,_gbgcg :=_bb .PSObjectArrayToFloat64Array (_abdff );if _gbgcg !=nil {return nil ,_gbgcg ;};return _cbbbd ,nil ;};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_fcde *OutlineItem )Insert (index uint ,item *OutlineItem ){_fbgcdf :=uint (len (_fcde .Entries ));if index > _fbgcdf {index =_fbgcdf ;};_fcde .Entries =append (_fcde .Entries [:index ],append ([]*OutlineItem {item },_fcde .Entries [index :]...)...);
|
||
};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_cgf PdfModel ;Rect _ac .PdfObject ;Contents _ac .PdfObject ;P _ac .PdfObject ;NM _ac .PdfObject ;M _ac .PdfObject ;F _ac .PdfObject ;AP _ac .PdfObject ;AS _ac .PdfObject ;Border _ac .PdfObject ;C _ac .PdfObject ;StructParent _ac .PdfObject ;
|
||
OC _ac .PdfObject ;_fegd *_ac .PdfIndirectObject ;};func _efcac ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _dccb };
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_gcaaba .Lock ();defer _gcaaba .Unlock ();_bffb =author };func (_gaceg *PdfWriter )writeObjectsInStreams (_agccc map[_ac .PdfObject ]bool )error {for _ ,_gaagf :=range _gaceg ._gdeaf {if _ggebgc :=_agccc [_gaagf ];_ggebgc {continue ;
|
||
};_cggga :=int64 (0);switch _cacdb :=_gaagf .(type ){case *_ac .PdfIndirectObject :_cggga =_cacdb .ObjectNumber ;case *_ac .PdfObjectStream :_cggga =_cacdb .ObjectNumber ;case *_ac .PdfObjectStreams :_cggga =_cacdb .ObjectNumber ;default:_gd .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",_gaagf );
|
||
return ErrTypeCheck ;};if _gaceg ._bggef !=nil &&_gaagf !=_gaceg ._ecgdb {_caca :=_gaceg ._bggef .Encrypt (_gaagf ,_cggga ,0);if _caca !=nil {_gd .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",_caca );
|
||
return _caca ;};};_gaceg .writeObject (int (_cggga ),_gaagf );};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fca *PdfActionNamed )ToPdfObject ()_ac .PdfObject {_fca .PdfAction .ToPdfObject ();_gea :=_fca ._eef ;_bga :=_gea .PdfObject .(*_ac .PdfObjectDictionary );_bga .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeNamed )));_bga .SetIfNotNil ("\u004e",_fca .N );
|
||
return _gea ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_ceeag *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// 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 (_cgcbb *LTV )EnableAll (extraCerts []*_fc .Certificate )error {_ceabf :=_cgcbb ._bcbad ._cbdcd .AcroForm ;for _ ,_becdf :=range _ceabf .AllFields (){_aebfe ,_ :=_becdf .GetContext ().(*PdfFieldSignature );if _aebfe ==nil {continue ;};_ggeea :=_aebfe .V ;
|
||
if _eegc :=_cgcbb .validateSig (_ggeea );_eegc !=nil {_gd .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",_eegc );
|
||
};if _gfce :=_cgcbb .Enable (_ggeea ,extraCerts );_gfce !=nil {return _gfce ;};};return nil ;};
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};func _acga (_bgebd _ac .PdfObject )(*_ac .PdfObjectDictionary ,*fontCommon ,error ){_bcece :=&fontCommon {};if _gedc ,_gdde :=_bgebd .(*_ac .PdfIndirectObject );_gdde {_bcece ._ccega =_gedc .ObjectNumber ;};_gdbe ,_adbcd :=_ac .GetDict (_bgebd );
|
||
if !_adbcd {_gd .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",_bgebd );
|
||
return nil ,nil ,ErrFontNotSupported ;};_fadfb ,_adbcd :=_ac .GetNameVal (_gdbe .Get ("\u0054\u0079\u0070\u0065"));if !_adbcd {_gd .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 _fadfb !="\u0046\u006f\u006e\u0074"{_gd .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.",_fadfb ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_ac .ErrTypeError ;};_adae ,_adbcd :=_ac .GetNameVal (_gdbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_adbcd {_gd .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 ;};_bcece ._efebg =_adae ;_dfbe ,_adbcd :=_ac .GetNameVal (_gdbe .Get ("\u004e\u0061\u006d\u0065"));if _adbcd {_bcece ._fgfd =_dfbe ;};_bgfed :=_gdbe .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _bgfed !=nil {_bcece ._babg =_ac .TraceToDirectObject (_bgfed );
|
||
_gafa ,_gabd :=_dgfc (_bcece ._babg ,_bcece );if _gabd !=nil {return _gdbe ,_bcece ,_gabd ;};_bcece ._acbbb =_gafa ;}else if _adae =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_adae =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_dgccd ,_aecab :=_eg .NewCIDSystemInfo (_gdbe .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _aecab !=nil {return _gdbe ,_bcece ,_aecab ;};_dgae :=_d .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_dgccd .Registry ,_dgccd .Ordering );if _eg .IsPredefinedCMap (_dgae ){_bcece ._acbbb ,_aecab =_eg .LoadPredefinedCMap (_dgae );
|
||
if _aecab !=nil {_gd .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",_dgae ,_aecab );
|
||
};};};_fgbgd :=_gdbe .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _fgbgd !=nil {_beece ,_dcbf :=_gabb (_fgbgd );if _dcbf !=nil {_gd .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",_dcbf );
|
||
return _gdbe ,_bcece ,_dcbf ;};_bcece ._bgbdc =_beece ;};if _adae !="\u0054\u0079\u0070e\u0033"{_cdac ,_ceae :=_ac .GetNameVal (_gdbe .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_ceae {_gd .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 _gdbe ,_bcece ,ErrRequiredAttributeMissing ;};_bcece ._abab =_cdac ;};return _gdbe ,_bcece ,nil ;};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_abagf *PdfReader )GetIndirectObjectByNumber (number int )(_ac .PdfObject ,error ){_gdcfc ,_gdeaa :=_abagf ._eebeg .LookupByNumber (number );return _gdcfc ,_gdeaa ;};
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _ac .PdfObject )(*PdfFont ,error ){return _eebe (fontObj ,true )};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aefa *PdfAnnotationPrinterMark )ToPdfObject ()_ac .PdfObject {_aefa .PdfAnnotation .ToPdfObject ();_cbdc :=_aefa ._fegd ;_effg :=_cbdc .PdfObject .(*_ac .PdfObjectDictionary );_effg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_effg .SetIfNotNil ("\u004d\u004e",_aefa .MN );return _cbdc ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_dbee *PdfColorDeviceCMYK )M ()float64 {return _dbee [1]};func (_ebdc *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _ebdc ._bgbdc };func (_eedg *Image )samplesAddPadding (_ebdg []uint32 )[]uint32 {_dgbfa :=_ed .BytesPerLine (int (_eedg .Width ),int (_eedg .BitsPerComponent ),_eedg .ColorComponents )*(8/int (_eedg .BitsPerComponent ));
|
||
_cega :=_dgbfa *int (_eedg .Height );if len (_ebdg )==_cega {return _ebdg ;};_faeff :=make ([]uint32 ,_cega );_cbbbc :=int (_eedg .Width )*_eedg .ColorComponents ;for _eaedb :=0;_eaedb < int (_eedg .Height );_eaedb ++{_bcbge :=_eaedb *int (_eedg .Width );
|
||
_cbagc :=_eaedb *_dgbfa ;for _cbca :=0;_cbca < _cbbbc ;_cbca ++{_faeff [_cbagc +_cbca ]=_ebdg [_bcbge +_cbca ];};};return _faeff ;};type pdfFontType0 struct{fontCommon ;_agcb *_ac .PdfIndirectObject ;_edfdd _gf .TextEncoder ;Encoding _ac .PdfObject ;DescendantFont *PdfFont ;
|
||
_gcaa *_eg .CMap ;};
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_aag :=NewPdfAction ();_ffg :=&PdfActionGoTo {};_ffg .PdfAction =_aag ;_aag .SetContext (_ffg );return _ffg ;};var ErrColorOutOfRange =_af .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
|
||
func (_agbgf *LTV )getCRLs (_ebbg []*_fc .Certificate )([][]byte ,error ){_cecc :=make ([][]byte ,0,len (_ebbg ));for _ ,_bacc :=range _ebbg {for _ ,_fgcee :=range _bacc .CRLDistributionPoints {if _agbgf .CertClient .IsCA (_bacc ){continue ;};_dggc ,_bgeae :=_agbgf .CRLClient .MakeRequest (_fgcee ,_bacc );
|
||
if _bgeae !=nil {_gd .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",_bgeae );continue ;};_cecc =append (_cecc ,_dggc );};};return _cecc ,nil ;};func (_dfbaa *PdfReader )loadDSS ()(*DSS ,error ){if _dfbaa ._eebeg .GetCrypter ()!=nil &&!_dfbaa ._eebeg .IsAuthenticated (){return nil ,_d .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");
|
||
};_caaee :=_dfbaa ._bdfc .Get ("\u0044\u0053\u0053");if _caaee ==nil {return nil ,nil ;};_bgcfg ,_ :=_ac .GetIndirect (_caaee );_caaee =_ac .TraceToDirectObject (_caaee );switch _cfggc :=_caaee .(type ){case *_ac .PdfObjectNull :return nil ,nil ;case *_ac .PdfObjectDictionary :return _fbgfd (_bgcfg ,_cfggc );
|
||
};return nil ,_d .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_caaee );};
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_dcdc *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_dcdc .Filter .UpdateParams (img .GetParamsDict ());_ffcbce ,_fgegb :=_dcdc .Filter .EncodeBytes (img .Data );if _fgegb !=nil {return _fgegb ;};_dcdc .Stream =_ffcbce ;_badf :=img .Width ;
|
||
_dcdc .Width =&_badf ;_bggag :=img .Height ;_dcdc .Height =&_bggag ;_geeee :=img .BitsPerComponent ;_dcdc .BitsPerComponent =&_geeee ;if cs ==nil {if img .ColorComponents ==1{_dcdc .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_dcdc .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_dcdc .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _af .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_dcdc .ColorSpace =cs ;};return nil ;
|
||
};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element between 0 and 1.
|
||
func (_bgbd *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gag :=vals [0];if _gag < 0.0||_gag > 1.0{_gd .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 _gag < 0.0{_gag =0.0;}else if _gag > 1.0{_gag =1.0;};return NewPdfColorDeviceGray (_gag ),nil ;};
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_bfcg :=NewPdfAnnotation ();_dfa :=&PdfAnnotationScreen {};_dfa .PdfAnnotation =_bfcg ;_bfcg .SetContext (_dfa );return _dfa ;};
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_gef :=NewPdfAction ();_bbc :=&PdfActionImportData {};_bbc .PdfAction =_gef ;_gef .SetContext (_bbc );return _bbc ;};func (_gcdga *PdfWriter )setHashIDs (_bbfa _g .Hash )error {_fcgf :=_bbfa .Sum (nil );
|
||
if _gcdga ._becagg ==""{_gcdga ._becagg =_f .EncodeToString (_fcgf [:8]);};_gcdga .setDocumentIDs (_gcdga ._becagg ,_f .EncodeToString (_fcgf [8:]));return nil ;};type pdfFontType3 struct{fontCommon ;_bbba *_ac .PdfIndirectObject ;
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _ac .PdfObject ;Encoding _ac .PdfObject ;FontBBox _ac .PdfObject ;FontMatrix _ac .PdfObject ;FirstChar _ac .PdfObject ;LastChar _ac .PdfObject ;Widths _ac .PdfObject ;Resources _ac .PdfObject ;_fbad map[_gf .CharCode ]float64 ;_ebcbd _gf .TextEncoder ;
|
||
};
|
||
|
||
// 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 (_fcbf *pdfFontSimple )SetEncoder (encoder _gf .TextEncoder ){_fcbf ._caed =encoder };func (_fba *PdfReader )newPdfActionImportDataFromDict (_adbc *_ac .PdfObjectDictionary )(*PdfActionImportData ,error ){_fdb ,_aea :=_caec (_adbc .Get ("\u0046"));
|
||
if _aea !=nil {return nil ,_aea ;};return &PdfActionImportData {F :_fdb },nil ;};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_ecebf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_ecebf ;};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_dacda *PdfSignature )SetLocation (location string ){_dacda .Location =_ac .MakeString (location )};
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_gc PdfModel ;Type _ac .PdfObject ;S _ac .PdfObject ;Next _ac .PdfObject ;_eef *_ac .PdfIndirectObject ;};func (_eda *PdfReader )newPdfActionTransFromDict (_dae *_ac .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_dae .Get ("\u0054\u0072\u0061n\u0073")},nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efe *PdfActionSubmitForm )ToPdfObject ()_ac .PdfObject {_efe .PdfAction .ToPdfObject ();_bgb :=_efe ._eef ;_gg :=_bgb .PdfObject .(*_ac .PdfObjectDictionary );_gg .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeSubmitForm )));if _efe .F !=nil {_gg .Set ("\u0046",_efe .F .ToPdfObject ());
|
||
};_gg .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_efe .Fields );_gg .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_efe .Flags );return _bgb ;};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_bgabgd *PdfTilingPattern )IsColored ()bool {if _bgabgd .PaintType !=nil &&*_bgabgd .PaintType ==1{return true ;};return false ;};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_dega *PdfPageResources )SetXObjectByName (keyName _ac .PdfObjectName ,stream *_ac .PdfObjectStream )error {if _dega .XObject ==nil {_dega .XObject =_ac .MakeDict ();};_fbbbd :=_ac .TraceToDirectObject (_dega .XObject );_afgb ,_abdbe :=_fbbbd .(*_ac .PdfObjectDictionary );
|
||
if !_abdbe {_gd .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",_dega .XObject ,_fbbbd );return _af .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_afgb .Set (keyName ,stream );return nil ;};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_cccd *PdfDate )ToPdfObject ()_ac .PdfObject {_fcbd :=_d .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",_cccd ._bfbe ,_cccd ._dbbcd ,_cccd ._dgfeb ,_cccd ._ffgecb ,_cccd ._eega ,_cccd ._dcebf ,_cccd ._cbcad ,_cccd ._bbdfd ,_cccd ._ecccg );
|
||
return _ac .MakeString (_fcbd );};func _deccg (_fbead *_ac .PdfObjectDictionary )(*PdfTilingPattern ,error ){_ddcg :=&PdfTilingPattern {};_gegec :=_fbead .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");if _gegec ==nil {_gd .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_gageaa ,_dfaaf :=_gegec .(*_ac .PdfObjectInteger );if !_dfaaf {_gd .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",_gegec );
|
||
return nil ,_ac .ErrTypeError ;};_ddcg .PaintType =_gageaa ;_gegec =_fbead .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _gegec ==nil {_gd .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_ddee ,_dfaaf :=_gegec .(*_ac .PdfObjectInteger );if !_dfaaf {_gd .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",_gegec );
|
||
return nil ,_ac .ErrTypeError ;};_ddcg .TilingType =_ddee ;_gegec =_fbead .Get ("\u0042\u0042\u006f\u0078");if _gegec ==nil {_gd .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_gegec =_ac .TraceToDirectObject (_gegec );_geddd ,_dfaaf :=_gegec .(*_ac .PdfObjectArray );if !_dfaaf {_gd .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",_gegec );
|
||
return nil ,_ac .ErrTypeError ;};_gdgg ,_fdgdd :=NewPdfRectangle (*_geddd );if _fdgdd !=nil {_gd .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_fdgdd );return nil ,_fdgdd ;};_ddcg .BBox =_gdgg ;_gegec =_fbead .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _gegec ==nil {_gd .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_ccaff ,_fdgdd :=_ac .GetNumberAsFloat (_gegec );if _fdgdd !=nil {_gd .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",_ccaff );
|
||
return nil ,_fdgdd ;};_ddcg .XStep =_ac .MakeFloat (_ccaff );_gegec =_fbead .Get ("\u0059\u0053\u0074e\u0070");if _gegec ==nil {_gd .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_ffdcd ,_fdgdd :=_ac .GetNumberAsFloat (_gegec );if _fdgdd !=nil {_gd .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",_ffdcd );
|
||
return nil ,_fdgdd ;};_ddcg .YStep =_ac .MakeFloat (_ffdcd );_gegec =_fbead .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _gegec ==nil {_gd .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_fbead ,_dfaaf =_ac .TraceToDirectObject (_gegec ).(*_ac .PdfObjectDictionary );if !_dfaaf {return nil ,_d .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",_gegec );
|
||
};_bbec ,_fdgdd :=NewPdfPageResourcesFromDict (_fbead );if _fdgdd !=nil {return nil ,_fdgdd ;};_ddcg .Resources =_bbec ;if _cbdeg :=_fbead .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbdeg !=nil {_ddgcd ,_cebb :=_cbdeg .(*_ac .PdfObjectArray );if !_cebb {_gd .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",_cbdeg );
|
||
return nil ,_ac .ErrTypeError ;};_ddcg .Matrix =_ddgcd ;};return _ddcg ,nil ;};
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_gccf *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_ddabc *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _ddabc .UnderlyingCS ==nil {return nil ,_af .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 _ddabc .UnderlyingCS .ColorFromFloats (vals );};func (_agfbea *PdfWriter )setCatalogVersion (){_agfbea ._cgfegd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ac .MakeName (_d .Sprintf ("\u0025\u0064\u002e%\u0064",_agfbea ._gdfdc .Major ,_agfbea ._gdfdc .Minor )));
|
||
};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_eacb *PdfColorspaceLab )ToPdfObject ()_ac .PdfObject {_adeac :=_ac .MakeArray ();_adeac .Append (_ac .MakeName ("\u004c\u0061\u0062"));_adbcg :=_ac .MakeDict ();if _eacb .WhitePoint !=nil {_gfac :=_ac .MakeArray (_ac .MakeFloat (_eacb .WhitePoint [0]),_ac .MakeFloat (_eacb .WhitePoint [1]),_ac .MakeFloat (_eacb .WhitePoint [2]));
|
||
_adbcg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_gfac );}else {_gd .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 _eacb .BlackPoint !=nil {_edgc :=_ac .MakeArray (_ac .MakeFloat (_eacb .BlackPoint [0]),_ac .MakeFloat (_eacb .BlackPoint [1]),_ac .MakeFloat (_eacb .BlackPoint [2]));_adbcg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_edgc );
|
||
};if _eacb .Range !=nil {_befbf :=_ac .MakeArray (_ac .MakeFloat (_eacb .Range [0]),_ac .MakeFloat (_eacb .Range [1]),_ac .MakeFloat (_eacb .Range [2]),_ac .MakeFloat (_eacb .Range [3]));_adbcg .Set ("\u0052\u0061\u006eg\u0065",_befbf );};_adeac .Append (_adbcg );
|
||
if _eacb ._gacg !=nil {_eacb ._gacg .PdfObject =_adeac ;return _eacb ._gacg ;};return _adeac ;};
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_ge :=NewPdfAction ();_eb :=&PdfActionSubmitForm {};_eb .PdfAction =_ge ;_ge .SetContext (_eb );return _eb ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_afff *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbgg ,_ggb :=_ac .GetNumbersAsFloat (objects );
|
||
if _ggb !=nil {return nil ,_ggb ;};return _afff .ColorFromFloats (_fbgg );};
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_bdc :=NewPdfAnnotation ();_edaf :=&PdfAnnotationStrikeOut {};_edaf .PdfAnnotation =_bdc ;_edaf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bdc .SetContext (_edaf );return _edaf ;};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_geag *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_af .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");
|
||
};_fdca ,_cafba :=_ed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._ebga ,img ._gffd );if _cafba !=nil {return img ,_cafba ;};_dfffe ,_cafba :=_ed .GrayConverter .Convert (_fdca );if _cafba !=nil {return img ,_cafba ;
|
||
};return _affb (_dfffe .Base ()),nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_bfdd *PdfFont )Encoder ()_gf .TextEncoder {_bebge :=_bfdd .actualFont ();if _bebge ==nil {_gd .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",_bfdd ._gegb );
|
||
return nil ;};return _bebge .Encoder ();};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aef *PdfActionLaunch )ToPdfObject ()_ac .PdfObject {_aef .PdfAction .ToPdfObject ();_fbcc :=_aef ._eef ;_gdfe :=_fbcc .PdfObject .(*_ac .PdfObjectDictionary );_gdfe .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeLaunch )));if _aef .F !=nil {_gdfe .Set ("\u0046",_aef .F .ToPdfObject ());
|
||
};_gdfe .SetIfNotNil ("\u0057\u0069\u006e",_aef .Win );_gdfe .SetIfNotNil ("\u004d\u0061\u0063",_aef .Mac );_gdfe .SetIfNotNil ("\u0055\u006e\u0069\u0078",_aef .Unix );_gdfe .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_aef .NewWindow );
|
||
return _fbcc ;};
|
||
|
||
// 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 _ac .PdfObject ;FontFamily _ac .PdfObject ;FontStretch _ac .PdfObject ;FontWeight _ac .PdfObject ;Flags _ac .PdfObject ;FontBBox _ac .PdfObject ;ItalicAngle _ac .PdfObject ;Ascent _ac .PdfObject ;Descent _ac .PdfObject ;
|
||
Leading _ac .PdfObject ;CapHeight _ac .PdfObject ;XHeight _ac .PdfObject ;StemV _ac .PdfObject ;StemH _ac .PdfObject ;AvgWidth _ac .PdfObject ;MaxWidth _ac .PdfObject ;MissingWidth _ac .PdfObject ;FontFile _ac .PdfObject ;FontFile2 _ac .PdfObject ;FontFile3 _ac .PdfObject ;
|
||
CharSet _ac .PdfObject ;_dbfcb int ;_fffd float64 ;*fontFile ;_edfg *_fda .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _ac .PdfObject ;Lang _ac .PdfObject ;FD _ac .PdfObject ;CIDSet _ac .PdfObject ;_adfg *_ac .PdfIndirectObject ;};
|
||
|
||
// 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 ;_egecf []byte ;_gfec []uint32 ;_gcca *_ac .PdfObjectStream ;};
|
||
|
||
// 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 (_bbfc *PdfFieldButton )GetType ()ButtonType {_gbged :=ButtonTypeCheckbox ;if _bbfc .Ff !=nil {if (uint32 (*_bbfc .Ff )&FieldFlagPushbutton .Mask ())> 0{_gbged =ButtonTypePush ;}else if (uint32 (*_bbfc .Ff )&FieldFlagRadio .Mask ())> 0{_gbged =ButtonTypeRadio ;
|
||
};};return _gbged ;};
|
||
|
||
// 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 ()_ac .PdfObject ;GetContainingPdfObject ()_ac .PdfObject ;};var _degc =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":{}};
|
||
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_bdfae *PdfSignature )SetName (name string ){_bdfae .Name =_ac .MakeString (name )};
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_ac .PdfObjectStream )(*XObjectForm ,error ){_dfbbf :=&XObjectForm {};_dfbbf ._fggc =stream ;_ecff :=*(stream .PdfObjectDictionary );_gddfc ,_cdgca :=_ac .NewEncoderFromStream (stream );if _cdgca !=nil {return nil ,_cdgca ;
|
||
};_dfbbf .Filter =_gddfc ;if _ebgbd :=_ecff .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ebgbd !=nil {_edgdea ,_fbbbc :=_ebgbd .(*_ac .PdfObjectName );if !_fbbbc {return nil ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_edgdea !="\u0046\u006f\u0072\u006d"{_gd .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_af .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _agfcb :=_ecff .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_agfcb !=nil {_dfbbf .FormType =_agfcb ;};if _aafab :=_ecff .Get ("\u0042\u0042\u006f\u0078");_aafab !=nil {_dfbbf .BBox =_aafab ;};if _accab :=_ecff .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_accab !=nil {_dfbbf .Matrix =_accab ;};if _cdcdb :=_ecff .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_cdcdb !=nil {_cdcdb =_ac .TraceToDirectObject (_cdcdb );_bbaacf ,_acfcgd :=_cdcdb .(*_ac .PdfObjectDictionary );if !_acfcgd {_gd .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 ,_ac .ErrTypeError ;};_eeefc ,_bfged :=NewPdfPageResourcesFromDict (_bbaacf );if _bfged !=nil {_gd .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 ,_bfged ;};_dfbbf .Resources =_eeefc ;_gd .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_dfbbf .Resources );};_dfbbf .Group =_ecff .Get ("\u0047\u0072\u006fu\u0070");_dfbbf .Ref =_ecff .Get ("\u0052\u0065\u0066");
|
||
_dfbbf .MetaData =_ecff .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_dfbbf .PieceInfo =_ecff .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_dfbbf .LastModified =_ecff .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_dfbbf .StructParent =_ecff .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_dfbbf .StructParents =_ecff .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_dfbbf .OPI =_ecff .Get ("\u004f\u0050\u0049");
|
||
_dfbbf .OC =_ecff .Get ("\u004f\u0043");_dfbbf .Name =_ecff .Get ("\u004e\u0061\u006d\u0065");_dfbbf .Stream =stream .Stream ;return _dfbbf ,nil ;};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_gceac :=&XObjectForm {};_adaba :=&_ac .PdfObjectStream {};_adaba .PdfObjectDictionary =_ac .MakeDict ();_gceac ._fggc =_adaba ;return _gceac ;};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_bfgb *PdfFont )Subtype ()string {_ebdf :=_bfgb .baseFields ()._efebg ;if _bbgeb ,_ebaf :=_bfgb ._gegb .(*pdfFontType0 );_ebaf {_ebdf =_ebdf +"\u003a"+_bbgeb .DescendantFont .Subtype ();};return _ebdf ;};
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_dge :=NewPdfAnnotation ();_dba :=&PdfAnnotationFileAttachment {};_dba .PdfAnnotation =_dge ;_dba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dge .SetContext (_dba );return _dba ;};
|
||
var _ pdfFont =(*pdfFontType0 )(nil );
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ac .PdfObject ;NewWindow _ac .PdfObject ;};func _adggdg (_dccca _ac .PdfObject )(*PdfPageResourcesColorspaces ,error ){_egecd :=&PdfPageResourcesColorspaces {};if _dgcdd ,_ebada :=_dccca .(*_ac .PdfIndirectObject );
|
||
_ebada {_egecd ._cegba =_dgcdd ;_dccca =_dgcdd .PdfObject ;};_dccdb ,_effaa :=_ac .GetDict (_dccca );if !_effaa {return nil ,_af .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_egecd .Names =[]string {};_egecd .Colorspaces =map[string ]PdfColorspace {};for _ ,_bdcde :=range _dccdb .Keys (){_aagf :=_dccdb .Get (_bdcde );_egecd .Names =append (_egecd .Names ,string (_bdcde ));_agbd ,_efeed :=NewPdfColorspaceFromPdfObject (_aagf );
|
||
if _efeed !=nil {return nil ,_efeed ;};_egecd .Colorspaces [string (_bdcde )]=_agbd ;};return _egecd ,nil ;};func (_dcabc *PdfSignature )extractChainFromCert ()([]*_fc .Certificate ,error ){var _bbfgc *_ac .PdfObjectArray ;switch _debba :=_dcabc .Cert .(type ){case *_ac .PdfObjectString :_bbfgc =_ac .MakeArray (_debba );
|
||
case *_ac .PdfObjectArray :_bbfgc =_debba ;default:return nil ,_d .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",_debba );
|
||
};var _baeed _fd .Buffer ;for _ ,_cggefc :=range _bbfgc .Elements (){_faegc ,_bddcdd :=_ac .GetString (_cggefc );if !_bddcdd {return nil ,_d .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",_cggefc );
|
||
};if _ ,_efbbb :=_baeed .Write (_faegc .Bytes ());_efbbb !=nil {return nil ,_efbbb ;};};return _fc .ParseCertificates (_baeed .Bytes ());};
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_fce :=NewPdfAction ();_fbc :=&PdfActionMovie {};_fbc .PdfAction =_fce ;_fce .SetContext (_fbc );return _fbc ;};
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_cddde *PdfPattern )SetContext (ctx PdfModel ){_cddde ._bfcc =ctx };
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bccbd *PdfSignature )GetContainingPdfObject ()_ac .PdfObject {return _bccbd ._bfgde };func _fecbg ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();_fddba :=_cb .GetLicenseKey ();if len (_affcb )> 0&&(_fddba .IsLicensed ()||_edfda ){return _affcb ;
|
||
};return _d .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",_fbfdb (),_fddba .TypeToString ());};func _gfbe (_feceg *PdfPage ){_abdad :=_cb .GetLicenseKey ();
|
||
if _abdad !=nil &&_abdad .IsLicensed (){return ;};_defc :=_ac .PdfObjectName ("\u0055\u0046\u0031");if !_feceg .Resources .HasFontByName (_defc ){_feceg .Resources .SetFontByName (_defc ,DefaultFont ().ToPdfObject ());};var _fgbc []string ;_fgbc =append (_fgbc ,"\u0071");
|
||
_fgbc =append (_fgbc ,"\u0042\u0054");_fgbc =append (_fgbc ,_d .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_defc .String ()));_fgbc =append (_fgbc ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");_fgbc =append (_fgbc ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");
|
||
_dgeed :="\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";
|
||
_fgbc =append (_fgbc ,_d .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_dgeed ));_fgbc =append (_fgbc ,"\u0045\u0054");_fgbc =append (_fgbc ,"\u0051");_fecec :=_fg .Join (_fgbc ,"\u000a");_feceg .AddContentStreamByString (_fecec );_feceg .ToPdfObject ();
|
||
};
|
||
|
||
// 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 (_febda *PdfOutlineTreeNode )GetContext ()PdfModel {if _gcaba ,_efbd :=_febda ._dagfd .(*PdfOutline );_efbd {return _gcaba ;};if _beef ,_eeea :=_febda ._dagfd .(*PdfOutlineItem );_eeea {return _beef ;};_gd .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 ;};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_ffcgf *PdfReader )GetEncryptionMethod ()string {_cefgd :=_ffcgf ._eebeg .GetCrypter ();return _cefgd .String ();};func (_dgde *pdfFontType3 )baseFields ()*fontCommon {return &_dgde .fontCommon };func (_debga *LTV )buildCertChain (_ddgcb ,_eacd []*_fc .Certificate )([]*_fc .Certificate ,map[string ]*_fc .Certificate ,error ){_dced :=map[string ]*_fc .Certificate {};
|
||
for _ ,_efeae :=range _ddgcb {_dced [_efeae .Subject .CommonName ]=_efeae ;};_bfecd :=_ddgcb ;for _ ,_beege :=range _eacd {_acecg :=_beege .Subject .CommonName ;if _ ,_fcdc :=_dced [_acecg ];_fcdc {continue ;};_dced [_acecg ]=_beege ;_bfecd =append (_bfecd ,_beege );
|
||
};if len (_bfecd )==0{return nil ,nil ,ErrSignNoCertificates ;};var _gbbcf error ;for _eacf :=_bfecd [0];_eacf !=nil &&!_debga .CertClient .IsCA (_eacf );{_ebfba ,_gbdbg :=_dced [_eacf .Issuer .CommonName ];if !_gbdbg {if _ebfba ,_gbbcf =_debga .CertClient .GetIssuer (_eacf );
|
||
_gbbcf !=nil {_gd .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",_gbbcf );
|
||
break ;};_dced [_eacf .Issuer .CommonName ]=_ebfba ;_bfecd =append (_bfecd ,_ebfba );};_eacf =_ebfba ;};return _bfecd ,_dced ,nil ;};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_feceb *PdfReader )IsEncrypted ()(bool ,error ){return _feceb ._eebeg .IsEncrypted ()};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgaa *PdfAnnotationSquare )ToPdfObject ()_ac .PdfObject {_bgaa .PdfAnnotation .ToPdfObject ();_cdee :=_bgaa ._fegd ;_aegeg :=_cdee .PdfObject .(*_ac .PdfObjectDictionary );if _bgaa .PdfAnnotationMarkup !=nil {_bgaa .PdfAnnotationMarkup .appendToPdfDictionary (_aegeg );
|
||
};_aegeg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ac .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_aegeg .SetIfNotNil ("\u0042\u0053",_bgaa .BS );_aegeg .SetIfNotNil ("\u0049\u0043",_bgaa .IC );_aegeg .SetIfNotNil ("\u0042\u0045",_bgaa .BE );
|
||
_aegeg .SetIfNotNil ("\u0052\u0044",_bgaa .RD );return _cdee ;};
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_cgage *PdfFieldButton )IsRadio ()bool {return _cgage .GetType ()==ButtonTypeRadio };
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_fggbg *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ac .StreamEncoder ,error ){_aedcf ,_efffaf :=_fggbg ._fddfb .(*_ac .PdfObjectStream );if !_efffaf {_gd .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",_fggbg ._fddfb );
|
||
return nil ,nil ,_ac .ErrTypeError ;};_bbfg ,_ebcbfd :=_ac .DecodeStream (_aedcf );if _ebcbfd !=nil {_gd .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",_ebcbfd );
|
||
return nil ,nil ,_ebcbfd ;};_eefg ,_ebcbfd :=_ac .NewEncoderFromStream (_aedcf );if _ebcbfd !=nil {_gd .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",_ebcbfd );
|
||
return nil ,nil ,_ebcbfd ;};return _bbfg ,_eefg ,nil ;};
|
||
|
||
// Optimizer is the interface that performs optimization of PDF object structure for output writing.
|
||
//
|
||
// Optimize receives a slice of input `objects`, performs optimization, including removing, replacing objects and
|
||
// output the optimized slice of objects.
|
||
type Optimizer interface{Optimize (_afdga []_ac .PdfObject )([]_ac .PdfObject ,error );};
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_eabgf :=&PdfFilespec {};_eabgf ._fege =_ac .MakeIndirectObject (_ac .MakeDict ());return _eabgf ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_egffc *PdfTransformParamsDocMDP )WriteString ()string {return _egffc .ToPdfObject ().WriteString ();};func (_dffb *PdfAppender )replaceObject (_fffe ,_ffeb _ac .PdfObject ){switch _fbbf :=_fffe .(type ){case *_ac .PdfIndirectObject :_dffb ._degfa [_ffeb ]=_fbbf .ObjectNumber ;
|
||
case *_ac .PdfObjectStream :_dffb ._degfa [_ffeb ]=_fbbf .ObjectNumber ;};};func (_debeb *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _bafag :=_debeb ._bgbdc ;_bafag !=nil {return _bafag ;};return _debeb ._ffbea ;};
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ac .PdfObjectInteger ;BitsPerComponent *_ac .PdfObjectInteger ;VerticesPerRow *_ac .PdfObjectInteger ;Decode *_ac .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_faf :=NewPdfAnnotation ();_bff :=&PdfAnnotationRedact {};_bff .PdfAnnotation =_faf ;_bff .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_faf .SetContext (_bff );return _bff ;};
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_daga *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _daga ._ceca ==nil {_daga .GetAnnotations ();};_daga ._ceca =append (_daga ._ceca ,annot );};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_ddcc *PdfPageResources )SetShadingByName (keyName _ac .PdfObjectName ,shadingObj _ac .PdfObject )error {if _ddcc .Shading ==nil {_ddcc .Shading =_ac .MakeDict ();};_gdggd ,_gebce :=_ac .GetDict (_ddcc .Shading );if !_gebce {return _ac .ErrTypeError ;
|
||
};_gdggd .Set (keyName ,shadingObj );return nil ;};
|
||
|
||
// 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 (_afadg *PdfPage )SetContentStreams (cStreams []string ,encoder _ac .StreamEncoder )error {if len (cStreams )==0{_afadg .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ac .NewRawEncoder ();};var _bcce []*_ac .PdfObjectStream ;for _ ,_gaffg :=range cStreams {_dcgcea :=&_ac .PdfObjectStream {};
|
||
_dgebab :=encoder .MakeStreamDict ();_ebcf ,_bbcec :=encoder .EncodeBytes ([]byte (_gaffg ));if _bbcec !=nil {return _bbcec ;};_dgebab .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ac .MakeInteger (int64 (len (_ebcf ))));_dcgcea .PdfObjectDictionary =_dgebab ;
|
||
_dcgcea .Stream =_ebcf ;_bcce =append (_bcce ,_dcgcea );};if len (_bcce )==1{_afadg .Contents =_bcce [0];}else {_faefc :=_ac .MakeArray ();for _ ,_gdaf :=range _bcce {_faefc .Append (_gdaf );};_afadg .Contents =_faefc ;};return nil ;};
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_cbgc *PdfColorspaceCalGray )ToPdfObject ()_ac .PdfObject {_dedg :=&_ac .PdfObjectArray {};_dedg .Append (_ac .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_addad :=_ac .MakeDict ();if _cbgc .WhitePoint !=nil {_addad .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ac .MakeArray (_ac .MakeFloat (_cbgc .WhitePoint [0]),_ac .MakeFloat (_cbgc .WhitePoint [1]),_ac .MakeFloat (_cbgc .WhitePoint [2])));
|
||
}else {_gd .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 _cbgc .BlackPoint !=nil {_addad .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ac .MakeArray (_ac .MakeFloat (_cbgc .BlackPoint [0]),_ac .MakeFloat (_cbgc .BlackPoint [1]),_ac .MakeFloat (_cbgc .BlackPoint [2])));
|
||
};_addad .Set ("\u0047\u0061\u006dm\u0061",_ac .MakeFloat (_cbgc .Gamma ));_dedg .Append (_addad );if _cbgc ._eabd !=nil {_cbgc ._eabd .PdfObject =_dedg ;return _cbgc ._eabd ;};return _dedg ;};
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_adadg *PdfPageResources )SetPatternByName (keyName _ac .PdfObjectName ,pattern _ac .PdfObject )error {if _adadg .Pattern ==nil {_adadg .Pattern =_ac .MakeDict ();};_dfcef ,_bbacc :=_ac .GetDict (_adadg .Pattern );if !_bbacc {return _ac .ErrTypeError ;
|
||
};_dfcef .Set (keyName ,pattern );return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cec *PdfActionThread )ToPdfObject ()_ac .PdfObject {_cec .PdfAction .ToPdfObject ();_ag :=_cec ._eef ;_geb :=_ag .PdfObject .(*_ac .PdfObjectDictionary );_geb .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeThread )));if _cec .F !=nil {_geb .Set ("\u0046",_cec .F .ToPdfObject ());
|
||
};_geb .SetIfNotNil ("\u0044",_cec .D );_geb .SetIfNotNil ("\u0042",_cec .B );return _ag ;};func _gdcaa (_deea _ac .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_begf :=&PdfColorspaceDeviceNAttributes {};var _ggbb *_ac .PdfObjectDictionary ;switch _eaba :=_deea .(type ){case *_ac .PdfIndirectObject :_begf ._gaag =_eaba ;
|
||
var _feec bool ;_ggbb ,_feec =_eaba .PdfObject .(*_ac .PdfObjectDictionary );if !_feec {_gd .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 ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ac .PdfObjectDictionary :_ggbb =_eaba ;case *_ac .PdfObjectReference :_egcf :=_eaba .Resolve ();return _gdcaa (_egcf );default:_gd .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 ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gebc :=_ggbb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_gebc !=nil {_cbed ,_defd :=_ac .TraceToDirectObject (_gebc ).(*_ac .PdfObjectName );if !_defd {_gd .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 ,_af .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_begf .Subtype =_cbed ;};if _aaacb :=_ggbb .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_aaacb !=nil {_begf .Colorants =_aaacb ;};if _fdgf :=_ggbb .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_fdgf !=nil {_begf .Process =_fdgf ;};if _dbfd :=_ggbb .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_dbfd !=nil {_begf .MixingHints =_dbfd ;};return _begf ,nil ;};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_gfega :=&PdfColorspaceSpecialSeparation {};return _gfega ;};
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_bfbe int64 ;_dbbcd int64 ;_dgfeb int64 ;_ffgecb int64 ;_eega int64 ;_dcebf int64 ;_cbcad byte ;_bbdfd int64 ;_ecccg int64 ;};func (_abd *PdfReader )newPdfAnnotationInkFromDict (_ceaa *_ac .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_gdef :=PdfAnnotationInk {};
|
||
_dcdf ,_egfb :=_abd .newPdfAnnotationMarkupFromDict (_ceaa );if _egfb !=nil {return nil ,_egfb ;};_gdef .PdfAnnotationMarkup =_dcdf ;_gdef .InkList =_ceaa .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_gdef .BS =_ceaa .Get ("\u0042\u0053");return &_gdef ,nil ;
|
||
};func (_gefgc *Image )samplesTrimPadding (_cbfd []uint32 )[]uint32 {_cbaf :=_gefgc .ColorComponents *int (_gefgc .Width )*int (_gefgc .Height );if len (_cbfd )==_cbaf {return _cbfd ;};_fbdg :=make ([]uint32 ,_cbaf );_ccfba :=int (_gefgc .Width )*_gefgc .ColorComponents ;
|
||
var _gfbcd ,_bafd ,_eeabd ,_gbfag int ;_ceefc :=_ed .BytesPerLine (int (_gefgc .Width ),int (_gefgc .BitsPerComponent ),_gefgc .ColorComponents );for _gfbcd =0;_gfbcd < int (_gefgc .Height );_gfbcd ++{_bafd =_gfbcd *int (_gefgc .Width );_eeabd =_gfbcd *_ceefc ;
|
||
for _gbfag =0;_gbfag < _ccfba ;_gbfag ++{_fbdg [_bafd +_gbfag ]=_cbfd [_eeabd +_gbfag ];};};return _fbdg ;};
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_eafe *PdfAcroForm )AllFields ()[]*PdfField {if _eafe ==nil {return nil ;};var _fddda []*PdfField ;if _eafe .Fields !=nil {for _ ,_dbgda :=range *_eafe .Fields {_fddda =append (_fddda ,_cggbg (_dbgda )...);};};return _fddda ;};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_aaaa :=map[rune ]int {};for _ ,_afac :=range text {_aaaa [_afac ]++;};return _aaaa ;};var _dcagc =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"};
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cgc *PdfActionGoToR )ToPdfObject ()_ac .PdfObject {_cgc .PdfAction .ToPdfObject ();_aca :=_cgc ._eef ;_bfb :=_aca .PdfObject .(*_ac .PdfObjectDictionary );_bfb .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeGoToR )));if _cgc .F !=nil {_bfb .Set ("\u0046",_cgc .F .ToPdfObject ());
|
||
};_bfb .SetIfNotNil ("\u0044",_cgc .D );_bfb .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_cgc .NewWindow );return _aca ;};
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_cgfd *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _cgfd ._bfcc .(*PdfShadingPattern );};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_bbbc *PdfColorspaceDeviceRGB )ToPdfObject ()_ac .PdfObject {return _ac .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_eccd *PdfColorCalRGB )GetNumComponents ()int {return 3};func _cgdg (_fedbd _ac .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_cggf :=NewPdfColorspaceSpecialSeparation ();if _gaeg ,_dgea :=_fedbd .(*_ac .PdfIndirectObject );_dgea {_cggf ._becg =_gaeg ;
|
||
};_fedbd =_ac .TraceToDirectObject (_fedbd );_eacc ,_dbfb :=_fedbd .(*_ac .PdfObjectArray );if !_dbfb {return nil ,_d .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 _eacc .Len ()!=4{return nil ,_d .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");};_fedbd =_eacc .Get (0);
|
||
_fcbg ,_dbfb :=_fedbd .(*_ac .PdfObjectName );if !_dbfb {return nil ,_d .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 *_fcbg !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_d .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");
|
||
};_fedbd =_eacc .Get (1);_fcbg ,_dbfb =_fedbd .(*_ac .PdfObjectName );if !_dbfb {return nil ,_d .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");
|
||
};_cggf .ColorantName =_fcbg ;_fedbd =_eacc .Get (2);_fgcb ,_efeba :=NewPdfColorspaceFromPdfObject (_fedbd );if _efeba !=nil {return nil ,_efeba ;};_cggf .AlternateSpace =_fgcb ;_agdg ,_efeba :=_gcddf (_eacc .Get (3));if _efeba !=nil {return nil ,_efeba ;
|
||
};_cggf .TintTransform =_agdg ;return _cggf ,nil ;};func _ccae (_cadag []*_ac .PdfObjectStream )*_ac .PdfObjectArray {if len (_cadag )==0{return nil ;};_gcaed :=make ([]_ac .PdfObject ,0,len (_cadag ));for _ ,_gggae :=range _cadag {_gcaed =append (_gcaed ,_gggae );
|
||
};return _ac .MakeArray (_gcaed ...);};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_ffad *PdfAppender )UpdateObject (obj _ac .PdfObject ){_ffad .replaceObject (obj ,obj );if _ ,_ccc :=_ffad ._eddbd [obj ];!_ccc {_ffad ._fgee =append (_ffad ._fgee ,obj );_ffad ._eddbd [obj ]=struct{}{};};};func (_fddd *PdfReader )newPdfAnnotationSquareFromDict (_dfbf *_ac .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_bec :=PdfAnnotationSquare {};
|
||
_dbea ,_beb :=_fddd .newPdfAnnotationMarkupFromDict (_dfbf );if _beb !=nil {return nil ,_beb ;};_bec .PdfAnnotationMarkup =_dbea ;_bec .BS =_dfbf .Get ("\u0042\u0053");_bec .IC =_dfbf .Get ("\u0049\u0043");_bec .BE =_dfbf .Get ("\u0042\u0045");_bec .RD =_dfbf .Get ("\u0052\u0044");
|
||
return &_bec ,nil ;};func _ggefga (_fdgc *_ac .PdfObjectArray )(float64 ,error ){_caege ,_cfffb :=_fdgc .ToFloat64Array ();if _cfffb !=nil {_gd .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",_fdgc ,_cfffb );
|
||
};switch len (_caege ){case 1:return _caege [0],nil ;case 3:_ceaaf :=PdfColorspaceDeviceRGB {};_aeccd ,_gdfa :=_ceaaf .ColorFromFloats (_caege );if _gdfa !=nil {return 0.0,_gdfa ;};return _aeccd .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_gffae :=PdfColorspaceDeviceCMYK {};
|
||
_eeecd ,_aefcd :=_gffae .ColorFromFloats (_caege );if _aefcd !=nil {return 0.0,_aefcd ;};_gdgc ,_aefcd :=_gffae .ColorToRGB (_eeecd .(*PdfColorDeviceCMYK ));if _aefcd !=nil {return 0.0,_aefcd ;};return _gdgc .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
|
||
};_cfffb =_af .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_gd .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_fdgc ,_cfffb );
|
||
return 0.0,_cfffb ;};func (_dcddcd *PdfReader )newPdfFieldSignatureFromDict (_gacc *_ac .PdfObjectDictionary )(*PdfFieldSignature ,error ){_eacbd :=&PdfFieldSignature {};_cccg ,_gegg :=_ac .GetIndirect (_gacc .Get ("\u0056"));if _gegg {var _fadf error ;
|
||
_eacbd .V ,_fadf =_dcddcd .newPdfSignatureFromIndirect (_cccg );if _fadf !=nil {return nil ,_fadf ;};};_eacbd .Lock ,_ =_ac .GetIndirect (_gacc .Get ("\u004c\u006f\u0063\u006b"));_eacbd .SV ,_ =_ac .GetIndirect (_gacc .Get ("\u0053\u0056"));return _eacbd ,nil ;
|
||
};
|
||
|
||
// PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element
|
||
// is an index to the lookup table and the output is a color defined in the lookup table in the Base
|
||
// colorspace.
|
||
// [/Indexed base hival lookup]
|
||
type PdfColorspaceSpecialIndexed struct{Base PdfColorspace ;HiVal int ;Lookup _ac .PdfObject ;_dagf []byte ;_dbeed *_ac .PdfIndirectObject ;};
|
||
|
||
// SetDocInfo sets the document /Info metadata.
|
||
// This will overwrite any globally declared document info.
|
||
func (_aec *PdfAppender )SetDocInfo (info *PdfInfo ){_aec ._aead =info };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fcd *PdfActionTrans )ToPdfObject ()_ac .PdfObject {_fcd .PdfAction .ToPdfObject ();_eada :=_fcd ._eef ;_cbf :=_eada .PdfObject .(*_ac .PdfObjectDictionary );_cbf .SetIfNotNil ("\u0053",_ac .MakeName (string (ActionTypeTrans )));_cbf .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_fcd .Trans );
|
||
return _eada ;};func (_fbabd *PdfWriter )getPdfVersion ()string {return _d .Sprintf ("\u0025\u0064\u002e%\u0064",_fbabd ._gdfdc .Major ,_fbabd ._gdfdc .Minor );};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_gdebd :=&PdfSignature {Type :_ac .MakeName ("\u0053\u0069\u0067"),Handler :handler };_fceg :=&pdfSignDictionary {PdfObjectDictionary :_ac .MakeDict (),_abgad :&handler ,_aacfd :_gdebd };_gdebd ._bfgde =_ac .MakeIndirectObject (_fceg );
|
||
return _gdebd ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_aeaf *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_cdag *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_ffaaa :=_cg .NewReader (img .getBase ());_ccaf :=_ed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cgbb :=_cg .NewWriter (_ccaf );
|
||
_aace :=_da .Pow (2,float64 (img .BitsPerComponent ))-1;_daac :=make ([]uint32 ,3);var (_gggg uint32 ;ANorm ,X ,Y ,Z ,_agee ,_bgga ,_bcea float64 ;_acgg error ;);for {_gggg ,_acgg =_ffaaa .ReadSample ();if _acgg ==_adc .EOF {break ;}else if _acgg !=nil {return img ,_acgg ;
|
||
};ANorm =float64 (_gggg )/_aace ;X =_cdag .WhitePoint [0]*_da .Pow (ANorm ,_cdag .Gamma );Y =_cdag .WhitePoint [1]*_da .Pow (ANorm ,_cdag .Gamma );Z =_cdag .WhitePoint [2]*_da .Pow (ANorm ,_cdag .Gamma );_agee =3.240479*X +-1.537150*Y +-0.498535*Z ;_bgga =-0.969256*X +1.875992*Y +0.041556*Z ;
|
||
_bcea =0.055648*X +-0.204043*Y +1.057311*Z ;_agee =_da .Min (_da .Max (_agee ,0),1.0);_bgga =_da .Min (_da .Max (_bgga ,0),1.0);_bcea =_da .Min (_da .Max (_bcea ,0),1.0);_daac [0]=uint32 (_agee *_aace );_daac [1]=uint32 (_bgga *_aace );_daac [2]=uint32 (_bcea *_aace );
|
||
if _acgg =_cgbb .WriteSamples (_daac );_acgg !=nil {return img ,_acgg ;};};return _affb (&_ccaf ),nil ;};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_ac .PdfObject ,error );};
|
||
|
||
// 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 ;};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_dgda :=NewPdfAction ();_adg :=&PdfActionURI {};_adg .PdfAction =_dgda ;_dgda .SetContext (_adg );return _adg ;};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_fabab *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_bcdbg *PdfOutline )ToPdfObject ()_ac .PdfObject {_ggebd :=_bcdbg ._eggfe ;_fdebba :=_ggebd .PdfObject .(*_ac .PdfObjectDictionary );_fdebba .Set ("\u0054\u0079\u0070\u0065",_ac .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _bcdbg .First !=nil {_fdebba .Set ("\u0046\u0069\u0072s\u0074",_bcdbg .First .ToPdfObject ());
|
||
};if _bcdbg .Last !=nil {_fdebba .Set ("\u004c\u0061\u0073\u0074",_bcdbg .Last .GetContext ().GetContainingPdfObject ());};if _bcdbg .Parent !=nil {_fdebba .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_bcdbg .Parent .GetContext ().GetContainingPdfObject ());
|
||
};if _bcdbg .Count !=nil {_fdebba .Set ("\u0043\u006f\u0075n\u0074",_ac .MakeInteger (*_bcdbg .Count ));};return _ggebd ;};
|
||
|
||
// 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 ;
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_fagb *PdfColorspaceCalRGB )ToPdfObject ()_ac .PdfObject {_bdfa :=&_ac .PdfObjectArray {};_bdfa .Append (_ac .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_agfe :=_ac .MakeDict ();if _fagb .WhitePoint !=nil {_adaa :=_ac .MakeArray (_ac .MakeFloat (_fagb .WhitePoint [0]),_ac .MakeFloat (_fagb .WhitePoint [1]),_ac .MakeFloat (_fagb .WhitePoint [2]));
|
||
_agfe .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_adaa );}else {_gd .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 _fagb .BlackPoint !=nil {_dcdg :=_ac .MakeArray (_ac .MakeFloat (_fagb .BlackPoint [0]),_ac .MakeFloat (_fagb .BlackPoint [1]),_ac .MakeFloat (_fagb .BlackPoint [2]));_agfe .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_dcdg );
|
||
};if _fagb .Gamma !=nil {_gcec :=_ac .MakeArray (_ac .MakeFloat (_fagb .Gamma [0]),_ac .MakeFloat (_fagb .Gamma [1]),_ac .MakeFloat (_fagb .Gamma [2]));_agfe .Set ("\u0047\u0061\u006dm\u0061",_gcec );};if _fagb .Matrix !=nil {_dfcb :=_ac .MakeArray (_ac .MakeFloat (_fagb .Matrix [0]),_ac .MakeFloat (_fagb .Matrix [1]),_ac .MakeFloat (_fagb .Matrix [2]),_ac .MakeFloat (_fagb .Matrix [3]),_ac .MakeFloat (_fagb .Matrix [4]),_ac .MakeFloat (_fagb .Matrix [5]),_ac .MakeFloat (_fagb .Matrix [6]),_ac .MakeFloat (_fagb .Matrix [7]),_ac .MakeFloat (_fagb .Matrix [8]));
|
||
_agfe .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dfcb );};_bdfa .Append (_agfe );if _fagb ._cffg !=nil {_fagb ._cffg .PdfObject =_bdfa ;return _fagb ._cffg ;};return _bdfa ;};
|
||
|
||
// GetContainingPdfObject implements model.PdfModel interface.
|
||
func (_fbced *PdfOutputIntent )GetContainingPdfObject ()_ac .PdfObject {return _fbced ._egeec };
|
||
|
||
// 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 ;_bfcc PdfModel ;_fddfb _ac .PdfObject ;};
|
||
|
||
// 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 (_edgd *PdfColorspaceLab )ColorFromPdfObjects (objects []_ac .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_af .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbggb ,_ecdba :=_ac .GetNumbersAsFloat (objects );
|
||
if _ecdba !=nil {return nil ,_ecdba ;};return _edgd .ColorFromFloats (_fbggb );};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _ac .PdfObject ;AN _ac .PdfObject ;OP _ac .PdfObject ;JS _ac .PdfObject ;};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_ggfba *PdfPageResources )HasExtGState (keyName _ac .PdfObjectName )bool {_ ,_fcgg :=_ggfba .GetFontByName (keyName );return _fcgg ;};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_cegb *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_gd .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 ,_af .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");};
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_gacg *_ac .PdfIndirectObject ;};func (_aafbc *Image )resampleLowBits (_fffce []uint32 ){_ebcgf :=_ed .BytesPerLine (int (_aafbc .Width ),int (_aafbc .BitsPerComponent ),_aafbc .ColorComponents );
|
||
_gceca :=make ([]byte ,_aafbc .ColorComponents *_ebcgf *int (_aafbc .Height ));_aggbc :=int (_aafbc .BitsPerComponent )*_aafbc .ColorComponents *int (_aafbc .Width );_baegb :=uint8 (8);var (_abag ,_faefg int ;_fcdbf uint32 ;);for _cacef :=0;_cacef < int (_aafbc .Height );
|
||
_cacef ++{_faefg =_cacef *_ebcgf ;for _bgbbg :=0;_bgbbg < _aggbc ;_bgbbg ++{_fcdbf =_fffce [_abag ];_baegb -=uint8 (_aafbc .BitsPerComponent );_gceca [_faefg ]|=byte (_fcdbf )<<_baegb ;if _baegb ==0{_baegb =8;_faefg ++;};_abag ++;};};_aafbc .Data =_gceca ;
|
||
};var (_gcaaba _dg .Mutex ;_bffb ="";_cdacg _e .Time ;_gabba ="";_dccb ="";_ggag _e .Time ;_affcb ="";_baggd ="";_ggffd ="";);
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_bag :=NewPdfAction ();_fa :=&PdfActionTrans {};_fa .PdfAction =_bag ;_bag .SetContext (_fa );return _fa ;};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_aac :=NewPdfAnnotation ();_aggcc :=&PdfAnnotationPrinterMark {};_aggcc .PdfAnnotation =_aac ;_aac .SetContext (_aggcc );return _aggcc ;};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_dbbc *_ac .PdfObjectDictionary ;_cffg *_ac .PdfIndirectObject ;};func (_bfagc *PdfWriter )writeAcroFormFields ()error {if _bfagc ._fggdf ==nil {return nil ;
|
||
};_gd .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_bdacc :=_bfagc ._fggdf .ToPdfObject ();_gd .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bdacc );
|
||
_bfagc ._cgfegd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bdacc );_aebg :=_bfagc .addObjects (_bdacc );if _aebg !=nil {return _aebg ;};return nil ;};
|
||
|
||
// 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 (_cagff *PdfSignature )bool ;
|
||
|
||
// Validate validates a PDF signature against a given digest (hash) such as that determined
|
||
// for an input file. Returns validation results.
|
||
Validate (_dcaba *PdfSignature ,_fbbgg 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 (_gbddb *PdfSignature )error ;
|
||
|
||
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
|
||
NewDigest (_ecdee *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 (_cgbece *PdfSignature ,_bbgc Hasher )error ;};func _facbg ()string {_gcaaba .Lock ();defer _gcaaba .Unlock ();return _ggffd };func (_dcf *PdfReader )newPdfAnnotationProjectionFromDict (_bfdc *_ac .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_aad :=&PdfAnnotationProjection {};
|
||
_fga ,_badb :=_dcf .newPdfAnnotationMarkupFromDict (_bfdc );if _badb !=nil {return nil ,_badb ;};_aad .PdfAnnotationMarkup =_fga ;return _aad ,nil ;};
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_eddab *Image )ToJBIG2Image ()(*_ac .JBIG2Image ,error ){_gcebg ,_fbdcd :=_eddab .ToGoImage ();if _fbdcd !=nil {return nil ,_fbdcd ;};return _ac .GoImageToJBIG2 (_gcebg ,_ac .JB2ImageAutoThreshold );};
|
||
|
||
// 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 (_bfecb *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _bfecb ._bdcee !=nil {return _bfecb ._bdcee ,nil ;};if _bfecb .ColorSpace ==nil {return nil ,nil ;};_dagdg ,_ceafc :=_adggdg (_bfecb .ColorSpace );if _ceafc !=nil {return nil ,_ceafc ;
|
||
};_bfecb ._bdcee =_dagdg ;return _bfecb ._bdcee ,nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_abdfd pdfFontType0 )GetRuneMetrics (r rune )(_fda .CharMetrics ,bool ){if _abdfd .DescendantFont ==nil {_gd .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",_abdfd );
|
||
return _fda .CharMetrics {},false ;};return _abdfd .DescendantFont .GetRuneMetrics (r );};
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ac .PdfObject ;Name _ac .PdfObject ;}; |