mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-04 22:17:22 +08:00
4981 lines
742 KiB
Go
4981 lines
742 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 (_c "bufio";_aa "bytes";_ab "crypto/md5";_gd "crypto/rand";_fg "crypto/sha1";_fc "crypto/x509";_fd "encoding/binary";_g "encoding/hex";_db "errors";_f "fmt";_dge "github.com/unidoc/pkcs7";_ac "github.com/unidoc/unipdf/v3/common";_ae "github.com/unidoc/unipdf/v3/core";
|
||
_ff "github.com/unidoc/unipdf/v3/core/security";_ee "github.com/unidoc/unipdf/v3/core/security/crypt";_abg "github.com/unidoc/unipdf/v3/internal/cmap";_afc "github.com/unidoc/unipdf/v3/internal/imageutil";_gcg "github.com/unidoc/unipdf/v3/internal/license";
|
||
_ba "github.com/unidoc/unipdf/v3/internal/sampling";_bgg "github.com/unidoc/unipdf/v3/internal/textencoding";_ec "github.com/unidoc/unipdf/v3/internal/timeutils";_ecc "github.com/unidoc/unipdf/v3/internal/transform";_ed "github.com/unidoc/unipdf/v3/model/internal/docutil";
|
||
_cb "github.com/unidoc/unipdf/v3/model/internal/fonts";_dbg "github.com/unidoc/unipdf/v3/model/mdp";_ce "github.com/unidoc/unipdf/v3/model/sigutil";_ace "github.com/unidoc/unipdf/v3/ps";_ggc "github.com/unidoc/unitype";_bcg "golang.org/x/xerrors";_b "hash";
|
||
_de "image";_gg "image/color";_ "image/gif";_ "image/png";_gdc "io";_abc "io/ioutil";_ag "math";_dd "math/rand";_af "os";_bc "regexp";_cf "sort";_bg "strconv";_eg "strings";_e "sync";_d "time";_dg "unicode";_fa "unicode/utf8";);
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_gagd *PdfPage )ToPdfObject ()_ae .PdfObject {_cggge :=_gagd ._egbbg ;_gagd .GetPageDict ();return _cggge ;};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_gbef *PdfBorderStyle )SetBorderWidth (width float64 ){_gbef .W =&width };func (_aacb *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";};func (_cbea *PdfReader )newPdfAnnotationFromIndirectObject (_fcee *_ae .PdfIndirectObject )(*PdfAnnotation ,error ){_deec ,_fcc :=_fcee .PdfObject .(*_ae .PdfObjectDictionary );
|
||
if !_fcc {return nil ,_f .Errorf ("\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006ft\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a \u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_cbea ._gdbcb .GetModelFromPrimitive (_deec );model !=nil {_ebb ,_dcdb :=model .(*PdfAnnotation );if !_dcdb {return nil ,_f .Errorf ("\u0063\u0061\u0063\u0068\u0065\u0064 \u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050D\u0046\u0020\u0061\u006e\u006e\u006f\u0074a\u0074\u0069\u006f\u006e");
|
||
};return _ebb ,nil ;};_beag :=&PdfAnnotation {};_beag ._gcgf =_fcee ;_cbea ._gdbcb .Register (_deec ,_beag );if _ggga :=_deec .Get ("\u0054\u0079\u0070\u0065");_ggga !=nil {_cdcb ,_afgf :=_ggga .(*_ae .PdfObjectName );if !_afgf {_ac .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",_ggga );
|
||
}else {if *_cdcb !="\u0041\u006e\u006eo\u0074"{_ac .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",*_cdcb );};};};
|
||
if _gaf :=_deec .Get ("\u0052\u0065\u0063\u0074");_gaf !=nil {_beag .Rect =_gaf ;};if _gfg :=_deec .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_gfg !=nil {_beag .Contents =_gfg ;};if _cfe :=_deec .Get ("\u0050");_cfe !=nil {_beag .P =_cfe ;
|
||
};if _bbdf :=_deec .Get ("\u004e\u004d");_bbdf !=nil {_beag .NM =_bbdf ;};if _cgac :=_deec .Get ("\u004d");_cgac !=nil {_beag .M =_cgac ;};if _cedd :=_deec .Get ("\u0046");_cedd !=nil {_beag .F =_cedd ;};if _efb :=_deec .Get ("\u0041\u0050");_efb !=nil {_beag .AP =_efb ;
|
||
};if _cba :=_deec .Get ("\u0041\u0053");_cba !=nil {_beag .AS =_cba ;};if _adfa :=_deec .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_adfa !=nil {_beag .Border =_adfa ;};if _edb :=_deec .Get ("\u0043");_edb !=nil {_beag .C =_edb ;};if _gaff :=_deec .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_gaff !=nil {_beag .StructParent =_gaff ;};if _cbcd :=_deec .Get ("\u004f\u0043");_cbcd !=nil {_beag .OC =_cbcd ;};_dgba :=_deec .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _dgba ==nil {_ac .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");
|
||
_beag ._ggd =nil ;return _beag ,nil ;};_dgee ,_bdd :=_dgba .(*_ae .PdfObjectName );if !_bdd {_ac .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",_dgba );
|
||
return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0075\u0062\u0074\u0079\u0070\u0065\u0020\u006f\u0062\u006ae\u0063\u0074\u0020\u0074\u0079\u0070\u0065\u0020\u0021\u003d n\u0061\u006d\u0065 \u0028%\u0054\u0029",_dgba );};switch *_dgee {case "\u0054\u0065\u0078\u0074":_dbac ,_ecbf :=_cbea .newPdfAnnotationTextFromDict (_deec );
|
||
if _ecbf !=nil {return nil ,_ecbf ;};_dbac .PdfAnnotation =_beag ;_beag ._ggd =_dbac ;return _beag ,nil ;case "\u004c\u0069\u006e\u006b":_bced ,_bdc :=_cbea .newPdfAnnotationLinkFromDict (_deec );if _bdc !=nil {return nil ,_bdc ;};_bced .PdfAnnotation =_beag ;
|
||
_beag ._ggd =_bced ;return _beag ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_dbga ,_aeca :=_cbea .newPdfAnnotationFreeTextFromDict (_deec );if _aeca !=nil {return nil ,_aeca ;};_dbga .PdfAnnotation =_beag ;_beag ._ggd =_dbga ;return _beag ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_bagf ,_fafg :=_cbea .newPdfAnnotationLineFromDict (_deec );if _fafg !=nil {return nil ,_fafg ;};_bagf .PdfAnnotation =_beag ;_beag ._ggd =_bagf ;_ac .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",_beag ,_beag );
|
||
_ac .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",_bagf ,_bagf );_ac .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",_bagf .PdfAnnotationMarkup ,_bagf .PdfAnnotationMarkup );
|
||
return _beag ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_cda ,_dgdg :=_cbea .newPdfAnnotationSquareFromDict (_deec );if _dgdg !=nil {return nil ,_dgdg ;};_cda .PdfAnnotation =_beag ;_beag ._ggd =_cda ;return _beag ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_fced ,_befd :=_cbea .newPdfAnnotationCircleFromDict (_deec );
|
||
if _befd !=nil {return nil ,_befd ;};_fced .PdfAnnotation =_beag ;_beag ._ggd =_fced ;return _beag ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_aae ,_dega :=_cbea .newPdfAnnotationPolygonFromDict (_deec );if _dega !=nil {return nil ,_dega ;};_aae .PdfAnnotation =_beag ;
|
||
_beag ._ggd =_aae ;return _beag ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_ccde ,_bafb :=_cbea .newPdfAnnotationPolyLineFromDict (_deec );if _bafb !=nil {return nil ,_bafb ;};_ccde .PdfAnnotation =_beag ;_beag ._ggd =_ccde ;return _beag ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_eecb ,_dgdc :=_cbea .newPdfAnnotationHighlightFromDict (_deec );if _dgdc !=nil {return nil ,_dgdc ;};_eecb .PdfAnnotation =_beag ;_beag ._ggd =_eecb ;return _beag ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_eeb ,_gdd :=_cbea .newPdfAnnotationUnderlineFromDict (_deec );
|
||
if _gdd !=nil {return nil ,_gdd ;};_eeb .PdfAnnotation =_beag ;_beag ._ggd =_eeb ;return _beag ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_daac ,_aefe :=_cbea .newPdfAnnotationSquigglyFromDict (_deec );if _aefe !=nil {return nil ,_aefe ;
|
||
};_daac .PdfAnnotation =_beag ;_beag ._ggd =_daac ;return _beag ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_gagg ,_aega :=_cbea .newPdfAnnotationStrikeOut (_deec );if _aega !=nil {return nil ,_aega ;};_gagg .PdfAnnotation =_beag ;_beag ._ggd =_gagg ;
|
||
return _beag ,nil ;case "\u0043\u0061\u0072e\u0074":_deaa ,_bedg :=_cbea .newPdfAnnotationCaretFromDict (_deec );if _bedg !=nil {return nil ,_bedg ;};_deaa .PdfAnnotation =_beag ;_beag ._ggd =_deaa ;return _beag ,nil ;case "\u0053\u0074\u0061m\u0070":_fdc ,_ceddb :=_cbea .newPdfAnnotationStampFromDict (_deec );
|
||
if _ceddb !=nil {return nil ,_ceddb ;};_fdc .PdfAnnotation =_beag ;_beag ._ggd =_fdc ;return _beag ,nil ;case "\u0049\u006e\u006b":_bcag ,_edc :=_cbea .newPdfAnnotationInkFromDict (_deec );if _edc !=nil {return nil ,_edc ;};_bcag .PdfAnnotation =_beag ;
|
||
_beag ._ggd =_bcag ;return _beag ,nil ;case "\u0050\u006f\u0070u\u0070":_ddg ,_bcdf :=_cbea .newPdfAnnotationPopupFromDict (_deec );if _bcdf !=nil {return nil ,_bcdf ;};_ddg .PdfAnnotation =_beag ;_beag ._ggd =_ddg ;return _beag ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_bgdf ,_bdb :=_cbea .newPdfAnnotationFileAttachmentFromDict (_deec );
|
||
if _bdb !=nil {return nil ,_bdb ;};_bgdf .PdfAnnotation =_beag ;_beag ._ggd =_bgdf ;return _beag ,nil ;case "\u0053\u006f\u0075n\u0064":_gbg ,_bbe :=_cbea .newPdfAnnotationSoundFromDict (_deec );if _bbe !=nil {return nil ,_bbe ;};_gbg .PdfAnnotation =_beag ;
|
||
_beag ._ggd =_gbg ;return _beag ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_feec ,_caea :=_cbea .newPdfAnnotationRichMediaFromDict (_deec );if _caea !=nil {return nil ,_caea ;};_feec .PdfAnnotation =_beag ;_beag ._ggd =_feec ;return _beag ,nil ;
|
||
case "\u004d\u006f\u0076i\u0065":_cdad ,_fccc :=_cbea .newPdfAnnotationMovieFromDict (_deec );if _fccc !=nil {return nil ,_fccc ;};_cdad .PdfAnnotation =_beag ;_beag ._ggd =_cdad ;return _beag ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_aege ,_debe :=_cbea .newPdfAnnotationScreenFromDict (_deec );
|
||
if _debe !=nil {return nil ,_debe ;};_aege .PdfAnnotation =_beag ;_beag ._ggd =_aege ;return _beag ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_gedc ,_cdcg :=_cbea .newPdfAnnotationWidgetFromDict (_deec );if _cdcg !=nil {return nil ,_cdcg ;};_gedc .PdfAnnotation =_beag ;
|
||
_beag ._ggd =_gedc ;return _beag ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_eccd ,_bgc :=_cbea .newPdfAnnotationPrinterMarkFromDict (_deec );if _bgc !=nil {return nil ,_bgc ;};_eccd .PdfAnnotation =_beag ;_beag ._ggd =_eccd ;
|
||
return _beag ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_fdg ,_dfae :=_cbea .newPdfAnnotationTrapNetFromDict (_deec );if _dfae !=nil {return nil ,_dfae ;};_fdg .PdfAnnotation =_beag ;_beag ._ggd =_fdg ;return _beag ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_fag ,_gcc :=_cbea .newPdfAnnotationWatermarkFromDict (_deec );
|
||
if _gcc !=nil {return nil ,_gcc ;};_fag .PdfAnnotation =_beag ;_beag ._ggd =_fag ;return _beag ,nil ;case "\u0033\u0044":_aaeb ,_aecc :=_cbea .newPdfAnnotation3DFromDict (_deec );if _aecc !=nil {return nil ,_aecc ;};_aaeb .PdfAnnotation =_beag ;_beag ._ggd =_aaeb ;
|
||
return _beag ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_ffb ,_bdf :=_cbea .newPdfAnnotationProjectionFromDict (_deec );if _bdf !=nil {return nil ,_bdf ;};_ffb .PdfAnnotation =_beag ;_beag ._ggd =_ffb ;return _beag ,nil ;
|
||
case "\u0052\u0065\u0064\u0061\u0063\u0074":_ddd ,_caaf :=_cbea .newPdfAnnotationRedactFromDict (_deec );if _caaf !=nil {return nil ,_caaf ;};_ddd .PdfAnnotation =_beag ;_beag ._ggd =_ddd ;return _beag ,nil ;};_ac .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",*_dgee );
|
||
return nil ,nil ;};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _ae .PdfObject ;BS _ae .PdfObject ;LE _ae .PdfObject ;IC _ae .PdfObject ;LL _ae .PdfObject ;LLE _ae .PdfObject ;Cap _ae .PdfObject ;IT _ae .PdfObject ;LLO _ae .PdfObject ;CP _ae .PdfObject ;
|
||
Measure _ae .PdfObject ;CO _ae .PdfObject ;};
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };func (_ccdd *DSS )add (_gaeff *[]*_ae .PdfObjectStream ,_bcedc map[string ]*_ae .PdfObjectStream ,_gacec [][]byte )([]*_ae .PdfObjectStream ,error ){_dfcebc :=make ([]*_ae .PdfObjectStream ,0,len (_gacec ));
|
||
for _ ,_adcd :=range _gacec {_ffebf ,_cdgfg :=_gbgbd (_adcd );if _cdgfg !=nil {return nil ,_cdgfg ;};_agcb ,_ccbe :=_bcedc [string (_ffebf )];if !_ccbe {_agcb ,_cdgfg =_ae .MakeStream (_adcd ,_ae .NewRawEncoder ());if _cdgfg !=nil {return nil ,_cdgfg ;
|
||
};_bcedc [string (_ffebf )]=_agcb ;*_gaeff =append (*_gaeff ,_agcb );};_dfcebc =append (_dfcebc ,_agcb );};return _dfcebc ,nil ;};func (_ggefg *PdfWriter )getPdfVersion ()string {return _f .Sprintf ("\u0025\u0064\u002e%\u0064",_ggefg ._faffe .Major ,_ggefg ._faffe .Minor );
|
||
};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_cadgd .Lock ();defer _cadgd .Unlock ();_ecgbe =creator };
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_eeec :=NewPdfAnnotation ();_cga :=&PdfAnnotationCaret {};_cga .PdfAnnotation =_eeec ;_cga .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eeec .SetContext (_cga );return _cga ;};func (_becc *PdfReader )newPdfActionGotoRFromDict (_fgd *_ae .PdfObjectDictionary )(*PdfActionGoToR ,error ){_bge ,_aeg :=_ceb (_fgd .Get ("\u0046"));
|
||
if _aeg !=nil {return nil ,_aeg ;};return &PdfActionGoToR {D :_fgd .Get ("\u0044"),NewWindow :_fgd .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_bge },nil ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_effdd *XObjectImage )ToPdfObject ()_ae .PdfObject {_fccddd :=_effdd ._efaag ;_gdfcb :=_fccddd .PdfObjectDictionary ;if _effdd .Filter !=nil {_gdfcb =_effdd .Filter .MakeStreamDict ();_fccddd .PdfObjectDictionary =_gdfcb ;};_gdfcb .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_gdfcb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0049\u006d\u0061g\u0065"));_gdfcb .Set ("\u0057\u0069\u0064t\u0068",_ae .MakeInteger (*(_effdd .Width )));_gdfcb .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ae .MakeInteger (*(_effdd .Height )));
|
||
if _effdd .BitsPerComponent !=nil {_gdfcb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ae .MakeInteger (*(_effdd .BitsPerComponent )));};if _effdd .ColorSpace !=nil {_gdfcb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_effdd .ColorSpace .ToPdfObject ());
|
||
};_gdfcb .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_effdd .Intent );_gdfcb .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_effdd .ImageMask );_gdfcb .SetIfNotNil ("\u004d\u0061\u0073\u006b",_effdd .Mask );_eacd :=_gdfcb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;
|
||
if _effdd .Decode ==nil &&_eacd {_gdfcb .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _effdd .Decode !=nil {_gdfcb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_effdd .Decode );};_gdfcb .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_effdd .Interpolate );
|
||
_gdfcb .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_effdd .Alternatives );_gdfcb .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_effdd .SMask );_gdfcb .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_effdd .SMaskInData );
|
||
_gdfcb .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_effdd .Matte );_gdfcb .SetIfNotNil ("\u004e\u0061\u006d\u0065",_effdd .Name );_gdfcb .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_effdd .StructParent );_gdfcb .SetIfNotNil ("\u0049\u0044",_effdd .ID );
|
||
_gdfcb .SetIfNotNil ("\u004f\u0050\u0049",_effdd .OPI );_gdfcb .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_effdd .Metadata );_gdfcb .SetIfNotNil ("\u004f\u0043",_effdd .OC );_gdfcb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_effdd .Stream ))));
|
||
_fccddd .Stream =_effdd .Stream ;return _fccddd ;};func (_dgdd *PdfWriter )writeObject (_cbcdg int ,_aafbe _ae .PdfObject ){_ac .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_cbcdg );if _cbbac ,_dfbgd :=_aafbe .(*_ae .PdfIndirectObject );
|
||
_dfbgd {_dgdd ._agfeg [_cbcdg ]=crossReference {Type :1,Offset :_dgdd ._eeegee ,Generation :_cbbac .GenerationNumber };_cffe :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbcdg );if _eacfe ,_bgcaf :=_cbbac .PdfObject .(*pdfSignDictionary );
|
||
_bgcaf {_eacfe ._ebcg =_dgdd ._eeegee +int64 (len (_cffe ));};if _cbbac .PdfObject ==nil {_ac .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");
|
||
_cbbac .PdfObject =_ae .MakeNull ();};_cffe +=_cbbac .PdfObject .WriteString ();_cffe +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_dgdd .writeString (_cffe );return ;};if _cbdba ,_ddbc :=_aafbe .(*_ae .PdfObjectStream );_ddbc {_dgdd ._agfeg [_cbcdg ]=crossReference {Type :1,Offset :_dgdd ._eeegee ,Generation :_cbdba .GenerationNumber };
|
||
_gcdcg :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbcdg );_gcdcg +=_cbdba .PdfObjectDictionary .WriteString ();_gcdcg +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dgdd .writeString (_gcdcg );_dgdd .writeBytes (_cbdba .Stream );
|
||
_dgdd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _eddag ,_fbdfcg :=_aafbe .(*_ae .PdfObjectStreams );_fbdfcg {_dgdd ._agfeg [_cbcdg ]=crossReference {Type :1,Offset :_dgdd ._eeegee ,Generation :_eddag .GenerationNumber };
|
||
_fefcce :=_f .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_cbcdg );var _edccc []string ;var _eaaad string ;var _bbbcb int64 ;for _beaad ,_fgagc :=range _eddag .Elements (){_gdadb ,_fbba :=_fgagc .(*_ae .PdfIndirectObject );if !_fbba {_ac .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",_cbcdg ,_fgagc );
|
||
continue ;};_beegg :=_gdadb .PdfObject .WriteString ()+"\u0020";_eaaad =_eaaad +_beegg ;_edccc =append (_edccc ,_f .Sprintf ("\u0025\u0064\u0020%\u0064",_gdadb .ObjectNumber ,_bbbcb ));_dgdd ._agfeg [int (_gdadb .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_cbcdg ,Index :_beaad };
|
||
_bbbcb =_bbbcb +int64 (len ([]byte (_beegg )));};_aggdf :=_eg .Join (_edccc ,"\u0020")+"\u0020";_gage :=_ae .NewFlateEncoder ();_faeaca :=_gage .MakeStreamDict ();_faeaca .Set (_ae .PdfObjectName ("\u0054\u0079\u0070\u0065"),_ae .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_aggdfg :=int64 (_eddag .Len ());_faeaca .Set (_ae .PdfObjectName ("\u004e"),_ae .MakeInteger (_aggdfg ));_faeaf :=int64 (len (_aggdf ));_faeaca .Set (_ae .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_ae .MakeInteger (_faeaf ));_dffe ,_ :=_gage .EncodeBytes ([]byte (_aggdf +_eaaad ));
|
||
_fcafd :=int64 (len (_dffe ));_faeaca .Set (_ae .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_ae .MakeInteger (_fcafd ));_fefcce +=_faeaca .WriteString ();_fefcce +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_dgdd .writeString (_fefcce );
|
||
_dgdd .writeBytes (_dffe );_dgdd .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_dgdd .writeString (_aafbe .WriteString ());};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_cfbg *PdfInfo )CustomKeys ()[]string {if _cfbg ._ffgag ==nil {return nil ;};_fbbba :=make ([]string ,len (_cfbg ._ffgag .Keys ()));for _ ,_agbd :=range _cfbg ._ffgag .Keys (){_fbbba =append (_fbbba ,_agbd .String ());};return _fbbba ;};func _gafdf (_ddace string )map[string ]string {_bcbe :=_adaba .Split (_ddace ,-1);
|
||
_eggce :=map[string ]string {};for _ ,_fdcga :=range _bcbe {_bffcf :=_bage .FindStringSubmatch (_fdcga );if _bffcf ==nil {continue ;};_aecfg ,_gcabf :=_bffcf [1],_bffcf [2];_eggce [_aecfg ]=_gcabf ;};return _eggce ;};
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_cd :=NewPdfAction ();_dfd :=&PdfActionGoTo {};_dfd .PdfAction =_cd ;_cd .SetContext (_dfd );return _dfd ;};
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
|
||
|
||
// 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{_dadc PdfModel ;_facca *_ae .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_ae .PdfObjectName ;T *_ae .PdfObjectString ;TU *_ae .PdfObjectString ;TM *_ae .PdfObjectString ;Ff *_ae .PdfObjectInteger ;
|
||
V _ae .PdfObject ;DV _ae .PdfObject ;AA _ae .PdfObject ;VariableText *VariableText ;};
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_ae .PdfObjectString ;Author *_ae .PdfObjectString ;Subject *_ae .PdfObjectString ;Keywords *_ae .PdfObjectString ;Creator *_ae .PdfObjectString ;Producer *_ae .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_ae .PdfObjectName ;
|
||
_ffgag *_ae .PdfObjectDictionary ;};func _gbgbd (_cccef []byte )([]byte ,error ){_acddc :=_fg .New ();if _ ,_afgb :=_gdc .Copy (_acddc ,_aa .NewReader (_cccef ));_afgb !=nil {return nil ,_afgb ;};return _acddc .Sum (nil ),nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_ecgg *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=_ecgg .GetNumComponents (){return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_baded ,_gcfg :=_ae .GetNumbersAsFloat (objects );
|
||
if _gcfg !=nil {return nil ,_gcfg ;};return _ecgg .ColorFromFloats (_baded );};func (_bbac *PdfReader )newPdfAnnotationSquareFromDict (_gcdc *_ae .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_fddd :=PdfAnnotationSquare {};_dab ,_ebfb :=_bbac .newPdfAnnotationMarkupFromDict (_gcdc );
|
||
if _ebfb !=nil {return nil ,_ebfb ;};_fddd .PdfAnnotationMarkup =_dab ;_fddd .BS =_gcdc .Get ("\u0042\u0053");_fddd .IC =_gcdc .Get ("\u0049\u0043");_fddd .BE =_gcdc .Get ("\u0042\u0045");_fddd .RD =_gcdc .Get ("\u0052\u0044");return &_fddd ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fccf *PdfAnnotationInk )ToPdfObject ()_ae .PdfObject {_fccf .PdfAnnotation .ToPdfObject ();_effe :=_fccf ._gcgf ;_ggef :=_effe .PdfObject .(*_ae .PdfObjectDictionary );_fccf .PdfAnnotationMarkup .appendToPdfDictionary (_ggef );_ggef .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0049\u006e\u006b"));
|
||
_ggef .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_fccf .InkList );_ggef .SetIfNotNil ("\u0042\u0053",_fccf .BS );return _effe ;};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_gb :=NewPdfAction ();_ggcb :=&PdfActionURI {};_ggcb .PdfAction =_gb ;_gb .SetContext (_ggcb );return _ggcb ;};
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_abea *PdfFieldButton )IsRadio ()bool {return _abea .GetType ()==ButtonTypeRadio };
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_dcddf *PdfFont )BytesToCharcodes (data []byte )[]_bgg .CharCode {_ac .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 _acbb ,_ebbgf :=_dcddf ._dabg .(*pdfFontType0 );_ebbgf &&_acbb ._gbced !=nil {if _ecaf ,_baaaa :=_acbb .bytesToCharcodes (data );_baaaa {return _ecaf ;};};var (_gbaca =make ([]_bgg .CharCode ,0,len (data )+len (data )%2);_cebeba =_dcddf .baseFields ();
|
||
);if _cebeba ._ebfdc !=nil {if _bacd ,_eaffb :=_cebeba ._ebfdc .BytesToCharcodes (data );_eaffb {for _ ,_ecfa :=range _bacd {_gbaca =append (_gbaca ,_bgg .CharCode (_ecfa ));};return _gbaca ;};};if _cebeba .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};
|
||
};if len (data )%2!=0{_ac .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 _gacb :=0;_gacb < len (data );_gacb +=2{_adbe :=uint16 (data [_gacb ])<<8|uint16 (data [_gacb +1]);_gbaca =append (_gbaca ,_bgg .CharCode (_adbe ));};}else {for _ ,_fagc :=range data {_gbaca =append (_gbaca ,_bgg .CharCode (_fagc ));
|
||
};};return _gbaca ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_edadg *pdfFontType0 )ToPdfObject ()_ae .PdfObject {if _edadg ._fagcg ==nil {_edadg ._fagcg =&_ae .PdfIndirectObject {};};_abbg :=_edadg .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_edadg ._fagcg .PdfObject =_abbg ;if _edadg .Encoding !=nil {_abbg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_edadg .Encoding );
|
||
}else if _edadg ._bagdb !=nil {_abbg .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_edadg ._bagdb .ToPdfObject ());};if _edadg .DescendantFont !=nil {_abbg .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_ae .MakeArray (_edadg .DescendantFont .ToPdfObject ()));
|
||
};return _edadg ._fagcg ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _ae .PdfObject ;T3DV _ae .PdfObject ;T3DA _ae .PdfObject ;T3DI _ae .PdfObject ;T3DB _ae .PdfObject ;};func (_fbda PdfFont )actualFont ()pdfFont {if _fbda ._dabg ==nil {_ac .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",_fbda );
|
||
};return _fbda ._dabg ;};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _ae .PdfObjectName ;};
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ae .PdfObject ;LE _ae .PdfObject ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;IT _ae .PdfObject ;Measure _ae .PdfObject ;};var _defe =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":{}};
|
||
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_bafa *PdfAppender )WriteToFile (outputPath string )error {_afecc ,_agcd :=_af .Create (outputPath );if _agcd !=nil {return _agcd ;};defer _afecc .Close ();return _bafa .Write (_afecc );};
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_abddc *PdfPage )GetXObjectByName (name _ae .PdfObjectName )(_ae .PdfObject ,bool ){_bbff ,_bfbcg :=_abddc .Resources .XObject .(*_ae .PdfObjectDictionary );if !_bfbcg {return nil ,false ;};if _efcg :=_bbff .Get (name );_efcg !=nil {return _efcg ,true ;
|
||
};return nil ,false ;};
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _ae .PdfObject ;Open _ae .PdfObject ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_addbc *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_ecga :=NewPdfAnnotation ();_fgc :=&PdfAnnotationHighlight {};_fgc .PdfAnnotation =_ecga ;_fgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecga .SetContext (_fgc );return _fgc ;};func (_dgcf *DSS )addCerts (_gafgb [][]byte )([]*_ae .PdfObjectStream ,error ){return _dgcf .add (&_dgcf .Certs ,_dgcf ._eedc ,_gafgb );
|
||
};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_cafd *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddaf ,_ecgdg :=color .(*PdfColorDeviceCMYK );if !_ecgdg {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_geef :=_ddaf .C ();_eggge :=_ddaf .M ();_agae :=_ddaf .Y ();_abbc :=_ddaf .K ();_geef =_geef *(1-_abbc )+_abbc ;_eggge =_eggge *(1-_abbc )+_abbc ;
|
||
_agae =_agae *(1-_abbc )+_abbc ;_egfcc :=1-_geef ;_gccg :=1-_eggge ;_ddb :=1-_agae ;return NewPdfColorDeviceRGB (_egfcc ,_gccg ,_ddb ),nil ;};
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_ace .PSProgram ;_cagbf *_ace .PSExecutor ;_eabdc []byte ;_cbec *_ae .PdfObjectStream ;};
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_bdbab *PdfPattern )SetContext (ctx PdfModel ){_bdbab ._ebafb =ctx };const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);
|
||
|
||
// 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 ){_cbdge ,_ebdb :=_ec .ParsePdfTime (dateStr );if _ebdb !=nil {return PdfDate {},_ebdb ;};return NewPdfDateFromTime (_cbdge );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgf *PdfActionResetForm )ToPdfObject ()_ae .PdfObject {_dgf .PdfAction .ToPdfObject ();_ffg :=_dgf ._cbe ;_aecg :=_ffg .PdfObject .(*_ae .PdfObjectDictionary );_aecg .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeResetForm )));_aecg .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_dgf .Fields );
|
||
_aecg .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_dgf .Flags );return _ffg ;};
|
||
|
||
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
|
||
func NewPdfTransformParamsDocMDP (permission _dbg .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_ae .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_ae .MakeInteger (int64 (permission )),V :_ae .MakeName ("\u0031\u002e\u0032")};
|
||
};func (_gabab *PdfWriter )writeBytes (_ebged []byte ){if _gabab ._fffcb !=nil {return ;};_cdegc ,_dddad :=_gabab ._dfgcc .Write (_ebged );_gabab ._eeegee +=int64 (_cdegc );_gabab ._fffcb =_dddad ;};
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_fab :=NewPdfAction ();_fbe :=&PdfActionResetForm {};_fbe .PdfAction =_fab ;_fab .SetContext (_fbe );return _fbe ;};func _cgaba (_gfdg *_ae .PdfIndirectObject ,_bfda *_ae .PdfObjectDictionary )(*DSS ,error ){if _gfdg ==nil {_gfdg =_ae .MakeIndirectObject (nil );
|
||
};_gfdg .PdfObject =_ae .MakeDict ();_cdeg :=map[string ]*VRI {};if _ecab ,_cgbe :=_ae .GetDict (_bfda .Get ("\u0056\u0052\u0049"));_cgbe {for _ ,_bddb :=range _ecab .Keys (){if _cbba ,_febc :=_ae .GetDict (_ecab .Get (_bddb ));_febc {_cdeg [_eg .ToUpper (_bddb .String ())]=_gfed (_cbba );
|
||
};};};return &DSS {Certs :_fdgbg (_bfda .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_fdgbg (_bfda .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_fdgbg (_bfda .Get ("\u0043\u0052\u004c\u0073")),VRI :_cdeg ,_cefff :_gfdg },nil ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_ebecd *PdfPattern )GetContainingPdfObject ()_ae .PdfObject {return _ebecd ._ebfged };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cgb *PdfActionJavaScript )ToPdfObject ()_ae .PdfObject {_cgb .PdfAction .ToPdfObject ();_abcb :=_cgb ._cbe ;_eag :=_abcb .PdfObject .(*_ae .PdfObjectDictionary );_eag .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeJavaScript )));_eag .SetIfNotNil ("\u004a\u0053",_cgb .JS );
|
||
return _abcb ;};
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _ae .PdfObject ;};
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _ae .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _adea *_ae .PdfIndirectObject ;var _cab *_ae .PdfObjectName ;var _dgab *_ae .PdfObjectArray ;if _fefc ,_fdge :=obj .(*_ae .PdfIndirectObject );
|
||
_fdge {_adea =_fefc ;};obj =_ae .TraceToDirectObject (obj );switch _adg :=obj .(type ){case *_ae .PdfObjectArray :_dgab =_adg ;case *_ae .PdfObjectName :_cab =_adg ;};if _cab !=nil {switch *_cab {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:_ac .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",*_cab );return nil ,_cdgb ;};};if _dgab !=nil &&_dgab .Len ()> 0{var _abfd _ae .PdfObject =_adea ;
|
||
if _adea ==nil {_abfd =_dgab ;};if _addb ,_agdf :=_ae .GetName (_dgab .Get (0));_agdf {switch _addb .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _dgab .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _dgab .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _dgab .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _bfdcd (_abfd );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _edag (_abfd );
|
||
case "\u004c\u0061\u0062":return _geffa (_abfd );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _cefe (_abfd );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _feaee (_abfd );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _eeedf (_abfd );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _ebgef (_abfd );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _bdggg (_abfd );default:_ac .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",*_addb );
|
||
};};};_ac .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 ;};
|
||
|
||
// GetVersion gets the document version.
|
||
func (_dggff *PdfWriter )GetVersion ()_ae .Version {return _dggff ._faffe };
|
||
|
||
// 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 *_ae .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_efbgg *_ae .PdfIndirectObject ;};
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_aced _gdc .ReadSeeker ;_ceda *_ae .PdfParser ;_afad *PdfReader ;Reader *PdfReader ;_eabf []*PdfPage ;_eced *PdfAcroForm ;_ddad *DSS ;_fgcd *Permissions ;_gedb _ae .XrefTable ;_daea int64 ;_bcgg int ;_gea []_ae .PdfObject ;_dcefg map[_ae .PdfObject ]struct{};
|
||
_dcdbc map[_ae .PdfObject ]int64 ;_gfge map[_ae .PdfObject ]struct{};_bcefc map[_ae .PdfObject ]struct{};_egcg int64 ;_fdbdf bool ;_acf string ;_gffe *EncryptOptions ;_eecfe *PdfInfo ;};func (_bef *PdfReader )newPdfActionGotoFromDict (_ead *_ae .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_ead .Get ("\u0044")},nil ;
|
||
};func (_bcfcc *PdfAcroForm )fillImageWithAppearance (_ecec FieldImageProvider ,_dcgdc FieldAppearanceGenerator )error {if _bcfcc ==nil {return nil ;};_fgeec ,_dfedd :=_ecec .FieldImageValues ();if _dfedd !=nil {return _dfedd ;};for _ ,_dbgaa :=range _bcfcc .AllFields (){_cfaed :=_dbgaa .PartialName ();
|
||
_gabb ,_fbff :=_fgeec [_cfaed ];if !_fbff {if _bfga ,_acddg :=_dbgaa .FullName ();_acddg ==nil {_gabb ,_fbff =_fgeec [_bfga ];};};if !_fbff {_ac .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",_cfaed );
|
||
continue ;};switch _bbdea :=_dbgaa .GetContext ().(type ){case *PdfFieldButton :if _bbdea .IsPush (){_bbdea .SetFillImage (_gabb );};};if _dcgdc ==nil {continue ;};for _ ,_ecbba :=range _dbgaa .Annotations {_eabdd ,_efaea :=_dcgdc .GenerateAppearanceDict (_bcfcc ,_dbgaa ,_ecbba );
|
||
if _efaea !=nil {return _efaea ;};_ecbba .AP =_eabdd ;_ecbba .ToPdfObject ();};};return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_dffg *VRI )ToPdfObject ()*_ae .PdfObjectDictionary {_bfgdc :=_ae .MakeDict ();_bfgdc .SetIfNotNil (_ae .PdfObjectName ("\u0043\u0065\u0072\u0074"),_ceaec (_dffg .Cert ));_bfgdc .SetIfNotNil (_ae .PdfObjectName ("\u004f\u0043\u0053\u0050"),_ceaec (_dffg .OCSP ));
|
||
_bfgdc .SetIfNotNil (_ae .PdfObjectName ("\u0043\u0052\u004c"),_ceaec (_dffg .CRL ));_bfgdc .SetIfNotNil ("\u0054\u0055",_dffg .TU );_bfgdc .SetIfNotNil ("\u0054\u0053",_dffg .TS );return _bfgdc ;};
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_ae .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _ae .PdfObject ;A _ae .PdfObject ;SE _ae .PdfObject ;C _ae .PdfObject ;F _ae .PdfObject ;
|
||
_dabga *_ae .PdfIndirectObject ;};
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_efgf :=NewPdfAnnotation ();_dca :=&PdfAnnotationUnderline {};_dca .PdfAnnotation =_efgf ;_dca .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efgf .SetContext (_dca );return _dca ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_cbad OutlineDest )ToPdfObject ()_ae .PdfObject {if (_cbad .PageObj ==nil &&_cbad .Page < 0)||_cbad .Mode ==""{return _ae .MakeNull ();};_cace :=_ae .MakeArray ();if _cbad .PageObj !=nil {_cace .Append (_cbad .PageObj );}else {_cace .Append (_ae .MakeInteger (_cbad .Page ));
|
||
};_cace .Append (_ae .MakeName (_cbad .Mode ));switch _cbad .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_cace .Append (_ae .MakeFloat (_cbad .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_cace .Append (_ae .MakeFloat (_cbad .X ));
|
||
case "\u0058\u0059\u005a":_cace .Append (_ae .MakeFloat (_cbad .X ));_cace .Append (_ae .MakeFloat (_cbad .Y ));_cace .Append (_ae .MakeFloat (_cbad .Zoom ));default:_cace .Set (1,_ae .MakeName ("\u0046\u0069\u0074"));};return _cace ;};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;BitsPerFlag *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_acadg *Image )SetDecode (decode []float64 ){_acadg ._fdae =decode };func _cgdeg ()_d .Time {_cadgd .Lock ();defer _cadgd .Unlock ();return _ddage };var ImageHandling ImageHandler =DefaultImageHandler {};
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_geca *PdfFieldChoice )ToPdfObject ()_ae .PdfObject {_geca .PdfField .ToPdfObject ();_bdcd :=_geca ._facca ;_eedeb :=_bdcd .PdfObject .(*_ae .PdfObjectDictionary );_eedeb .Set ("\u0046\u0054",_ae .MakeName ("\u0043\u0068"));if _geca .Opt !=nil {_eedeb .Set ("\u004f\u0070\u0074",_geca .Opt );
|
||
};if _geca .TI !=nil {_eedeb .Set ("\u0054\u0049",_geca .TI );};if _geca .I !=nil {_eedeb .Set ("\u0049",_geca .I );};return _bdcd ;};
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;RD _ae .PdfObject ;};
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_afcbg *PdfColorDeviceRGB )R ()float64 {return _afcbg [0]};
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_daf *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dcefb ,_fdeb :=color .(*PdfColorDeviceRGB );if !_fdeb {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _dcefb ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_gffea *PdfField )GetContainingPdfObject ()_ae .PdfObject {return _gffea ._facca };
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_bcdb :=NewPdfAnnotation ();_gec :=&PdfAnnotationTrapNet {};_gec .PdfAnnotation =_bcdb ;_bcdb .SetContext (_gec );return _gec ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfacd *Permissions )ToPdfObject ()_ae .PdfObject {return _dfacd ._gccec };
|
||
|
||
// String returns a string representation of PdfTransformParamsDocMDP.
|
||
func (_gafdb *PdfTransformParamsDocMDP )String ()string {return _f .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_gafdb .Type ,_gafdb .P ,_gafdb .V );};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_fdb :=NewPdfAnnotation ();_fefa :=&PdfAnnotationPolyLine {};_fefa .PdfAnnotation =_fdb ;_fefa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fdb .SetContext (_fefa );return _fefa ;};
|
||
|
||
// 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 *_ae .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_gcgbc *PdfPageResourcesColorspaces )Set (key _ae .PdfObjectName ,val PdfColorspace ){if _ ,_baae :=_gcgbc .Colorspaces [string (key )];!_baae {_gcgbc .Names =append (_gcgbc .Names ,string (key ));};_gcgbc .Colorspaces [string (key )]=val ;};func (_febd *PdfReader )newPdfAcroFormFromDict (_ebee *_ae .PdfIndirectObject ,_agdc *_ae .PdfObjectDictionary )(*PdfAcroForm ,error ){_addcf :=NewPdfAcroForm ();
|
||
if _ebee !=nil {_addcf ._febbe =_ebee ;_ebee .PdfObject =_ae .MakeDict ();};if _ccgb :=_agdc .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_ccgb !=nil &&!_ae .IsNullObject (_ccgb ){_abcfa ,_cdga :=_ae .GetArray (_ccgb );if !_cdga {return nil ,_f .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_ccgb );
|
||
};var _afged []*PdfField ;for _ ,_bbafe :=range _abcfa .Elements (){_fgaed ,_eeded :=_ae .GetIndirect (_bbafe );if !_eeded {if _ ,_gggbb :=_bbafe .(*_ae .PdfObjectNull );_gggbb {_ac .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 ;};_ac .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",_bbafe );
|
||
return nil ,_f .Errorf ("\u0066\u0069\u0065l\u0064\u0020\u006e\u006ft\u0020\u0069\u006e\u0020\u0061\u006e\u0020i\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_gffbf ,_bbacc :=_febd .newPdfFieldFromIndirectObject (_fgaed ,nil );
|
||
if _bbacc !=nil {return nil ,_bbacc ;};_ac .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_gffbf );_afged =append (_afged ,_gffbf );};_addcf .Fields =&_afged ;};if _gdaa :=_agdc .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_gdaa !=nil {_cgafga ,_abdee :=_ae .GetBool (_gdaa );if _abdee {_addcf .NeedAppearances =_cgafga ;}else {_ac .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",_gdaa );
|
||
};};if _dfag :=_agdc .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_dfag !=nil {_fbga ,_fdddf :=_ae .GetInt (_dfag );if _fdddf {_addcf .SigFlags =_fbga ;}else {_ac .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",_dfag );
|
||
};};if _abbdg :=_agdc .Get ("\u0043\u004f");_abbdg !=nil {_bfcbc ,_afafb :=_ae .GetArray (_abbdg );if _afafb {_addcf .CO =_bfcbc ;}else {_ac .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",_abbdg );
|
||
};};if _afbdc :=_agdc .Get ("\u0044\u0052");_afbdc !=nil {if _cdec ,_feba :=_ae .GetDict (_afbdc );_feba {_fdcfd ,_dgdga :=NewPdfPageResourcesFromDict (_cdec );if _dgdga !=nil {_ac .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_dgdga );
|
||
return nil ,_dgdga ;};_addcf .DR =_fdcfd ;}else {_ac .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",_afbdc );};};if _ecacb :=_agdc .Get ("\u0044\u0041");
|
||
_ecacb !=nil {_dcfae ,_faab :=_ae .GetString (_ecacb );if _faab {_addcf .DA =_dcfae ;}else {_ac .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",_ecacb );
|
||
};};if _cecgg :=_agdc .Get ("\u0051");_cecgg !=nil {_aefga ,_fcbfg :=_ae .GetInt (_cecgg );if _fcbfg {_addcf .Q =_aefga ;}else {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_cecgg );
|
||
};};if _cccbb :=_agdc .Get ("\u0058\u0046\u0041");_cccbb !=nil {_addcf .XFA =_cccbb ;};if _cegef :=_agdc .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_cegef !=nil {_addcf .ADBEEchoSign =_cegef ;};_addcf .ToPdfObject ();
|
||
return _addcf ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bfdc *PdfAnnotationFreeText )ToPdfObject ()_ae .PdfObject {_bfdc .PdfAnnotation .ToPdfObject ();_feed :=_bfdc ._gcgf ;_aadc :=_feed .PdfObject .(*_ae .PdfObjectDictionary );_bfdc .PdfAnnotationMarkup .appendToPdfDictionary (_aadc );_aadc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_aadc .SetIfNotNil ("\u0044\u0041",_bfdc .DA );_aadc .SetIfNotNil ("\u0051",_bfdc .Q );_aadc .SetIfNotNil ("\u0052\u0043",_bfdc .RC );_aadc .SetIfNotNil ("\u0044\u0053",_bfdc .DS );_aadc .SetIfNotNil ("\u0043\u004c",_bfdc .CL );_aadc .SetIfNotNil ("\u0049\u0054",_bfdc .IT );
|
||
_aadc .SetIfNotNil ("\u0042\u0045",_bfdc .BE );_aadc .SetIfNotNil ("\u0052\u0044",_bfdc .RD );_aadc .SetIfNotNil ("\u0042\u0053",_bfdc .BS );_aadc .SetIfNotNil ("\u004c\u0045",_bfdc .LE );return _feed ;};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_gedd *PdfPageResources )GetContainingPdfObject ()_ae .PdfObject {return _gedd ._cebg };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bffb *PdfAnnotationPolygon )ToPdfObject ()_ae .PdfObject {_bffb .PdfAnnotation .ToPdfObject ();_dged :=_bffb ._gcgf ;_bgcd :=_dged .PdfObject .(*_ae .PdfObjectDictionary );_bffb .PdfAnnotationMarkup .appendToPdfDictionary (_bgcd );_bgcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_bgcd .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_bffb .Vertices );_bgcd .SetIfNotNil ("\u004c\u0045",_bffb .LE );_bgcd .SetIfNotNil ("\u0042\u0053",_bffb .BS );_bgcd .SetIfNotNil ("\u0049\u0043",_bffb .IC );_bgcd .SetIfNotNil ("\u0042\u0045",_bffb .BE );
|
||
_bgcd .SetIfNotNil ("\u0049\u0054",_bffb .IT );_bgcd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_bffb .Measure );return _dged ;};
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _ae .PdfObject ;Volume _ae .PdfObject ;Synchronous _ae .PdfObject ;Repeat _ae .PdfObject ;Mix _ae .PdfObject ;};
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_bedda *PdfPageResources )SetXObjectImageByName (keyName _ae .PdfObjectName ,ximg *XObjectImage )error {_gdgaa :=ximg .ToPdfObject ().(*_ae .PdfObjectStream );_fcdbf :=_bedda .SetXObjectByName (keyName ,_gdgaa );return _fcdbf ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_gfafb *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if _gfafb .Alternate ==nil {if _gfafb .N ==1{_bfad :=NewPdfColorspaceDeviceGray ();return _bfad .ColorFromPdfObjects (objects );}else if _gfafb .N ==3{_dbb :=NewPdfColorspaceDeviceRGB ();
|
||
return _dbb .ColorFromPdfObjects (objects );}else if _gfafb .N ==4{_fceeg :=NewPdfColorspaceDeviceCMYK ();return _fceeg .ColorFromPdfObjects (objects );}else {return nil ,_db .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 _gfafb .Alternate .ColorFromPdfObjects (objects );};func (_geeb *PdfReader )newPdfAnnotationPolyLineFromDict (_cegb *_ae .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_bdbe :=PdfAnnotationPolyLine {};_ffeb ,_dgfg :=_geeb .newPdfAnnotationMarkupFromDict (_cegb );
|
||
if _dgfg !=nil {return nil ,_dgfg ;};_bdbe .PdfAnnotationMarkup =_ffeb ;_bdbe .Vertices =_cegb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_bdbe .LE =_cegb .Get ("\u004c\u0045");_bdbe .BS =_cegb .Get ("\u0042\u0053");_bdbe .IC =_cegb .Get ("\u0049\u0043");
|
||
_bdbe .BE =_cegb .Get ("\u0042\u0045");_bdbe .IT =_cegb .Get ("\u0049\u0054");_bdbe .Measure =_cegb .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_bdbe ,nil ;};
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_gadfd *modelManager )Register (primitive _ae .PdfObject ,model PdfModel ){_gadfd ._gbed [model ]=primitive ;_gadfd ._bdcg [primitive ]=model ;};
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_fafe :=NewPdfAnnotation ();_cgd :=&PdfAnnotationText {};_cgd .PdfAnnotation =_fafe ;_cgd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fafe .SetContext (_cgd );return _cgd ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_addcd *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cecde ,_fbeac :=_ae .GetNumbersAsFloat (objects );
|
||
if _fbeac !=nil {return nil ,_fbeac ;};return _addcd .ColorFromFloats (_cecde );};
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_eedecb *PdfPattern )GetContext ()PdfModel {return _eedecb ._ebafb };func (_bdgfa *PdfWriter )checkLicense ()error {_cafcdf :=_gcg .GetLicenseKey ();if (_cafcdf ==nil ||!_cafcdf .IsLicensed ())&&!_acffcf {_f .Printf ("\u0055\u006e\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0064\u0020c\u006f\u0070\u0079\u0020\u006f\u0066\u0020\u0055\u006e\u0069P\u0044\u0046\u000a");
|
||
_f .Println ("-\u0020\u0047\u0065\u0074\u0020\u0061\u0020\u0066\u0072e\u0065\u0020\u0074\u0072\u0069\u0061\u006c l\u0069\u0063\u0065\u006es\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070s:\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");
|
||
return _db .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 ;};
|
||
|
||
// PdfColorDeviceRGB represents a color in DeviceRGB colorspace with R, G, B components, where component is
|
||
// defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorDeviceRGB [3]float64 ;func (_cegc *PdfReader )newPdfAnnotationPrinterMarkFromDict (_bggee *_ae .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_cada :=PdfAnnotationPrinterMark {};_cada .MN =_bggee .Get ("\u004d\u004e");return &_cada ,nil ;
|
||
};func (_egfd *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eba *PdfAnnotationFileAttachment )ToPdfObject ()_ae .PdfObject {_eba .PdfAnnotation .ToPdfObject ();_fccd :=_eba ._gcgf ;_cgad :=_fccd .PdfObject .(*_ae .PdfObjectDictionary );_eba .PdfAnnotationMarkup .appendToPdfDictionary (_cgad );_cgad .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_cgad .SetIfNotNil ("\u0046\u0053",_eba .FS );_cgad .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eba .Name );return _fccd ;};var (CourierName =_cb .CourierName ;CourierBoldName =_cb .CourierBoldName ;CourierObliqueName =_cb .CourierObliqueName ;CourierBoldObliqueName =_cb .CourierBoldObliqueName ;
|
||
HelveticaName =_cb .HelveticaName ;HelveticaBoldName =_cb .HelveticaBoldName ;HelveticaObliqueName =_cb .HelveticaObliqueName ;HelveticaBoldObliqueName =_cb .HelveticaBoldObliqueName ;SymbolName =_cb .SymbolName ;ZapfDingbatsName =_cb .ZapfDingbatsName ;
|
||
TimesRomanName =_cb .TimesRomanName ;TimesBoldName =_cb .TimesBoldName ;TimesItalicName =_cb .TimesItalicName ;TimesBoldItalicName =_cb .TimesBoldItalicName ;);
|
||
|
||
// 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 (_gdca *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddaa ,_daag :=color .(*PdfColorPattern );if !_daag {_ac .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 _ddaa .Color ==nil {return color ,nil ;};if _gdca .UnderlyingCS ==nil {return nil ,_db .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};return _gdca .UnderlyingCS .ColorToRGB (_ddaa .Color );
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_afg *PdfActionSetOCGState )ToPdfObject ()_ae .PdfObject {_afg .PdfAction .ToPdfObject ();_gag :=_afg ._cbe ;_ccg :=_gag .PdfObject .(*_ae .PdfObjectDictionary );_ccg .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeSetOCGState )));_ccg .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_afg .State );
|
||
_ccg .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_afg .PreserveRB );return _gag ;};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_feaf :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_feaf ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_adae pdfCIDFontType0 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){return _cb .CharMetrics {Wx :_adae ._bbfb },true ;};
|
||
|
||
// 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 (_bebec *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_dccfb ,_ ,_eada :=_bebec .CharcodesToUnicodeWithStats (_bebec .BytesToCharcodes (data ));_bcaf :=_bgg .ExpandLigatures (_dccfb );return _bcaf ,_fa .RuneCountInString (_bcaf ),_eada ;
|
||
};
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_aec :=&PdfAction {};_aec ._cbe =_ae .MakeIndirectObject (_ae .MakeDict ());return _aec ;};func (_ceee *PdfReader )newPdfAnnotationRichMediaFromDict (_afa *_ae .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_dcc :=&PdfAnnotationRichMedia {};
|
||
_dcc .RichMediaSettings =_afa .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_dcc .RichMediaContent =_afa .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
|
||
return _dcc ,nil ;};
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_dgbb *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _dgbb .AcroForm ==nil {return nil ,nil ;};if _dgbb .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_cabcb *PdfSignature ;
|
||
_bfba *PdfField ;_eaeadd SignatureHandler ;};var _eabed []*sigFieldPair ;for _ ,_cddfe :=range _dgbb .AcroForm .AllFields (){if _cddfe .V ==nil {continue ;};if _gdggaa ,_adgcg :=_ae .GetDict (_cddfe .V );_adgcg {if _bafea ,_gcgaa :=_ae .GetNameVal (_gdggaa .Get ("\u0054\u0079\u0070\u0065"));
|
||
_gcgaa &&_bafea =="\u0053\u0069\u0067"{_bgeaa ,_gafac :=_ae .GetIndirect (_cddfe .V );if !_gafac {_ac .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 ;};_affff ,_abga :=_dgbb .newPdfSignatureFromIndirect (_bgeaa );if _abga !=nil {return nil ,_abga ;};var _bdgc SignatureHandler ;for _ ,_cbeda :=range handlers {if _cbeda .IsApplicable (_affff ){_bdgc =_cbeda ;break ;};};_eabed =append (_eabed ,&sigFieldPair {_cabcb :_affff ,_bfba :_cddfe ,_eaeadd :_bdgc });
|
||
};};};var _ggdag []SignatureValidationResult ;for _ ,_fadcd :=range _eabed {_ceaab :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_fadcd ._bfba }};if _fadcd ._eaeadd ==nil {_ceaab .Errors =append (_ceaab .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
||
_ggdag =append (_ggdag ,_ceaab );continue ;};_ddaeb ,_ddgdf :=_fadcd ._eaeadd .NewDigest (_fadcd ._cabcb );if _ddgdf !=nil {_ceaab .Errors =append (_ceaab .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_ddgdf .Error ());
|
||
_ggdag =append (_ggdag ,_ceaab );continue ;};_degc :=_fadcd ._cabcb .ByteRange ;if _degc ==nil {_ceaab .Errors =append (_ceaab .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_ggdag =append (_ggdag ,_ceaab );
|
||
continue ;};for _egecc :=0;_egecc < _degc .Len ();_egecc =_egecc +2{_eacad ,_ :=_ae .GetNumberAsInt64 (_degc .Get (_egecc ));_beabc ,_ :=_ae .GetIntVal (_degc .Get (_egecc +1));if _ ,_ggefa :=_dgbb ._bgbcea .Seek (_eacad ,_gdc .SeekStart );_ggefa !=nil {return nil ,_ggefa ;
|
||
};_bfgc :=make ([]byte ,_beabc );if _ ,_dggcag :=_dgbb ._bgbcea .Read (_bfgc );_dggcag !=nil {return nil ,_dggcag ;};_ddaeb .Write (_bfgc );};var _gbggb SignatureValidationResult ;if _caab ,_adbda :=_fadcd ._eaeadd .(SignatureHandlerDocMDP );_adbda {_gbggb ,_ddgdf =_caab .ValidateWithOpts (_fadcd ._cabcb ,_ddaeb ,SignatureHandlerDocMDPParams {Parser :_dgbb ._bfcga });
|
||
}else {_gbggb ,_ddgdf =_fadcd ._eaeadd .Validate (_fadcd ._cabcb ,_ddaeb );};if _ddgdf !=nil {_ac .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_ddgdf ,_fadcd ._eaeadd );_gbggb .Errors =append (_gbggb .Errors ,_ddgdf .Error ());
|
||
};_gbggb .Name =_fadcd ._cabcb .Name .Decoded ();_gbggb .Reason =_fadcd ._cabcb .Reason .Decoded ();if _fadcd ._cabcb .M !=nil {_ffec ,_feegc :=NewPdfDate (_fadcd ._cabcb .M .String ());if _feegc !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_feegc );
|
||
_gbggb .Errors =append (_gbggb .Errors ,_feegc .Error ());continue ;};_gbggb .Date =_ffec ;};_gbggb .ContactInfo =_fadcd ._cabcb .ContactInfo .Decoded ();_gbggb .Location =_fadcd ._cabcb .Location .Decoded ();_gbggb .Fields =_ceaab .Fields ;_ggdag =append (_ggdag ,_gbggb );
|
||
};return _ggdag ,nil ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_ggcg *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_cbefa :=NewPdfAnnotation ();_fgf :=&PdfAnnotationProjection {};_fgf .PdfAnnotation =_cbefa ;_fgf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cbefa .SetContext (_fgf );return _fgf ;};
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_fe :=NewPdfAction ();_cg :=&PdfActionGoToE {};_cg .PdfAction =_fe ;_fe .SetContext (_cg );return _cg ;};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_bdba *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_bedc :=NewPdfAnnotation ();_bfb :=&PdfAnnotationInk {};_bfb .PdfAnnotation =_bedc ;_bfb .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bedc .SetContext (_bfb );return _bfb ;};
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_facca :_ae .MakeIndirectObject (_ae .MakeDict ())}};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_aebf *PdfInfo )AddCustomInfo (name string ,value string )error {if _aebf ._ffgag ==nil {_aebf ._ffgag =_ae .MakeDict ();};if _ ,_febb :=_efea [name ];_febb {return _f .Errorf ("\u0063\u0061\u006e\u006e\u006ft\u0020\u0075\u0073\u0065\u0020\u0073\u0074\u0061\u006e\u0064\u0061\u0072\u0064 \u0069\u006e\u0066\u006f\u0020\u006b\u0065\u0079\u0020\u0025\u0073\u0020\u0061\u0073\u0020\u0063\u0075\u0073\u0074\u006f\u006d\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006b\u0065y",name );
|
||
};_aebf ._ffgag .SetIfNotNil (*_ae .MakeName (name ),_ae .MakeString (value ));return nil ;};
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_dcac :=NewPdfAnnotation ();_fgcf :=&PdfAnnotationStrikeOut {};_fgcf .PdfAnnotation =_dcac ;_fgcf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dcac .SetContext (_fgcf );return _fgcf ;};
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_dc :=NewPdfAction ();_bf :=&PdfActionMovie {};_bf .PdfAction =_dc ;_dc .SetContext (_bf );return _bf ;};
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_afeac PdfDate )ToGoTime ()_d .Time {_aefefde :=int (_afeac ._adaec *60*60+_afeac ._befea *60);switch _afeac ._eaedg {case '-':_aefefde =-_aefefde ;case 'Z':_aefefde =0;};_caebb :=_f .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_afeac ._eaedg ,_afeac ._adaec ,_afeac ._befea );
|
||
_gceaf :=_d .FixedZone (_caebb ,_aefefde );return _d .Date (int (_afeac ._edbbd ),_d .Month (_afeac ._cedda ),int (_afeac ._ddefe ),int (_afeac ._bedgeg ),int (_afeac ._fbcga ),int (_afeac ._eabef ),0,_gceaf );};func _feaee (_ceea _ae .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ac .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",_ceea .String (),_ceea );
|
||
_egcfd :=NewPdfColorspaceSpecialPattern ();if _aebc ,_dfac :=_ceea .(*_ae .PdfIndirectObject );_dfac {_egcfd ._gcffb =_aebc ;};_ceea =_ae .TraceToDirectObject (_ceea );if _ceffg ,_afeg :=_ceea .(*_ae .PdfObjectName );_afeg {if *_ceffg !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _egcfd ,nil ;};_cddb ,_egffe :=_ceea .(*_ae .PdfObjectArray );if !_egffe {_ac .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",_ceea );
|
||
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _cddb .Len ()!=1&&_cddb .Len ()!=2{_ac .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",_cddb );
|
||
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_ceea =_cddb .Get (0);if _bcaea ,_dbeb :=_ceea .(*_ae .PdfObjectName );_dbeb {if *_bcaea !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ac .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",_bcaea );
|
||
return nil ,_f .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _cddb .Len ()> 1{_ceea =_cddb .Get (1);_ceea =_ae .TraceToDirectObject (_ceea );_adcgb ,_adedd :=NewPdfColorspaceFromPdfObject (_ceea );if _adedd !=nil {return nil ,_adedd ;
|
||
};_egcfd .UnderlyingCS =_adcgb ;};_ac .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",_egcfd .UnderlyingCS );
|
||
return _egcfd ,nil ;};
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_ffdb *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_ffdb .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_ffdb ._eced =acroForm ;};
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_fcbe :=NewPdfAnnotation ();_edab :=&PdfAnnotationSound {};_edab .PdfAnnotation =_fcbe ;_edab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fcbe .SetContext (_edab );return _edab ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfaf *PdfActionRendition )ToPdfObject ()_ae .PdfObject {_dfaf .PdfAction .ToPdfObject ();_dda :=_dfaf ._cbe ;_efc :=_dda .PdfObject .(*_ae .PdfObjectDictionary );_efc .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeRendition )));_efc .SetIfNotNil ("\u0052",_dfaf .R );
|
||
_efc .SetIfNotNil ("\u0041\u004e",_dfaf .AN );_efc .SetIfNotNil ("\u004f\u0050",_dfaf .OP );_efc .SetIfNotNil ("\u004a\u0053",_dfaf .JS );return _dda ;};func (_efbc *PdfWriter )makeOffSetReference (_gaaf int64 ){_eadgd :=_f .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_gaaf );
|
||
_efbc .writeString (_eadgd );_efbc .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");};func (_fdec *PdfReader )loadAction (_fdbg _ae .PdfObject )(*PdfAction ,error ){if _afe ,_egdd :=_ae .GetIndirect (_fdbg );_egdd {_gcd ,_fcff :=_fdec .newPdfActionFromIndirectObject (_afe );
|
||
if _fcff !=nil {return nil ,_fcff ;};return _gcd ,nil ;}else if !_ae .IsNullObject (_fdbg ){return nil ,_db .New ("\u0061\u0063\u0074\u0069\u006fn\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0070\u006f\u0069\u006e\u0074 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};return nil ,nil ;};func _fcfe ()string {_cadgd .Lock ();defer _cadgd .Unlock ();_cedef :=_gcg .GetLicenseKey ();if len (_bbgdec )> 0&&(_cedef .IsLicensed ()||_acffcf ){return _bbgdec ;};return _f .Sprintf ("\u0055\u006e\u0069Do\u0063\u0020\u0076\u0025\u0073\u0020\u0028\u0025\u0073)\u0020-\u0020h\u0074t\u0070\u003a\u002f\u002f\u0075\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f",_accce (),_cedef .TypeToString ());
|
||
};func _ebbc (_fgfg _ae .PdfObject )(*PdfFontDescriptor ,error ){_cdbdb :=&PdfFontDescriptor {};_fgfg =_ae .ResolveReference (_fgfg );if _bcee ,_degac :=_fgfg .(*_ae .PdfIndirectObject );_degac {_cdbdb ._dcfaf =_bcee ;_fgfg =_bcee .PdfObject ;};_eabdg ,_acga :=_ae .GetDict (_fgfg );
|
||
if !_acga {_ac .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",_fgfg );
|
||
return nil ,_ae .ErrTypeError ;};if _egfg :=_eabdg .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_egfg !=nil {_cdbdb .FontName =_egfg ;}else {_ac .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");
|
||
};_aadb ,_ :=_ae .GetName (_cdbdb .FontName );if _aacg :=_eabdg .Get ("\u0054\u0079\u0070\u0065");_aacg !=nil {_ggdg ,_gaefd :=_aacg .(*_ae .PdfObjectName );if !_gaefd ||string (*_ggdg )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ac .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",_aacg ,_aadb ,_cdbdb .FontName );
|
||
};}else {_ac .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",_aadb ,_cdbdb .FontName );
|
||
};_cdbdb .FontFamily =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_cdbdb .FontStretch =_eabdg .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_cdbdb .FontWeight =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_cdbdb .Flags =_eabdg .Get ("\u0046\u006c\u0061g\u0073");_cdbdb .FontBBox =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_cdbdb .ItalicAngle =_eabdg .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_cdbdb .Ascent =_eabdg .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_cdbdb .Descent =_eabdg .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_cdbdb .Leading =_eabdg .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_cdbdb .CapHeight =_eabdg .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_cdbdb .XHeight =_eabdg .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_cdbdb .StemV =_eabdg .Get ("\u0053\u0074\u0065m\u0056");_cdbdb .StemH =_eabdg .Get ("\u0053\u0074\u0065m\u0048");_cdbdb .AvgWidth =_eabdg .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_cdbdb .MaxWidth =_eabdg .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_cdbdb .MissingWidth =_eabdg .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_cdbdb .FontFile =_eabdg .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_cdbdb .FontFile2 =_eabdg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_cdbdb .FontFile3 =_eabdg .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_cdbdb .CharSet =_eabdg .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_cdbdb .Style =_eabdg .Get ("\u0053\u0074\u0079l\u0065");_cdbdb .Lang =_eabdg .Get ("\u004c\u0061\u006e\u0067");
|
||
_cdbdb .FD =_eabdg .Get ("\u0046\u0044");_cdbdb .CIDSet =_eabdg .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _cdbdb .Flags !=nil {if _gfcce ,_bcce :=_ae .GetIntVal (_cdbdb .Flags );_bcce {_cdbdb ._fbafe =_gfcce ;};};if _cdbdb .MissingWidth !=nil {if _efff ,_gabd :=_ae .GetNumberAsFloat (_cdbdb .MissingWidth );
|
||
_gabd ==nil {_cdbdb ._ffdc =_efff ;};};if _cdbdb .FontFile !=nil {_bfcaf ,_bgdda :=_bbgdb (_cdbdb .FontFile );if _bgdda !=nil {return _cdbdb ,_bgdda ;};_ac .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_bfcaf );_cdbdb .fontFile =_bfcaf ;
|
||
};if _cdbdb .FontFile2 !=nil {_aabb ,_afeff :=_cb .NewFontFile2FromPdfObject (_cdbdb .FontFile2 );if _afeff !=nil {return _cdbdb ,_afeff ;};_ac .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_aabb .String ());_cdbdb ._aebfg =&_aabb ;
|
||
};return _cdbdb ,nil ;};
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_aggda *PdfColorspaceDeviceNAttributes )ToPdfObject ()_ae .PdfObject {_gecgc :=_ae .MakeDict ();if _aggda .Subtype !=nil {_gecgc .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_aggda .Subtype );};_gecgc .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_aggda .Colorants );
|
||
_gecgc .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_aggda .Process );_gecgc .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_aggda .MixingHints );if _aggda ._cabd !=nil {_aggda ._cabd .PdfObject =_gecgc ;return _aggda ._cabd ;
|
||
};return _gecgc ;};func _ceb (_eaf _ae .PdfObject )(*PdfFilespec ,error ){if _eaf ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_eaf );};
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_cfff *Image )ColorAt (x ,y int )(_gg .Color ,error ){_gabcge :=_afc .BytesPerLine (int (_cfff .Width ),int (_cfff .BitsPerComponent ),_cfff .ColorComponents );switch _cfff .ColorComponents {case 1:return _afc .ColorAtGrayscale (x ,y ,int (_cfff .BitsPerComponent ),_gabcge ,_cfff .Data ,_cfff ._fdae );
|
||
case 3:return _afc .ColorAtNRGBA (x ,y ,int (_cfff .Width ),_gabcge ,int (_cfff .BitsPerComponent ),_cfff .Data ,_cfff ._bbba ,_cfff ._fdae );case 4:return _afc .ColorAtCMYK (x ,y ,int (_cfff .Width ),_cfff .Data ,_cfff ._fdae );};_ac .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",_cfff .ColorComponents ,_cfff .BitsPerComponent );
|
||
return nil ,_db .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");};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_cgaaa :=&PdfOutline {_fcge :_ae .MakeIndirectObject (_ae .MakeDict ())};_cgaaa ._aaea =_cgaaa ;return _cgaaa ;};func (_fcaac *DSS )generateHashMap (_eded []*_ae .PdfObjectStream )(map[string ]*_ae .PdfObjectStream ,error ){_cfed :=map[string ]*_ae .PdfObjectStream {};
|
||
for _ ,_bgace :=range _eded {_adcc ,_eggf :=_ae .DecodeStream (_bgace );if _eggf !=nil {return nil ,_eggf ;};_gbcga ,_eggf :=_gbgbd (_adcc );if _eggf !=nil {return nil ,_eggf ;};_cfed [string (_gbcga )]=_bgace ;};return _cfed ,nil ;};
|
||
|
||
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
|
||
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_cdfff :=&PdfShadingPatternType3 {};_cdfff .Matrix =_ae .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_cdfff .PdfPattern =&PdfPattern {};_cdfff .PdfPattern .PatternType =int64 (*_ae .MakeInteger (2));
|
||
_cdfff .PdfPattern ._ebafb =_cdfff ;_cdfff .PdfPattern ._ebfged =_ae .MakeIndirectObject (_ae .MakeDict ());return _cdfff ;};func _abbdb (_edgb _ae .PdfObject ,_cbbg *PdfReader )(*OutlineDest ,error ){_cafc ,_ccga :=_ae .GetArray (_edgb );if !_ccga {return nil ,_db .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");
|
||
};_eccgc :=_cafc .Len ();if _eccgc < 2{return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020\u006fu\u0074\u006c\u0069n\u0065\u0020\u0064\u0065\u0073\u0074\u0069\u006e\u0061ti\u006f\u006e\u0020a\u0072\u0072a\u0079\u0020\u006c\u0065\u006e\u0067t\u0068\u003a \u0025\u0064",_eccgc );
|
||
};_beac :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_fccgf :=_cafc .Get (0);if _afag ,_dcaeeb :=_ae .GetIndirect (_fccgf );_dcaeeb {if _ ,_egaeb ,_bfbea :=_cbbg .PageFromIndirectObject (_afag );_bfbea ==nil {_beac .Page =int64 (_egaeb -1);}else {_ac .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",_afag );
|
||
};_beac .PageObj =_afag ;}else if _eaeddg ,_dbbad :=_ae .GetIntVal (_fccgf );_dbbad {if _eaeddg >=0&&_eaeddg < len (_cbbg .PageList ){_beac .PageObj =_cbbg .PageList [_eaeddg ].GetPageAsIndirectObject ();}else {_ac .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",_eaeddg );
|
||
};_beac .Page =int64 (_eaeddg );}else {return nil ,_f .Errorf ("\u0069\u006eva\u006c\u0069\u0064 \u006f\u0075\u0074\u006cine\u0020de\u0073\u0074\u0069\u006e\u0061\u0074\u0069on\u0020\u0070\u0061\u0067\u0065\u003a\u0020%\u0054",_fccgf );};_fdfb ,_ccga :=_ae .GetNameVal (_cafc .Get (1));
|
||
if !_ccga {_ac .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",_cafc .Get (1));
|
||
return _beac ,nil ;};switch _fdfb {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _eccgc > 2{_beac .Y ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _eccgc > 2{_beac .X ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _eccgc > 4{_beac .X ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (2)));_beac .Y ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (3)));_beac .Zoom ,_ =_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_cafc .Get (4)));
|
||
};default:_fdfb ="\u0046\u0069\u0074";};_beac .Mode =_fdfb ;return _beac ,nil ;};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_gcffb *_ae .PdfIndirectObject ;};
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_dgad *Image )ToJBIG2Image ()(*_ae .JBIG2Image ,error ){_dcgfc ,_dbbc :=_dgad .ToGoImage ();if _dbbc !=nil {return nil ,_dbbc ;};return _ae .GoImageToJBIG2 (_dcgfc ,_ae .JB2ImageAutoThreshold );};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_fedfeg *PdfPageResources )ToPdfObject ()_ae .PdfObject {_eadgf :=_fedfeg ._cebg ;_eadgf .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_fedfeg .ExtGState );if _fedfeg ._febfa !=nil {_fedfeg .ColorSpace =_fedfeg ._febfa .ToPdfObject ();
|
||
};_eadgf .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_fedfeg .ColorSpace );_eadgf .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_fedfeg .Pattern );_eadgf .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_fedfeg .Shading );
|
||
_eadgf .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_fedfeg .XObject );_eadgf .SetIfNotNil ("\u0046\u006f\u006e\u0074",_fedfeg .Font );_eadgf .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_fedfeg .ProcSet );_eadgf .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_fedfeg .Properties );
|
||
return _eadgf ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_cdde *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_ffebe :=_ag .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_ffebe *_cdde .C ()),uint32 (_ffebe *_cdde .M ()),uint32 (_ffebe *_cdde .Y ()),uint32 (_ffebe *_cdde .K ())};};
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_aadcc *PdfPageResources )GetColorspaceByName (keyName _ae .PdfObjectName )(PdfColorspace ,bool ){_geddg ,_gedbg :=_aadcc .GetColorspaces ();if _gedbg !=nil {_ac .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",_gedbg );
|
||
return nil ,false ;};if _geddg ==nil {return nil ,false ;};_ebbea ,_cfbdc :=_geddg .Colorspaces [string (keyName )];if !_cfbdc {return nil ,false ;};return _ebbea ,true ;};func (_agbf *pdfFontType0 )baseFields ()*fontCommon {return &_agbf .fontCommon };
|
||
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_dbcf *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ac .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_db .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};func _fccgfc (_bgebda _gdc .ReadSeeker ,_adbdg *ReaderOpts ,_faffd bool ,_efdff string )(*PdfReader ,error ){if _adbdg ==nil {_adbdg =NewReaderOpts ();
|
||
};_bgbaa :=*_adbdg ;_ebbae :=&PdfReader {_bgbcea :_bgebda ,_agege :map[_ae .PdfObject ]struct{}{},_gdbcb :_gccbg (),_ffggb :_adbdg .LazyLoad ,_dbeeb :_adbdg .ComplianceMode ,_bafaa :_faffd ,_bagca :&_bgbaa };_ccffb ,_gdda :=_dfbdga ("\u0072");if _gdda !=nil {return nil ,_gdda ;
|
||
};_gdda =_gcg .Track (_ccffb ,_efdff );if _gdda !=nil {return nil ,_gdda ;};_ebbae ._decgb =_ccffb ;var _gdae *_ae .PdfParser ;if !_ebbae ._dbeeb {_gdae ,_gdda =_ae .NewParser (_bgebda );}else {_gdae ,_gdda =_ae .NewCompliancePdfParser (_bgebda );};if _gdda !=nil {return nil ,_gdda ;
|
||
};_ebbae ._bfcga =_gdae ;_dgeed ,_gdda :=_ebbae .IsEncrypted ();if _gdda !=nil {return nil ,_gdda ;};if !_dgeed {_gdda =_ebbae .loadStructure ();if _gdda !=nil {return nil ,_gdda ;};}else if _faffd {_efcge ,_effad :=_ebbae .Decrypt ([]byte (_adbdg .Password ));
|
||
if _effad !=nil {return nil ,_effad ;};if !_efcge {return nil ,_db .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");
|
||
};};_ebbae ._aabeg =make (map[*PdfReader ]*PdfReader );_ebbae ._afagc =make ([]*PdfReader ,_gdae .GetRevisionNumber ());return _ebbae ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_adee *PdfAnnotation3D )ToPdfObject ()_ae .PdfObject {_adee .PdfAnnotation .ToPdfObject ();_dgdce :=_adee ._gcgf ;_debee :=_dgdce .PdfObject .(*_ae .PdfObjectDictionary );_debee .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0033\u0044"));
|
||
_debee .SetIfNotNil ("\u0033\u0044\u0044",_adee .T3DD );_debee .SetIfNotNil ("\u0033\u0044\u0056",_adee .T3DV );_debee .SetIfNotNil ("\u0033\u0044\u0041",_adee .T3DA );_debee .SetIfNotNil ("\u0033\u0044\u0049",_adee .T3DI );_debee .SetIfNotNil ("\u0033\u0044\u0042",_adee .T3DB );
|
||
return _dgdce ;};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_ae .PdfIndirectObject )*PdfOutlineItem {_fbbd :=PdfOutlineItem {};_fbbd ._aaea =&_fbbd ;_fbbd .Title =_ae .MakeString (title );_ebgc :=_ae .MakeArray ();_ebgc .Append (page );_ebgc .Append (_ae .MakeName ("\u0046\u0069\u0074"));
|
||
_fbbd .Dest =_ebgc ;return &_fbbd ;};
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;RD _ae .PdfObject ;};
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_edcac :=NewPdfOutline ();_edcac ._aaea =&_edcac ;return _edcac ;};func _dfbdga (_cbfc string )(string ,error ){var _ffab _aa .Buffer ;_ffab .WriteString (_cbfc );_bddbcc :=make ([]byte ,8+16);_fdaaf :=_d .Now ().UTC ().UnixNano ();
|
||
_fd .BigEndian .PutUint64 (_bddbcc ,uint64 (_fdaaf ));_ ,_ffefe :=_gd .Read (_bddbcc [8:]);if _ffefe !=nil {return "",_ffefe ;};_ffab .WriteString (_g .EncodeToString (_bddbcc ));return _ffab .String (),nil ;};func (_geffg *PdfFunctionType0 )processSamples ()error {_gfaag :=_ba .ResampleBytes (_geffg ._ecefb ,_geffg .BitsPerSample );
|
||
_geffg ._fegc =_gfaag ;return nil ;};
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_ecdba *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_ecdba ._dgfge =outlineTree };
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_df PdfModel ;Type _ae .PdfObject ;S _ae .PdfObject ;Next _ae .PdfObject ;_cbe *_ae .PdfIndirectObject ;};
|
||
|
||
// Write writes out the PDF.
|
||
func (_dddfeb *PdfWriter )Write (writer _gdc .Writer )error {_ac .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_gbeb :=_dddfeb .checkLicense ();if _gbeb !=nil {return _gbeb ;};if _gbeb =_dddfeb .writeOutlines ();_gbeb !=nil {return _gbeb ;};if _gbeb =_dddfeb .writeAcroFormFields ();
|
||
_gbeb !=nil {return _gbeb ;};_dddfeb .checkPendingObjects ();if _gbeb =_dddfeb .writeOutputIntents ();_gbeb !=nil {return _gbeb ;};_dddfeb .setCatalogVersion ();_dddfeb .copyObjects ();if _gbeb =_dddfeb .optimize ();_gbeb !=nil {return _gbeb ;};if _gbeb =_dddfeb .optimizeDocument ();
|
||
_gbeb !=nil {return _gbeb ;};var _gfada _b .Hash ;if _dddfeb ._gfbc {_gfada =_ab .New ();writer =_gdc .MultiWriter (_gfada ,writer );};_dddfeb .setWriter (writer );_gdfef :=_dddfeb .checkCrossReferenceStream ();_gaggd ,_gdfef :=_dddfeb .mapObjectStreams (_gdfef );
|
||
_dddfeb .adjustXRefAffectedVersion (_gdfef );_dddfeb .writeDocumentVersion ();_dddfeb .updateObjectNumbers ();_dddfeb .writeObjects ();if _gbeb =_dddfeb .writeObjectsInStreams (_gaggd );_gbeb !=nil {return _gbeb ;};_cedag :=_dddfeb ._eeegee ;var _dcfcf int ;
|
||
for _fegeg :=range _dddfeb ._agfeg {if _fegeg > _dcfcf {_dcfcf =_fegeg ;};};if _dddfeb ._gfbc {if _gbeb =_dddfeb .setHashIDs (_gfada );_gbeb !=nil {return _gbeb ;};};if _gdfef {if _gbeb =_dddfeb .writeXRefStreams (_dcfcf ,_cedag );_gbeb !=nil {return _gbeb ;
|
||
};}else {_dddfeb .writeTrailer (_dcfcf );};_dddfeb .makeOffSetReference (_cedag );if _gbeb =_dddfeb .flushWriter ();_gbeb !=nil {return _gbeb ;};return nil ;};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _ae .PdfObject ;Popup *PdfAnnotationPopup ;CA _ae .PdfObject ;RC _ae .PdfObject ;CreationDate _ae .PdfObject ;IRT _ae .PdfObject ;Subj _ae .PdfObject ;RT _ae .PdfObject ;IT _ae .PdfObject ;ExData _ae .PdfObject ;};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_dcdd *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_ffgf :=0.3*_dcdd .R ()+0.59*_dcdd .G ()+0.11*_dcdd .B ();_ffgf =_ag .Min (_ag .Max (_ffgf ,0.0),1.0);return NewPdfColorDeviceGray (_ffgf );};
|
||
|
||
// Items returns all children outline items.
|
||
func (_eebc *Outline )Items ()[]*OutlineItem {return _eebc .Entries };
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_dgec *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};
|
||
|
||
// 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 (_cccag *PdfWriter )SetOpenAction (dest _ae .PdfObject )error {if dest ==nil ||_ae .IsNullObject (dest ){return nil ;};_cccag ._caddd .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _cccag .addObjects (dest );};
|
||
|
||
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
|
||
func NewPdfShadingType3 ()*PdfShadingType3 {_deecc :=&PdfShadingType3 {};_deecc .PdfShading =&PdfShading {};_deecc .PdfShading ._dcdgda =_ae .MakeIndirectObject (_ae .MakeDict ());_deecc .PdfShading ._ffgbf =_deecc ;return _deecc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ceeed *PdfAnnotationMovie )ToPdfObject ()_ae .PdfObject {_ceeed .PdfAnnotation .ToPdfObject ();_fbca :=_ceeed ._gcgf ;_dbab :=_fbca .PdfObject .(*_ae .PdfObjectDictionary );_dbab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_dbab .SetIfNotNil ("\u0054",_ceeed .T );_dbab .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_ceeed .Movie );_dbab .SetIfNotNil ("\u0041",_ceeed .A );return _fbca ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_dbca *PdfAnnotation )GetContainingPdfObject ()_ae .PdfObject {return _dbca ._gcgf };func (_afba *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _afba ._cafdb ==nil &&_afba .DescendantFont !=nil {return _afba .DescendantFont .FontDescriptor ();
|
||
};return _afba ._cafdb ;};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_gfc :=NewPdfAction ();_fcb :=&PdfActionNamed {};_fcb .PdfAction =_gfc ;_gfc .SetContext (_fcb );return _fcb ;};func _ddgf (_caad *_ae .PdfObjectDictionary ,_ebff *fontCommon )(*pdfFontType0 ,error ){_geebd ,_ebdd :=_ae .GetArray (_caad .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
|
||
if !_ebdd {_ac .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",_ebff );
|
||
return nil ,_ae .ErrRangeError ;};if _geebd .Len ()!=1{_ac .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",_geebd .Len ());return nil ,_ae .ErrRangeError ;
|
||
};_gdbc ,_edac :=_baabd (_geebd .Get (0),false );if _edac !=nil {_ac .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",_edac ,_ebff );
|
||
return nil ,_edac ;};_ebecc :=_cede (_ebff );_ebecc .DescendantFont =_gdbc ;_fbfda ,_ebdd :=_ae .GetNameVal (_caad .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _ebdd {if _fbfda =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_fbfda =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_ebecc ._bagdb =_bgg .NewIdentityTextEncoder (_fbfda );
|
||
}else if _abg .IsPredefinedCMap (_fbfda ){_ebecc ._gbced ,_edac =_abg .LoadPredefinedCMap (_fbfda );if _edac !=nil {_ac .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",_fbfda ,_edac );
|
||
};}else {_ac .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_fbfda );};};if _gdgcf :=_gdbc .baseFields ()._ebfdc ;_gdgcf !=nil {if _gfcba :=_gdgcf .Name ();_gfcba =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_gfcba =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_gfcba =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_gfcba =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_ebecc ._bagdb =_bgg .NewCMapEncoder (_fbfda ,_ebecc ._gbced ,_gdgcf );
|
||
};};return _ebecc ,nil ;};func (_efad *PdfField )inherit (_edaba func (*PdfField )bool )(bool ,error ){_eddg :=map[*PdfField ]bool {};_ddfe :=false ;_gbcd :=_efad ;for _gbcd !=nil {if _ ,_acaga :=_eddg [_gbcd ];_acaga {return false ,_db .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");
|
||
};_dbdg :=_edaba (_gbcd );if _dbdg {_ddfe =true ;break ;};_eddg [_gbcd ]=true ;_gbcd =_gbcd .Parent ;};return _ddfe ,nil ;};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_eaeadc *PdfReader )GetOCProperties ()(_ae .PdfObject ,error ){_bgfcd :=_eaeadc ._aedf ;_cfcf :=_bgfcd .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_cfcf =_ae .ResolveReference (_cfcf );if !_eaeadc ._ffggb {_gcgfb :=_eaeadc .traverseObjectData (_cfcf );
|
||
if _gcgfb !=nil {return nil ,_gcgfb ;};};return _cfcf ,nil ;};
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_dfccd *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _ae .GetNumberAsFloat (_dfccd .Ascent );};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_baab *PdfColorspaceSpecialPattern )ToPdfObject ()_ae .PdfObject {if _baab .UnderlyingCS ==nil {return _ae .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_cbde :=_ae .MakeArray (_ae .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_cbde .Append (_baab .UnderlyingCS .ToPdfObject ());
|
||
if _baab ._gcffb !=nil {_baab ._gcffb .PdfObject =_cbde ;return _baab ._gcffb ;};return _cbde ;};
|
||
|
||
// 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 (_fggd *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_debf :=vals [0];if _debf < 0.0||_debf > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debf );
|
||
return nil ,ErrColorOutOfRange ;};_ffbfd :=vals [1];if _ffbfd < 0.0||_ffbfd > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debf );return nil ,ErrColorOutOfRange ;
|
||
};_aceb :=vals [2];if _aceb < 0.0||_aceb > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_debf );return nil ,ErrColorOutOfRange ;};_fgdeb :=NewPdfColorDeviceRGB (_debf ,_ffbfd ,_aceb );
|
||
return _fgdeb ,nil ;};func _fbbf (_dgbe *PdfPage )map[_ae .PdfObjectName ]_ae .PdfObject {_dbag :=make (map[_ae .PdfObjectName ]_ae .PdfObject );if _dgbe .Resources ==nil {return _dbag ;};if _dgbe .Resources .Font !=nil {if _fffd ,_bfdcf :=_ae .GetDict (_dgbe .Resources .Font );
|
||
_bfdcf {for _ ,_aada :=range _fffd .Keys (){_dbag [_aada ]=_fffd .Get (_aada );};};};if _dgbe .Resources .ExtGState !=nil {if _bac ,_fbfc :=_ae .GetDict (_dgbe .Resources .ExtGState );_fbfc {for _ ,_geed :=range _bac .Keys (){_dbag [_geed ]=_bac .Get (_geed );
|
||
};};};if _dgbe .Resources .XObject !=nil {if _caeac ,_bgdg :=_ae .GetDict (_dgbe .Resources .XObject );_bgdg {for _ ,_befe :=range _caeac .Keys (){_dbag [_befe ]=_caeac .Get (_befe );};};};if _dgbe .Resources .Pattern !=nil {if _ebab ,_ggee :=_ae .GetDict (_dgbe .Resources .Pattern );
|
||
_ggee {for _ ,_geea :=range _ebab .Keys (){_dbag [_geea ]=_ebab .Get (_geea );};};};if _dgbe .Resources .Shading !=nil {if _aggee ,_defd :=_ae .GetDict (_dgbe .Resources .Shading );_defd {for _ ,_dfbd :=range _aggee .Keys (){_dbag [_dfbd ]=_aggee .Get (_dfbd );
|
||
};};};if _dgbe .Resources .ProcSet !=nil {if _ecde ,_fgbc :=_ae .GetDict (_dgbe .Resources .ProcSet );_fgbc {for _ ,_bdgbc :=range _ecde .Keys (){_dbag [_bdgbc ]=_ecde .Get (_bdgbc );};};};if _dgbe .Resources .Properties !=nil {if _cdd ,_agc :=_ae .GetDict (_dgbe .Resources .Properties );
|
||
_agc {for _ ,_ddab :=range _cdd .Keys (){_dbag [_ddab ]=_cdd .Get (_ddab );};};};return _dbag ;};
|
||
|
||
// 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 ;};
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_aadd _ae .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_dga *PdfAnnotation )ToPdfObject ()_ae .PdfObject {_fdefg :=_dga ._gcgf ;_aecea :=_fdefg .PdfObject .(*_ae .PdfObjectDictionary );_aecea .Clear ();_aecea .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0041\u006e\u006eo\u0074"));_aecea .SetIfNotNil ("\u0052\u0065\u0063\u0074",_dga .Rect );
|
||
_aecea .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_dga .Contents );_aecea .SetIfNotNil ("\u0050",_dga .P );_aecea .SetIfNotNil ("\u004e\u004d",_dga .NM );_aecea .SetIfNotNil ("\u004d",_dga .M );_aecea .SetIfNotNil ("\u0046",_dga .F );
|
||
_aecea .SetIfNotNil ("\u0041\u0050",_dga .AP );_aecea .SetIfNotNil ("\u0041\u0053",_dga .AS );_aecea .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_dga .Border );_aecea .SetIfNotNil ("\u0043",_dga .C );_aecea .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_dga .StructParent );
|
||
_aecea .SetIfNotNil ("\u004f\u0043",_dga .OC );return _fdefg ;};func (_aad *PdfReader )newPdfActionSubmitFormFromDict (_fgg *_ae .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_afga ,_cfg :=_ceb (_fgg .Get ("\u0046"));if _cfg !=nil {return nil ,_cfg ;
|
||
};return &PdfActionSubmitForm {F :_afga ,Fields :_fgg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_fgg .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
|
||
|
||
// PdfTransformParamsDocMDP represents a transform parameters dictionary for the DocMDP method and is used to detect
|
||
// modifications relative to a signature field that is signed by the author of a document.
|
||
// (Section 12.8.2.2, Table 254 - Entries in the DocMDP transform parameters dictionary p. 471 in PDF32000_2008).
|
||
type PdfTransformParamsDocMDP struct{Type *_ae .PdfObjectName ;P *_ae .PdfObjectInteger ;V *_ae .PdfObjectName ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_acee *PdfAnnotationPolyLine )ToPdfObject ()_ae .PdfObject {_acee .PdfAnnotation .ToPdfObject ();_gba :=_acee ._gcgf ;_efbg :=_gba .PdfObject .(*_ae .PdfObjectDictionary );_acee .PdfAnnotationMarkup .appendToPdfDictionary (_efbg );_efbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_efbg .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_acee .Vertices );_efbg .SetIfNotNil ("\u004c\u0045",_acee .LE );_efbg .SetIfNotNil ("\u0042\u0053",_acee .BS );_efbg .SetIfNotNil ("\u0049\u0043",_acee .IC );_efbg .SetIfNotNil ("\u0042\u0045",_acee .BE );
|
||
_efbg .SetIfNotNil ("\u0049\u0054",_acee .IT );_efbg .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_acee .Measure );return _gba ;};func _cdfgf (_faef _ae .PdfObject )(map[_bgg .CharCode ]float64 ,error ){if _faef ==nil {return nil ,nil ;};_cfgca ,_ccdcg :=_ae .GetArray (_faef );
|
||
if !_ccdcg {return nil ,nil ;};_dgdef :=map[_bgg .CharCode ]float64 {};_gdcaga :=_cfgca .Len ();for _aadaa :=0;_aadaa < _gdcaga -1;_aadaa ++{_bfge :=_ae .TraceToDirectObject (_cfgca .Get (_aadaa ));_bdbgf ,_faffc :=_ae .GetIntVal (_bfge );if !_faffc {return nil ,_f .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_aadaa ,_bfge );
|
||
};_aadaa ++;if _aadaa > _gdcaga -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_cfgca );};_afgdb :=_ae .TraceToDirectObject (_cfgca .Get (_aadaa ));
|
||
switch _afgdb .(type ){case *_ae .PdfObjectArray :_faeg ,_ :=_ae .GetArray (_afgdb );if _cecaf ,_gfbgc :=_faeg .ToFloat64Array ();_gfbgc ==nil {for _caae :=0;_caae < len (_cecaf );_caae ++{_dgdef [_bgg .CharCode (_bdbgf +_caae )]=_cecaf [_caae ];};}else {return nil ,_f .Errorf ("\u0042\u0061\u0064 \u0066\u006f\u006e\u0074 \u0057\u0020\u0061\u0072\u0072\u0061\u0079 \u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_aadaa ,_afgdb );
|
||
};case *_ae .PdfObjectInteger :_eceba ,_fdaca :=_ae .GetIntVal (_afgdb );if !_fdaca {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0031\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_aadaa ,_afgdb );
|
||
};_aadaa ++;if _aadaa > _gdcaga -1{return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020a\u0072\u0072\u0061\u0079\u003a\u0020\u0061\u0072\u0072\u0032=\u0025\u002b\u0076",_cfgca );};_bgggc :=_cfgca .Get (_aadaa );_fgfd ,_abad :=_ae .GetNumberAsFloat (_bgggc );
|
||
if _abad !=nil {return nil ,_f .Errorf ("\u0042\u0061d\u0020\u0066\u006f\u006e\u0074\u0020\u0057\u0020\u0069\u006e\u0074\u0020\u006f\u0062\u006a\u0032\u003a\u0020\u0069\u003d\u0025\u0064 %\u0023\u0076",_aadaa ,_bgggc );};for _eadbd :=_bdbgf ;_eadbd <=_eceba ;
|
||
_eadbd ++{_dgdef [_bgg .CharCode (_eadbd )]=_fgfd ;};default:return nil ,_f .Errorf ("\u0042\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0057 \u006f\u0062\u006a\u0031\u0020\u0074\u0079p\u0065\u003a\u0020\u0069\u003d\u0025\u0064\u0020\u0025\u0023\u0076",_aadaa ,_afgdb );
|
||
};};return _dgdef ,nil ;};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _ae .PdfObject ;Name _ae .PdfObject ;};
|
||
|
||
// 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 _gdc .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _cdaf ="\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 _fccgfc (rs ,opts ,true ,_cdaf );
|
||
};
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_cafcd *Outline )ToPdfOutline ()*PdfOutline {_deecf :=NewPdfOutline ();var _egfe []*PdfOutlineItem ;var _aaff int64 ;var _bcgag *PdfOutlineItem ;for _ ,_ebgeb :=range _cafcd .Entries {_fcegf ,_bdcgc :=_ebgeb .ToPdfOutlineItem ();_fcegf .Parent =&_deecf .PdfOutlineTreeNode ;
|
||
if _bcgag !=nil {_bcgag .Next =&_fcegf .PdfOutlineTreeNode ;_fcegf .Prev =&_bcgag .PdfOutlineTreeNode ;};_egfe =append (_egfe ,_fcegf );_aaff +=_bdcgc ;_bcgag =_fcegf ;};_gcfe :=int64 (len (_egfe ));_aaff +=_gcfe ;if _gcfe > 0{_deecf .First =&_egfe [0].PdfOutlineTreeNode ;
|
||
_deecf .Last =&_egfe [_gcfe -1].PdfOutlineTreeNode ;_deecf .Count =&_aaff ;};return _deecf ;};func _aecgg (_fgfc *_ae .PdfObjectDictionary ,_gabef *fontCommon )(*pdfCIDFontType0 ,error ){if _gabef ._adce !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ac .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",_gabef );
|
||
return nil ,_ae .ErrRangeError ;};_addf :=_fabff (_gabef );_effaa ,_aafd :=_ae .GetDict (_fgfc .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_aafd {_ac .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",_gabef );
|
||
return nil ,ErrRequiredAttributeMissing ;};_addf .CIDSystemInfo =_effaa ;_addf .DW =_fgfc .Get ("\u0044\u0057");_addf .W =_fgfc .Get ("\u0057");_addf .DW2 =_fgfc .Get ("\u0044\u0057\u0032");_addf .W2 =_fgfc .Get ("\u0057\u0032");_addf ._bbfb =1000.0;if _eceg ,_ffgbb :=_ae .GetNumberAsFloat (_addf .DW );
|
||
_ffgbb ==nil {_addf ._bbfb =_eceg ;};_begfb ,_cabgg :=_cdfgf (_addf .W );if _cabgg !=nil {return nil ,_cabgg ;};if _begfb ==nil {_begfb =map[_bgg .CharCode ]float64 {};};_addf ._abbcg =_begfb ;return _addf ,nil ;};func _cbfg (_beff []byte )[]byte {const _adede =52845;
|
||
const _eabc =22719;_ddagb :=55665;for _ ,_geg :=range _beff [:4]{_ddagb =(int (_geg )+_ddagb )*_adede +_eabc ;};_ebeg :=make ([]byte ,len (_beff )-4);for _bgbcf ,_gegg :=range _beff [4:]{_ebeg [_bgbcf ]=byte (int (_gegg )^_ddagb >>8);_ddagb =(int (_gegg )+_ddagb )*_adede +_eabc ;
|
||
};return _ebeg ;};
|
||
|
||
// 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 _ae .PdfObject )(_ae .PdfObjectName ,error ){var _caaa *_ae .PdfObjectName ;var _cccf *_ae .PdfObjectArray ;if _acdd ,_bgcbb :=obj .(*_ae .PdfIndirectObject );_bgcbb {if _acff ,_eea :=_acdd .PdfObject .(*_ae .PdfObjectArray );
|
||
_eea {_cccf =_acff ;}else if _ggaf ,_ffebc :=_acdd .PdfObject .(*_ae .PdfObjectName );_ffebc {_caaa =_ggaf ;};}else if _cdea ,_fdgeg :=obj .(*_ae .PdfObjectArray );_fdgeg {_cccf =_cdea ;}else if _fefcc ,_gcdf :=obj .(*_ae .PdfObjectName );_gcdf {_caaa =_fefcc ;
|
||
};if _caaa !=nil {switch *_caaa {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 *_caaa ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_caaa ,nil ;
|
||
};};if _cccf !=nil &&_cccf .Len ()> 0{if _aaege ,_acac :=_cccf .Get (0).(*_ae .PdfObjectName );_acac {switch *_aaege {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 _cccf .Len ()==1{return *_aaege ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_aaege ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_aaege ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_aaege ,nil ;};};};return "",nil ;};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_bae *PdfAppender )Write (w _gdc .Writer )error {if _bae ._fdbdf {return _db .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");
|
||
};_cbb :=NewPdfWriter ();_fdeg ,_debd :=_ae .GetDict (_cbb ._efcgc );if !_debd {return _db .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");
|
||
};_caeacd ,_debd :=_fdeg .Get ("\u004b\u0069\u0064\u0073").(*_ae .PdfObjectArray );if !_debd {return _db .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");
|
||
};_cdf ,_debd :=_fdeg .Get ("\u0043\u006f\u0075n\u0074").(*_ae .PdfObjectInteger );if !_debd {return _db .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");
|
||
};_dgdcc :=_bae ._afad ._bfcga ;_afge :=_dgdcc .GetTrailer ();if _afge ==nil {return _db .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_deaag ,_debd :=_ae .GetIndirect (_afge .Get ("\u0052\u006f\u006f\u0074"));
|
||
if !_debd {return _db .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_efcda ,_debd :=_ae .GetDict (_deaag );if !_debd {_ac .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",_deaag ,*_afge );
|
||
return _db .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};for _ ,_baaa :=range _efcda .Keys (){if _cbb ._caddd .Get (_baaa )==nil {_fadc :=_efcda .Get (_baaa );_cbb ._caddd .Set (_baaa ,_fadc );};};if _bae ._eced !=nil {if _bae ._eced ._fcbae {if _effc :=_ae .TraceToDirectObject (_bae ._eced .ToPdfObject ());
|
||
!_ae .IsNullObject (_effc ){_cbb ._caddd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_effc );_bae .updateObjectsDeep (_effc ,nil );}else {_ac .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 {_cbb ._caddd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bae ._eced .ToPdfObject ());_bae .updateObjectsDeep (_bae ._eced .ToPdfObject (),nil );};};if _bae ._ddad !=nil {_bae .updateObjectsDeep (_bae ._ddad .ToPdfObject (),nil );
|
||
_cbb ._caddd .Set ("\u0044\u0053\u0053",_bae ._ddad .GetContainingPdfObject ());};if _bae ._fgcd !=nil {_cbb ._caddd .Set ("\u0050\u0065\u0072m\u0073",_bae ._fgcd .ToPdfObject ());_bae .updateObjectsDeep (_bae ._fgcd .ToPdfObject (),nil );};if _cbb ._faffe .Major < 2{_cbb .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
|
||
_cbb .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _fagd ,_edbg :=_ae .GetDict (_afge .Get ("\u0049\u006e\u0066\u006f"));_edbg {if _feeb ,_cde :=_ae .GetDict (_cbb ._cbffg );_cde {for _ ,_bgbg :=range _fagd .Keys (){if _feeb .Get (_bgbg )==nil {_feeb .Set (_bgbg ,_fagd .Get (_bgbg ));
|
||
};};};};if _bae ._eecfe !=nil {_cbb ._cbffg =_ae .MakeIndirectObject (_bae ._eecfe .ToPdfObject ());};_bae .addNewObject (_cbb ._cbffg );_bae .addNewObject (_cbb ._aacfc );_efe :=false ;if len (_bae ._afad .PageList )!=len (_bae ._eabf ){_efe =true ;}else {for _badea :=range _bae ._afad .PageList {switch {case _bae ._eabf [_badea ]==_bae ._afad .PageList [_badea ]:case _bae ._eabf [_badea ]==_bae .Reader .PageList [_badea ]:default:_efe =true ;
|
||
};if _efe {break ;};};};if _efe {_bae .updateObjectsDeep (_cbb ._efcgc ,nil );}else {_bae ._gfge [_cbb ._efcgc ]=struct{}{};};_cbb ._efcgc .ObjectNumber =_bae .Reader ._cdee .ObjectNumber ;_bae ._dcdbc [_cbb ._efcgc ]=_bae .Reader ._cdee .ObjectNumber ;
|
||
_gbcb :=[]_ae .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 _ ,_babe :=range _bae ._eabf {_daeg :=_babe .ToPdfObject ();
|
||
*_cdf =*_cdf +1;if _egae ,_fbfcd :=_daeg .(*_ae .PdfIndirectObject );_fbfcd &&_egae .GetParser ()==_bae ._afad ._bfcga {_caeacd .Append (&_egae .PdfObjectReference );continue ;};if _bfdf ,_eeecf :=_ae .GetDict (_daeg );_eeecf {_bddd ,_cagca :=_bfdf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ae .PdfIndirectObject );
|
||
for _cagca {_ac .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_bddd );_aeeb ,_gagb :=_bddd .PdfObject .(*_ae .PdfObjectDictionary );if !_gagb {return _db .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_bedcb :=range _gbcb {_ac .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bedcb );if _aede :=_bfdf .Get (_bedcb );_aede !=nil {_ac .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");
|
||
if len (_babe ._eedgd .Keys ())> 0&&!_efe {_ggefe :=_babe ._eedgd ;if _ecgc :=_ggefe .Get (_bedcb );_ecgc !=nil {if _aede !=_ecgc {_ac .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",_bedcb ,_ecgc );
|
||
_bfdf .Set (_bedcb ,_ecgc );};};};continue ;};if _eaa :=_aeeb .Get (_bedcb );_eaa !=nil {_ac .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bedcb );_bfdf .Set (_bedcb ,_eaa );};};
|
||
_bddd ,_cagca =_aeeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_ae .PdfIndirectObject );_ac .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_aeeb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};if _efe {_bfdf .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cbb ._efcgc );
|
||
};};_bae .updateObjectsDeep (_daeg ,nil );_caeacd .Append (_daeg );};if _ ,_badc :=_bae ._aced .Seek (0,_gdc .SeekStart );_badc !=nil {return _badc ;};_dgde :=make (map[SignatureHandler ]_gdc .Writer );_bbgdc :=_ae .MakeArray ();for _ ,_ccdc :=range _bae ._gea {if _beea ,_dggce :=_ae .GetIndirect (_ccdc );
|
||
_dggce {if _dege ,_bcfb :=_beea .PdfObject .(*pdfSignDictionary );_bcfb {_fagde :=*_dege ._febbd ;var _abbag error ;_dgde [_fagde ],_abbag =_fagde .NewDigest (_dege ._cbcbe );if _abbag !=nil {return _abbag ;};_bbgdc .Append (_ae .MakeInteger (0xfffff),_ae .MakeInteger (0xfffff));
|
||
};};};if _bbgdc .Len ()> 0{_bbgdc .Append (_ae .MakeInteger (0xfffff),_ae .MakeInteger (0xfffff));};for _ ,_ffga :=range _bae ._gea {if _bdbd ,_gfef :=_ae .GetIndirect (_ffga );_gfef {if _ccfe ,_ebag :=_bdbd .PdfObject .(*pdfSignDictionary );_ebag {_ccfe .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_bbgdc );
|
||
};};};_eeef :=len (_dgde )> 0;var _cac _gdc .Reader =_bae ._aced ;if _eeef {_edfg :=make ([]_gdc .Writer ,0,len (_dgde ));for _ ,_ccff :=range _dgde {_edfg =append (_edfg ,_ccff );};_cac =_gdc .TeeReader (_bae ._aced ,_gdc .MultiWriter (_edfg ...));};_dgfe ,_bfbc :=_gdc .Copy (w ,_cac );
|
||
if _bfbc !=nil {return _bfbc ;};if len (_bae ._gea )==0{return nil ;};_cbb ._addeb =_dgfe ;_cbb .ObjNumOffset =_bae ._bcgg ;_cbb ._dffad =true ;_cbb ._ecbae =_bae ._gedb ;_cbb ._afadc =_bae ._daea ;_cbb ._gaffa =_bae ._egcg ;_cbb ._faffe =_bae ._afad .PdfVersion ();
|
||
_cbb ._fbfcdf =_bae ._dcdbc ;_cbb ._ecedf =_bae ._ceda .GetCrypter ();_cbb ._feddfa =_bae ._ceda .GetEncryptObj ();_bfgd :=_bae ._ceda .GetXrefType ();if _bfgd !=nil {_cefa :=*_bfgd ==_ae .XrefTypeObjectStream ;_cbb ._edgdg =&_cefa ;};_cbb ._faecg =map[_ae .PdfObject ]struct{}{};
|
||
_cbb ._edbe =[]_ae .PdfObject {};for _ ,_cgadb :=range _bae ._gea {if _ ,_bedff :=_bae ._gfge [_cgadb ];_bedff {continue ;};_cbb .addObject (_cgadb );};_cgea :=w ;if _eeef {_cgea =_aa .NewBuffer (nil );};if _bae ._acf !=""&&_cbb ._ecedf ==nil {_cbb .Encrypt ([]byte (_bae ._acf ),[]byte (_bae ._acf ),_bae ._gffe );
|
||
};if _afef :=_afge .Get ("\u0049\u0044");_afef !=nil {if _gbaf ,_edaa :=_ae .GetArray (_afef );_edaa {_cbb ._dcdbd =_gbaf ;};};if _afd :=_cbb .Write (_cgea );_afd !=nil {return _afd ;};if _eeef {_dece :=_cgea .(*_aa .Buffer ).Bytes ();_gfae :=_ae .MakeArray ();
|
||
var _ebeb []*pdfSignDictionary ;var _cgacd int64 ;for _ ,_efda :=range _cbb ._edbe {if _abcd ,_gae :=_ae .GetIndirect (_efda );_gae {if _cecc ,_bgcb :=_abcd .PdfObject .(*pdfSignDictionary );_bgcb {_ebeb =append (_ebeb ,_cecc );_gaaa :=_cecc ._ebcg +int64 (_cecc ._aebde );
|
||
_gfae .Append (_ae .MakeInteger (_cgacd ),_ae .MakeInteger (_gaaa -_cgacd ));_cgacd =_cecc ._ebcg +int64 (_cecc ._aedb );};};};_gfae .Append (_ae .MakeInteger (_cgacd ),_ae .MakeInteger (_dgfe +int64 (len (_dece ))-_cgacd ));_afea :=[]byte (_gfae .WriteString ());
|
||
for _ ,_dgggb :=range _ebeb {_bcac :=int (_dgggb ._ebcg -_dgfe );for _egdf :=_dgggb ._fegef ;_egdf < _dgggb ._ebcfb ;_egdf ++{_dece [_bcac +_egdf ]=' ';};_dcda :=_dece [_bcac +_dgggb ._fegef :_bcac +_dgggb ._ebcfb ];copy (_dcda ,_afea );};var _fegg int ;
|
||
for _ ,_eaef :=range _ebeb {_cebb :=int (_eaef ._ebcg -_dgfe );_baaf :=_dece [_fegg :_cebb +_eaef ._aebde ];_degab :=*_eaef ._febbd ;_dgde [_degab ].Write (_baaf );_fegg =_cebb +_eaef ._aedb ;};for _ ,_acb :=range _ebeb {_bacc :=_dece [_fegg :];_ecf :=*_acb ._febbd ;
|
||
_dgde [_ecf ].Write (_bacc );};for _ ,_bcbf :=range _ebeb {_bbcb :=int (_bcbf ._ebcg -_dgfe );_dgcg :=*_bcbf ._febbd ;_eedd :=_dgde [_dgcg ];if _cea :=_dgcg .Sign (_bcbf ._cbcbe ,_eedd );_cea !=nil {return _cea ;};_bcbf ._cbcbe .ByteRange =_gfae ;_dfbc :=[]byte (_bcbf ._cbcbe .Contents .WriteString ());
|
||
for _bcfc :=_bcbf ._fegef ;_bcfc < _bcbf ._ebcfb ;_bcfc ++{_dece [_bbcb +_bcfc ]=' ';};for _ddeg :=_bcbf ._aebde ;_ddeg < _bcbf ._aedb ;_ddeg ++{_dece [_bbcb +_ddeg ]=' ';};_gddg :=_dece [_bbcb +_bcbf ._fegef :_bbcb +_bcbf ._ebcfb ];copy (_gddg ,_afea );
|
||
_gddg =_dece [_bbcb +_bcbf ._aebde :_bbcb +_bcbf ._aedb ];copy (_gddg ,_dfbc );};_bbf :=_aa .NewBuffer (_dece );_ ,_bfbc =_gdc .Copy (w ,_bbf );if _bfbc !=nil {return _bfbc ;};};_bae ._fdbdf =true ;return nil ;};func _dddac ()string {_cadgd .Lock ();defer _cadgd .Unlock ();
|
||
return _fcfa };
|
||
|
||
// 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 ;_ecefb []byte ;_fegc []uint32 ;_aegae *_ae .PdfObjectStream ;};
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_gggc :=&PdfAppender {_aced :reader ._bgbcea ,Reader :reader ,_ceda :reader ._bfcga ,_bcefc :reader ._agege };_dacdd ,_ffbf :=_gggc ._aced .Seek (0,_gdc .SeekEnd );if _ffbf !=nil {return nil ,_ffbf ;
|
||
};_gggc ._egcg =_dacdd ;if _ ,_ffbf =_gggc ._aced .Seek (0,_gdc .SeekStart );_ffbf !=nil {return nil ,_ffbf ;};_gggc ._afad ,_ffbf =NewPdfReader (_gggc ._aced );if _ffbf !=nil {return nil ,_ffbf ;};for _ ,_dde :=range _gggc .Reader .GetObjectNums (){if _gggc ._bcgg < _dde {_gggc ._bcgg =_dde ;
|
||
};};_gggc ._gedb =_gggc ._ceda .GetXrefTable ();_gggc ._daea =_gggc ._ceda .GetXrefOffset ();_gggc ._eabf =append (_gggc ._eabf ,_gggc ._afad .PageList ...);_gggc ._dcefg =make (map[_ae .PdfObject ]struct{});_gggc ._dcdbc =make (map[_ae .PdfObject ]int64 );
|
||
_gggc ._gfge =make (map[_ae .PdfObject ]struct{});_gggc ._eced =_gggc ._afad .AcroForm ;_gggc ._ddad =_gggc ._afad .DSS ;return _gggc ,nil ;};
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_dgefe *Image )ToGoImage ()(_de .Image ,error ){_ac .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_aefb ,_agged :=_afc .NewImage (int (_dgefe .Width ),int (_dgefe .Height ),int (_dgefe .BitsPerComponent ),_dgefe .ColorComponents ,_dgefe .Data ,_dgefe ._bbba ,_dgefe ._fdae );
|
||
if _agged !=nil {return nil ,_agged ;};return _aefb ,nil ;};
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_egab *PdfAppender )UpdateObject (obj _ae .PdfObject ){_egab .replaceObject (obj ,obj );if _ ,_gfb :=_egab ._dcefg [obj ];!_gfb {_egab ._gea =append (_egab ._gea ,obj );_egab ._dcefg [obj ]=struct{}{};};};
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_cfabd *PdfPage )AddFont (name _ae .PdfObjectName ,font _ae .PdfObject )error {if _cfabd .Resources ==nil {_cfabd .Resources =NewPdfPageResources ();};if _cfabd .Resources .Font ==nil {_cfabd .Resources .Font =_ae .MakeDict ();};_cdecf ,_bdbce :=_ae .TraceToDirectObject (_cfabd .Resources .Font ).(*_ae .PdfObjectDictionary );
|
||
if !_bdbce {_ac .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",_ae .TraceToDirectObject (_cfabd .Resources .Font ));
|
||
return _db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cdecf .Set (name ,font );return nil ;};func (_bba *PdfReader )newPdfActionLaunchFromDict (_fdee *_ae .PdfObjectDictionary )(*PdfActionLaunch ,error ){_dec ,_caa :=_ceb (_fdee .Get ("\u0046"));
|
||
if _caa !=nil {return nil ,_caa ;};return &PdfActionLaunch {Win :_fdee .Get ("\u0057\u0069\u006e"),Mac :_fdee .Get ("\u004d\u0061\u0063"),Unix :_fdee .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_fdee .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_dec },nil ;
|
||
};
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_dbfg *PdfFont )IsCID ()bool {return _dbfg .baseFields ().isCIDFont ()};
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_ggba *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _ggba ._ebafb .(*PdfShadingPattern );};
|
||
|
||
// 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 (_ebbd *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adfc :=vals [0];if _adfc < 0.0||_adfc > 1.0{_ac .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 _adfc < 0.0{_adfc =0.0;}else if _adfc > 1.0{_adfc =1.0;};return NewPdfColorDeviceGray (_adfc ),nil ;};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_bfac *PdfFont )String ()string {_cadgb :="";if _bfac ._dabg .Encoder ()!=nil {_cadgb =_bfac ._dabg .Encoder ().String ();};return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_bfac ._dabg ,_bfac .baseFields ().coreString (),_cadgb );
|
||
};
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_cbgd FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_cbgd .Mask ()|fl .Mask ())};
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _ae .PdfObject ;B _ae .PdfObject ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_bcccg *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _bcccg .AlternateSpace ==nil {return nil ,_db .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 _bcccg .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// PdfColorDeviceCMYK is a CMYK32 color, where each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorDeviceCMYK [4]float64 ;func (_bdfdf *LTV )validateSig (_aged *PdfSignature )error {if _aged ==nil ||_aged .Contents ==nil ||len (_aged .Contents .Bytes ())==0{return _f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_aged );
|
||
};return 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 (_efffd *LTV )EnableByName (name string ,extraCerts []*_fc .Certificate )error {_bddga :=_efffd ._gbcge ._afad .AcroForm ;for _ ,_ecdaa :=range _bddga .AllFields (){_gaca ,_ :=_ecdaa .GetContext ().(*PdfFieldSignature );if _gaca ==nil {continue ;};
|
||
if _gfca :=_gaca .PartialName ();_gfca !=name {continue ;};return _efffd .Enable (_gaca .V ,extraCerts );};return nil ;};
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_agef *PdfFieldSignature )ToPdfObject ()_ae .PdfObject {if _agef .PdfAnnotationWidget !=nil {_agef .PdfAnnotationWidget .ToPdfObject ();};_agef .PdfField .ToPdfObject ();_fbeag :=_agef ._facca ;_facfe :=_fbeag .PdfObject .(*_ae .PdfObjectDictionary );
|
||
_facfe .SetIfNotNil ("\u0046\u0054",_ae .MakeName ("\u0053\u0069\u0067"));_facfe .SetIfNotNil ("\u004c\u006f\u0063\u006b",_agef .Lock );_facfe .SetIfNotNil ("\u0053\u0056",_agef .SV );if _agef .V !=nil {_facfe .SetIfNotNil ("\u0056",_agef .V .ToPdfObject ());
|
||
};return _fbeag ;};func _dcbf (_abbdd _ae .PdfObject ,_bfdac *fontCommon )(*_abg .CMap ,error ){_dfdf ,_bfdg :=_ae .GetStream (_abbdd );if !_bfdg {_ac .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",_abbdd );
|
||
return nil ,_ae .ErrTypeError ;};_ccaa ,_faff :=_ae .DecodeStream (_dfdf );if _faff !=nil {return nil ,_faff ;};_efbgb ,_faff :=_abg .LoadCmapFromData (_ccaa ,!_bfdac .isCIDFont ());if _faff !=nil {_ac .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",_dfdf .ObjectNumber ,_faff );
|
||
};return _efbgb ,_faff ;};func (_edd *PdfReader )newPdfAnnotationWatermarkFromDict (_eac *_ae .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_ccb :=PdfAnnotationWatermark {};_ccb .FixedPrint =_eac .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
|
||
return &_ccb ,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 (_bgfc pdfFontSimple )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _adcf ,_fbcf :=_bgfc ._deaed [code ];_fbcf {return _cb .CharMetrics {Wx :_adcf },true ;};if _cb .IsStdFont (_cb .StdFontName (_bgfc ._cedb )){return _cb .CharMetrics {Wx :250},true ;
|
||
};return _cb .CharMetrics {},false ;};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_eccbf *PdfSignature )SetReason (reason string ){_eccbf .Reason =_ae .MakeString (reason )};var _acffcf =false ;func (_dgce *fontFile )loadFromSegments (_edacg ,_cagabf []byte )error {_ac .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_edacg ),len (_cagabf ));
|
||
_egdcg :=_dgce .parseASCIIPart (_edacg );if _egdcg !=nil {return _egdcg ;};_ac .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_dgce );if len (_cagabf )==0{return nil ;};_ac .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_dgce );
|
||
return nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_gaec pdfFontType3 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _acbba ,_ceged :=_gaec ._adggg [code ];_ceged {return _cb .CharMetrics {Wx :_acbba },true ;};if _cb .IsStdFont (_cb .StdFontName (_gaec ._cedb )){return _cb .CharMetrics {Wx :250},true ;
|
||
};return _cb .CharMetrics {},false ;};func _geffa (_bded _ae .PdfObject )(*PdfColorspaceLab ,error ){_accb :=NewPdfColorspaceLab ();if _bdddc ,_caebc :=_bded .(*_ae .PdfIndirectObject );_caebc {_accb ._bccg =_bdddc ;};_bded =_ae .TraceToDirectObject (_bded );
|
||
_fadb ,_dcdgg :=_bded .(*_ae .PdfObjectArray );if !_dcdgg {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fadb .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_bded =_ae .TraceToDirectObject (_fadb .Get (0));_acaag ,_dcdgg :=_bded .(*_ae .PdfObjectName );if !_dcdgg {return nil ,_f .Errorf ("\u006c\u0061\u0062\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if *_acaag !="\u004c\u0061\u0062"{return nil ,_f .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");};_bded =_ae .TraceToDirectObject (_fadb .Get (1));_cbdg ,_dcdgg :=_bded .(*_ae .PdfObjectDictionary );
|
||
if !_dcdgg {return nil ,_f .Errorf ("c\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067\u0020or\u0020\u0069\u006ev\u0061l\u0069\u0064");};
|
||
_bded =_cbdg .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_bded =_ae .TraceToDirectObject (_bded );_cabg ,_dcdgg :=_bded .(*_ae .PdfObjectArray );if !_dcdgg {return nil ,_f .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
|
||
};if _cabg .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_adadf ,_bfbe :=_cabg .GetAsFloat64Slice ();
|
||
if _bfbe !=nil {return nil ,_bfbe ;};_accb .WhitePoint =_adadf ;_bded =_cbdg .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _bded !=nil {_bded =_ae .TraceToDirectObject (_bded );_gcbc ,_bddc :=_bded .(*_ae .PdfObjectArray );if !_bddc {return nil ,_f .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");
|
||
};if _gcbc .Len ()!=3{return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061rr\u0061\u0079");};_gccgb ,_bcca :=_gcbc .GetAsFloat64Slice ();
|
||
if _bcca !=nil {return nil ,_bcca ;};_accb .BlackPoint =_gccgb ;};_bded =_cbdg .Get ("\u0052\u0061\u006eg\u0065");if _bded !=nil {_bded =_ae .TraceToDirectObject (_bded );_bbfg ,_cgaff :=_bded .(*_ae .PdfObjectArray );if !_cgaff {_ac .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
return nil ,_f .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _bbfg .Len ()!=4{_ac .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");return nil ,_f .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_bfbb ,_cgc :=_bbfg .GetAsFloat64Slice ();if _cgc !=nil {return nil ,_cgc ;};_accb .Range =_bfbb ;};return _accb ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_geb *PdfActionNamed )ToPdfObject ()_ae .PdfObject {_geb .PdfAction .ToPdfObject ();_egb :=_geb ._cbe ;_fde :=_egb .PdfObject .(*_ae .PdfObjectDictionary );_fde .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeNamed )));_fde .SetIfNotNil ("\u004e",_geb .N );
|
||
return _egb ;};
|
||
|
||
// 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"`;};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_gadc *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_aaag ,_bgef :=color .(*PdfColorCalGray );if !_bgef {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_aaag .Val ();X :=_gadc .WhitePoint [0]*_ag .Pow (ANorm ,_gadc .Gamma );Y :=_gadc .WhitePoint [1]*_ag .Pow (ANorm ,_gadc .Gamma );
|
||
Z :=_gadc .WhitePoint [2]*_ag .Pow (ANorm ,_gadc .Gamma );_bccc :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ddda :=-0.969256*X +1.875992*Y +0.041556*Z ;_cbbd :=0.055648*X +-0.204043*Y +1.057311*Z ;_bccc =_ag .Min (_ag .Max (_bccc ,0),1.0);_ddda =_ag .Min (_ag .Max (_ddda ,0),1.0);
|
||
_cbbd =_ag .Min (_ag .Max (_cbbd ,0),1.0);return NewPdfColorDeviceRGB (_bccc ,_ddda ,_cbbd ),nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element in
|
||
// range 0-1.
|
||
func (_ffda *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbcf ,_beab :=_ae .GetNumbersAsFloat (objects );
|
||
if _beab !=nil {return nil ,_beab ;};return _ffda .ColorFromFloats (_gbcf );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gdgef *PdfSignature )ToPdfObject ()_ae .PdfObject {_eegbe :=_gdgef ._gccbeg ;var _cgeda *_ae .PdfObjectDictionary ;if _eacb ,_adece :=_eegbe .PdfObject .(*pdfSignDictionary );_adece {_cgeda =_eacb .PdfObjectDictionary ;}else {_cgeda =_eegbe .PdfObject .(*_ae .PdfObjectDictionary );
|
||
};_cgeda .SetIfNotNil ("\u0054\u0079\u0070\u0065",_gdgef .Type );_cgeda .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_gdgef .Filter );_cgeda .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_gdgef .SubFilter );_cgeda .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gdgef .ByteRange );
|
||
_cgeda .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gdgef .Contents );_cgeda .SetIfNotNil ("\u0043\u0065\u0072\u0074",_gdgef .Cert );_cgeda .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gdgef .Name );_cgeda .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_gdgef .Reason );
|
||
_cgeda .SetIfNotNil ("\u004d",_gdgef .M );_cgeda .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_gdgef .Reference );_cgeda .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_gdgef .Changes );_cgeda .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_gdgef .ContactInfo );
|
||
return _eegbe ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_baaef *PdfShading )ToPdfObject ()_ae .PdfObject {_bgbcd :=_baaef ._dcdgda ;_aecge ,_daeggb :=_baaef .getShadingDict ();if _daeggb !=nil {_ac .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 _baaef .ShadingType !=nil {_aecge .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_baaef .ShadingType );};if _baaef .ColorSpace !=nil {_aecge .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_baaef .ColorSpace .ToPdfObject ());
|
||
};if _baaef .Background !=nil {_aecge .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_baaef .Background );};if _baaef .BBox !=nil {_aecge .Set ("\u0042\u0042\u006f\u0078",_baaef .BBox .ToPdfObject ());};if _baaef .AntiAlias !=nil {_aecge .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_baaef .AntiAlias );
|
||
};return _bgbcd ;};
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_gdgcfc *pdfSignDictionary )GetSubFilter ()string {_bdafg :=_gdgcfc .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _bdafg ==nil {return "";};if _edfcf ,_eagbc :=_ae .GetNameVal (_bdafg );_eagbc {return _edfcf ;};return "";};
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_fdbgc *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_fbefc ,_cdadg :=_ae .GetDict (_fdbgc ._caddd .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_cdadg {_fbefc =_ae .MakeDict ();_fdbgc ._caddd .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_fbefc );
|
||
};_bgegc ,_cdadg :=_ae .GetDict (_fbefc .Get (_ae .PdfObjectName (extName )));if !_cdadg {_bgegc =_ae .MakeDict ();_fbefc .Set (_ae .PdfObjectName (extName ),_bgegc );};if _afae ,_ :=_ae .GetNameVal (_bgegc .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_afae !=baseVersion {_bgegc .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_ae .MakeName (baseVersion ));};if _bbcbb ,_ :=_ae .GetIntVal (_bgegc .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_bbcbb !=extLevel {_bgegc .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_ae .MakeInteger (int64 (extLevel )));};};
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_ffea :=NewPdfAnnotation ();_fcf :=&PdfAnnotationLink {};_fcf .PdfAnnotation =_ffea ;_ffea .SetContext (_fcf );return _fcf ;};
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_egcea DefaultImageHandler )NewImageFromGoImage (goimg _de .Image )(*Image ,error ){_bcaec ,_fcdcc :=_afc .FromGoImage (goimg );if _fcdcc !=nil {return nil ,_fcdcc ;};_fbgb :=_feagd (_bcaec .Base ());return &_fbgb ,nil ;};
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_gdgdf :=&PdfPageResourcesColorspaces {};_gdgdf .Names =[]string {};_gdgdf .Colorspaces =map[string ]PdfColorspace {};_gdgdf ._ccfef =&_ae .PdfIndirectObject {};return _gdgdf ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_fgbg *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_cb .CharMetrics ;
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_gadff *pdfFontType3 )ToPdfObject ()_ae .PdfObject {if _gadff ._cfbea ==nil {_gadff ._cfbea =&_ae .PdfIndirectObject {};};_babed :=_gadff .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_gadff ._cfbea .PdfObject =_babed ;if _gadff .FirstChar !=nil {_babed .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_gadff .FirstChar );
|
||
};if _gadff .LastChar !=nil {_babed .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_gadff .LastChar );};if _gadff .Widths !=nil {_babed .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_gadff .Widths );};if _gadff .Encoding !=nil {_babed .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_gadff .Encoding );
|
||
}else if _gadff ._debad !=nil {_bfed :=_gadff ._debad .ToPdfObject ();if _bfed !=nil {_babed .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_bfed );};};if _gadff .FontBBox !=nil {_babed .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_gadff .FontBBox );
|
||
};if _gadff .FontMatrix !=nil {_babed .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_gadff .FontMatrix );};if _gadff .CharProcs !=nil {_babed .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_gadff .CharProcs );};if _gadff .Resources !=nil {_babed .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gadff .Resources );
|
||
};return _gadff ._cfbea ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_gbdc *PdfColorCalRGB )B ()float64 {return _gbdc [1]};
|
||
|
||
// 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 *_ae .PdfObjectArray ;ExtGState _ae .PdfObject ;};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_fcdca *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fcdca .Alternate ==nil {_ac .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 _fcdca .N ==1{_ac .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");
|
||
_ffdg :=NewPdfColorspaceDeviceGray ();return _ffdg .ColorToRGB (color );}else if _fcdca .N ==3{_ac .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 _fcdca .N ==4{_ac .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");
|
||
_aadf :=NewPdfColorspaceDeviceCMYK ();return _aadf .ColorToRGB (color );}else {return nil ,_db .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");
|
||
};};_ac .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",_fcdca );
|
||
return _fcdca .Alternate .ColorToRGB (color );};
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_ddge *PdfShading )GetContainingPdfObject ()_ae .PdfObject {return _ddge ._dcdgda };
|
||
|
||
// 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 ,_gfdfbf :_ae .MakeDict ()};
|
||
};func _bbgdb (_cbgda _ae .PdfObject )(*fontFile ,error ){_ac .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",_cbgda );
|
||
_dccd :=&fontFile {};_cbgda =_ae .TraceToDirectObject (_cbgda );_eddfa ,_cdcfd :=_cbgda .(*_ae .PdfObjectStream );if !_cdcfd {_ac .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",_cbgda );
|
||
return nil ,_ae .ErrTypeError ;};_ddac :=_eddfa .PdfObjectDictionary ;_gdac ,_edgec :=_ae .DecodeStream (_eddfa );if _edgec !=nil {return nil ,_edgec ;};_gcbe ,_cdcfd :=_ae .GetNameVal (_ddac .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_cdcfd {_dccd ._aadg =_gcbe ;
|
||
if _gcbe =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ac .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 ;};};_ggfe ,_ :=_ae .GetIntVal (_ddac .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_dgeg ,_ :=_ae .GetIntVal (_ddac .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _ggfe > len (_gdac ){_ggfe =len (_gdac );};if _ggfe +_dgeg > len (_gdac ){_dgeg =len (_gdac )-_ggfe ;
|
||
};_ccfdb :=_gdac [:_ggfe ];var _acceg []byte ;if _dgeg > 0{_acceg =_gdac [_ggfe :_ggfe +_dgeg ];};if _ggfe > 0&&_dgeg > 0{_gdccd :=_dccd .loadFromSegments (_ccfdb ,_acceg );if _gdccd !=nil {return nil ,_gdccd ;};};return _dccd ,nil ;};func (_debc *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _debc ._cafdb };
|
||
func (_cddef *DSS )generateHashMaps ()error {_cbed ,_ebdc :=_cddef .generateHashMap (_cddef .Certs );if _ebdc !=nil {return _ebdc ;};_eaea ,_ebdc :=_cddef .generateHashMap (_cddef .OCSPs );if _ebdc !=nil {return _ebdc ;};_ggcc ,_ebdc :=_cddef .generateHashMap (_cddef .CRLs );
|
||
if _ebdc !=nil {return _ebdc ;};_cddef ._eedc =_cbed ;_cddef ._fcgf =_eaea ;_cddef ._abda =_ggcc ;return nil ;};func (_dbcdc *PdfReader )newPdfAnnotationLineFromDict (_dggf *_ae .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_fgga :=PdfAnnotationLine {};
|
||
_ecbb ,_fdef :=_dbcdc .newPdfAnnotationMarkupFromDict (_dggf );if _fdef !=nil {return nil ,_fdef ;};_fgga .PdfAnnotationMarkup =_ecbb ;_fgga .L =_dggf .Get ("\u004c");_fgga .BS =_dggf .Get ("\u0042\u0053");_fgga .LE =_dggf .Get ("\u004c\u0045");_fgga .IC =_dggf .Get ("\u0049\u0043");
|
||
_fgga .LL =_dggf .Get ("\u004c\u004c");_fgga .LLE =_dggf .Get ("\u004c\u004c\u0045");_fgga .Cap =_dggf .Get ("\u0043\u0061\u0070");_fgga .IT =_dggf .Get ("\u0049\u0054");_fgga .LLO =_dggf .Get ("\u004c\u004c\u004f");_fgga .CP =_dggf .Get ("\u0043\u0050");
|
||
_fgga .Measure =_dggf .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");_fgga .CO =_dggf .Get ("\u0043\u004f");return &_fgga ,nil ;};
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_egfb :=PdfColorDeviceRGB {r ,g ,b };return &_egfb ;};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_gebg :=PdfColorCalGray (grayVal );return &_gebg ;};
|
||
|
||
// SetNameDictionary sets the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_fedfd *PdfWriter )SetNameDictionary (names _ae .PdfObject )error {if names ==nil {return nil ;};_ac .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_fedfd ._caddd .Set ("\u004e\u0061\u006de\u0073",names );return _fedfd .addObjects (names );};
|
||
|
||
// 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 *_ae .PdfIndirectObject ;SV *_ae .PdfIndirectObject ;};
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_cgce *PdfField )FullName ()(string ,error ){var _cdcd _aa .Buffer ;_cdbg :=[]string {};if _cgce .T !=nil {_cdbg =append (_cdbg ,_cgce .T .Decoded ());};_bfcbd :=map[*PdfField ]bool {};_bfcbd [_cgce ]=true ;_ggdb :=_cgce .Parent ;for _ggdb !=nil {if _ ,_dcec :=_bfcbd [_ggdb ];
|
||
_dcec {return _cdcd .String (),_db .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _ggdb .T ==nil {return _cdcd .String (),_db .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");
|
||
};_cdbg =append (_cdbg ,_ggdb .T .Decoded ());_bfcbd [_ggdb ]=true ;_ggdb =_ggdb .Parent ;};for _fbag :=len (_cdbg )-1;_fbag >=0;_fbag --{_cdcd .WriteString (_cdbg [_fbag ]);if _fbag > 0{_cdcd .WriteString ("\u002e");};};return _cdcd .String (),nil ;};
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bcef *PdfAnnotationSound )ToPdfObject ()_ae .PdfObject {_bcef .PdfAnnotation .ToPdfObject ();_gcfa :=_bcef ._gcgf ;_aefg :=_gcfa .PdfObject .(*_ae .PdfObjectDictionary );_bcef .PdfAnnotationMarkup .appendToPdfDictionary (_aefg );_aefg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_aefg .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_bcef .Sound );_aefg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_bcef .Name );return _gcfa ;};
|
||
|
||
// 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 (_faaba *PdfSignature )bool ;
|
||
|
||
// Validate validates a PDF signature against a given digest (hash) such as that determined
|
||
// for an input file. Returns validation results.
|
||
Validate (_ggeee *PdfSignature ,_cgcgf 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 (_dcbbg *PdfSignature )error ;
|
||
|
||
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
|
||
NewDigest (_defcggf *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 (_cfgcg *PdfSignature ,_eddb Hasher )error ;};
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _ae .PdfObject ;MK _ae .PdfObject ;A _ae .PdfObject ;AA _ae .PdfObject ;BS _ae .PdfObject ;Parent _ae .PdfObject ;_bab *PdfField ;_bde bool ;};
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_beeeed *PdfPageResources )SetColorspaceByName (keyName _ae .PdfObjectName ,cs PdfColorspace )error {_febca ,_agbfd :=_beeeed .GetColorspaces ();if _agbfd !=nil {_ac .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",_agbfd );
|
||
return _agbfd ;};if _febca ==nil {_febca =NewPdfPageResourcesColorspaces ();_beeeed .SetColorSpace (_febca );};_febca .Set (keyName ,cs );return nil ;};func (_fbaf fontCommon )coreString ()string {_edef :="";if _fbaf ._cafdb !=nil {_edef =_fbaf ._cafdb .String ();
|
||
};return _f .Sprintf ("\u0025#\u0071\u0020%\u0023\u0071\u0020%\u0071\u0020\u006f\u0062\u006a\u003d\u0025d\u0020\u0054\u006f\u0055\u006e\u0069c\u006f\u0064\u0065\u003d\u0025\u0074\u0020\u0066\u006c\u0061\u0067s\u003d\u0030\u0078\u0025\u0030\u0078\u0020\u0025\u0073",_fbaf ._adce ,_fbaf ._cedb ,_fbaf ._bbce ,_fbaf ._efef ,_fbaf ._dgea !=nil ,_fbaf .fontFlags (),_edef );
|
||
};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_ffa *PdfAction )String ()string {_ced ,_gf :=_ffa .ToPdfObject ().(*_ae .PdfIndirectObject );if _gf {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ffa ._df ,_ced .PdfObject .String ());};return "";};var (_cadgd _e .Mutex ;_fcfa ="";
|
||
_ddage _d .Time ;_ecgbe ="";_ffbad ="";_fabd _d .Time ;_bbgdec ="";_egafe ="";_aedg ="";);func _bfgec (_afecce *_ae .PdfObjectDictionary )(*PdfTilingPattern ,error ){_beffea :=&PdfTilingPattern {};_eedeg :=_afecce .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
|
||
if _eedeg ==nil {_ac .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bbdg ,_bddcg :=_eedeg .(*_ae .PdfObjectInteger );if !_bddcg {_ac .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",_eedeg );
|
||
return nil ,_ae .ErrTypeError ;};_beffea .PaintType =_bbdg ;_eedeg =_afecce .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _eedeg ==nil {_ac .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_agbe ,_bddcg :=_eedeg .(*_ae .PdfObjectInteger );if !_bddcg {_ac .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",_eedeg );
|
||
return nil ,_ae .ErrTypeError ;};_beffea .TilingType =_agbe ;_eedeg =_afecce .Get ("\u0042\u0042\u006f\u0078");if _eedeg ==nil {_ac .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_eedeg =_ae .TraceToDirectObject (_eedeg );_adbae ,_bddcg :=_eedeg .(*_ae .PdfObjectArray );if !_bddcg {_ac .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",_eedeg );
|
||
return nil ,_ae .ErrTypeError ;};_adbdd ,_deffad :=NewPdfRectangle (*_adbae );if _deffad !=nil {_ac .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_deffad );return nil ,_deffad ;};_beffea .BBox =_adbdd ;_eedeg =_afecce .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _eedeg ==nil {_ac .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_ddcg ,_deffad :=_ae .GetNumberAsFloat (_eedeg );if _deffad !=nil {_ac .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",_ddcg );
|
||
return nil ,_deffad ;};_beffea .XStep =_ae .MakeFloat (_ddcg );_eedeg =_afecce .Get ("\u0059\u0053\u0074e\u0070");if _eedeg ==nil {_ac .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_abdgb ,_deffad :=_ae .GetNumberAsFloat (_eedeg );if _deffad !=nil {_ac .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",_abdgb );
|
||
return nil ,_deffad ;};_beffea .YStep =_ae .MakeFloat (_abdgb );_eedeg =_afecce .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _eedeg ==nil {_ac .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_afecce ,_bddcg =_ae .TraceToDirectObject (_eedeg ).(*_ae .PdfObjectDictionary );if !_bddcg {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_eedeg );
|
||
};_eecd ,_deffad :=NewPdfPageResourcesFromDict (_afecce );if _deffad !=nil {return nil ,_deffad ;};_beffea .Resources =_eecd ;if _fgdda :=_afecce .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fgdda !=nil {_gadbce ,_fcecg :=_fgdda .(*_ae .PdfObjectArray );
|
||
if !_fcecg {_ac .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",_fgdda );return nil ,_ae .ErrTypeError ;};_beffea .Matrix =_gadbce ;};return _beffea ,nil ;
|
||
};func (_ebfed *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _ebfed ._bfcga .GetCrypter ()!=nil &&!_ebfed ._bfcga .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_dbebf :=_ebfed ._aedf ;_eggde :=_dbebf .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _eggde ==nil {return nil ,nil ;};_fccb ,_feda :=_ae .GetIndirect (_eggde );_eggde =_ae .TraceToDirectObject (_eggde );if _ae .IsNullObject (_eggde ){_ac .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 ;};_bedffg ,_gbad :=_ae .GetDict (_eggde );if !_gbad {_ac .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_eggde );_ac .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_eggde );};_ac .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_ac .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 !_ebfed ._ffggb {_dcaed :=_ebfed .traverseObjectData (_bedffg );
|
||
if _dcaed !=nil {_ac .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",_dcaed );
|
||
return nil ,_dcaed ;};};_gfac ,_cfggad :=_ebfed .newPdfAcroFormFromDict (_fccb ,_bedffg );if _cfggad !=nil {return nil ,_cfggad ;};_gfac ._fcbae =!_feda ;return _gfac ,nil ;};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_ae .PdfObjectArray ;Domain *_ae .PdfObjectArray ;Function []PdfFunction ;Extend *_ae .PdfObjectArray ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _ae .PdfObject ;FS _ae .PdfObject ;F _ae .PdfObject ;UF _ae .PdfObject ;DOS _ae .PdfObject ;Mac _ae .PdfObject ;Unix _ae .PdfObject ;ID _ae .PdfObject ;V _ae .PdfObject ;EF _ae .PdfObject ;RF _ae .PdfObject ;Desc _ae .PdfObject ;
|
||
CI _ae .PdfObject ;_caeaag _ae .PdfObject ;};
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_eaabc *PdfPage )HasXObjectByName (name _ae .PdfObjectName )bool {_affgc ,_beceg :=_eaabc .Resources .XObject .(*_ae .PdfObjectDictionary );if !_beceg {return false ;};if _ggge :=_affgc .Get (name );_ggge !=nil {return true ;};return false ;};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_gfcc *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};func (_gdgg *PdfAppender )updateObjectsDeep (_cdgg _ae .PdfObject ,_gcab map[_ae .PdfObject ]struct{}){if _gcab ==nil {_gcab =map[_ae .PdfObject ]struct{}{};};if _ ,_cdge :=_gcab [_cdgg ];
|
||
_cdge ||_cdgg ==nil {return ;};_gcab [_cdgg ]=struct{}{};_gcag :=_ae .ResolveReferencesDeep (_cdgg ,_gdgg ._bcefc );if _gcag !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gcag );};switch _eaba :=_cdgg .(type ){case *_ae .PdfIndirectObject :switch {case _eaba .GetParser ()==_gdgg ._afad ._bfcga :return ;
|
||
case _eaba .GetParser ()==_gdgg .Reader ._bfcga :_ccbb ,_ :=_gdgg ._afad .GetIndirectObjectByNumber (int (_eaba .ObjectNumber ));_becd ,_gcbd :=_ccbb .(*_ae .PdfIndirectObject );if _gcbd &&_becd !=nil {if _becd .PdfObject !=_eaba .PdfObject &&_becd .PdfObject .WriteString ()!=_eaba .PdfObject .WriteString (){_gdgg .addNewObject (_cdgg );
|
||
_gdgg ._dcdbc [_cdgg ]=_eaba .ObjectNumber ;};};default:_gdgg .addNewObject (_cdgg );};_gdgg .updateObjectsDeep (_eaba .PdfObject ,_gcab );case *_ae .PdfObjectArray :for _ ,_baga :=range _eaba .Elements (){_gdgg .updateObjectsDeep (_baga ,_gcab );};case *_ae .PdfObjectDictionary :for _ ,_fbbc :=range _eaba .Keys (){_gdgg .updateObjectsDeep (_eaba .Get (_fbbc ),_gcab );
|
||
};case *_ae .PdfObjectStreams :if _eaba .GetParser ()!=_gdgg ._afad ._bfcga {for _ ,_fffb :=range _eaba .Elements (){_gdgg .updateObjectsDeep (_fffb ,_gcab );};};case *_ae .PdfObjectStream :switch {case _eaba .GetParser ()==_gdgg ._afad ._bfcga :return ;
|
||
case _eaba .GetParser ()==_gdgg .Reader ._bfcga :if _bega ,_caee :=_gdgg ._afad ._bfcga .LookupByReference (_eaba .PdfObjectReference );_caee ==nil {var _deae bool ;if _fdgc ,_cdcbc :=_ae .GetStream (_bega );_cdcbc &&_aa .Equal (_fdgc .Stream ,_eaba .Stream ){_deae =true ;
|
||
};if _cgaa ,_bggdd :=_ae .GetDict (_bega );_deae &&_bggdd {_deae =_cgaa .WriteString ()==_eaba .PdfObjectDictionary .WriteString ();};if _deae {return ;};};if _eaba .ObjectNumber !=0{_gdgg ._dcdbc [_cdgg ]=_eaba .ObjectNumber ;};default:if _ ,_ecdf :=_gdgg ._dcefg [_cdgg ];
|
||
!_ecdf {_gdgg .addNewObject (_cdgg );};};_gdgg .updateObjectsDeep (_eaba .PdfObjectDictionary ,_gcab );};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgd *PdfActionHide )ToPdfObject ()_ae .PdfObject {_bgd .PdfAction .ToPdfObject ();_gff :=_bgd ._cbe ;_eca :=_gff .PdfObject .(*_ae .PdfObjectDictionary );_eca .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeHide )));_eca .SetIfNotNil ("\u0054",_bgd .T );
|
||
_eca .SetIfNotNil ("\u0048",_bgd .H );return _gff ;};func (_bdeed fontCommon )isCIDFont ()bool {if _bdeed ._adce ==""{_ac .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",_bdeed );
|
||
};_daae :=false ;switch _bdeed ._adce {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":_daae =true ;};_ac .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",_daae ,_bdeed );
|
||
return _daae ;};func _acedb ()string {_cadgd .Lock ();defer _cadgd .Unlock ();return _ffbad };
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// 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 *_dbg .DiffResults ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _d .Time ;};
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_gcef *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_eabg :=func (_agec float64 )float64 {if _agec >=6.0/29{return _agec *_agec *_agec ;};return 108.0/841*(_agec -4.0/29.0);};_aaf ,_ffde :=color .(*PdfColorLab );if !_ffde {_ac .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_aaf .L ();AStar :=_aaf .A ();BStar :=_aaf .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_gcef .WhitePoint [0]*_eabg (L );Y :=_gcef .WhitePoint [1]*_eabg (M );Z :=_gcef .WhitePoint [2]*_eabg (N );_eebbg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bfff :=-0.969256*X +1.875992*Y +0.041556*Z ;_beec :=0.055648*X +-0.204043*Y +1.057311*Z ;_eebbg =_ag .Min (_ag .Max (_eebbg ,0),1.0);
|
||
_bfff =_ag .Min (_ag .Max (_bfff ,0),1.0);_beec =_ag .Min (_ag .Max (_beec ,0),1.0);return NewPdfColorDeviceRGB (_eebbg ,_bfff ,_beec ),nil ;};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_gbdbg *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_dgecc ,_cgeab :=_gbdbg .GetTrailer ();if _cgeab !=nil {return nil ,_cgeab ;};var _ababa *_ae .PdfObjectDictionary ;_egbfb :=_dgecc .Get ("\u0049\u006e\u0066\u006f");switch _dfcgb :=_egbfb .(type ){case *_ae .PdfObjectReference :_dafefd :=_dfcgb ;
|
||
_egbfb ,_cgeab =_gbdbg .GetIndirectObjectByNumber (int (_dafefd .ObjectNumber ));_egbfb =_ae .TraceToDirectObject (_egbfb );if _cgeab !=nil {return nil ,_cgeab ;};_ababa ,_ =_egbfb .(*_ae .PdfObjectDictionary );case *_ae .PdfObjectDictionary :_ababa =_dfcgb ;
|
||
};if _ababa ==nil {return nil ,_db .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_gcgcb ,_cgeab :=NewPdfInfoFromObject (_ababa );if _cgeab !=nil {return nil ,_cgeab ;
|
||
};return _gcgcb ,nil ;};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_dgff *Outline )Insert (index uint ,item *OutlineItem ){_gddefe :=uint (len (_dgff .Entries ));if index > _gddefe {index =_gddefe ;};_dgff .Entries =append (_dgff .Entries [:index ],append ([]*OutlineItem {item },_dgff .Entries [index :]...)...);
|
||
};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_abfdd pdfFontType3 )Encoder ()_bgg .TextEncoder {return _abfdd ._debad };const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;BorderStyleUnderline BorderStyle =iota ;
|
||
);
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_ae .PdfObjectArray ;TI *_ae .PdfObjectInteger ;I *_ae .PdfObjectArray ;};
|
||
|
||
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
|
||
// flags are specific.
|
||
type FieldFlag uint32 ;func (_ecfgec *PdfWriter )hasObject (_eegf _ae .PdfObject )bool {_ ,_bedce :=_ecfgec ._faecg [_eegf ];return _bedce ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_agac *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_bggea :=func (_fdfa float64 )float64 {if _fdfa >=6.0/29{return _fdfa *_fdfa *_fdfa ;};return 108.0/841*(_fdfa -4.0/29.0);};_edad :=img ._fdae ;if len (_edad )!=6{_ac .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");
|
||
_edad =_agac .DecodeArray ();};_gede :=_ba .NewReader (img .getBase ());_eeed :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._bbba ,img ._fdae );_gfdf :=_ba .NewWriter (_eeed );_fgdb :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_gafb :=make ([]uint32 ,3);var (_adde error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_badd ,_beaae ,_ccae float64 ;);for {_adde =_gede .ReadSamples (_gafb );if _adde ==_gdc .EOF {break ;}else if _adde !=nil {return img ,_adde ;};Ls =float64 (_gafb [0])/_fgdb ;As =float64 (_gafb [1])/_fgdb ;
|
||
Bs =float64 (_gafb [2])/_fgdb ;Ls =_afc .LinearInterpolate (Ls ,0.0,1.0,_edad [0],_edad [1]);As =_afc .LinearInterpolate (As ,0.0,1.0,_edad [2],_edad [3]);Bs =_afc .LinearInterpolate (Bs ,0.0,1.0,_edad [4],_edad [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;
|
||
N =(Ls +16)/116-Bs /200;X =_agac .WhitePoint [0]*_bggea (L );Y =_agac .WhitePoint [1]*_bggea (M );Z =_agac .WhitePoint [2]*_bggea (N );_badd =3.240479*X +-1.537150*Y +-0.498535*Z ;_beaae =-0.969256*X +1.875992*Y +0.041556*Z ;_ccae =0.055648*X +-0.204043*Y +1.057311*Z ;
|
||
_badd =_ag .Min (_ag .Max (_badd ,0),1.0);_beaae =_ag .Min (_ag .Max (_beaae ,0),1.0);_ccae =_ag .Min (_ag .Max (_ccae ,0),1.0);_gafb [0]=uint32 (_badd *_fgdb );_gafb [1]=uint32 (_beaae *_fgdb );_gafb [2]=uint32 (_ccae *_fgdb );if _adde =_gfdf .WriteSamples (_gafb );
|
||
_adde !=nil {return img ,_adde ;};};return _feagd (&_eeed ),nil ;};func _aead (_bdab *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_bdab }};
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_efefd *XObjectForm )GetContainingPdfObject ()_ae .PdfObject {return _efefd ._fccdf };func (_ddfd fontCommon )fontFlags ()int {if _ddfd ._cafdb ==nil {return 0;};return _ddfd ._cafdb ._fbafe ;};
|
||
|
||
// PdfColorCalRGB represents a color in the Colorimetric CIE RGB colorspace.
|
||
// A, B, C components
|
||
// Each component is defined in the range 0.0 - 1.0 where 1.0 is the primary intensity.
|
||
type PdfColorCalRGB [3]float64 ;func _adfg (_cfbf _ae .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_cgcc :=&PdfColorspaceDeviceNAttributes {};var _ebbe *_ae .PdfObjectDictionary ;switch _adgg :=_cfbf .(type ){case *_ae .PdfIndirectObject :_cgcc ._cabd =_adgg ;
|
||
var _fafdd bool ;_ebbe ,_fafdd =_adgg .PdfObject .(*_ae .PdfObjectDictionary );if !_fafdd {_ac .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 ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_ae .PdfObjectDictionary :_ebbe =_adgg ;case *_ae .PdfObjectReference :_gggad :=_adgg .Resolve ();return _adfg (_gggad );default:_ac .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 ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dcfa :=_ebbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dcfa !=nil {_gace ,_baac :=_ae .TraceToDirectObject (_dcfa ).(*_ae .PdfObjectName );if !_baac {_ac .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 ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_cgcc .Subtype =_gace ;};if _fdba :=_ebbe .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_fdba !=nil {_cgcc .Colorants =_fdba ;};if _affa :=_ebbe .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_affa !=nil {_cgcc .Process =_affa ;};if _gcebg :=_ebbe .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_gcebg !=nil {_cgcc .MixingHints =_gcebg ;};return _cgcc ,nil ;};
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_gbfbg :=&PdfOutlineItem {_dabga :_ae .MakeIndirectObject (_ae .MakeDict ())};_gbfbg ._aaea =_gbfbg ;return _gbfbg ;};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_ceef :=&PdfColorspaceCalRGB {};_ceef .BlackPoint =[]float64 {0.0,0.0,0.0};_ceef .Gamma =[]float64 {1.0,1.0,1.0};_ceef .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _ceef ;};var _ pdfFont =(*pdfFontType0 )(nil );
|
||
|
||
|
||
// GetCatalogMarkInfo gets catalog MarkInfo object.
|
||
func (_febf *PdfReader )GetCatalogMarkInfo ()(_ae .PdfObject ,bool ){if _febf ._aedf ==nil {return nil ,false ;};_bbee :=_febf ._aedf .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _bbee ,_bbee !=nil ;};
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_fffbb *XObjectImage )SetFilter (encoder _ae .StreamEncoder )error {_ggfec :=_fffbb .Stream ;_cbcg ,_dcca :=_fffbb .Filter .DecodeBytes (_ggfec );if _dcca !=nil {return _dcca ;};_fffbb .Filter =encoder ;encoder .UpdateParams (_fffbb .getParamsDict ());
|
||
_ggfec ,_dcca =encoder .EncodeBytes (_cbcg );if _dcca !=nil {return _dcca ;};_fffbb .Stream =_ggfec ;return nil ;};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_cecdg *PdfPage )AppendContentStream (contentStr string )error {_dgfgc ,_ebdgf :=_cecdg .GetContentStreams ();if _ebdgf !=nil {return _ebdgf ;};if len (_dgfgc )==0{_dgfgc =[]string {contentStr };return _cecdg .SetContentStreams (_dgfgc ,_ae .NewFlateEncoder ());
|
||
};var _cafgg _aa .Buffer ;_cafgg .WriteString (_dgfgc [len (_dgfgc )-1]);_cafgg .WriteString ("\u000a");_cafgg .WriteString (contentStr );_dgfgc [len (_dgfgc )-1]=_cafgg .String ();return _cecdg .SetContentStreams (_dgfgc ,_ae .NewFlateEncoder ());};
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};
|
||
|
||
// 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"`;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_bcfgd *PdfOutlineItem )GetContainingPdfObject ()_ae .PdfObject {return _bcfgd ._dabga };
|
||
|
||
// 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 (_fgdgg *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _fgdgg .baseFields ()._cafdb !=nil {return _fgdgg .baseFields ()._cafdb ;};if _cffc :=_fgdgg ._dabg .getFontDescriptor ();_cffc !=nil {return _cffc ;};_ac .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",_fgdgg );
|
||
return nil ;};
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_abf :=NewPdfAnnotation ();_cfa :=&PdfAnnotationMovie {};_cfa .PdfAnnotation =_abf ;_abf .SetContext (_cfa );return _cfa ;};
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_bafd *PdfColorDeviceCMYK )C ()float64 {return _bafd [0]};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_fbcd pdfFontType0 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){if _fbcd .DescendantFont ==nil {_ac .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",_fbcd );
|
||
return _cb .CharMetrics {},false ;};return _fbcd .DescendantFont .GetRuneMetrics (r );};var _ pdfFont =(*pdfFontSimple )(nil );
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;BitsPerFlag *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};func (_cgebg *pdfFontType0 )subsetRegistered ()error {_efacd ,_cebace :=_cgebg .DescendantFont ._dabg .(*pdfCIDFontType2 );
|
||
if !_cebace {_ac .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",_cgebg .DescendantFont );return nil ;};if _efacd ==nil {return nil ;
|
||
};if _efacd ._cafdb ==nil {_ac .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 _cgebg ._bagdb ==nil {_ac .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 ;};_fddg ,_cebace :=_ae .GetStream (_efacd ._cafdb .FontFile2 );if !_cebace {_ac .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 _db .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_deagg ,_eabe :=_ae .DecodeStream (_fddg );if _eabe !=nil {_ac .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_eabe );
|
||
return _eabe ;};_fffga ,_eabe :=_ggc .Parse (_aa .NewReader (_deagg ));if _eabe !=nil {_ac .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 (_fddg .Stream ));
|
||
return _eabe ;};var _bdga []rune ;var _debeb *_ggc .Font ;switch _ddaab :=_cgebg ._bagdb .(type ){case *_bgg .TrueTypeFontEncoder :_bdga =_ddaab .RegisteredRunes ();_debeb ,_eabe =_fffga .SubsetKeepRunes (_bdga );if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );
|
||
return _eabe ;};_ddaab .SubsetRegistered ();case *_bgg .IdentityEncoder :_bdga =_ddaab .RegisteredRunes ();_ddfgb :=make ([]_ggc .GlyphIndex ,len (_bdga ));for _cacgf ,_cdcdd :=range _bdga {_ddfgb [_cacgf ]=_ggc .GlyphIndex (_cdcdd );};_debeb ,_eabe =_fffga .SubsetKeepIndices (_ddfgb );
|
||
if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );return _eabe ;};case _bgg .SimpleEncoder :_gceg :=_ddaab .Charcodes ();for _ ,_degb :=range _gceg {_deea ,_dabaf :=_ddaab .CharcodeToRune (_degb );if !_dabaf {_ac .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",_degb );
|
||
continue ;};_bdga =append (_bdga ,_deea );};default:return _f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020s\u0075\u0062\u0073\u0065\u0074t\u0069\u006eg\u003a\u0020\u0025\u0054",_cgebg ._bagdb );
|
||
};var _fdbf _aa .Buffer ;_eabe =_debeb .Write (&_fdbf );if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );return _eabe ;};if _cgebg ._ebfdc !=nil {_cfgc :=make (map[_abg .CharCode ]rune ,len (_bdga ));for _ ,_ddcdc :=range _bdga {_cgbef ,_bbgf :=_cgebg ._bagdb .RuneToCharcode (_ddcdc );
|
||
if !_bbgf {continue ;};_cfgc [_abg .CharCode (_cgbef )]=_ddcdc ;};_cgebg ._ebfdc =_abg .NewToUnicodeCMap (_cfgc );};_fddg ,_eabe =_ae .MakeStream (_fdbf .Bytes (),_ae .NewFlateEncoder ());if _eabe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eabe );
|
||
return _eabe ;};_fddg .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ae .MakeInteger (int64 (_fdbf .Len ())));if _ddbd ,_cgef :=_ae .GetStream (_efacd ._cafdb .FontFile2 );_cgef {*_ddbd =*_fddg ;}else {_efacd ._cafdb .FontFile2 =_fddg ;};_dfeb :=_afdgg ();
|
||
if len (_cgebg ._cedb )> 0{_cgebg ._cedb =_egec (_cgebg ._cedb ,_dfeb );};if len (_efacd ._cedb )> 0{_efacd ._cedb =_egec (_efacd ._cedb ,_dfeb );};if len (_cgebg ._bbce )> 0{_cgebg ._bbce =_egec (_cgebg ._bbce ,_dfeb );};if _efacd ._cafdb !=nil {_eaegc ,_bdaf :=_ae .GetName (_efacd ._cafdb .FontName );
|
||
if _bdaf &&len (_eaegc .String ())> 0{_fged :=_egec (_eaegc .String (),_dfeb );_efacd ._cafdb .FontName =_ae .MakeName (_fged );};};return nil ;};
|
||
|
||
// Val returns the color value.
|
||
func (_gcaf *PdfColorDeviceGray )Val ()float64 {return float64 (*_gcaf )};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_baa *PdfActionGoToR )ToPdfObject ()_ae .PdfObject {_baa .PdfAction .ToPdfObject ();_bec :=_baa ._cbe ;_aecf :=_bec .PdfObject .(*_ae .PdfObjectDictionary );_aecf .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoToR )));if _baa .F !=nil {_aecf .Set ("\u0046",_baa .F .ToPdfObject ());
|
||
};_aecf .SetIfNotNil ("\u0044",_baa .D );_aecf .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_baa .NewWindow );return _bec ;};
|
||
|
||
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
|
||
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_ae .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_ae .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
|
||
};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_cbfd *PdfColorspaceCalGray )GetNumComponents ()int {return 1};func (_ecb *PdfReader )newPdfActionFromIndirectObject (_fbc *_ae .PdfIndirectObject )(*PdfAction ,error ){_cfde ,_dfg :=_fbc .PdfObject .(*_ae .PdfObjectDictionary );if !_dfg {return nil ,_f .Errorf ("\u0061\u0063\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};if model :=_ecb ._gdbcb .GetModelFromPrimitive (_cfde );model !=nil {_eagf ,_edg :=model .(*PdfAction );if !_edg {return nil ,_f .Errorf ("\u0063\u0061c\u0068\u0065\u0064\u0020\u006d\u006f\u0064\u0065\u006c\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0050\u0044\u0046\u0020\u0061\u0063ti\u006f\u006e");
|
||
};return _eagf ,nil ;};_bcb :=&PdfAction {};_bcb ._cbe =_fbc ;_ecb ._gdbcb .Register (_cfde ,_bcb );if _aeb :=_cfde .Get ("\u0054\u0079\u0070\u0065");_aeb !=nil {_fac ,_deg :=_aeb .(*_ae .PdfObjectName );if !_deg {_ac .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",_aeb );
|
||
}else {if *_fac !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ac .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",*_fac );
|
||
};_bcb .Type =_fac ;};};if _aea :=_cfde .Get ("\u004e\u0065\u0078\u0074");_aea !=nil {_bcb .Next =_aea ;};if _dee :=_cfde .Get ("\u0053");_dee !=nil {_bcb .S =_dee ;};_bbc ,_feb :=_bcb .S .(*_ae .PdfObjectName );if !_feb {_ac .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",_bcb .S );
|
||
return nil ,_f .Errorf ("\u0069\u006e\u0076al\u0069\u0064\u0020\u0053\u0020\u006f\u0062\u006a\u0065c\u0074 \u0074y\u0070e\u0020\u0021\u003d\u0020\u006e\u0061\u006d\u0065\u0020\u0028\u0025\u0054\u0029",_bcb .S );};_dgg :=PdfActionType (_bbc .String ());
|
||
switch _dgg {case ActionTypeGoTo :_gbec ,_ffe :=_ecb .newPdfActionGotoFromDict (_cfde );if _ffe !=nil {return nil ,_ffe ;};_gbec .PdfAction =_bcb ;_bcb ._df =_gbec ;return _bcb ,nil ;case ActionTypeGoToR :_ggea ,_ccd :=_ecb .newPdfActionGotoRFromDict (_cfde );
|
||
if _ccd !=nil {return nil ,_ccd ;};_ggea .PdfAction =_bcb ;_bcb ._df =_ggea ;return _bcb ,nil ;case ActionTypeGoToE :_faf ,_fge :=_ecb .newPdfActionGotoEFromDict (_cfde );if _fge !=nil {return nil ,_fge ;};_faf .PdfAction =_bcb ;_bcb ._df =_faf ;return _bcb ,nil ;
|
||
case ActionTypeLaunch :_agb ,_ccc :=_ecb .newPdfActionLaunchFromDict (_cfde );if _ccc !=nil {return nil ,_ccc ;};_agb .PdfAction =_bcb ;_bcb ._df =_agb ;return _bcb ,nil ;case ActionTypeThread :_gfd ,_fbb :=_ecb .newPdfActionThreadFromDict (_cfde );if _fbb !=nil {return nil ,_fbb ;
|
||
};_gfd .PdfAction =_bcb ;_bcb ._df =_gfd ;return _bcb ,nil ;case ActionTypeURI :_ddf ,_ged :=_ecb .newPdfActionURIFromDict (_cfde );if _ged !=nil {return nil ,_ged ;};_ddf .PdfAction =_bcb ;_bcb ._df =_ddf ;return _bcb ,nil ;case ActionTypeSound :_gbf ,_caf :=_ecb .newPdfActionSoundFromDict (_cfde );
|
||
if _caf !=nil {return nil ,_caf ;};_gbf .PdfAction =_bcb ;_bcb ._df =_gbf ;return _bcb ,nil ;case ActionTypeMovie :_ebg ,_fceb :=_ecb .newPdfActionMovieFromDict (_cfde );if _fceb !=nil {return nil ,_fceb ;};_ebg .PdfAction =_bcb ;_bcb ._df =_ebg ;return _bcb ,nil ;
|
||
case ActionTypeHide :_eae ,_bcga :=_ecb .newPdfActionHideFromDict (_cfde );if _bcga !=nil {return nil ,_bcga ;};_eae .PdfAction =_bcb ;_bcb ._df =_eae ;return _bcb ,nil ;case ActionTypeNamed :_dea ,_egbd :=_ecb .newPdfActionNamedFromDict (_cfde );if _egbd !=nil {return nil ,_egbd ;
|
||
};_dea .PdfAction =_bcb ;_bcb ._df =_dea ;return _bcb ,nil ;case ActionTypeSubmitForm :_dbge ,_egd :=_ecb .newPdfActionSubmitFormFromDict (_cfde );if _egd !=nil {return nil ,_egd ;};_dbge .PdfAction =_bcb ;_bcb ._df =_dbge ;return _bcb ,nil ;case ActionTypeResetForm :_dfb ,_eff :=_ecb .newPdfActionResetFormFromDict (_cfde );
|
||
if _eff !=nil {return nil ,_eff ;};_dfb .PdfAction =_bcb ;_bcb ._df =_dfb ;return _bcb ,nil ;case ActionTypeImportData :_efg ,_cae :=_ecb .newPdfActionImportDataFromDict (_cfde );if _cae !=nil {return nil ,_cae ;};_efg .PdfAction =_bcb ;_bcb ._df =_efg ;
|
||
return _bcb ,nil ;case ActionTypeSetOCGState :_dgd ,_aag :=_ecb .newPdfActionSetOCGStateFromDict (_cfde );if _aag !=nil {return nil ,_aag ;};_dgd .PdfAction =_bcb ;_bcb ._df =_dgd ;return _bcb ,nil ;case ActionTypeRendition :_ggg ,_gfa :=_ecb .newPdfActionRenditionFromDict (_cfde );
|
||
if _gfa !=nil {return nil ,_gfa ;};_ggg .PdfAction =_bcb ;_bcb ._df =_ggg ;return _bcb ,nil ;case ActionTypeTrans :_cgg ,_bfd :=_ecb .newPdfActionTransFromDict (_cfde );if _bfd !=nil {return nil ,_bfd ;};_cgg .PdfAction =_bcb ;_bcb ._df =_cgg ;return _bcb ,nil ;
|
||
case ActionTypeGoTo3DView :_bdg ,_eab :=_ecb .newPdfActionGoTo3DViewFromDict (_cfde );if _eab !=nil {return nil ,_eab ;};_bdg .PdfAction =_bcb ;_bcb ._df =_bdg ;return _bcb ,nil ;case ActionTypeJavaScript :_ade ,_ddff :=_ecb .newPdfActionJavaScriptFromDict (_cfde );
|
||
if _ddff !=nil {return nil ,_ddff ;};_ade .PdfAction =_bcb ;_bcb ._df =_ade ;return _bcb ,nil ;};_ac .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",_dgg );
|
||
return nil ,nil ;};func (_adad *PdfReader )newPdfActionImportDataFromDict (_bff *_ae .PdfObjectDictionary )(*PdfActionImportData ,error ){_baf ,_cagc :=_ceb (_bff .Get ("\u0046"));if _cagc !=nil {return nil ,_cagc ;};return &PdfActionImportData {F :_baf },nil ;
|
||
};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_gbcag pdfCIDFontType2 )Encoder ()_bgg .TextEncoder {return _gbcag ._bddbd };
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_dcfc *PdfField )PartialName ()string {_dfdc :="";if _dcfc .T !=nil {_dfdc =_dcfc .T .Decoded ();}else {_ac .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 _dfdc ;};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _ae .PdfObject ;LE _ae .PdfObject ;BS _ae .PdfObject ;IC _ae .PdfObject ;BE _ae .PdfObject ;IT _ae .PdfObject ;Measure _ae .PdfObject ;};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};func (_fabf *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";};
|
||
|
||
// 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 *_ae .PdfObjectStream ;Data []byte ;_debg *_ae .PdfIndirectObject ;_egefc *_ae .PdfObjectStream ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_geefc *PdfShadingPatternType2 )ToPdfObject ()_ae .PdfObject {_geefc .PdfPattern .ToPdfObject ();_cacdb :=_geefc .getDict ();if _geefc .Shading !=nil {_cacdb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_geefc .Shading .ToPdfObject ());};if _geefc .Matrix !=nil {_cacdb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_geefc .Matrix );
|
||
};if _geefc .ExtGState !=nil {_cacdb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_geefc .ExtGState );};return _geefc ._ebfged ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_ceaa *PdfColorLab )GetNumComponents ()int {return 3};
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_eeac *PdfPageResources )HasXObjectByName (keyName _ae .PdfObjectName )bool {_cgbbg ,_ :=_eeac .GetXObjectByName (keyName );return _cgbbg !=nil ;};func (_bbcc *DSS )addOCSPs (_eddf [][]byte )([]*_ae .PdfObjectStream ,error ){return _bbcc .add (&_bbcc .OCSPs ,_bbcc ._fcgf ,_eddf );
|
||
};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_debb *PdfFilespec )GetContainingPdfObject ()_ae .PdfObject {return _debb ._caeaag };
|
||
|
||
// 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 (_fcdcab byte )byte ;
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_geec *PdfAnnotationScreen )ToPdfObject ()_ae .PdfObject {_geec .PdfAnnotation .ToPdfObject ();_gbaa :=_geec ._gcgf ;_ceca :=_gbaa .PdfObject .(*_ae .PdfObjectDictionary );_ceca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_ceca .SetIfNotNil ("\u0054",_geec .T );_ceca .SetIfNotNil ("\u004d\u004b",_geec .MK );_ceca .SetIfNotNil ("\u0041",_geec .A );_ceca .SetIfNotNil ("\u0041\u0041",_geec .AA );return _gbaa ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_debag *PdfSignatureReference )GetContainingPdfObject ()_ae .PdfObject {return _debag ._geecc };
|
||
|
||
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
|
||
func NewPdfInfoFromObject (obj _ae .PdfObject )(*PdfInfo ,error ){var _fgdf PdfInfo ;_fbfb ,_aegb :=obj .(*_ae .PdfObjectDictionary );if !_aegb {return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0070\u0064\u0066\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079p\u0065:\u0020\u0025\u0054",obj );
|
||
};for _ ,_cffad :=range _fbfb .Keys (){switch _cffad {case "\u0054\u0069\u0074l\u0065":_fgdf .Title ,_ =_ae .GetString (_fbfb .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_fgdf .Author ,_ =_ae .GetString (_fbfb .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
|
||
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_fgdf .Subject ,_ =_ae .GetString (_fbfb .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_fgdf .Keywords ,_ =_ae .GetString (_fbfb .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
|
||
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_fgdf .Creator ,_ =_ae .GetString (_fbfb .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_fgdf .Producer ,_ =_ae .GetString (_fbfb .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
|
||
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_fgdf .Trapped ,_ =_ae .GetName (_fbfb .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _cggcb ,_bbae :=_ae .GetString (_fbfb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
|
||
_bbae &&_cggcb .String ()!=""{_gcad ,_adfgd :=NewPdfDate (_cggcb .String ());if _adfgd !=nil {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0072e\u0061\u0074\u0069\u006f\u006e\u0044\u0061t\u0065\u0020\u0066\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u0077",_adfgd );
|
||
};_fgdf .CreationDate =&_gcad ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _cebeb ,_gcfb :=_ae .GetString (_fbfb .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gcfb &&_cebeb .String ()!=""{_ggfc ,_ggbb :=NewPdfDate (_cebeb .String ());if _ggbb !=nil {return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_ggbb );
|
||
};_fgdf .ModifiedDate =&_ggfc ;};default:_cgf ,_ :=_ae .GetString (_fbfb .Get (_cffad ));if _fgdf ._ffgag ==nil {_fgdf ._ffgag =_ae .MakeDict ();};_fgdf ._ffgag .Set (_cffad ,_cgf );};};return &_fgdf ,nil ;};
|
||
|
||
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
|
||
func NewPdfShadingType2 ()*PdfShadingType2 {_dbgfa :=&PdfShadingType2 {};_dbgfa .PdfShading =&PdfShading {};_dbgfa .PdfShading ._dcdgda =_ae .MakeIndirectObject (_ae .MakeDict ());_dbgfa .PdfShading ._ffgbf =_dbgfa ;return _dbgfa ;};
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_ggf *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _ggf ._ebf !=nil {return _ggf ._ebf ,nil ;};if _ggf .A ==nil {return nil ,nil ;};if _ggf ._cfdf ==nil {return nil ,nil ;};_fbbb ,_aef :=_ggf ._cfdf .loadAction (_ggf .A );if _aef !=nil {return nil ,_aef ;
|
||
};_ggf ._ebf =_fbbb ;return _ggf ._ebf ,nil ;};func (_gafd *fontFile )parseASCIIPart (_fgdec []byte )error {if len (_fgdec )< 2||string (_fgdec [:2])!="\u0025\u0021"{return _db .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");
|
||
};_ebed ,_ceae ,_bebb :=_fegbg (_fgdec );if _bebb !=nil {return _bebb ;};_ggfd :=_gafdf (_ebed );_gafd ._deef =_ggfd ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _gafd ._deef ==""{_ac .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 _ceae !=""{_cedc ,_gffd :=_dcdc (_ceae );if _gffd !=nil {return _gffd ;};_accf ,_gffd :=_bgg .NewCustomSimpleTextEncoder (_cedc ,nil );if _gffd !=nil {_ac .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",_gffd );
|
||
return nil ;};_gafd ._dbfd =_accf ;};return nil ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_geefg *PdfColorspaceCalRGB )ToPdfObject ()_ae .PdfObject {_beae :=&_ae .PdfObjectArray {};_beae .Append (_ae .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_agfg :=_ae .MakeDict ();if _geefg .WhitePoint !=nil {_cdceg :=_ae .MakeArray (_ae .MakeFloat (_geefg .WhitePoint [0]),_ae .MakeFloat (_geefg .WhitePoint [1]),_ae .MakeFloat (_geefg .WhitePoint [2]));
|
||
_agfg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_cdceg );}else {_ac .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 _geefg .BlackPoint !=nil {_eafa :=_ae .MakeArray (_ae .MakeFloat (_geefg .BlackPoint [0]),_ae .MakeFloat (_geefg .BlackPoint [1]),_ae .MakeFloat (_geefg .BlackPoint [2]));_agfg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_eafa );
|
||
};if _geefg .Gamma !=nil {_cegda :=_ae .MakeArray (_ae .MakeFloat (_geefg .Gamma [0]),_ae .MakeFloat (_geefg .Gamma [1]),_ae .MakeFloat (_geefg .Gamma [2]));_agfg .Set ("\u0047\u0061\u006dm\u0061",_cegda );};if _geefg .Matrix !=nil {_aagf :=_ae .MakeArray (_ae .MakeFloat (_geefg .Matrix [0]),_ae .MakeFloat (_geefg .Matrix [1]),_ae .MakeFloat (_geefg .Matrix [2]),_ae .MakeFloat (_geefg .Matrix [3]),_ae .MakeFloat (_geefg .Matrix [4]),_ae .MakeFloat (_geefg .Matrix [5]),_ae .MakeFloat (_geefg .Matrix [6]),_ae .MakeFloat (_geefg .Matrix [7]),_ae .MakeFloat (_geefg .Matrix [8]));
|
||
_agfg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_aagf );};_beae .Append (_agfg );if _geefg ._gbge !=nil {_geefg ._gbge .PdfObject =_beae ;return _geefg ._gbge ;};return _beae ;};
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_agfa *PdfField )IsTerminal ()bool {return len (_agfa .Kids )==0};func (_eafac *pdfCIDFontType2 )baseFields ()*fontCommon {return &_eafac .fontCommon };func (_cbbeg *PdfReader )buildOutlineTree (_fffe _ae .PdfObject ,_gcdff *PdfOutlineTreeNode ,_cebde *PdfOutlineTreeNode ,_caaeb map[_ae .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _caaeb ==nil {_caaeb =map[_ae .PdfObject ]struct{}{};
|
||
};_caaeb [_fffe ]=struct{}{};_cebed ,_gfgdc :=_fffe .(*_ae .PdfIndirectObject );if !_gfgdc {return nil ,nil ,_f .Errorf ("\u006f\u0075\u0074\u006c\u0069\u006e\u0065 \u0063\u006f\u006et\u0061\u0069\u006e\u0065r\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0069\u006e\u0064\u0069\u0072\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0025\u0054",_fffe );
|
||
};_eadc ,_gaabg :=_cebed .PdfObject .(*_ae .PdfObjectDictionary );if !_gaabg {return nil ,nil ,_db .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ac .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",_eadc ,_cebed ,_cebed );
|
||
if _dbgc :=_eadc .Get ("\u0054\u0069\u0074l\u0065");_dbgc !=nil {_bfaff ,_cbcdd :=_cbbeg .newPdfOutlineItemFromIndirectObject (_cebed );if _cbcdd !=nil {return nil ,nil ,_cbcdd ;};_bfaff .Parent =_gcdff ;_bfaff .Prev =_cebde ;_ecbc :=_ae .ResolveReference (_eadc .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_cccgf :=_caaeb [_ecbc ];_ecbc !=nil &&_ecbc !=_cebed &&!_cccgf {if !_ae .IsNullObject (_ecbc ){_fedbf ,_fedd ,_ecabb :=_cbbeg .buildOutlineTree (_ecbc ,&_bfaff .PdfOutlineTreeNode ,nil ,_caaeb );if _ecabb !=nil {_ac .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",_ecabb );
|
||
}else {_bfaff .First =_fedbf ;_bfaff .Last =_fedd ;};};};_afff :=_ae .ResolveReference (_eadc .Get ("\u004e\u0065\u0078\u0074"));if _ ,_bffcc :=_caaeb [_afff ];_afff !=nil &&_afff !=_cebed &&!_bffcc {if !_ae .IsNullObject (_afff ){_ebafg ,_dbda ,_aadce :=_cbbeg .buildOutlineTree (_afff ,_gcdff ,&_bfaff .PdfOutlineTreeNode ,_caaeb );
|
||
if _aadce !=nil {_ac .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",_aadce );
|
||
}else {_bfaff .Next =_ebafg ;return &_bfaff .PdfOutlineTreeNode ,_dbda ,nil ;};};};return &_bfaff .PdfOutlineTreeNode ,&_bfaff .PdfOutlineTreeNode ,nil ;};_acacf ,_efdg :=_adfccb (_cebed );if _efdg !=nil {return nil ,nil ,_efdg ;};_acacf .Parent =_gcdff ;
|
||
if _gcgdf :=_eadc .Get ("\u0046\u0069\u0072s\u0074");_gcgdf !=nil {_gcgdf =_ae .ResolveReference (_gcgdf );if _ ,_gdgdg :=_caaeb [_gcgdf ];_gcgdf !=nil &&_gcgdf !=_cebed &&!_gdgdg {_cagfe :=_ae .TraceToDirectObject (_gcgdf );if _ ,_gfegf :=_cagfe .(*_ae .PdfObjectNull );
|
||
!_gfegf &&_cagfe !=nil {_afbbe ,_bdeec ,_bgcgc :=_cbbeg .buildOutlineTree (_gcgdf ,&_acacf .PdfOutlineTreeNode ,nil ,_caaeb );if _bgcgc !=nil {_ac .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",_bgcgc );
|
||
}else {_acacf .First =_afbbe ;_acacf .Last =_bdeec ;};};};};return &_acacf .PdfOutlineTreeNode ,&_acacf .PdfOutlineTreeNode ,nil ;};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_cfb :=NewPdfAction ();_gbe :=&PdfActionRendition {};_gbe .PdfAction =_cfb ;_cfb .SetContext (_gbe );return _gbe ;};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_ae .PdfObject ,error );};func (_fbfbf *PdfReader )newPdfFieldFromIndirectObject (_dedc *_ae .PdfIndirectObject ,_eefgb *PdfField )(*PdfField ,error ){if _eabfa ,_bbdc :=_fbfbf ._gdbcb .GetModelFromPrimitive (_dedc ).(*PdfField );
|
||
_bbdc {return _eabfa ,nil ;};_dccb ,_ddgdg :=_ae .GetDict (_dedc );if !_ddgdg {return nil ,_f .Errorf ("\u0050\u0064f\u0046\u0069\u0065\u006c\u0064 \u0069\u006e\u0064\u0069\u0072e\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0069\u006e\u0067\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_cdcag :=NewPdfField ();_cdcag ._facca =_dedc ;_cdcag ._facca .PdfObject =_dccb ;if _gdded ,_gfaef :=_ae .GetName (_dccb .Get ("\u0046\u0054"));_gfaef {_cdcag .FT =_gdded ;};if _eefgb !=nil {_cdcag .Parent =_eefgb ;};_cdcag .T ,_ =_dccb .Get ("\u0054").(*_ae .PdfObjectString );
|
||
_cdcag .TU ,_ =_dccb .Get ("\u0054\u0055").(*_ae .PdfObjectString );_cdcag .TM ,_ =_dccb .Get ("\u0054\u004d").(*_ae .PdfObjectString );_cdcag .Ff ,_ =_dccb .Get ("\u0046\u0066").(*_ae .PdfObjectInteger );_cdcag .V =_dccb .Get ("\u0056");_cdcag .DV =_dccb .Get ("\u0044\u0056");
|
||
_cdcag .AA =_dccb .Get ("\u0041\u0041");if DA :=_dccb .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_ae .GetString (DA );_cdcag .VariableText =&VariableText {DA :DA };Q ,_ :=_dccb .Get ("\u0051").(*_ae .PdfObjectInteger );DS ,_ :=_dccb .Get ("\u0044\u0053").(*_ae .PdfObjectString );
|
||
RV :=_dccb .Get ("\u0052\u0056");_cdcag .VariableText .Q =Q ;_cdcag .VariableText .DS =DS ;_cdcag .VariableText .RV =RV ;};_cadd :=_cdcag .FT ;if _cadd ==nil &&_eefgb !=nil {_cadd =_eefgb .FT ;};if _cadd !=nil {switch *_cadd {case "\u0054\u0078":_dada ,_bdebb :=_dgdf (_dccb );
|
||
if _bdebb !=nil {return nil ,_bdebb ;};_dada .PdfField =_cdcag ;_cdcag ._dadc =_dada ;case "\u0043\u0068":_ddfee ,_egdfc :=_cbfb (_dccb );if _egdfc !=nil {return nil ,_egdfc ;};_ddfee .PdfField =_cdcag ;_cdcag ._dadc =_ddfee ;case "\u0042\u0074\u006e":_ecdgc ,_bffc :=_afbe (_dccb );
|
||
if _bffc !=nil {return nil ,_bffc ;};_ecdgc .PdfField =_cdcag ;_cdcag ._dadc =_ecdgc ;case "\u0053\u0069\u0067":_fgaf ,_agecf :=_fbfbf .newPdfFieldSignatureFromDict (_dccb );if _agecf !=nil {return nil ,_agecf ;};_fgaf .PdfField =_cdcag ;_cdcag ._dadc =_fgaf ;
|
||
default:_ac .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",*_cdcag .FT );return nil ,_db .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
|
||
};};if _eabd ,_bfbf :=_ae .GetName (_dccb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_bfbf {if *_eabd =="\u0057\u0069\u0064\u0067\u0065\u0074"{_gadf ,_gdff :=_fbfbf .newPdfAnnotationFromIndirectObject (_dedc );if _gdff !=nil {return nil ,_gdff ;};
|
||
_eebbf ,_afbb :=_gadf .GetContext ().(*PdfAnnotationWidget );if !_afbb {return nil ,_db .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_eebbf ._bab =_cdcag ;_eebbf .Parent =_cdcag ._facca ;
|
||
_cdcag .Annotations =append (_cdcag .Annotations ,_eebbf );return _cdcag ,nil ;};};_eebd :=true ;if _egga ,_egcbd :=_ae .GetArray (_dccb .Get ("\u004b\u0069\u0064\u0073"));_egcbd {_fcbcd :=make ([]*_ae .PdfIndirectObject ,0,_egga .Len ());for _ ,_cfcbd :=range _egga .Elements (){_dcbb ,_ebc :=_ae .GetIndirect (_cfcbd );
|
||
if !_ebc {_ffbc ,_fgda :=_ae .GetStream (_cfcbd );if _fgda &&_ffbc .PdfObjectDictionary !=nil {_ggcd ,_fcag :=_ae .GetNameVal (_ffbc .Get ("\u0054\u0079\u0070\u0065"));if _fcag &&_ggcd =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ac .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 ,_db .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");};_degf ,_ffccb :=_ae .GetDict (_dcbb );
|
||
if !_ffccb {return nil ,ErrTypeCheck ;};if _eebd {_eebd =!_gdbe (_degf );};_fcbcd =append (_fcbcd ,_dcbb );};for _ ,_cgafg :=range _fcbcd {if _eebd {_bdef ,_caga :=_fbfbf .newPdfAnnotationFromIndirectObject (_cgafg );if _caga !=nil {_ac .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",_caga );
|
||
return nil ,_caga ;};_ecfe ,_dcbbc :=_bdef ._ggd .(*PdfAnnotationWidget );if !_dcbbc {return nil ,ErrTypeCheck ;};_ecfe ._bab =_cdcag ;_cdcag .Annotations =append (_cdcag .Annotations ,_ecfe );}else {_bgce ,_gefa :=_fbfbf .newPdfFieldFromIndirectObject (_cgafg ,_cdcag );
|
||
if _gefa !=nil {_ac .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",_gefa );return nil ,_gefa ;};_cdcag .Kids =append (_cdcag .Kids ,_bgce );
|
||
};};};return _cdcag ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efa *PdfAnnotationCaret )ToPdfObject ()_ae .PdfObject {_efa .PdfAnnotation .ToPdfObject ();_gffb :=_efa ._gcgf ;_eggg :=_gffb .PdfObject .(*_ae .PdfObjectDictionary );_efa .PdfAnnotationMarkup .appendToPdfDictionary (_eggg );_eggg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_eggg .SetIfNotNil ("\u0052\u0044",_efa .RD );_eggg .SetIfNotNil ("\u0053\u0079",_efa .Sy );return _gffb ;};
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_cbf *PdfAppender )UpdatePage (page *PdfPage ){_cbf .updateObjectsDeep (page .ToPdfObject (),nil )};
|
||
|
||
// GetContainingPdfObject gets the primitive used to parse the color space.
|
||
func (_cacg *PdfColorspaceICCBased )GetContainingPdfObject ()_ae .PdfObject {return _cacg ._egefc };func (_gdge *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _gdge ._bfcga .GetCrypter ()!=nil &&!_gdge ._bfcga .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_bgddf :=_gdge ._aedf ;_aagbg :=_bgddf .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _aagbg ==nil {return nil ,nil ;};_ac .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_edgfd :=_ae .ResolveReference (_aagbg );
|
||
_ac .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_edgfd );if _fbcdc :=_ae .IsNullObject (_edgfd );_fbcdc {_ac .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 ;};_ededd ,_daegga :=_edgfd .(*_ae .PdfIndirectObject );if !_daegga {if _ ,_acdc :=_ae .GetDict (_edgfd );!_acdc {_ac .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 ;};_ac .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");
|
||
_ededd =_ae .MakeIndirectObject (_edgfd );};_dabff ,_daegga :=_ededd .PdfObject .(*_ae .PdfObjectDictionary );if !_daegga {return nil ,_db .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");
|
||
};_ac .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_dabff );_gfffc ,_ ,_cfffa :=_gdge .buildOutlineTree (_ededd ,nil ,nil ,nil );if _cfffa !=nil {return nil ,_cfffa ;};_ac .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",_gfffc );
|
||
return _gfffc ,nil ;};func _baee (_gacgc *_ae .PdfObjectDictionary )(*PdfShadingType4 ,error ){_facg :=PdfShadingType4 {};_fddaa :=_gacgc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fddaa ==nil {_ac .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 ;};_afbfd ,_cddec :=_fddaa .(*_ae .PdfObjectInteger );if !_cddec {_ac .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",_fddaa );
|
||
return nil ,_ae .ErrTypeError ;};_facg .BitsPerCoordinate =_afbfd ;_fddaa =_gacgc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fddaa ==nil {_ac .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 ;};_afbfd ,_cddec =_fddaa .(*_ae .PdfObjectInteger );if !_cddec {_ac .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",_fddaa );
|
||
return nil ,_ae .ErrTypeError ;};_facg .BitsPerComponent =_afbfd ;_fddaa =_gacgc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fddaa ==nil {_ac .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 ;};_afbfd ,_cddec =_fddaa .(*_ae .PdfObjectInteger );if !_cddec {_ac .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",_fddaa );
|
||
return nil ,_ae .ErrTypeError ;};_facg .BitsPerComponent =_afbfd ;_fddaa =_gacgc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fddaa ==nil {_ac .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 ;};_bafba ,_cddec :=_fddaa .(*_ae .PdfObjectArray );if !_cddec {_ac .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",_fddaa );
|
||
return nil ,_ae .ErrTypeError ;};_facg .Decode =_bafba ;_fddaa =_gacgc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fddaa ==nil {_ac .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 ;};_facg .Function =[]PdfFunction {};if _adecg ,_gebgdf :=_fddaa .(*_ae .PdfObjectArray );_gebgdf {for _ ,_egfbb :=range _adecg .Elements (){_bgaea ,_edgda :=_gdbef (_egfbb );if _edgda !=nil {_ac .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",_edgda );
|
||
return nil ,_edgda ;};_facg .Function =append (_facg .Function ,_bgaea );};}else {_bbgb ,_cgdd :=_gdbef (_fddaa );if _cgdd !=nil {_ac .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",_cgdd );
|
||
return nil ,_cgdd ;};_facg .Function =append (_facg .Function ,_bbgb );};return &_facg ,nil ;};func (_bbb *PdfReader )newPdfAnnotationCaretFromDict (_fea *_ae .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_faba :=PdfAnnotationCaret {};_dfgf ,_bee :=_bbb .newPdfAnnotationMarkupFromDict (_fea );
|
||
if _bee !=nil {return nil ,_bee ;};_faba .PdfAnnotationMarkup =_dfgf ;_faba .RD =_fea .Get ("\u0052\u0044");_faba .Sy =_fea .Get ("\u0053\u0079");return &_faba ,nil ;};func _gfaa (_dfcb *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_cdcaf ,_ffcbc :=_ae .GetDict (_dfcb .AP );
|
||
if !_ffcbc {return nil ,nil ,_db .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 _cdcaf ==nil {return nil ,nil ,nil ;};_cddc ,_ffcbc :=_ae .GetArray (_dfcb .Rect );
|
||
if !_ffcbc ||_cddc .Len ()!=4{return nil ,nil ,_db .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_beabb ,_cefef :=NewPdfRectangle (*_cddc );if _cefef !=nil {return nil ,nil ,_cefef ;};_dadd :=_ae .TraceToDirectObject (_cdcaf .Get ("\u004e"));
|
||
switch _egce :=_dadd .(type ){case *_ae .PdfObjectStream :_gbce :=_egce ;_cbbeeg ,_deca :=NewXObjectFormFromStream (_gbce );return _cbbeeg ,_beabb ,_deca ;case *_ae .PdfObjectDictionary :_fegb :=_egce ;_gcba ,_acbd :=_ae .GetName (_dfcb .AS );if !_acbd {return nil ,nil ,nil ;
|
||
};if _fegb .Get (*_gcba )==nil {_ac .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 ;};_dfafb ,_acbd :=_ae .GetStream (_fegb .Get (*_gcba ));if !_acbd {_ac .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",_gcba );
|
||
return nil ,nil ,_db .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_gebc ,_dbde :=NewXObjectFormFromStream (_dfafb );return _gebc ,_beabb ,_dbde ;};_ac .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_dadd );
|
||
return nil ,nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_fcaaca *XObjectForm )ToPdfObject ()_ae .PdfObject {_abdc :=_fcaaca ._fccdf ;_fcbdd :=_abdc .PdfObjectDictionary ;if _fcaaca .Filter !=nil {_fcbdd =_fcaaca .Filter .MakeStreamDict ();_abdc .PdfObjectDictionary =_fcbdd ;};_fcbdd .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_fcbdd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0046\u006f\u0072\u006d"));_fcbdd .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_fcaaca .FormType );_fcbdd .SetIfNotNil ("\u0042\u0042\u006f\u0078",_fcaaca .BBox );
|
||
_fcbdd .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_fcaaca .Matrix );if _fcaaca .Resources !=nil {_fcbdd .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fcaaca .Resources .ToPdfObject ());};_fcbdd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_fcaaca .Group );
|
||
_fcbdd .SetIfNotNil ("\u0052\u0065\u0066",_fcaaca .Ref );_fcbdd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_fcaaca .MetaData );_fcbdd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_fcaaca .PieceInfo );_fcbdd .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_fcaaca .LastModified );
|
||
_fcbdd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_fcaaca .StructParent );_fcbdd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_fcaaca .StructParents );_fcbdd .SetIfNotNil ("\u004f\u0050\u0049",_fcaaca .OPI );
|
||
_fcbdd .SetIfNotNil ("\u004f\u0043",_fcaaca .OC );_fcbdd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fcaaca .Name );_fcbdd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_fcaaca .Stream ))));_abdc .Stream =_fcaaca .Stream ;return _abdc ;
|
||
};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_cagcb :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_cagcb .N =N ;return _cagcb ,nil ;};
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_cb .StdFontName ;
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_cbcdf *PdfPattern )IsShading ()bool {return _cbcdf .PatternType ==2};
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_fbgaf *PdfReader )Decrypt (password []byte )(bool ,error ){_gaga ,_eecec :=_fbgaf ._bfcga .Decrypt (password );if _eecec !=nil {return false ,_eecec ;};if !_gaga {return false ,nil ;};_eecec =_fbgaf .loadStructure ();if _eecec !=nil {_ac .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",_eecec );
|
||
return false ,_eecec ;};return true ,nil ;};
|
||
|
||
// SetFillImage attach a model.Image to push button.
|
||
func (_acagf *PdfFieldButton )SetFillImage (image *Image ){if _acagf .IsPush (){_acagf ._bbcf =image ;};};func _dgdf (_cbbad *_ae .PdfObjectDictionary )(*PdfFieldText ,error ){_aebb :=&PdfFieldText {};_aebb .DA ,_ =_ae .GetString (_cbbad .Get ("\u0044\u0041"));
|
||
_aebb .Q ,_ =_ae .GetInt (_cbbad .Get ("\u0051"));_aebb .DS ,_ =_ae .GetString (_cbbad .Get ("\u0044\u0053"));_aebb .RV =_cbbad .Get ("\u0052\u0056");_aebb .MaxLen ,_ =_ae .GetInt (_cbbad .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _aebb ,nil ;
|
||
};
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_gggea *PdfPageResources )GenerateXObjectName ()_ae .PdfObjectName {_adegc :=1;for {_bgfec :=_ae .MakeName (_f .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_adegc ));if !_gggea .HasXObjectByName (*_bgfec ){return *_bgfec ;};_adegc ++;};};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_bbbcg *PdfFunctionType4 )ToPdfObject ()_ae .PdfObject {_eabag :=_bbbcg ._cbec ;if _eabag ==nil {_bbbcg ._cbec =&_ae .PdfObjectStream {};_eabag =_bbbcg ._cbec ;};_bcagg :=_ae .MakeDict ();_bcagg .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (4));
|
||
_ggceg :=&_ae .PdfObjectArray {};for _ ,_bbfdc :=range _bbbcg .Domain {_ggceg .Append (_ae .MakeFloat (_bbfdc ));};_bcagg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ggceg );_gedaa :=&_ae .PdfObjectArray {};for _ ,_aebab :=range _bbbcg .Range {_gedaa .Append (_ae .MakeFloat (_aebab ));
|
||
};_bcagg .Set ("\u0052\u0061\u006eg\u0065",_gedaa );if _bbbcg ._eabdc ==nil &&_bbbcg .Program !=nil {_bbbcg ._eabdc =[]byte (_bbbcg .Program .String ());};_bcagg .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_bbbcg ._eabdc ))));
|
||
_eabag .Stream =_bbbcg ._eabdc ;_eabag .PdfObjectDictionary =_bcagg ;return _eabag ;};
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_fbab *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_cabe ,_cdff :=color .(*PdfColorCalRGB );if !_cdff {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cebeg :=_cabe .A ();_dabd :=_cabe .B ();_eadb :=_cabe .C ();X :=_fbab .Matrix [0]*_ag .Pow (_cebeg ,_fbab .Gamma [0])+_fbab .Matrix [3]*_ag .Pow (_dabd ,_fbab .Gamma [1])+_fbab .Matrix [6]*_ag .Pow (_eadb ,_fbab .Gamma [2]);
|
||
Y :=_fbab .Matrix [1]*_ag .Pow (_cebeg ,_fbab .Gamma [0])+_fbab .Matrix [4]*_ag .Pow (_dabd ,_fbab .Gamma [1])+_fbab .Matrix [7]*_ag .Pow (_eadb ,_fbab .Gamma [2]);Z :=_fbab .Matrix [2]*_ag .Pow (_cebeg ,_fbab .Gamma [0])+_fbab .Matrix [5]*_ag .Pow (_dabd ,_fbab .Gamma [1])+_fbab .Matrix [8]*_ag .Pow (_eadb ,_fbab .Gamma [2]);
|
||
_dcb :=3.240479*X +-1.537150*Y +-0.498535*Z ;_edfe :=-0.969256*X +1.875992*Y +0.041556*Z ;_edge :=0.055648*X +-0.204043*Y +1.057311*Z ;_dcb =_ag .Min (_ag .Max (_dcb ,0),1.0);_edfe =_ag .Min (_ag .Max (_edfe ,0),1.0);_edge =_ag .Min (_ag .Max (_edge ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_dcb ,_edfe ,_edge ),nil ;};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_ddfbd *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_gbdg :=NewPdfOutlineItem ();_gbdg .Title =_ae .MakeEncodedString (_ddfbd .Title ,true );_gbdg .Dest =_ddfbd .Dest .ToPdfObject ();var _fbgac []*PdfOutlineItem ;var _dfeee int64 ;var _fege *PdfOutlineItem ;
|
||
for _ ,_cgegf :=range _ddfbd .Entries {_dbbge ,_fbbbab :=_cgegf .ToPdfOutlineItem ();_dbbge .Parent =&_gbdg .PdfOutlineTreeNode ;if _fege !=nil {_fege .Next =&_dbbge .PdfOutlineTreeNode ;_dbbge .Prev =&_fege .PdfOutlineTreeNode ;};_fbgac =append (_fbgac ,_dbbge );
|
||
_dfeee +=_fbbbab ;_fege =_dbbge ;};_edff :=len (_fbgac );_dfeee +=int64 (_edff );if _edff > 0{_gbdg .First =&_fbgac [0].PdfOutlineTreeNode ;_gbdg .Last =&_fbgac [_edff -1].PdfOutlineTreeNode ;_gbdg .Count =&_dfeee ;};return _gbdg ,_dfeee ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_bfcf *PdfColorCalGray )ToInteger (bits int )uint32 {_gffab :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_gffab *_bfcf .Val ());};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgb *PdfAnnotationProjection )ToPdfObject ()_ae .PdfObject {_bgb .PdfAnnotation .ToPdfObject ();_dag :=_bgb ._gcgf ;_dcae :=_dag .PdfObject .(*_ae .PdfObjectDictionary );_bgb .PdfAnnotationMarkup .appendToPdfDictionary (_dcae );return _dag ;};
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_aageb PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _aageb ._dabg .getFontDescriptor (),nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egf *PdfActionThread )ToPdfObject ()_ae .PdfObject {_egf .PdfAction .ToPdfObject ();_add :=_egf ._cbe ;_bce :=_add .PdfObject .(*_ae .PdfObjectDictionary );_bce .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeThread )));if _egf .F !=nil {_bce .Set ("\u0046",_egf .F .ToPdfObject ());
|
||
};_bce .SetIfNotNil ("\u0044",_egf .D );_bce .SetIfNotNil ("\u0042",_egf .B );return _add ;};func (_ceafd SignatureValidationResult )String ()string {var _bcaabc _aa .Buffer ;_bcaabc .WriteString (_f .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_ceafd .Name ));
|
||
if _ceafd .Date ._edbbd > 0{_bcaabc .WriteString (_f .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_ceafd .Date .ToGoTime ().String ()));}else {_bcaabc .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_ceafd .Reason )> 0{_bcaabc .WriteString (_f .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ceafd .Reason ));}else {_bcaabc .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");
|
||
};if len (_ceafd .Location )> 0{_bcaabc .WriteString (_f .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ceafd .Location ));}else {_bcaabc .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");
|
||
};if len (_ceafd .ContactInfo )> 0{_bcaabc .WriteString (_f .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_ceafd .ContactInfo ));}else {_bcaabc .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");
|
||
};_bcaabc .WriteString (_f .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_ceafd .Fields )));if _ceafd .IsSigned {_bcaabc .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 {_bcaabc .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");};if _ceafd .IsVerified {_bcaabc .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 {_bcaabc .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 _ceafd .IsTrusted {_bcaabc .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 {_bcaabc .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 !_ceafd .GeneralizedTime .IsZero (){_bcaabc .WriteString (_f .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_ceafd .GeneralizedTime .String ()));
|
||
};if _ceafd .DiffResults !=nil {_bcaabc .WriteString (_f .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_ceafd .DiffResults .IsPermitted ()));if len (_ceafd .DiffResults .Warnings )> 0{_bcaabc .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");
|
||
for _ ,_bcfad :=range _ceafd .DiffResults .Warnings {_bcaabc .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_bcfad ));};};if len (_ceafd .DiffResults .Errors )> 0{_bcaabc .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");
|
||
for _ ,_eaaa :=range _ceafd .DiffResults .Errors {_bcaabc .WriteString (_f .Sprintf ("\u0009\u0025\u0073\u000a",_eaaa ));};};};return _bcaabc .String ();};
|
||
|
||
// 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 (_fdfcb *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_ddfbb :=_fdfcb .GetContentStreamObjs ();wrapContents =wrapContents &&len (_ddfbb )> 0;_ddea :=_ae .NewFlateEncoder ();_gcbag :=_ae .MakeArray ();if wrapContents {_dedg ,_caec :=_ae .MakeStream ([]byte ("\u0071\u000a"),_ddea );
|
||
if _caec !=nil {return _caec ;};_gcbag .Append (_dedg );};_gcbag .Append (_ddfbb ...);if wrapContents {_decfc ,_dffgg :=_ae .MakeStream ([]byte ("\u000a\u0051\u000a"),_ddea );if _dffgg !=nil {return _dffgg ;};_gcbag .Append (_decfc );};_ccaec ,_ggbg :=_ae .MakeStream (cs ,_ddea );
|
||
if _ggbg !=nil {return _ggbg ;};_gcbag .Append (_ccaec );_fdfcb .Contents =_gcbag ;return 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 ;_bbba []byte ;_fdae []float64 ;};
|
||
|
||
// 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 []*_ae .PdfObjectStream ;OCSP []*_ae .PdfObjectStream ;CRL []*_ae .PdfObjectStream ;TU *_ae .PdfObjectString ;TS *_ae .PdfObjectString ;};
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _ae .PdfObject ;};
|
||
|
||
// PdfSignatureReference represents a PDF signature reference dictionary and is used for signing via form signature fields.
|
||
// (Section 12.8.1, Table 253 - Entries in a signature reference dictionary p. 469 in PDF32000_2008).
|
||
type PdfSignatureReference struct{_geecc *_ae .PdfObjectDictionary ;Type *_ae .PdfObjectName ;TransformMethod *_ae .PdfObjectName ;TransformParams _ae .PdfObject ;Data _ae .PdfObject ;DigestMethod *_ae .PdfObjectName ;};func (_aage *PdfReader )newPdfAnnotationStampFromDict (_fggb *_ae .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_fcg :=PdfAnnotationStamp {};
|
||
_aded ,_cff :=_aage .newPdfAnnotationMarkupFromDict (_fggb );if _cff !=nil {return nil ,_cff ;};_fcg .PdfAnnotationMarkup =_aded ;_fcg .Name =_fggb .Get ("\u004e\u0061\u006d\u0065");return &_fcg ,nil ;};
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_becg :=NewPdfAnnotation ();_fbf :=&PdfAnnotationFreeText {};_fbf .PdfAnnotation =_becg ;_fbf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_becg .SetContext (_fbf );return _fbf ;};func (_defg *PdfReader )newPdfSignatureReferenceFromDict (_ddfdb *_ae .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _ggec ,_bebfd :=_defg ._gdbcb .GetModelFromPrimitive (_ddfdb ).(*PdfSignatureReference );
|
||
_bebfd {return _ggec ,nil ;};_eaefd :=&PdfSignatureReference {_geecc :_ddfdb ,Data :_ddfdb .Get ("\u0044\u0061\u0074\u0061")};var _dbebe bool ;_eaefd .Type ,_ =_ae .GetName (_ddfdb .Get ("\u0054\u0079\u0070\u0065"));_eaefd .TransformMethod ,_dbebe =_ae .GetName (_ddfdb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
if !_dbebe {_ac .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 ;};_eaefd .TransformParams ,_ =_ae .GetDict (_ddfdb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_eaefd .DigestMethod ,_ =_ae .GetName (_ddfdb .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
return _eaefd ,nil ;};func _dbcg (_abfb *_ae .PdfObjectDictionary )(*PdfShadingType5 ,error ){_fbcaa :=PdfShadingType5 {};_dcefa :=_abfb .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _dcefa ==nil {_ac .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 ;};_aegd ,_gafda :=_dcefa .(*_ae .PdfObjectInteger );if !_gafda {_ac .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",_dcefa );
|
||
return nil ,_ae .ErrTypeError ;};_fbcaa .BitsPerCoordinate =_aegd ;_dcefa =_abfb .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dcefa ==nil {_ac .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 ;};_aegd ,_gafda =_dcefa .(*_ae .PdfObjectInteger );if !_gafda {_ac .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",_dcefa );
|
||
return nil ,_ae .ErrTypeError ;};_fbcaa .BitsPerComponent =_aegd ;_dcefa =_abfb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _dcefa ==nil {_ac .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 ;};_aegd ,_gafda =_dcefa .(*_ae .PdfObjectInteger );if !_gafda {_ac .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",_dcefa );
|
||
return nil ,_ae .ErrTypeError ;};_fbcaa .VerticesPerRow =_aegd ;_dcefa =_abfb .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dcefa ==nil {_ac .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 ;};_edbc ,_gafda :=_dcefa .(*_ae .PdfObjectArray );if !_gafda {_ac .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",_dcefa );
|
||
return nil ,_ae .ErrTypeError ;};_fbcaa .Decode =_edbc ;if _acgec :=_abfb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_acgec !=nil {_fbcaa .Function =[]PdfFunction {};if _cdac ,_agbg :=_acgec .(*_ae .PdfObjectArray );_agbg {for _ ,_ffefc :=range _cdac .Elements (){_bcdbe ,_cgeac :=_gdbef (_ffefc );
|
||
if _cgeac !=nil {_ac .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",_cgeac );return nil ,_cgeac ;};_fbcaa .Function =append (_fbcaa .Function ,_bcdbe );
|
||
};}else {_ebedc ,_cdcgf :=_gdbef (_acgec );if _cdcgf !=nil {_ac .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",_cdcgf );return nil ,_cdcgf ;
|
||
};_fbcaa .Function =append (_fbcaa .Function ,_ebedc );};};return &_fbcaa ,nil ;};func _eaebe (_gfbe *XObjectForm )(*PdfRectangle ,error ){if _gffae ,_ggce :=_gfbe .BBox .(*_ae .PdfObjectArray );_ggce {_ebbdd ,_dabfe :=NewPdfRectangle (*_gffae );if _dabfe !=nil {return nil ,_dabfe ;
|
||
};if _dfgg ,_edaga :=_gfbe .Matrix .(*_ae .PdfObjectArray );_edaga {_gbfb ,_dbbe :=_dfgg .ToFloat64Array ();if _dbbe !=nil {return nil ,_dbbe ;};_eeade :=_ecc .IdentityMatrix ();if len (_gbfb )==6{_eeade =_ecc .NewMatrix (_gbfb [0],_gbfb [1],_gbfb [2],_gbfb [3],_gbfb [4],_gbfb [5]);
|
||
};_ebbdd .Transform (_eeade );return _ebbdd ,nil ;};};return nil ,_db .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");};
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_gfgd *PdfColorDeviceRGB )G ()float64 {return _gfgd [1]};
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;func (_dceeg *pdfFontSimple )addEncoding ()error {var (_fgedf string ;_cdegg map[_bgg .CharCode ]_bgg .GlyphName ;_ddfgd _bgg .SimpleEncoder ;);if _dceeg .Encoder ()!=nil {_cgeg ,_eafgaf :=_dceeg .Encoder ().(_bgg .SimpleEncoder );
|
||
if _eafgaf &&_cgeg !=nil {_fgedf =_cgeg .BaseName ();};};if _dceeg .Encoding !=nil {_ccgd ,_ffaac ,_gbcec :=_dceeg .getFontEncoding ();if _gbcec !=nil {_ac .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",_dceeg ._cedb ,_dceeg ._adce ,_dceeg .Encoding ,_dceeg .Encoding ,_gbcec );
|
||
return _gbcec ;};if _ccgd !=""{_fgedf =_ccgd ;};_cdegg =_ffaac ;_ddfgd ,_gbcec =_bgg .NewSimpleTextEncoder (_fgedf ,_cdegg );if _gbcec !=nil {return _gbcec ;};};if _ddfgd ==nil {_baag :=_dceeg ._cafdb ;if _baag !=nil {switch _dceeg ._adce {case "\u0054\u0079\u0070e\u0031":if _baag .fontFile !=nil &&_baag .fontFile ._dbfd !=nil {_ac .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_ddfgd =_baag .fontFile ._dbfd ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _baag ._aebfg !=nil {_ac .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_dbgff ,_facb :=_baag ._aebfg .MakeEncoder ();
|
||
if _facb ==nil {_ddfgd =_dbgff ;};};};};};if _ddfgd !=nil {if _cdegg !=nil {_ac .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_cdegg ,_dceeg .baseFields ());
|
||
_ddfgd =_bgg .ApplyDifferences (_ddfgd ,_cdegg );};_dceeg .SetEncoder (_ddfgd );};return nil ;};func (_aabg *Image )samplesAddPadding (_dcacd []uint32 )[]uint32 {_cbeaa :=_afc .BytesPerLine (int (_aabg .Width ),int (_aabg .BitsPerComponent ),_aabg .ColorComponents )*(8/int (_aabg .BitsPerComponent ));
|
||
_cadb :=_cbeaa *int (_aabg .Height );if len (_dcacd )==_cadb {return _dcacd ;};_ddbfg :=make ([]uint32 ,_cadb );_defce :=int (_aabg .Width )*_aabg .ColorComponents ;for _cfge :=0;_cfge < int (_aabg .Height );_cfge ++{_eaac :=_cfge *int (_aabg .Width );
|
||
_bgcbc :=_cfge *_cbeaa ;for _ceac :=0;_ceac < _defce ;_ceac ++{_ddbfg [_bgcbc +_ceac ]=_dcacd [_eaac +_ceac ];};};return _ddbfg ;};func _eaage (_ffbcg *_ae .PdfObjectStream )(*PdfFunctionType0 ,error ){_ecfg :=&PdfFunctionType0 {};_ecfg ._aegae =_ffbcg ;
|
||
_adfd :=_ffbcg .PdfObjectDictionary ;_ecca ,_dbfa :=_ae .TraceToDirectObject (_adfd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );if !_dbfa {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_db .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 _ecca .Len ()< 0||_ecca .Len ()%2!=0{_ac .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_ecfg .NumInputs =_ecca .Len ()/2;_aaegaf ,_dagdb :=_ecca .ToFloat64Array ();if _dagdb !=nil {return nil ,_dagdb ;};_ecfg .Domain =_aaegaf ;
|
||
_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );if !_dbfa {_ac .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_db .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 _ecca .Len ()< 0||_ecca .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_ecfg .NumOutputs =_ecca .Len ()/2;_aegeb ,_dagdb :=_ecca .ToFloat64Array ();if _dagdb !=nil {return nil ,_dagdb ;
|
||
};_ecfg .Range =_aegeb ;_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0053\u0069\u007a\u0065")).(*_ae .PdfObjectArray );if !_dbfa {_ac .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");return nil ,_db .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");
|
||
};_fafdg ,_dagdb :=_ecca .ToIntegerArray ();if _dagdb !=nil {return nil ,_dagdb ;};if len (_fafdg )!=_ecfg .NumInputs {_ac .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 ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecfg .Size =_fafdg ;_dedd ,_dbfa :=_ae .TraceToDirectObject (_adfd .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_ae .PdfObjectInteger );
|
||
if !_dbfa {_ac .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 ,_db .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 *_dedd !=1&&*_dedd !=2&&*_dedd !=4&&*_dedd !=8&&*_dedd !=12&&*_dedd !=16&&*_dedd !=24&&*_dedd !=32{_ac .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",*_dedd );
|
||
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecfg .BitsPerSample =int (*_dedd );_ecfg .Order =1;_aabbg ,_dbfa :=_ae .TraceToDirectObject (_adfd .Get ("\u004f\u0072\u0064e\u0072")).(*_ae .PdfObjectInteger );if _dbfa {if *_aabbg !=1&&*_aabbg !=3{_ac .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_aabbg );
|
||
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecfg .Order =int (*_aabbg );};_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ae .PdfObjectArray );if _dbfa {_daeea ,_gcceb :=_ecca .ToFloat64Array ();
|
||
if _gcceb !=nil {return nil ,_gcceb ;};_ecfg .Encode =_daeea ;};_ecca ,_dbfa =_ae .TraceToDirectObject (_adfd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_ae .PdfObjectArray );if _dbfa {_efgcc ,_dgfgb :=_ecca .ToFloat64Array ();if _dgfgb !=nil {return nil ,_dgfgb ;
|
||
};_ecfg .Decode =_efgcc ;};_aeecc ,_dagdb :=_ae .DecodeStream (_ffbcg );if _dagdb !=nil {return nil ,_dagdb ;};_ecfg ._ecefb =_aeecc ;return _ecfg ,nil ;};
|
||
|
||
// StringToCharcodeBytes maps the provided string runes to charcode bytes and
|
||
// it returns the resulting slice of bytes, along with the number of runes
|
||
// which could not be converted. If the number of misses is 0, all string runes
|
||
// were successfully converted.
|
||
func (_ebfge *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _ebfge .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// Items returns all children outline items.
|
||
func (_afeb *OutlineItem )Items ()[]*OutlineItem {return _afeb .Entries };
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _ae .PdfObject ;Name _ae .PdfObject ;State _ae .PdfObject ;StateModel _ae .PdfObject ;};
|
||
|
||
// ReaderOpts defines options for creating PdfReader instances.
|
||
type ReaderOpts struct{
|
||
|
||
// Password password of the PDF file encryption.
|
||
// Default: empty ("").
|
||
Password string ;
|
||
|
||
// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
|
||
// Default: true.
|
||
LazyLoad bool ;
|
||
|
||
// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
|
||
ComplianceMode bool ;};
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_eade *PdfColorLab )L ()float64 {return _eade [0]};func (_bgf *PdfReader )newPdfActionGotoEFromDict (_fafa *_ae .PdfObjectDictionary )(*PdfActionGoToE ,error ){_dae ,_ceba :=_ceb (_fafa .Get ("\u0046"));if _ceba !=nil {return nil ,_ceba ;};return &PdfActionGoToE {D :_fafa .Get ("\u0044"),NewWindow :_fafa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_fafa .Get ("\u0054"),F :_dae },nil ;
|
||
};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_ggd PdfModel ;Rect _ae .PdfObject ;Contents _ae .PdfObject ;P _ae .PdfObject ;NM _ae .PdfObject ;M _ae .PdfObject ;F _ae .PdfObject ;AP _ae .PdfObject ;AS _ae .PdfObject ;Border _ae .PdfObject ;C _ae .PdfObject ;StructParent _ae .PdfObject ;
|
||
OC _ae .PdfObject ;_gcgf *_ae .PdfIndirectObject ;};
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_bcfba *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_cceag ,_bgcbg :=_bcfba .GetMediaBox ();if _bgcbg !=nil {return _bgcbg ;};_fcbeb :=_cceag .Urx -_cceag .Llx ;_fdcaa :=_cceag .Ury -_cceag .Lly ;_ggfdd :=float64 (*ximg .Width );
|
||
_beecg :=(_fcbeb -_ggfdd )/2;if opt .FitToWidth {_ggfdd =_fcbeb ;_beecg =0;};_ebdaa :=_fdcaa ;_agead :=float64 (0);if opt .PreserveAspectRatio {_ebdaa =_ggfdd *float64 (*ximg .Height )/float64 (*ximg .Width );_agead =(_fdcaa -_ebdaa )/2;};if _bcfba .Resources ==nil {_bcfba .Resources =NewPdfPageResources ();
|
||
};_faeac :=0;_efeb :=_ae .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_faeac ));for _bcfba .Resources .HasXObjectByName (_efeb ){_faeac ++;_efeb =_ae .PdfObjectName (_f .Sprintf ("\u0049\u006d\u0077%\u0064",_faeac ));};_bgcbg =_bcfba .AddImageResource (_efeb ,ximg );
|
||
if _bgcbg !=nil {return _bgcbg ;};_faeac =0;_cafdg :=_ae .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_faeac ));for _bcfba .HasExtGState (_cafdg ){_faeac ++;_cafdg =_ae .PdfObjectName (_f .Sprintf ("\u0047\u0053\u0025\u0064",_faeac ));};_ccada :=_ae .MakeDict ();
|
||
_ccada .Set ("\u0042\u004d",_ae .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_ccada .Set ("\u0043\u0041",_ae .MakeFloat (opt .Alpha ));_ccada .Set ("\u0063\u0061",_ae .MakeFloat (opt .Alpha ));_bgcbg =_bcfba .AddExtGState (_cafdg ,_ccada );if _bgcbg !=nil {return _bgcbg ;
|
||
};_bgebd :=_f .Sprintf ("\u0071\u000a"+"\u002f%\u0073\u0020\u0067\u0073\u000a"+"%\u002e\u0030\u0066\u0020\u0030\u00200\u0020\u0025\u002e\u0030\u0066\u0020\u0025\u002e\u0034f\u0020\u0025\u002e4\u0066 \u0063\u006d\u000a"+"\u002f%\u0073\u0020\u0044\u006f\u000a"+"\u0051",_cafdg ,_ggfdd ,_ebdaa ,_beecg ,_agead ,_efeb );
|
||
_bcfba .AddContentStreamByString (_bgebd );return nil ;};func (_dbbfea *PdfWriter )setWriter (_efgdg _gdc .Writer ){_dbbfea ._eeegee =_dbbfea ._addeb ;_dbbfea ._dfgcc =_c .NewWriter (_efgdg );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_afec *PdfAnnotationPopup )ToPdfObject ()_ae .PdfObject {_afec .PdfAnnotation .ToPdfObject ();_cgba :=_afec ._gcgf ;_fdac :=_cgba .PdfObject .(*_ae .PdfObjectDictionary );_fdac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_fdac .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_afec .Parent );_fdac .SetIfNotNil ("\u004f\u0070\u0065\u006e",_afec .Open );return _cgba ;};
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _ae .PdfObject ;PreserveRB _ae .PdfObject ;};func (_fbg *PdfReader )newPdfAnnotationWidgetFromDict (_cffb *_ae .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_gdab :=PdfAnnotationWidget {};_gdab .H =_cffb .Get ("\u0048");
|
||
_gdab .MK =_cffb .Get ("\u004d\u004b");_gdab .A =_cffb .Get ("\u0041");_gdab .AA =_cffb .Get ("\u0041\u0041");_gdab .BS =_cffb .Get ("\u0042\u0053");_gdab .Parent =_cffb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");return &_gdab ,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 (_gdegd *PdfPageResources )GetFontByName (keyName _ae .PdfObjectName )(_ae .PdfObject ,bool ){if _gdegd .Font ==nil {return nil ,false ;};_dggfa ,_gdfd :=_ae .TraceToDirectObject (_gdegd .Font ).(*_ae .PdfObjectDictionary );if !_gdfd {_ac .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",_ae .TraceToDirectObject (_gdegd .Font ));
|
||
return nil ,false ;};if _gdegf :=_dggfa .Get (keyName );_gdegf !=nil {return _gdegf ,true ;};return nil ,false ;};
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_eeff *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_gbcgd :=_ba .NewReader (img .getBase ());_cegbc :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_fae :=_ba .NewWriter (_cegbc );
|
||
_feae :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_fggag :=make ([]uint32 ,3);var (_cgec uint32 ;ANorm ,X ,Y ,Z ,_ddfga ,_dfgd ,_afbc float64 ;_feee error ;);for {_cgec ,_feee =_gbcgd .ReadSample ();if _feee ==_gdc .EOF {break ;}else if _feee !=nil {return img ,_feee ;
|
||
};ANorm =float64 (_cgec )/_feae ;X =_eeff .WhitePoint [0]*_ag .Pow (ANorm ,_eeff .Gamma );Y =_eeff .WhitePoint [1]*_ag .Pow (ANorm ,_eeff .Gamma );Z =_eeff .WhitePoint [2]*_ag .Pow (ANorm ,_eeff .Gamma );_ddfga =3.240479*X +-1.537150*Y +-0.498535*Z ;_dfgd =-0.969256*X +1.875992*Y +0.041556*Z ;
|
||
_afbc =0.055648*X +-0.204043*Y +1.057311*Z ;_ddfga =_ag .Min (_ag .Max (_ddfga ,0),1.0);_dfgd =_ag .Min (_ag .Max (_dfgd ,0),1.0);_afbc =_ag .Min (_ag .Max (_afbc ,0),1.0);_fggag [0]=uint32 (_ddfga *_feae );_fggag [1]=uint32 (_dfgd *_feae );_fggag [2]=uint32 (_afbc *_feae );
|
||
if _feee =_fae .WriteSamples (_fggag );_feee !=nil {return img ,_feee ;};};return _feagd (&_cegbc ),nil ;};func _fdgbg (_bgdef _ae .PdfObject )[]*_ae .PdfObjectStream {if _bgdef ==nil {return nil ;};_ddfff ,_cbgdd :=_ae .GetArray (_bgdef );if !_cbgdd ||_ddfff .Len ()==0{return nil ;
|
||
};_gaeb :=make ([]*_ae .PdfObjectStream ,0,_ddfff .Len ());for _ ,_fffge :=range _ddfff .Elements (){if _ffece ,_dccbb :=_ae .GetStream (_fffge );_dccbb {_gaeb =append (_gaeb ,_ffece );};};return _gaeb ;};
|
||
|
||
// 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 (_ceffff DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
|
||
|
||
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
|
||
func (_bcfgf *PdfPageResources )HasPatternByName (keyName _ae .PdfObjectName )bool {_ ,_acbg :=_bcfgf .GetPatternByName (keyName );return _acbg ;};type fontFile struct{_deef string ;_aadg string ;_dbfd _bgg .SimpleEncoder ;};func _bfdcd (_bffg _ae .PdfObject )(*PdfColorspaceCalGray ,error ){_aac :=NewPdfColorspaceCalGray ();
|
||
if _cbbee ,_ccba :=_bffg .(*_ae .PdfIndirectObject );_ccba {_aac ._befdd =_cbbee ;};_bffg =_ae .TraceToDirectObject (_bffg );_eeea ,_eebb :=_bffg .(*_ae .PdfObjectArray );if !_eebb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _eeea .Len ()!=2{return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0043\u0061\u006cG\u0072\u0061\u0079\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_bffg =_ae .TraceToDirectObject (_eeea .Get (0));_cfdb ,_eebb :=_bffg .(*_ae .PdfObjectName );
|
||
if !_eebb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061\u0079\u0020\u006e\u0061m\u0065\u0020\u006e\u006f\u0074\u0020\u0061 \u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};if *_cfdb !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_f .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");
|
||
};_bffg =_ae .TraceToDirectObject (_eeea .Get (1));_fead ,_eebb :=_bffg .(*_ae .PdfObjectDictionary );if !_eebb {return nil ,_f .Errorf ("\u0043\u0061lG\u0072\u0061\u0079 \u0064\u0069\u0063\u0074 no\u0074 a\u0020\u0044\u0069\u0063\u0074\u0069\u006fna\u0072\u0079\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};_bffg =_fead .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_bffg =_ae .TraceToDirectObject (_bffg );_abcg ,_eebb :=_bffg .(*_ae .PdfObjectArray );if !_eebb {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020W\u0068\u0069\u0074e\u0050o\u0069\u006e\u0074");
|
||
};if _abcg .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069t\u0065\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_fdebc ,_dfgec :=_abcg .GetAsFloat64Slice ();
|
||
if _dfgec !=nil {return nil ,_dfgec ;};_aac .WhitePoint =_fdebc ;_bffg =_fead .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _bffg !=nil {_bffg =_ae .TraceToDirectObject (_bffg );_fcaf ,_ecce :=_bffg .(*_ae .PdfObjectArray );if !_ecce {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020B\u006c\u0061\u0063k\u0050o\u0069\u006e\u0074");
|
||
};if _fcaf .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0047\u0072\u0061y\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061c\u006b\u0050\u006f\u0069\u006e\u0074\u0020a\u0072\u0072\u0061\u0079");};_degde ,_dddb :=_fcaf .GetAsFloat64Slice ();
|
||
if _dddb !=nil {return nil ,_dddb ;};_aac .BlackPoint =_degde ;};_bffg =_fead .Get ("\u0047\u0061\u006dm\u0061");if _bffg !=nil {_bffg =_ae .TraceToDirectObject (_bffg );_baeg ,_ccgg :=_ae .GetNumberAsFloat (_bffg );if _ccgg !=nil {return nil ,_f .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
|
||
};_aac .Gamma =_baeg ;};return _aac ,nil ;};
|
||
|
||
// EnableAll LTV enables all signatures in the PDF document.
|
||
// The signing certificate chain is extracted from each signature dictionary.
|
||
// Optionally, additional certificates can be specified through the
|
||
// `extraCerts` parameter. The LTV client attempts to build the certificate
|
||
// chain up to a trusted root by downloading any missing certificates.
|
||
func (_bdadf *LTV )EnableAll (extraCerts []*_fc .Certificate )error {_ecfge :=_bdadf ._gbcge ._afad .AcroForm ;for _ ,_bgded :=range _ecfge .AllFields (){_caaef ,_ :=_bgded .GetContext ().(*PdfFieldSignature );if _caaef ==nil {continue ;};_feafg :=_caaef .V ;
|
||
if _fgbgg :=_bdadf .validateSig (_feafg );_fgbgg !=nil {_ac .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",_fgbgg );
|
||
};if _dbaba :=_bdadf .Enable (_feafg ,extraCerts );_dbaba !=nil {return _dbaba ;};};return nil ;};func _acbdb (_agda *_ae .PdfObjectDictionary )(*PdfShadingType1 ,error ){_fffdc :=PdfShadingType1 {};if _fefad :=_agda .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");
|
||
_fefad !=nil {_fefad =_ae .TraceToDirectObject (_fefad );_aeaab ,_cbfed :=_fefad .(*_ae .PdfObjectArray );if !_cbfed {_ac .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",_fefad );
|
||
return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fffdc .Domain =_aeaab ;};if _fbaac :=_agda .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fbaac !=nil {_fbaac =_ae .TraceToDirectObject (_fbaac );
|
||
_dfeef ,_afbee :=_fbaac .(*_ae .PdfObjectArray );if !_afbee {_ac .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",_fbaac );return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_fffdc .Matrix =_dfeef ;};_bdfa :=_agda .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _bdfa ==nil {_ac .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 ;};_fffdc .Function =[]PdfFunction {};if _gfgg ,_ggag :=_bdfa .(*_ae .PdfObjectArray );_ggag {for _ ,_gdebb :=range _gfgg .Elements (){_cfacd ,_bbfc :=_gdbef (_gdebb );if _bbfc !=nil {_ac .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",_bbfc );
|
||
return nil ,_bbfc ;};_fffdc .Function =append (_fffdc .Function ,_cfacd );};}else {_dgaca ,_acfcf :=_gdbef (_bdfa );if _acfcf !=nil {_ac .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",_acfcf );
|
||
return nil ,_acfcf ;};_fffdc .Function =append (_fffdc .Function ,_dgaca );};return &_fffdc ,nil ;};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_ffge :=NewPdfAnnotation ();_fca :=&PdfAnnotationPrinterMark {};_fca .PdfAnnotation =_ffge ;_ffge .SetContext (_fca );return _fca ;};func (_fff *PdfReader )newPdfActionSetOCGStateFromDict (_bcf *_ae .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_bcf .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_bcf .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_ffaa *_ae .PdfObjectDictionary ;_gbge *_ae .PdfIndirectObject ;};type pdfFont interface{_cb .Font ;
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_ae .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_fcbec *PdfColorspaceLab )GetNumComponents ()int {return 3};func _cefe (_bdeb _ae .PdfObject )(*PdfColorspaceICCBased ,error ){_efgcb :=&PdfColorspaceICCBased {};if _ebfd ,_cafa :=_bdeb .(*_ae .PdfIndirectObject );_cafa {_efgcb ._debg =_ebfd ;};_bdeb =_ae .TraceToDirectObject (_bdeb );
|
||
_fcdce ,_bbbc :=_bdeb .(*_ae .PdfObjectArray );if !_bbbc {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fcdce .Len ()!=2{return nil ,_f .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_bdeb =_ae .TraceToDirectObject (_fcdce .Get (0));_ebba ,_bbbc :=_bdeb .(*_ae .PdfObjectName );if !_bbbc {return nil ,_f .Errorf ("\u0049\u0043\u0043B\u0061\u0073\u0065\u0064 \u006e\u0061\u006d\u0065\u0020\u006e\u006ft\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};if *_ebba !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_f .Errorf ("\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0049\u0043\u0043\u0042a\u0073\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073p\u0061\u0063\u0065");};_bdeb =_fcdce .Get (1);
|
||
_ceag ,_bbbc :=_ae .GetStream (_bdeb );if !_bbbc {_ac .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",_bdeb );
|
||
return nil ,_f .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_cdgc :=_ceag .PdfObjectDictionary ;_bfbba ,_bbbc :=_cdgc .Get ("\u004e").(*_ae .PdfObjectInteger );
|
||
if !_bbbc {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u006d\u0069\u0073\u0073\u0069n\u0067\u0020\u004e\u0020\u0066\u0072\u006fm\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0064\u0069c\u0074");};if *_bfbba !=1&&*_bfbba !=3&&*_bfbba !=4{return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061s\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065 \u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u006e\u006f\u0074\u0020\u0031\u002c\u0033\u002c\u0034\u0029");
|
||
};_efgcb .N =int (*_bfbba );if _dcbe :=_cdgc .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_dcbe !=nil {_fabc ,_aaega :=NewPdfColorspaceFromPdfObject (_dcbe );if _aaega !=nil {return nil ,_aaega ;};_efgcb .Alternate =_fabc ;};if _dabdg :=_cdgc .Get ("\u0052\u0061\u006eg\u0065");
|
||
_dabdg !=nil {_dabdg =_ae .TraceToDirectObject (_dabdg );_cggdb ,_cbfdd :=_dabdg .(*_ae .PdfObjectArray );if !_cbfdd {return nil ,_f .Errorf ("I\u0043\u0043\u0042\u0061\u0073\u0065d\u0020\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0061\u006e \u0061r\u0072\u0061\u0079");
|
||
};if _cggdb .Len ()!=2*_efgcb .N {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u0052\u0061\u006e\u0067e\u0020\u0077\u0072\u006f\u006e\u0067 \u006e\u0075\u006d\u0062\u0065\u0072\u0020\u006f\u0066\u0020\u0065\u006c\u0065m\u0065\u006e\u0074\u0073");
|
||
};_eabfc ,_bbga :=_cggdb .GetAsFloat64Slice ();if _bbga !=nil {return nil ,_bbga ;};_efgcb .Range =_eabfc ;}else {_efgcb .Range =make ([]float64 ,2*_efgcb .N );for _bdff :=0;_bdff < _efgcb .N ;_bdff ++{_efgcb .Range [2*_bdff ]=0.0;_efgcb .Range [2*_bdff +1]=1.0;
|
||
};};if _egca :=_cdgc .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_egca !=nil {_gbbe ,_bcea :=_egca .(*_ae .PdfObjectStream );if !_bcea {return nil ,_f .Errorf ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020\u004de\u0074\u0061\u0064\u0061\u0074\u0061\u0020n\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0065\u0061\u006d");
|
||
};_efgcb .Metadata =_gbbe ;};_acgg ,_fegdf :=_ae .DecodeStream (_ceag );if _fegdf !=nil {return nil ,_fegdf ;};_efgcb .Data =_acgg ;_efgcb ._egefc =_ceag ;return _efgcb ,nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_gafed *Permissions )GetContainingPdfObject ()_ae .PdfObject {return _gafed ._gccec };
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_gagbf *PdfOutline )ToPdfObject ()_ae .PdfObject {_edce :=_gagbf ._fcge ;_ccdg :=_edce .PdfObject .(*_ae .PdfObjectDictionary );_ccdg .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _gagbf .First !=nil {_ccdg .Set ("\u0046\u0069\u0072s\u0074",_gagbf .First .ToPdfObject ());
|
||
};if _gagbf .Last !=nil {_ccdg .Set ("\u004c\u0061\u0073\u0074",_gagbf .Last .GetContext ().GetContainingPdfObject ());};if _gagbf .Parent !=nil {_ccdg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gagbf .Parent .GetContext ().GetContainingPdfObject ());
|
||
};if _gagbf .Count !=nil {_ccdg .Set ("\u0043\u006f\u0075n\u0074",_ae .MakeInteger (*_gagbf .Count ));};return _edce ;};
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_dfge *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ac .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ac .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 );
|
||
_ac .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ac .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_bebeb ,_fbfde :=_afc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._bbba ,img ._fdae );if _fbfde !=nil {return Image {},_fbfde ;};_cagf ,_fbfde :=_afc .NRGBAConverter .Convert (_bebeb );
|
||
if _fbfde !=nil {return Image {},_fbfde ;};return _feagd (_cagf .Base ()),nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eecf *PdfAnnotationRedact )ToPdfObject ()_ae .PdfObject {_eecf .PdfAnnotation .ToPdfObject ();_fcdf :=_eecf ._gcgf ;_baff :=_fcdf .PdfObject .(*_ae .PdfObjectDictionary );_eecf .PdfAnnotationMarkup .appendToPdfDictionary (_baff );_baff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_baff .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eecf .QuadPoints );_baff .SetIfNotNil ("\u0049\u0043",_eecf .IC );_baff .SetIfNotNil ("\u0052\u004f",_eecf .RO );_baff .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_eecf .OverlayText );
|
||
_baff .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_eecf .Repeat );_baff .SetIfNotNil ("\u0044\u0041",_eecf .DA );_baff .SetIfNotNil ("\u0051",_eecf .Q );return _fcdf ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_egbe *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_egbe .Base .GetNumComponents ();_bbef :=int (vals [0])*N ;
|
||
if _bbef < 0||(_bbef +N -1)>=len (_egbe ._dfca ){_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bbef );return nil ,ErrColorOutOfRange ;};_ecbfa :=_egbe ._dfca [_bbef :_bbef +N ];
|
||
var _dbgde []float64 ;for _ ,_agga :=range _ecbfa {_dbgde =append (_dbgde ,float64 (_agga )/255.0);};_aggg ,_ceddf :=_egbe .Base .ColorFromFloats (_dbgde );if _ceddf !=nil {return nil ,_ceddf ;};return _aggg ,nil ;};func (_gbca *PdfReader )newPdfAnnotationInkFromDict (_aed *_ae .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_gef :=PdfAnnotationInk {};
|
||
_adag ,_dfde :=_gbca .newPdfAnnotationMarkupFromDict (_aed );if _dfde !=nil {return nil ,_dfde ;};_gef .PdfAnnotationMarkup =_adag ;_gef .InkList =_aed .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_gef .BS =_aed .Get ("\u0042\u0053");return &_gef ,nil ;
|
||
};
|
||
|
||
// GetDocMDPPermission returns the DocMDP level of the restrictions
|
||
func (_cgddc *PdfSignature )GetDocMDPPermission ()(_dbg .DocMDPPermission ,bool ){for _ ,_aeegdg :=range _cgddc .Reference .Elements (){if _cbeb ,_gbbdf :=_ae .GetDict (_aeegdg );_gbbdf {if _geebg ,_ceabc :=_ae .GetNameVal (_cbeb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
_ceabc &&_geebg =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _ddbdfc ,_aegdb :=_ae .GetDict (_cbeb .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_aegdb {if P ,_efeda :=_ae .GetIntVal (_ddbdfc .Get ("\u0050"));
|
||
_efeda {return _dbg .DocMDPPermission (P ),true ;};};};};};return 0,false ;};
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _ae .PdfObject ;MK _ae .PdfObject ;A _ae .PdfObject ;AA _ae .PdfObject ;};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_dddaa *PdfReader )GetIndirectObjectByNumber (number int )(_ae .PdfObject ,error ){_debgb ,_bfafb :=_dddaa ._bfcga .LookupByNumber (number );return _debgb ,_bfafb ;};
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_fcbg *PdfPage )AddExtGState (name _ae .PdfObjectName ,egs *_ae .PdfObjectDictionary )error {if _fcbg .Resources ==nil {_fcbg .Resources =NewPdfPageResources ();};if _fcbg .Resources .ExtGState ==nil {_fcbg .Resources .ExtGState =_ae .MakeDict ();
|
||
};_bbggc ,_gfbee :=_ae .TraceToDirectObject (_fcbg .Resources .ExtGState ).(*_ae .PdfObjectDictionary );if !_gfbee {_ac .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",_ae .TraceToDirectObject (_fcbg .Resources .ExtGState ));
|
||
return _db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbggc .Set (name ,egs );return nil ;};func (_cebce *PdfWriter )setCatalogVersion (){_cebce ._caddd .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_ae .MakeName (_f .Sprintf ("\u0025\u0064\u002e%\u0064",_cebce ._faffe .Major ,_cebce ._faffe .Minor )));
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_acec *PdfAnnotationHighlight )ToPdfObject ()_ae .PdfObject {_acec .PdfAnnotation .ToPdfObject ();_ffbb :=_acec ._gcgf ;_gecg :=_ffbb .PdfObject .(*_ae .PdfObjectDictionary );_acec .PdfAnnotationMarkup .appendToPdfDictionary (_gecg );_gecg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_gecg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_acec .QuadPoints );return _ffbb ;};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_bcfed *PdfReader )GetEncryptionMethod ()string {_aade :=_bcfed ._bfcga .GetCrypter ();return _aade .String ();};
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_begfg *PdfColorCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _ae .PdfObject ;};
|
||
|
||
// 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 (_eccb *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ccdee :=vals [0];if _ccdee < 0.0||_ccdee > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ccdee );
|
||
return nil ,ErrColorOutOfRange ;};_dfce :=NewPdfColorCalGray (_ccdee );return _dfce ,nil ;};var _dbec =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":{}};
|
||
func (_eebee *PdfReader )loadPerms ()(*Permissions ,error ){if _ffddb :=_eebee ._aedf .Get ("\u0050\u0065\u0072m\u0073");_ffddb !=nil {if _fbfcf ,_bbadf :=_ae .GetDict (_ffddb );_bbadf {_gcfgf :=_fbfcf .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");if _gcfgf ==nil {return nil ,nil ;
|
||
};if _abab ,_abeaec :=_ae .GetIndirect (_gcfgf );_abeaec {_bggcf ,_ggdfc :=_eebee .newPdfSignatureFromIndirect (_abab );if _ggdfc !=nil {return nil ,_ggdfc ;};return NewPermissions (_bggcf ),nil ;};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");
|
||
};return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");};return nil ,nil ;};
|
||
|
||
// 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 ;_ccfef *_ae .PdfIndirectObject ;};func (_bcagc *PdfReader )newPdfAnnotationCircleFromDict (_fad *_ae .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_dbf :=PdfAnnotationCircle {};
|
||
_aga ,_ebfbd :=_bcagc .newPdfAnnotationMarkupFromDict (_fad );if _ebfbd !=nil {return nil ,_ebfbd ;};_dbf .PdfAnnotationMarkup =_aga ;_dbf .BS =_fad .Get ("\u0042\u0053");_dbf .IC =_fad .Get ("\u0049\u0043");_dbf .BE =_fad .Get ("\u0042\u0045");_dbf .RD =_fad .Get ("\u0052\u0044");
|
||
return &_dbf ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_gddb *PdfOutline )GetContainingPdfObject ()_ae .PdfObject {return _gddb ._fcge };
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_dgda :=NewPdfAnnotation ();_fddc :=&PdfAnnotationLine {};_fddc .PdfAnnotation =_dgda ;_fddc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dgda .SetContext (_fddc );return _fddc ;};func (_cddbd *PdfSignature )extractChainFromCert ()([]*_fc .Certificate ,error ){var _dfcgd *_ae .PdfObjectArray ;
|
||
switch _fbbgbg :=_cddbd .Cert .(type ){case *_ae .PdfObjectString :_dfcgd =_ae .MakeArray (_fbbgbg );case *_ae .PdfObjectArray :_dfcgd =_fbbgbg ;default:return nil ,_f .Errorf ("\u0069n\u0076\u0061l\u0069\u0064\u0020s\u0069\u0067\u006e\u0061\u0074\u0075\u0072e\u0020\u0063\u0065\u0072\u0074\u0069f\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_fbbgbg );
|
||
};var _febff _aa .Buffer ;for _ ,_acagac :=range _dfcgd .Elements (){_faac ,_edggd :=_ae .GetString (_acagac );if !_edggd {return nil ,_f .Errorf ("\u0069\u006ev\u0061\u006c\u0069\u0064\u0020\u0063\u0065\u0072\u0074\u0069\u0066\u0069\u0063\u0061\u0074\u0065\u0020\u006f\u0062j\u0065\u0063\u0074\u0020\u0074\u0079p\u0065\u0020\u0069\u006e\u0020\u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0063\u0065r\u0074\u0069\u0066\u0069c\u0061\u0074\u0065\u0020\u0063h\u0061\u0069\u006e\u003a\u0020\u0025\u0054",_acagac );
|
||
};if _ ,_eagd :=_febff .Write (_faac .Bytes ());_eagd !=nil {return nil ,_eagd ;};};return _fc .ParseCertificates (_febff .Bytes ());};func (_abdgd *PdfWriter )writeOutlines ()error {if _abdgd ._dgfge ==nil {return nil ;};_ac .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_abdgd ._dgfge );
|
||
_fbgfg :=_abdgd ._dgfge .ToPdfObject ();_ac .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_fbgfg ,_fbgfg ,_fbgfg );_abdgd ._caddd .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_fbgfg );
|
||
_egfec :=_abdgd .addObjects (_fbgfg );if _egfec !=nil {return _egfec ;};return nil ;};func _bdggg (_abcf _ae .PdfObject )(*PdfColorspaceDeviceN ,error ){_bfab :=NewPdfColorspaceDeviceN ();if _cdbc ,_dbff :=_abcf .(*_ae .PdfIndirectObject );_dbff {_bfab ._efbgg =_cdbc ;
|
||
};_abcf =_ae .TraceToDirectObject (_abcf );_ggegg ,_cceea :=_abcf .(*_ae .PdfObjectArray );if !_cceea {return nil ,_f .Errorf ("\u0064\u0065\u0076\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062j\u0065\u0063\u0074");
|
||
};if _ggegg .Len ()!=4&&_ggegg .Len ()!=5{return nil ,_f .Errorf ("\u0064\u0065\u0076ic\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0049\u006ec\u006fr\u0072e\u0063t\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");};_abcf =_ggegg .Get (0);
|
||
_fbfcc ,_cceea :=_abcf .(*_ae .PdfObjectName );if !_cceea {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_fbfcc !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_f .Errorf ("\u0064\u0065v\u0069\u0063\u0065\u004e\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020na\u006d\u0065");};_abcf =_ggegg .Get (1);
|
||
_abcf =_ae .TraceToDirectObject (_abcf );_efce ,_cceea :=_abcf .(*_ae .PdfObjectArray );if !_cceea {return nil ,_f .Errorf ("\u0064\u0065\u0076i\u0063\u0065\u004e\u0020C\u0053\u003a\u0020\u0049\u006e\u0076\u0061l\u0069\u0064\u0020\u006e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_bfab .ColorantNames =_efce ;_abcf =_ggegg .Get (2);_gbbec ,_gbgc :=NewPdfColorspaceFromPdfObject (_abcf );if _gbgc !=nil {return nil ,_gbgc ;};_bfab .AlternateSpace =_gbbec ;_geffd ,_gbgc :=_gdbef (_ggegg .Get (3));if _gbgc !=nil {return nil ,_gbgc ;
|
||
};_bfab .TintTransform =_geffd ;if _ggegg .Len ()==5{_ceccg ,_cfad :=_adfg (_ggegg .Get (4));if _cfad !=nil {return nil ,_cfad ;};_bfab .Attributes =_ceccg ;};return _bfab ,nil ;};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_aacfc *_ae .PdfIndirectObject ;_efcgc *_ae .PdfIndirectObject ;_eaggg map[_ae .PdfObject ]struct{};_edbe []_ae .PdfObject ;_faecg map[_ae .PdfObject ]struct{};_begcc []*_ae .PdfIndirectObject ;_dgfge *PdfOutlineTreeNode ;_caddd *_ae .PdfObjectDictionary ;
|
||
_dgdac []_ae .PdfObject ;_cbffg *_ae .PdfIndirectObject ;_dfgcc *_c .Writer ;_eeegee int64 ;_fffcb error ;_ecedf *_ae .PdfCrypt ;_dfebg *_ae .PdfObjectDictionary ;_feddfa *_ae .PdfIndirectObject ;_dcdbd *_ae .PdfObjectArray ;_faffe _ae .Version ;_edgdg *bool ;
|
||
_fage map[_ae .PdfObject ][]*_ae .PdfObjectDictionary ;_bgfd *PdfAcroForm ;_ffefg Optimizer ;_bccf StandardApplier ;_agfeg map[int ]crossReference ;_addeb int64 ;ObjNumOffset int ;_dffad bool ;_ecbae _ae .XrefTable ;_afadc int64 ;_gaffa int64 ;_fbfcdf map[_ae .PdfObject ]int64 ;
|
||
_eecfg map[_ae .PdfObject ]struct{};_afegd string ;_bbbca []*PdfOutputIntent ;_gfbc bool ;_fddgb ,_dbdab string ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_bbfbf pdfCIDFontType2 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _bfccf ,_eebe :=_bbfbf ._fcbce [code ];_eebe {return _cb .CharMetrics {Wx :_bfccf },true ;};_bdbc :=rune (code );_fgace ,_eebed :=_bbfbf ._acae [_bdbc ];if !_eebed {_fgace =int (_bbfbf ._bddbc );
|
||
};return _cb .CharMetrics {Wx :float64 (_fgace )},true ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_cgaf *PdfColorDeviceRGB )GetNumComponents ()int {return 3};func (_fabcc *PdfWriter )addObjects (_aeccgf _ae .PdfObject )error {_ac .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _bccdd ,_dgggbc :=_aeccgf .(*_ae .PdfIndirectObject );
|
||
_dgggbc {_ac .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_ac .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_aeccgf ,_bccdd );_ac .Log .Trace ("\u002d\u0020\u0025\u0073",_bccdd .PdfObject );if _fabcc .addObject (_bccdd ){_dfgee :=_fabcc .addObjects (_bccdd .PdfObject );
|
||
if _dfgee !=nil {return _dfgee ;};};return nil ;};if _ddcfd ,_agbdb :=_aeccgf .(*_ae .PdfObjectStream );_agbdb {_ac .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ac .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_aeccgf ,_aeccgf );if _fabcc .addObject (_ddcfd ){_cdcad :=_fabcc .addObjects (_ddcfd .PdfObjectDictionary );
|
||
if _cdcad !=nil {return _cdcad ;};};return nil ;};if _agfgg ,_beaef :=_aeccgf .(*_ae .PdfObjectDictionary );_beaef {_ac .Log .Trace ("\u0044\u0069\u0063\u0074");_ac .Log .Trace ("\u002d\u0020\u0025\u0073",_aeccgf );for _ ,_efbd :=range _agfgg .Keys (){_cbbc :=_agfgg .Get (_efbd );
|
||
if _fdfcbb ,_cdfedd :=_cbbc .(*_ae .PdfObjectReference );_cdfedd {_cbbc =_fdfcbb .Resolve ();_agfgg .Set (_efbd ,_cbbc );};if _efbd !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _ddeae :=_fabcc .addObjects (_cbbc );_ddeae !=nil {return _ddeae ;};}else {if _ ,_egdbb :=_cbbc .(*_ae .PdfObjectNull );
|
||
_egdbb {continue ;};if _gabae :=_fabcc .hasObject (_cbbc );!_gabae {_ac .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",_cbbc ,_cbbc ,_cbbc );
|
||
_fabcc ._fage [_cbbc ]=append (_fabcc ._fage [_cbbc ],_agfgg );};};};return nil ;};if _fgaedc ,_fabdf :=_aeccgf .(*_ae .PdfObjectArray );_fabdf {_ac .Log .Trace ("\u0041\u0072\u0072a\u0079");_ac .Log .Trace ("\u002d\u0020\u0025\u0073",_aeccgf );if _fgaedc ==nil {return _db .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _abbdef ,_acdac :=range _fgaedc .Elements (){if _befg ,_aeff :=_acdac .(*_ae .PdfObjectReference );_aeff {_acdac =_befg .Resolve ();_fgaedc .Set (_abbdef ,_acdac );};if _cgdcg :=_fabcc .addObjects (_acdac );_cgdcg !=nil {return _cgdcg ;};};return nil ;
|
||
};if _ ,_effd :=_aeccgf .(*_ae .PdfObjectReference );_effd {_ac .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",_aeccgf );
|
||
return _db .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_cagfg :=&PdfPageResources {};_cagfg ._cebg =_ae .MakeDict ();return _cagfg ;};
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_fffa *PdfAnnotation )GetContext ()PdfModel {if _fffa ==nil {return nil ;};return _fffa ._ggd ;};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_bagad *PdfReader )PageFromIndirectObject (ind *_ae .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_bagad .PageList )!=len (_bagad ._bcaab ){return nil ,0,_db .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _ggfac ,_accbd :=range _bagad ._bcaab {if _accbd ==ind {return _bagad .PageList [_ggfac ],_ggfac +1,nil ;};};return nil ,0,_db .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_cgbdg *PdfPageResources )GetPatternByName (keyName _ae .PdfObjectName )(*PdfPattern ,bool ){if _cgbdg .Pattern ==nil {return nil ,false ;};_fccgc ,_fdebd :=_ae .TraceToDirectObject (_cgbdg .Pattern ).(*_ae .PdfObjectDictionary );if !_fdebd {_ac .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",_cgbdg .Pattern );
|
||
return nil ,false ;};if _afdae :=_fccgc .Get (keyName );_afdae !=nil {_efbgd ,_aggbg :=_eccae (_afdae );if _aggbg !=nil {_ac .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",_aggbg );
|
||
return nil ,false ;};return _efbgd ,true ;};return nil ,false ;};
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_bgdcf *PdfColorspaceICCBased )GetNumComponents ()int {return _bgdcf .N };
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_bcefa pdfFontType0 )Encoder ()_bgg .TextEncoder {return _bcefa ._bagdb };
|
||
|
||
// 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 (_bfbg PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_ae .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_agea []_ae .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_efab []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_gebdc *PdfReader )IsEncrypted ()(bool ,error ){return _gebdc ._bfcga .IsEncrypted ()};
|
||
|
||
// 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 (_adb *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _db .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");
|
||
};_ggae :=field .V ;if _ggae ==nil {return _db .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");};_gfaf :=pageNum -1;
|
||
if _gfaf < 0||_gfaf > len (_adb ._eabf )-1{return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_ecac :=_adb .Reader .PageList [_gfaf ];field .P =_ecac .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_ae .MakeString (_f .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
|
||
};_ecac .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _adb ._eced ==_adb ._afad .AcroForm {_adb ._eced =_adb .Reader .AcroForm ;};_addd :=_adb ._eced ;if _addd ==nil {_addd =NewPdfAcroForm ();};_addd .SigFlags =_ae .MakeInteger (3);if _addd .NeedAppearances !=nil {_addd .NeedAppearances =nil ;
|
||
};_fecf :=append (_addd .AllFields (),field .PdfField );_addd .Fields =&_fecf ;_adb .ReplaceAcroForm (_addd );_adb .UpdatePage (_ecac );_adb ._eabf [_gfaf ]=_ecac ;if _ ,_bade :=field .V .GetDocMDPPermission ();_bade {_adb ._fgcd =NewPermissions (field .V );
|
||
};return nil ;};
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_fggf *PdfField )ToPdfObject ()_ae .PdfObject {_ccfec :=_fggf ._facca ;_bcgf :=_ccfec .PdfObject .(*_ae .PdfObjectDictionary );_aggb :=_ae .MakeArray ();for _ ,_aeaba :=range _fggf .Kids {_aggb .Append (_aeaba .ToPdfObject ());};for _ ,_bgaf :=range _fggf .Annotations {if _bgaf ._gcgf !=_fggf ._facca {_aggb .Append (_bgaf .GetContext ().ToPdfObject ());
|
||
};};if _fggf .Parent !=nil {_bcgf .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_fggf .Parent .GetContainingPdfObject ());};if _aggb .Len ()> 0{_bcgf .Set ("\u004b\u0069\u0064\u0073",_aggb );};_bcgf .SetIfNotNil ("\u0046\u0054",_fggf .FT );_bcgf .SetIfNotNil ("\u0054",_fggf .T );
|
||
_bcgf .SetIfNotNil ("\u0054\u0055",_fggf .TU );_bcgf .SetIfNotNil ("\u0054\u004d",_fggf .TM );_bcgf .SetIfNotNil ("\u0046\u0066",_fggf .Ff );_bcgf .SetIfNotNil ("\u0056",_fggf .V );_bcgf .SetIfNotNil ("\u0044\u0056",_fggf .DV );_bcgf .SetIfNotNil ("\u0041\u0041",_fggf .AA );
|
||
if _fggf .VariableText !=nil {_bcgf .SetIfNotNil ("\u0044\u0041",_fggf .VariableText .DA );_bcgf .SetIfNotNil ("\u0051",_fggf .VariableText .Q );_bcgf .SetIfNotNil ("\u0044\u0053",_fggf .VariableText .DS );_bcgf .SetIfNotNil ("\u0052\u0056",_fggf .VariableText .RV );
|
||
};return _ccfec ;};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _ae .PdfObject ;ColorSpace _ae .PdfObject ;Pattern _ae .PdfObject ;Shading _ae .PdfObject ;XObject _ae .PdfObject ;Font _ae .PdfObject ;ProcSet _ae .PdfObject ;Properties _ae .PdfObject ;_cebg *_ae .PdfObjectDictionary ;
|
||
_febfa *PdfPageResourcesColorspaces ;};func (_fcbab *PdfReader )loadStructure ()error {if _fcbab ._bfcga .GetCrypter ()!=nil &&!_fcbab ._bfcga .IsAuthenticated (){return _f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_fecfc :=_fcbab ._bfcga .GetTrailer ();if _fecfc ==nil {return _f .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_bagac ,_bccgb :=_fecfc .Get ("\u0052\u006f\u006f\u0074").(*_ae .PdfObjectReference );if !_bccgb {return _f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0052\u006f\u006ft\u0020\u0028\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u003a \u0025\u0073\u0029",_fecfc );
|
||
};_edaff ,_begfa :=_fcbab ._bfcga .LookupByReference (*_bagac );if _begfa !=nil {_ac .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",_begfa );
|
||
return _begfa ;};_becgcb ,_bccgb :=_edaff .(*_ae .PdfIndirectObject );if !_bccgb {_ac .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",_edaff ,*_fecfc );
|
||
return _db .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_bgfac ,_bccgb :=(*_becgcb ).PdfObject .(*_ae .PdfObjectDictionary );if !_bccgb {_ac .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",_becgcb .PdfObject );
|
||
return _db .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ac .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_bgfac );_abae ,_bccgb :=_bgfac .Get ("\u0050\u0061\u0067e\u0073").(*_ae .PdfObjectReference );
|
||
if !_bccgb {return _db .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");};_gagba ,_begfa :=_fcbab ._bfcga .LookupByReference (*_abae );
|
||
if _begfa !=nil {_ac .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 _begfa ;};_dccgc ,_bccgb :=_gagba .(*_ae .PdfIndirectObject );if !_bccgb {_ac .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");
|
||
_ac .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_dccgc );return _db .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_dfbda ,_bccgb :=_dccgc .PdfObject .(*_ae .PdfObjectDictionary );if !_bccgb {_ac .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",_dccgc );
|
||
return _db .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_ecgaf ,_bccgb :=_ae .GetInt (_dfbda .Get ("\u0043\u006f\u0075n\u0074"));if !_bccgb {_ac .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 _db .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_bccgb =_ae .GetName (_dfbda .Get ("\u0054\u0079\u0070\u0065"));!_bccgb {_ac .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");
|
||
_dfbda .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050\u0061\u0067e\u0073"));};if _agdgb ,_ceecc :=_ae .GetInt (_dfbda .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_ceecc {_debda :=int64 (*_agdgb );_fcbab .Rotate =&_debda ;};_fcbab ._cgccc =_bagac ;
|
||
_fcbab ._aedf =_bgfac ;_fcbab ._adffd =_dfbda ;_fcbab ._cdee =_dccgc ;_fcbab ._gbfa =int (*_ecgaf );_fcbab ._bcaab =[]*_ae .PdfIndirectObject {};_cccfc :=map[_ae .PdfObject ]struct{}{};_begfa =_fcbab .buildPageList (_dccgc ,nil ,_cccfc );if _begfa !=nil {return _begfa ;
|
||
};_ac .Log .Trace ("\u002d\u002d\u002d");_ac .Log .Trace ("\u0054\u004f\u0043");_ac .Log .Trace ("\u0050\u0061\u0067e\u0073");_ac .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_fcbab ._bcaab ),_fcbab ._bcaab );_fcbab ._ecbe ,_begfa =_fcbab .loadOutlines ();
|
||
if _begfa !=nil {_ac .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",_begfa );
|
||
return _begfa ;};_fcbab .AcroForm ,_begfa =_fcbab .loadForms ();if _begfa !=nil {return _begfa ;};_fcbab .DSS ,_begfa =_fcbab .loadDSS ();if _begfa !=nil {return _begfa ;};_fcbab ._cgfad ,_begfa =_fcbab .loadPerms ();if _begfa !=nil {return _begfa ;};return nil ;
|
||
};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_cefff :_ae .MakeIndirectObject (_ae .MakeDict ()),VRI :map[string ]*VRI {}};};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_faegd *PdfPage )GetContentStreams ()([]string ,error ){_bbbe :=_faegd .GetContentStreamObjs ();var _cgag []string ;for _ ,_geae :=range _bbbe {_cfdae ,_fedba :=_ddbdf (_geae );if _fedba !=nil {return nil ,_fedba ;};_cgag =append (_cgag ,_cfdae );
|
||
};return _cgag ,nil ;};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_aagd *PdfFieldButton )IsPush ()bool {return _aagd .GetType ()==ButtonTypePush };func (_fedfb *PdfReader )lookupPageByObject (_babb _ae .PdfObject )(*PdfPage ,error ){return nil ,_db .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
|
||
};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_ffdaa *PdfPageResources )HasExtGState (keyName _ae .PdfObjectName )bool {_ ,_cedaf :=_ffdaa .GetFontByName (keyName );return _cedaf ;};
|
||
|
||
// GetXHeight returns the XHeight of the font `descriptor`.
|
||
func (_fefac *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _ae .GetNumberAsFloat (_fefac .XHeight );};
|
||
|
||
// 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 (_bbdba *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _bbdba ._febfa !=nil {return _bbdba ._febfa ,nil ;};if _bbdba .ColorSpace ==nil {return nil ,nil ;};_ddacd ,_dgfgg :=_adfee (_bbdba .ColorSpace );if _dgfgg !=nil {return nil ,_dgfgg ;
|
||
};_bbdba ._febfa =_ddacd ;return _bbdba ._febfa ,nil ;};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _ae .PdfObject ;};
|
||
|
||
// 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 ;};
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_dbc :=NewPdfAction ();_eda :=&PdfActionSound {};_eda .PdfAction =_dbc ;_dbc .SetContext (_eda );return _eda ;};func _addeed (_gagce *_ae .PdfObjectArray )(float64 ,error ){_gfaad ,_gbdgg :=_gagce .ToFloat64Array ();
|
||
if _gbdgg !=nil {_ac .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",_gagce ,_gbdgg );};switch len (_gfaad ){case 1:return _gfaad [0],nil ;
|
||
case 3:_cceee :=PdfColorspaceDeviceRGB {};_efcea ,_beecgd :=_cceee .ColorFromFloats (_gfaad );if _beecgd !=nil {return 0.0,_beecgd ;};return _efcea .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_edec :=PdfColorspaceDeviceCMYK {};_fbbdd ,_cagfb :=_edec .ColorFromFloats (_gfaad );
|
||
if _cagfb !=nil {return 0.0,_cagfb ;};_bdec ,_cagfb :=_edec .ColorToRGB (_fbbdd .(*PdfColorDeviceCMYK ));if _cagfb !=nil {return 0.0,_cagfb ;};return _bdec .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;};_gbdgg =_db .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");
|
||
_ac .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_gagce ,_gbdgg );return 0.0,_gbdgg ;};func _fbefg (_egee _cb .StdFont )pdfFontSimple {_bddg :=_egee .Descriptor ();
|
||
return pdfFontSimple {fontCommon :fontCommon {_adce :"\u0054\u0079\u0070e\u0031",_cedb :_egee .Name ()},_gabf :_egee .GetMetricsTable (),_adegb :&PdfFontDescriptor {FontName :_ae .MakeName (string (_bddg .Name )),FontFamily :_ae .MakeName (_bddg .Family ),FontWeight :_ae .MakeFloat (float64 (_bddg .Weight )),Flags :_ae .MakeInteger (int64 (_bddg .Flags )),FontBBox :_ae .MakeArrayFromFloats (_bddg .BBox [:]),ItalicAngle :_ae .MakeFloat (_bddg .ItalicAngle ),Ascent :_ae .MakeFloat (_bddg .Ascent ),Descent :_ae .MakeFloat (_bddg .Descent ),CapHeight :_ae .MakeFloat (_bddg .CapHeight ),XHeight :_ae .MakeFloat (_bddg .XHeight ),StemV :_ae .MakeFloat (_bddg .StemV ),StemH :_ae .MakeFloat (_bddg .StemH )},_aacd :_egee .Encoder ()};
|
||
};
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_bbd :=NewPdfAction ();_bcd :=&PdfActionGoTo3DView {};_bcd .PdfAction =_bbd ;_bbd .SetContext (_bcd );return _bcd ;};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_eedg *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _ffeg []float64 ;for _gdfc :=0;_gdfc < _eedg .GetNumComponents ();_gdfc ++{_ffeg =append (_ffeg ,0.0,1.0);};return _ffeg ;};
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_acag *PdfInfo )ToPdfObject ()_ae .PdfObject {_becdc :=_ae .MakeDict ();_becdc .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_acag .Title );_becdc .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_acag .Author );_becdc .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_acag .Subject );
|
||
_becdc .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_acag .Keywords );_becdc .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_acag .Creator );_becdc .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_acag .Producer );
|
||
_becdc .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_acag .Trapped );if _acag .CreationDate !=nil {_becdc .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_acag .CreationDate .ToPdfObject ());};if _acag .ModifiedDate !=nil {_becdc .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_acag .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_fafea :=range _acag ._ffgag .Keys (){_becdc .SetIfNotNil (_fafea ,_acag ._ffgag .Get (_fafea ));};return _becdc ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_eagg pdfFontType0 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){if _eagg .DescendantFont ==nil {_ac .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",_eagg );
|
||
return _cb .CharMetrics {},false ;};return _eagg .DescendantFont .GetCharMetrics (code );};
|
||
|
||
// 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 (_febg *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_ddcda :=_febg .actualFont ();if _ddcda ==nil {_ac .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",_febg ._dabg );
|
||
return _cb .CharMetrics {},false ;};if _cfecg ,_cacb :=_ddcda .GetRuneMetrics (r );_cacb {return _cfecg ,true ;};if _dddg ,_eabfd :=_febg .GetFontDescriptor ();_eabfd ==nil &&_dddg !=nil {return _cb .CharMetrics {Wx :_dddg ._ffdc },true ;};_ac .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",_febg );
|
||
return _cb .CharMetrics {},false ;};
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_eceda *PdfRectangle )Width ()float64 {return _ag .Abs (_eceda .Urx -_eceda .Llx )};type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_cffbf *PdfPage )GetPageDict ()*_ae .PdfObjectDictionary {_gebgd :=_cffbf ._efgca ;_gebgd .Clear ();_gebgd .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050\u0061\u0067\u0065"));_gebgd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cffbf .Parent );
|
||
if _cffbf .LastModified !=nil {_gebgd .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_cffbf .LastModified .ToPdfObject ());};if _cffbf .Resources !=nil {_gebgd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_cffbf .Resources .ToPdfObject ());
|
||
};if _cffbf .CropBox !=nil {_gebgd .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_cffbf .CropBox .ToPdfObject ());};if _cffbf .MediaBox !=nil {_gebgd .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_cffbf .MediaBox .ToPdfObject ());};if _cffbf .BleedBox !=nil {_gebgd .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_cffbf .BleedBox .ToPdfObject ());
|
||
};if _cffbf .TrimBox !=nil {_gebgd .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_cffbf .TrimBox .ToPdfObject ());};if _cffbf .ArtBox !=nil {_gebgd .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_cffbf .ArtBox .ToPdfObject ());};_gebgd .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_cffbf .BoxColorInfo );
|
||
_gebgd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_cffbf .Contents );if _cffbf .Rotate !=nil {_gebgd .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ae .MakeInteger (*_cffbf .Rotate ));};_gebgd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_cffbf .Group );
|
||
_gebgd .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_cffbf .Thumb );_gebgd .SetIfNotNil ("\u0042",_cffbf .B );_gebgd .SetIfNotNil ("\u0044\u0075\u0072",_cffbf .Dur );_gebgd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_cffbf .Trans );_gebgd .SetIfNotNil ("\u0041\u0041",_cffbf .AA );
|
||
_gebgd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_cffbf .Metadata );_gebgd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_cffbf .PieceInfo );_gebgd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_cffbf .StructParents );
|
||
_gebgd .SetIfNotNil ("\u0049\u0044",_cffbf .ID );_gebgd .SetIfNotNil ("\u0050\u005a",_cffbf .PZ );_gebgd .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_cffbf .SeparationInfo );_gebgd .SetIfNotNil ("\u0054\u0061\u0062\u0073",_cffbf .Tabs );
|
||
_gebgd .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_cffbf .TemplateInstantiated );_gebgd .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_cffbf .PresSteps );_gebgd .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_cffbf .UserUnit );
|
||
_gebgd .SetIfNotNil ("\u0056\u0050",_cffbf .VP );if _cffbf ._dgfec !=nil {_egcfcg :=_ae .MakeArray ();for _ ,_gffca :=range _cffbf ._dgfec {if _efbeca :=_gffca .GetContext ();_efbeca !=nil {_egcfcg .Append (_efbeca .ToPdfObject ());}else {_egcfcg .Append (_gffca .ToPdfObject ());
|
||
};};if _egcfcg .Len ()> 0{_gebgd .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_egcfcg );};}else if _cffbf .Annots !=nil {_gebgd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_cffbf .Annots );};return _gebgd ;};var (ErrRequiredAttributeMissing =_db .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 =_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_db .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_cdgb =_db .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
||
ErrEncrypted =_db .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 =_db .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
ErrFontNotSupported =_bcg .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_ae .ErrNotSupported );ErrType1CFontNotSupported =_bcg .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",_ae .ErrNotSupported );
|
||
ErrType3FontNotSupported =_bcg .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",_ae .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_bcg .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",_ae .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_bcg .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 =_bcg .Errorf ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065tri\u0065ve\u0020\u0063\u0065\u0072\u0074\u0069\u0066ic\u0061\u0074\u0065\u0020\u0063\u0068\u0061i\u006e"););func _accce ()string {return _ac .Version };
|
||
|
||
// GetNameDictionary returns the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_cfbfc *PdfReader )GetNameDictionary ()(_ae .PdfObject ,error ){_beffd :=_ae .ResolveReference (_cfbfc ._aedf .Get ("\u004e\u0061\u006de\u0073"));if _beffd ==nil {return nil ,nil ;};if !_cfbfc ._ffggb {_ffbdf :=_cfbfc .traverseObjectData (_beffd );
|
||
if _ffbdf !=nil {return nil ,_ffbdf ;};};return _beffd ,nil ;};const (_ebaf =0x00001;_gfdfb =0x00002;_fdbaa =0x00004;_acgd =0x00008;_gcga =0x00020;_fggg =0x00040;_fgfeg =0x10000;_edbaf =0x20000;_gdec =0x40000;);
|
||
|
||
// Val returns the value of the color.
|
||
func (_adcg *PdfColorCalGray )Val ()float64 {return float64 (*_adcg )};func _fffbg (_dfgc _ae .PdfObject )(*PdfFunctionType3 ,error ){_aaef :=&PdfFunctionType3 {};var _fegf *_ae .PdfObjectDictionary ;if _dgbeb ,_cbdgd :=_dfgc .(*_ae .PdfIndirectObject );
|
||
_cbdgd {_cgde ,_cgff :=_dgbeb .PdfObject .(*_ae .PdfObjectDictionary );if !_cgff {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_aaef ._gege =_dgbeb ;_fegf =_cgde ;}else if _ddfeg ,_ddcdaf :=_dfgc .(*_ae .PdfObjectDictionary );
|
||
_ddcdaf {_fegf =_ddfeg ;}else {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cbgc ,_afegf :=_ae .TraceToDirectObject (_fegf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );
|
||
if !_afegf {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_db .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 _cbgc .Len ()!=2{_ac .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fcec ,_acdb :=_cbgc .ToFloat64Array ();
|
||
if _acdb !=nil {return nil ,_acdb ;};_aaef .Domain =_fcec ;_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );if _afegf {if _cbgc .Len ()< 0||_cbgc .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_abaga ,_edee :=_cbgc .ToFloat64Array ();if _edee !=nil {return nil ,_edee ;};_aaef .Range =_abaga ;};_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_ae .PdfObjectArray );if !_afegf {_ac .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 ,_db .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");};_aaef .Functions =[]PdfFunction {};
|
||
for _ ,_bgfb :=range _cbgc .Elements (){_abeae ,_ggda :=_gdbef (_bgfb );if _ggda !=nil {return nil ,_ggda ;};_aaef .Functions =append (_aaef .Functions ,_abeae );};_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_ae .PdfObjectArray );
|
||
if !_afegf {_ac .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_db .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");
|
||
};_ccgcg ,_acdb :=_cbgc .ToFloat64Array ();if _acdb !=nil {return nil ,_acdb ;};_aaef .Bounds =_ccgcg ;if len (_aaef .Bounds )!=len (_aaef .Functions )-1{_ac .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 (_aaef .Bounds ),len (_aaef .Functions ));
|
||
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cbgc ,_afegf =_ae .TraceToDirectObject (_fegf .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_ae .PdfObjectArray );if !_afegf {_ac .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_db .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");};_fggbc ,_acdb :=_cbgc .ToFloat64Array ();
|
||
if _acdb !=nil {return nil ,_acdb ;};_aaef .Encode =_fggbc ;if len (_aaef .Encode )!=2*len (_aaef .Functions ){_ac .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 (_aaef .Encode ),len (_aaef .Functions ));
|
||
return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _aaef ,nil ;};func _cede (_egcdc *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_egcdc }};
|
||
|
||
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
|
||
func NewPdfOutputIntentFromPdfObject (object _ae .PdfObject )(*PdfOutputIntent ,error ){_eddgd :=&PdfOutputIntent {};if _edaac :=_eddgd .ParsePdfObject (object );_edaac !=nil {return nil ,_edaac ;};return _eddgd ,nil ;};func (_aecac *LTV )getCRLs (_dcce []*_fc .Certificate )([][]byte ,error ){_aabcb :=make ([][]byte ,0,len (_dcce ));
|
||
for _ ,_babgf :=range _dcce {for _ ,_bagda :=range _babgf .CRLDistributionPoints {if _aecac .CertClient .IsCA (_babgf ){continue ;};_bgbfb ,_ecbff :=_aecac .CRLClient .MakeRequest (_bagda ,_babgf );if _ecbff !=nil {_ac .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",_ecbff );
|
||
continue ;};_aabcb =append (_aabcb ,_bgbfb );};};return _aabcb ,nil ;};
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_edbbd int64 ;_cedda int64 ;_ddefe int64 ;_bedgeg int64 ;_fbcga int64 ;_eabef int64 ;_eaedg byte ;_adaec int64 ;_befea int64 ;};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _ae .PdfObject ;AN _ae .PdfObject ;OP _ae .PdfObject ;JS _ae .PdfObject ;};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_adeee *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_adeee ._dgfec =annotations };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ecad *PdfAnnotationCircle )ToPdfObject ()_ae .PdfObject {_ecad .PdfAnnotation .ToPdfObject ();_cebaf :=_ecad ._gcgf ;_cfgg :=_cebaf .PdfObject .(*_ae .PdfObjectDictionary );_ecad .PdfAnnotationMarkup .appendToPdfDictionary (_cfgg );_cfgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_cfgg .SetIfNotNil ("\u0042\u0053",_ecad .BS );_cfgg .SetIfNotNil ("\u0049\u0043",_ecad .IC );_cfgg .SetIfNotNil ("\u0042\u0045",_ecad .BE );_cfgg .SetIfNotNil ("\u0052\u0044",_ecad .RD );return _cebaf ;};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_cadgd .Lock ();defer _cadgd .Unlock ();_aedg =title };func _adfccb (_bedbf *_ae .PdfIndirectObject )(*PdfOutline ,error ){_bfgb ,_ggdf :=_bedbf .PdfObject .(*_ae .PdfObjectDictionary );if !_ggdf {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_beadc :=NewPdfOutline ();if _agfb :=_bfgb .Get ("\u0054\u0079\u0070\u0065");_agfb !=nil {_gdeca ,_decbd :=_agfb .(*_ae .PdfObjectName );if _decbd {if *_gdeca !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ac .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",*_gdeca );
|
||
};};};if _eaeag :=_bfgb .Get ("\u0043\u006f\u0075n\u0074");_eaeag !=nil {_cagd ,_afafbb :=_ae .GetNumberAsInt64 (_eaeag );if _afafbb !=nil {return nil ,_afafbb ;};_beadc .Count =&_cagd ;};return _beadc ,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 (_ffbe *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _bebba []*PdfField ;_fbdc :=map[*_ae .PdfIndirectObject ]struct{}{};for _ ,_cdbb :=range _ffbe .PageList {_eeaa ,_dafac :=_cdbb .GetAnnotations ();if _dafac !=nil {return _dafac ;
|
||
};for _ ,_dgcbb :=range _eeaa {var _bbgde *PdfField ;switch _ecebd :=_dgcbb .GetContext ().(type ){case *PdfAnnotationWidget :if _ecebd ._bab !=nil {_bbgde =_ecebd ._bab ;break ;};if _aggbb ,_acgaf :=_ae .GetIndirect (_ecebd .Parent );_acgaf {_bbgde ,_dafac =_ffbe .newPdfFieldFromIndirectObject (_aggbb ,nil );
|
||
if _dafac ==nil {break ;};_ac .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",_aggbb ,_dafac );
|
||
};if _ecebd ._gcgf !=nil {_bbgde ,_dafac =_ffbe .newPdfFieldFromIndirectObject (_ecebd ._gcgf ,nil );if _dafac ==nil {break ;};_ac .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",_ecebd ._gcgf ,_dafac );
|
||
};};if _bbgde ==nil {continue ;};if _ ,_geeaa :=_fbdc [_bbgde ._facca ];_geeaa {continue ;};_fbdc [_bbgde ._facca ]=struct{}{};_bebba =append (_bebba ,_bbgde );};};if len (_bebba )==0{return nil ;};if _ffbe .AcroForm ==nil {_ffbe .AcroForm =NewPdfAcroForm ();
|
||
};_ffbe .AcroForm .Fields =&_bebba ;return nil ;};
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_acg :=&PdfAnnotation {};_acg ._gcgf =_ae .MakeIndirectObject (_ae .MakeDict ());return _acg ;};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _ae .PdfObject ;Flags _ae .PdfObject ;};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_feaef *XObjectForm )GetContentStream ()([]byte ,error ){_aeeff ,_gacd :=_ae .DecodeStream (_feaef ._fccdf );if _gacd !=nil {return nil ,_gacd ;};return _aeeff ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_acd *PdfActionImportData )ToPdfObject ()_ae .PdfObject {_acd .PdfAction .ToPdfObject ();_bea :=_acd ._cbe ;_egc :=_bea .PdfObject .(*_ae .PdfObjectDictionary );_egc .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeImportData )));if _acd .F !=nil {_egc .Set ("\u0046",_acd .F .ToPdfObject ());
|
||
};return _bea ;};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_fafgd *PdfReader )GetTrailer ()(*_ae .PdfObjectDictionary ,error ){_bbggcf :=_fafgd ._bfcga .GetTrailer ();if _bbggcf ==nil {return nil ,_db .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _bbggcf ,nil ;
|
||
};
|
||
|
||
// Inspect inspects the object types, subtypes and content in the PDF file returning a map of
|
||
// object type to number of instances of each.
|
||
func (_bafbe *PdfReader )Inspect ()(map[string ]int ,error ){return _bafbe ._bfcga .Inspect ()};
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_bgga pdfFontType3 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){_babf :=_bgga .Encoder ();if _babf ==nil {_ac .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_bgga );
|
||
return _cb .CharMetrics {},false ;};_dbgdb ,_gffc :=_babf .RuneToCharcode (r );if !_gffc {if r !=' '{_ac .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 ,_bgga );
|
||
};return _cb .CharMetrics {},false ;};_febee ,_gadbc :=_bgga .GetCharMetrics (_dbgdb );return _febee ,_gadbc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cdgf *PdfAnnotationLine )ToPdfObject ()_ae .PdfObject {_cdgf .PdfAnnotation .ToPdfObject ();_dbeg :=_cdgf ._gcgf ;_gaa :=_dbeg .PdfObject .(*_ae .PdfObjectDictionary );_cdgf .PdfAnnotationMarkup .appendToPdfDictionary (_gaa );_gaa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_gaa .SetIfNotNil ("\u004c",_cdgf .L );_gaa .SetIfNotNil ("\u0042\u0053",_cdgf .BS );_gaa .SetIfNotNil ("\u004c\u0045",_cdgf .LE );_gaa .SetIfNotNil ("\u0049\u0043",_cdgf .IC );_gaa .SetIfNotNil ("\u004c\u004c",_cdgf .LL );_gaa .SetIfNotNil ("\u004c\u004c\u0045",_cdgf .LLE );
|
||
_gaa .SetIfNotNil ("\u0043\u0061\u0070",_cdgf .Cap );_gaa .SetIfNotNil ("\u0049\u0054",_cdgf .IT );_gaa .SetIfNotNil ("\u004c\u004c\u004f",_cdgf .LLO );_gaa .SetIfNotNil ("\u0043\u0050",_cdgf .CP );_gaa .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_cdgf .Measure );
|
||
_gaa .SetIfNotNil ("\u0043\u004f",_cdgf .CO );return _dbeg ;};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_cegg *fontFile )String ()string {_ecacf :="\u005b\u004e\u006f\u006e\u0065\u005d";if _cegg ._dbfd !=nil {_ecacf =_cegg ._dbfd .String ();};return _f .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_cegg ._deef ,_ecacf );
|
||
};
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_begae *PdfPageResources )HasColorspaceByName (keyName _ae .PdfObjectName )bool {_aadfb ,_geffge :=_begae .GetColorspaces ();if _geffge !=nil {_ac .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",_geffge );
|
||
return false ;};if _aadfb ==nil {return false ;};_ ,_bedea :=_aadfb .Colorspaces [string (keyName )];return _bedea ;};func (_babad *PdfWriter )seekByName (_edbcf _ae .PdfObject ,_cgcfa []string ,_adada string )([]_ae .PdfObject ,error ){_ac .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_edbcf );
|
||
var _acfe []_ae .PdfObject ;if _acaee ,_eaacac :=_edbcf .(*_ae .PdfIndirectObject );_eaacac {return _babad .seekByName (_acaee .PdfObject ,_cgcfa ,_adada );};if _fdafb ,_cgcfge :=_edbcf .(*_ae .PdfObjectStream );_cgcfge {return _babad .seekByName (_fdafb .PdfObjectDictionary ,_cgcfa ,_adada );
|
||
};if _ecaba ,_ccaac :=_edbcf .(*_ae .PdfObjectDictionary );_ccaac {_ac .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_fgfde :=range _ecaba .Keys (){_fgdbc :=_ecaba .Get (_fgfde );if string (_fgfde )==_adada {_acfe =append (_acfe ,_fgdbc );};for _ ,_aeegdc :=range _cgcfa {if string (_fgfde )==_aeegdc {_ac .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_aeegdc );
|
||
_edaab ,_bcfca :=_babad .seekByName (_fgdbc ,_cgcfa ,_adada );if _bcfca !=nil {return _acfe ,_bcfca ;};_acfe =append (_acfe ,_edaab ...);break ;};};};return _acfe ,nil ;};return _acfe ,nil ;};
|
||
|
||
// SetContentStream updates the content stream with specified encoding.
|
||
// If encoding is null, will use the xform.Filter object or Raw encoding if not set.
|
||
func (_fbffd *XObjectForm )SetContentStream (content []byte ,encoder _ae .StreamEncoder )error {_caaea :=content ;if encoder ==nil {if _fbffd .Filter !=nil {encoder =_fbffd .Filter ;}else {encoder =_ae .NewRawEncoder ();};};_gcfea ,_afdbag :=encoder .EncodeBytes (_caaea );
|
||
if _afdbag !=nil {return _afdbag ;};_caaea =_gcfea ;_fbffd .Stream =_caaea ;_fbffd .Filter =encoder ;return nil ;};
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_deeca *PdfBorderStyle )GetBorderWidth ()float64 {if _deeca .W ==nil {return 1;};return *_deeca .W ;};var _efea =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":{}};
|
||
|
||
|
||
// 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 *_ae .PdfObjectInteger ;TilingType *_ae .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_ae .PdfObjectFloat ;YStep *_ae .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_ae .PdfObjectArray ;};func (_fcbcf *LTV )generateVRIKey (_cacd *PdfSignature )(string ,error ){_ffgeg ,_ddcbg :=_gbgbd (_cacd .Contents .Bytes ());
|
||
if _ddcbg !=nil {return "",_ddcbg ;};return _eg .ToUpper (_g .EncodeToString (_ffgeg )),nil ;};
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_fbfec *PdfPageResources )GetExtGState (keyName _ae .PdfObjectName )(_ae .PdfObject ,bool ){if _fbfec .ExtGState ==nil {return nil ,false ;};_eadbe ,_aagfcg :=_ae .TraceToDirectObject (_fbfec .ExtGState ).(*_ae .PdfObjectDictionary );if !_aagfcg {_ac .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",_fbfec .ExtGState );
|
||
return nil ,false ;};if _cccff :=_eadbe .Get (keyName );_cccff !=nil {return _cccff ,true ;};return nil ,false ;};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_eabagc *PdfSignature )SetLocation (location string ){_eabagc .Location =_ae .MakeString (location );};
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_dcf :=NewPdfAction ();_ga :=&PdfActionImportData {};_ga .PdfAction =_dcf ;_dcf .SetContext (_ga );return _ga ;};
|
||
|
||
// IsSimple returns true if `font` is a simple font.
|
||
func (_aaae *PdfFont )IsSimple ()bool {_ ,_gdeb :=_aaae ._dabg .(*pdfFontSimple );return _gdeb };
|
||
|
||
// 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 (_abfc *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _abfc .flattenFieldsWithOpts (allannots ,appgen ,nil );};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_gffbg *PdfPageResources )HasFontByName (keyName _ae .PdfObjectName )bool {_ ,_gega :=_gffbg .GetFontByName (keyName );return _gega ;};
|
||
|
||
// 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 (_fedf *PdfFont )CharcodesToUnicode (charcodes []_bgg .CharCode )[]rune {_fccdc ,_ ,_ :=_fedf .CharcodesToUnicodeWithStats (charcodes );return _fccdc ;};func _acaae ()string {_cadgd .Lock ();defer _cadgd .Unlock ();if len (_ecgbe )> 0{return _ecgbe ;
|
||
};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";};
|
||
|
||
// 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 (_bffaab *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _edada []*PdfField ;if _bffaab .AcroForm !=nil {_edada =_bffaab .AcroForm .AllFields ();};_ccbbf :=make (map[*PdfField ]struct{},len (_edada ));for _ ,_ebfeb :=range _edada {_ccbbf [_ebfeb ]=struct{}{};
|
||
};for _ ,_fdacgg :=range _bffaab .PageList {_fcad ,_cgee :=_fdacgg .GetAnnotations ();if _cgee !=nil {return false ,_cgee ;};for _ ,_fgad :=range _fcad {_fbgee ,_feeea :=_fgad .GetContext ().(*PdfAnnotationWidget );if !_feeea {continue ;};_cead :=_fbgee .Field ();
|
||
if _cead ==nil {return true ,nil ;};if _ ,_dccbf :=_ccbbf [_cead ];!_dccbf {return true ,nil ;};};};return false ,nil ;};
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_gdbf DefaultImageHandler )NewGrayImageFromGoImage (goimg _de .Image )(*Image ,error ){_fddaf :=goimg .Bounds ();_gefag :=&Image {Width :int64 (_fddaf .Dx ()),Height :int64 (_fddaf .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _bfbgb :=goimg .(type ){case *_de .Gray :if len (_bfbgb .Pix )!=_fddaf .Dx ()*_fddaf .Dy (){_bdegg ,_afbg :=_afc .GrayConverter .Convert (goimg );
|
||
if _afbg !=nil {return nil ,_afbg ;};_gefag .Data =_bdegg .Pix ();}else {_gefag .Data =_bfbgb .Pix ;};case *_de .Gray16 :_gefag .BitsPerComponent =16;if len (_bfbgb .Pix )!=_fddaf .Dx ()*_fddaf .Dy ()*2{_gaffg ,_cageg :=_afc .Gray16Converter .Convert (goimg );
|
||
if _cageg !=nil {return nil ,_cageg ;};_gefag .Data =_gaffg .Pix ();}else {_gefag .Data =_bfbgb .Pix ;};case _afc .Image :_addcb :=_bfbgb .Base ();if _addcb .ColorComponents ==1{_gefag .BitsPerComponent =int64 (_addcb .BitsPerComponent );_gefag .Data =_addcb .Data ;
|
||
return _gefag ,nil ;};_ebgga ,_efbf :=_afc .GrayConverter .Convert (goimg );if _efbf !=nil {return nil ,_efbf ;};_gefag .Data =_ebgga .Pix ();default:_adda ,_geaac :=_afc .GrayConverter .Convert (goimg );if _geaac !=nil {return nil ,_geaac ;};_gefag .Data =_adda .Pix ();
|
||
};return _gefag ,nil ;};func (_abfe *PdfReader )newPdfAnnotationProjectionFromDict (_egcd *_ae .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_ggb :=&PdfAnnotationProjection {};_bdgb ,_gca :=_abfe .newPdfAnnotationMarkupFromDict (_egcd );if _gca !=nil {return nil ,_gca ;
|
||
};_ggb .PdfAnnotationMarkup =_bdgb ;return _ggb ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ecgb *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_eadd :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_eadd *_ecgb .A ()),uint32 (_eadd *_ecgb .B ()),uint32 (_eadd *_ecgb .C ())};};func _eddea (_acgfb _ae .PdfObject )(*PdfShading ,error ){_bbbd :=&PdfShading {};
|
||
var _cfccc *_ae .PdfObjectDictionary ;if _bgaaa ,_dddbg :=_ae .GetIndirect (_acgfb );_dddbg {_bbbd ._dcdgda =_bgaaa ;_edfef ,_fgbgf :=_bgaaa .PdfObject .(*_ae .PdfObjectDictionary );if !_fgbgf {_ac .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 ,_ae .ErrTypeError ;};_cfccc =_edfef ;}else if _defbf ,_fdde :=_ae .GetStream (_acgfb );_fdde {_bbbd ._dcdgda =_defbf ;_cfccc =_defbf .PdfObjectDictionary ;}else if _adge ,_egaea :=_ae .GetDict (_acgfb );_egaea {_bbbd ._dcdgda =_adge ;_cfccc =_adge ;
|
||
}else {_ac .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",_acgfb );return nil ,_ae .ErrTypeError ;};if _cfccc ==nil {_ac .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,_db .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_acgfb =_cfccc .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _acgfb ==nil {_ac .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 ;};_acgfb =_ae .TraceToDirectObject (_acgfb );_afcc ,_ebcf :=_acgfb .(*_ae .PdfObjectInteger );if !_ebcf {_ac .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",_acgfb );
|
||
return nil ,_ae .ErrTypeError ;};if *_afcc < 1||*_afcc > 7{_ac .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",*_afcc );
|
||
return nil ,_ae .ErrTypeError ;};_bbbd .ShadingType =_afcc ;_acgfb =_cfccc .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _acgfb ==nil {_ac .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 ;};_bgacg ,_bcfaf :=NewPdfColorspaceFromPdfObject (_acgfb );if _bcfaf !=nil {_ac .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",_bcfaf );
|
||
return nil ,_bcfaf ;};_bbbd .ColorSpace =_bgacg ;_acgfb =_cfccc .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _acgfb !=nil {_acgfb =_ae .TraceToDirectObject (_acgfb );_dbdcf ,_edddb :=_acgfb .(*_ae .PdfObjectArray );if !_edddb {_ac .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)",_acgfb );
|
||
return nil ,_ae .ErrTypeError ;};_bbbd .Background =_dbdcf ;};_acgfb =_cfccc .Get ("\u0042\u0042\u006f\u0078");if _acgfb !=nil {_acgfb =_ae .TraceToDirectObject (_acgfb );_cgebgf ,_fbddb :=_acgfb .(*_ae .PdfObjectArray );if !_fbddb {_ac .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)",_acgfb );
|
||
return nil ,_ae .ErrTypeError ;};_dfea ,_dabbb :=NewPdfRectangle (*_cgebgf );if _dabbb !=nil {_ac .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_dabbb );return nil ,_dabbb ;};_bbbd .BBox =_dfea ;};_acgfb =_cfccc .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _acgfb !=nil {_acgfb =_ae .TraceToDirectObject (_acgfb );_ebdfb ,_gacg :=_acgfb .(*_ae .PdfObjectBool );if !_gacg {_ac .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",_acgfb );
|
||
return nil ,_ae .ErrTypeError ;};_bbbd .AntiAlias =_ebdfb ;};switch *_afcc {case 1:_bcdc ,_gcfaa :=_acbdb (_cfccc );if _gcfaa !=nil {return nil ,_gcfaa ;};_bcdc .PdfShading =_bbbd ;_bbbd ._ffgbf =_bcdc ;return _bbbd ,nil ;case 2:_fdaa ,_baddg :=_fbbbae (_cfccc );
|
||
if _baddg !=nil {return nil ,_baddg ;};_fdaa .PdfShading =_bbbd ;_bbbd ._ffgbf =_fdaa ;return _bbbd ,nil ;case 3:_fafbd ,_dffaa :=_fbfeb (_cfccc );if _dffaa !=nil {return nil ,_dffaa ;};_fafbd .PdfShading =_bbbd ;_bbbd ._ffgbf =_fafbd ;return _bbbd ,nil ;
|
||
case 4:_bbgfd ,_edcdb :=_baee (_cfccc );if _edcdb !=nil {return nil ,_edcdb ;};_bbgfd .PdfShading =_bbbd ;_bbbd ._ffgbf =_bbgfd ;return _bbbd ,nil ;case 5:_dgadg ,_cddf :=_dbcg (_cfccc );if _cddf !=nil {return nil ,_cddf ;};_dgadg .PdfShading =_bbbd ;_bbbd ._ffgbf =_dgadg ;
|
||
return _bbbd ,nil ;case 6:_gbefa ,_agacb :=_dbaeg (_cfccc );if _agacb !=nil {return nil ,_agacb ;};_gbefa .PdfShading =_bbbd ;_bbbd ._ffgbf =_gbefa ;return _bbbd ,nil ;case 7:_acgde ,_fggc :=_ggfdf (_cfccc );if _fggc !=nil {return nil ,_fggc ;};_acgde .PdfShading =_bbbd ;
|
||
_bbbd ._ffgbf =_acgde ;return _bbbd ,nil ;};return nil ,_db .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
|
||
|
||
// 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 (_dfga *PdfReader )GetObjectNums ()[]int {return _dfga ._bfcga .GetObjectNums ()};type pdfFontType0 struct{fontCommon ;_fagcg *_ae .PdfIndirectObject ;_bagdb _bgg .TextEncoder ;Encoding _ae .PdfObject ;DescendantFont *PdfFont ;_gbced *_abg .CMap ;
|
||
};
|
||
|
||
// 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 (_gbb *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ecbbg :=vals [0];if _ecbbg < 0.0||_ecbbg > 100.0{_ac .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",_ecbbg );
|
||
return nil ,ErrColorOutOfRange ;};_ebec :=vals [1];_cdag :=float64 (-100);_adca :=float64 (100);if len (_gbb .Range )> 1{_cdag =_gbb .Range [0];_adca =_gbb .Range [1];};if _ebec < _cdag ||_ebec > _adca {_ac .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",_ebec ,_cdag ,_adca );
|
||
return nil ,ErrColorOutOfRange ;};_eaae :=vals [2];_fcbc :=float64 (-100);_bace :=float64 (100);if len (_gbb .Range )> 3{_fcbc =_gbb .Range [2];_bace =_gbb .Range [3];};if _eaae < _fcbc ||_eaae > _bace {_ac .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",_eaae ,_fcbc ,_bace );
|
||
return nil ,ErrColorOutOfRange ;};_gcae :=NewPdfColorLab (_ecbbg ,_ebec ,_eaae );return _gcae ,nil ;};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_ae .PdfObjectStream )(*XObjectForm ,error ){_eefga :=&XObjectForm {};_eefga ._fccdf =stream ;_fedaaf :=*(stream .PdfObjectDictionary );_egbbc ,_gabeb :=_ae .NewEncoderFromStream (stream );if _gabeb !=nil {return nil ,_gabeb ;
|
||
};_eefga .Filter =_egbbc ;if _ddcac :=_fedaaf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_ddcac !=nil {_cdgbd ,_fcfcc :=_ddcac .(*_ae .PdfObjectName );if !_fcfcc {return nil ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_cdgbd !="\u0046\u006f\u0072\u006d"{_ac .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _aecag :=_fedaaf .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_aecag !=nil {_eefga .FormType =_aecag ;};if _bcecc :=_fedaaf .Get ("\u0042\u0042\u006f\u0078");_bcecc !=nil {_eefga .BBox =_bcecc ;};if _dbbca :=_fedaaf .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_dbbca !=nil {_eefga .Matrix =_dbbca ;};if _fdfbg :=_fedaaf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fdfbg !=nil {_fdfbg =_ae .TraceToDirectObject (_fdfbg );_fdcgf ,_abacge :=_fdfbg .(*_ae .PdfObjectDictionary );if !_abacge {_ac .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 ,_ae .ErrTypeError ;};_gbgcdb ,_bgafc :=NewPdfPageResourcesFromDict (_fdcgf );if _bgafc !=nil {_ac .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 ,_bgafc ;};_eefga .Resources =_gbgcdb ;_ac .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_eefga .Resources );};_eefga .Group =_fedaaf .Get ("\u0047\u0072\u006fu\u0070");
|
||
_eefga .Ref =_fedaaf .Get ("\u0052\u0065\u0066");_eefga .MetaData =_fedaaf .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_eefga .PieceInfo =_fedaaf .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_eefga .LastModified =_fedaaf .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_eefga .StructParent =_fedaaf .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_eefga .StructParents =_fedaaf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_eefga .OPI =_fedaaf .Get ("\u004f\u0050\u0049");
|
||
_eefga .OC =_fedaaf .Get ("\u004f\u0043");_eefga .Name =_fedaaf .Get ("\u004e\u0061\u006d\u0065");_eefga .Stream =stream .Stream ;return _eefga ,nil ;};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_gadaf *PdfWriter )AddPage (page *PdfPage )error {const _dgge ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_gabdf (page );_aabea :=page .ToPdfObject ();_ac .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_ac .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_aabea );_feddc ,_eadda :=_ae .GetIndirect (_aabea );if !_eadda {return _db .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");
|
||
};_ac .Log .Trace ("\u0025\u0073",_feddc );_ac .Log .Trace ("\u0025\u0073",_feddc .PdfObject );_fdce ,_eadda :=_ae .GetDict (_feddc .PdfObject );if !_eadda {return _db .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");
|
||
};_aecce ,_eadda :=_ae .GetName (_fdce .Get ("\u0054\u0079\u0070\u0065"));if !_eadda {return _f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0068\u0061\u0076\u0065\u0020\u0061\u0020\u0054y\u0070\u0065\u0020\u006b\u0065\u0079\u0020\u0077\u0069t\u0068\u0020\u0061\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u006f\u0066\u0020t\u0079\u0070\u0065\u0020\u006e\u0061m\u0065\u0020\u0028%\u0054\u0029",_fdce .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _aecce .String ()!="\u0050\u0061\u0067\u0065"{return _db .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");};_efdfg :=[]_ae .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"};
|
||
_fbcdf ,_cded :=_ae .GetIndirect (_fdce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ac .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_fdce .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cded );
|
||
for _cded {_ac .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbcdf );_fbfeba ,_cggcg :=_ae .GetDict (_fbcdf .PdfObject );if !_cggcg {return _db .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_acfbc :=range _efdfg {_ac .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_acfbc );if _fdce .Get (_acfbc )!=nil {_ac .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _gggg :=_fbfeba .Get (_acfbc );_gggg !=nil {_ac .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_acfbc );_fdce .Set (_acfbc ,_gggg );};};_fbcdf ,_cded =_ae .GetIndirect (_fbfeba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_ac .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_fbfeba .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ac .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_fdce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gadaf ._efcgc );_feddc .PdfObject =_fdce ;_cgeacb ,_eadda :=_ae .GetDict (_gadaf ._efcgc .PdfObject );if !_eadda {return _db .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");
|
||
};_ddgfb ,_eadda :=_ae .GetArray (_cgeacb .Get ("\u004b\u0069\u0064\u0073"));if !_eadda {return _db .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");
|
||
};_ddgfb .Append (_feddc );_gadaf ._eaggg [_fdce ]=struct{}{};_gfdb ,_eadda :=_ae .GetInt (_cgeacb .Get ("\u0043\u006f\u0075n\u0074"));if !_eadda {return _db .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");
|
||
};*_gfdb =*_gfdb +1;if page ._bceef ==nil {_eaaab :=_gcg .Track (_gadaf ._afegd ,_dgge );if _eaaab !=nil {return _eaaab ;};}else {_eddfd :=_gcg .Track (page ._bceef ._decgb ,_dgge );if _eddfd !=nil {return _eddfd ;};};_gadaf .addObject (_feddc );_daece :=_gadaf .addObjects (_fdce );
|
||
if _daece !=nil {return _daece ;};return nil ;};
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_bcc *PdfAppender )RemovePage (pageNum int ){_gddd :=pageNum -1;_bcc ._eabf =append (_bcc ._eabf [0:_gddd ],_bcc ._eabf [pageNum :]...);};
|
||
|
||
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
|
||
func (_edgbg *PdfReader )GetCatalogStructTreeRoot ()(_ae .PdfObject ,bool ){if _edgbg ._aedf ==nil {return nil ,false ;};_fcdd :=_edgbg ._aedf .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _fcdd ,_fcdd !=nil ;
|
||
};
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_gcdb *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _ae .GetNumberAsFloat (_gcdb .CapHeight );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gaaee *PdfTransformParamsDocMDP )ToPdfObject ()_ae .PdfObject {_fffab :=_ae .MakeDict ();_fffab .SetIfNotNil ("\u0054\u0079\u0070\u0065",_gaaee .Type );_fffab .SetIfNotNil ("\u0056",_gaaee .V );_fffab .SetIfNotNil ("\u0050",_gaaee .P );return _fffab ;
|
||
};func (_bedb *PdfReader )newPdfActionURIFromDict (_agg *_ae .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_agg .Get ("\u0055\u0052\u0049"),IsMap :_agg .Get ("\u0049\u0073\u004da\u0070")},nil ;};
|
||
|
||
// HasShadingByName checks whether a shading is defined by the specified keyName.
|
||
func (_dbcec *PdfPageResources )HasShadingByName (keyName _ae .PdfObjectName )bool {_ ,_bgdedb :=_dbcec .GetShadingByName (keyName );return _bgdedb ;};
|
||
|
||
// NewPermissions returns a new permissions object.
|
||
func NewPermissions (docMdp *PdfSignature )*Permissions {_ffbbd :=Permissions {};_ffbbd .DocMDP =docMdp ;_efebc :=_ae .MakeDict ();_efebc .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_ffbbd ._gccec =_efebc ;return &_ffbbd ;};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_cdgff *modelManager )GetPrimitiveFromModel (model PdfModel )_ae .PdfObject {_eddgf ,_eegc :=_cdgff ._gbed [model ];if !_eegc {return nil ;};return _eddgf ;};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_caeaa :=&PdfFieldSignature {};_caeaa .PdfField =NewPdfField ();_caeaa .PdfField .SetContext (_caeaa );_caeaa .PdfAnnotationWidget =NewPdfAnnotationWidget ();_caeaa .PdfAnnotationWidget .SetContext (_caeaa );
|
||
_caeaa .PdfAnnotationWidget ._gcgf =_caeaa .PdfField ._facca ;_caeaa .T =_ae .MakeString ("");_caeaa .F =_ae .MakeInteger (132);_caeaa .V =signature ;return _caeaa ;};
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_cgbb *PdfInfo )GetCustomInfo (name string )*_ae .PdfObjectString {var _bffbe *_ae .PdfObjectString ;if _cgbb ._ffgag ==nil {return _bffbe ;};if _eebg ,_feeed :=_cgbb ._ffgag .Get (*_ae .MakeName (name )).(*_ae .PdfObjectString );_feeed {_bffbe =_eebg ;
|
||
};return _bffbe ;};
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_fegcb *PdfPageResources )SetFontByName (keyName _ae .PdfObjectName ,obj _ae .PdfObject )error {if _fegcb .Font ==nil {_fegcb .Font =_ae .MakeDict ();};_gbbef ,_afcg :=_ae .TraceToDirectObject (_fegcb .Font ).(*_ae .PdfObjectDictionary );if !_afcg {_ac .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",_ae .TraceToDirectObject (_fegcb .Font ));
|
||
return _ae .ErrTypeError ;};_gbbef .Set (keyName ,obj );return nil ;};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_agcbe *PdfTilingPattern )GetContentStream ()([]byte ,error ){_fdea ,_ ,_efgbb :=_agcbe .GetContentStreamWithEncoder ();return _fdea ,_efgbb ;};
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_fgdgc *PdfShading )GetContext ()PdfModel {return _fgdgc ._ffgbf };
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_ffcbd *modelManager )GetModelFromPrimitive (primitive _ae .PdfObject )PdfModel {model ,_adgc :=_ffcbd ._bdcg [primitive ];if !_adgc {return nil ;};return model ;};
|
||
|
||
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
|
||
type PdfOutputIntentType int ;
|
||
|
||
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
|
||
func (_ceacg *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _ceacg ._bfcga .GetRevisionNumber ()==0{return nil ,_db .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 _dgffe ,_afce :=_ceacg ._aabeg [_ceacg ];_afce {return _dgffe ,nil ;};_aceeff ,_agggg :=_ceacg ._bfcga .GetPreviousRevisionReadSeeker ();if _agggg !=nil {return nil ,_agggg ;};_efged ,_agggg :=_fccgfc (_aceeff ,_ceacg ._bagca ,_ceacg ._bafaa ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
|
||
if _agggg !=nil {return nil ,_agggg ;};_ceacg ._afagc [_ceacg ._bfcga .GetRevisionNumber ()-1]=_efged ;_ceacg ._aabeg [_ceacg ]=_efged ;_efged ._aabeg =_ceacg ._aabeg ;return _efged ,nil ;};
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _ae .PdfObject ;BS _ae .PdfObject ;};
|
||
|
||
// 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 ;_gccec *_ae .PdfObjectDictionary ;};func (_dcaag *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _afcbf :=_dcaag ._cafdb ;_afcbf !=nil {return _afcbf ;};return _dcaag ._adegb ;};
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _ae .PdfObject ;RichMediaContent _ae .PdfObject ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_bbaf *pdfCIDFontType0 )ToPdfObject ()_ae .PdfObject {return _ae .MakeNull ()};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_deba :=&PdfColorspaceSpecialSeparation {};return _deba ;};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_fbdf *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_fbdf .updateObjectsDeep (dss .ToPdfObject (),nil );};_fbdf ._ddad =dss ;};func _gdad (_dbdeb *PdfField ,_fcgb _ae .PdfObject )error {switch _dbdeb .GetContext ().(type ){case *PdfFieldText :switch _bgfe :=_fcgb .(type ){case *_ae .PdfObjectName :_affg :=_bgfe ;
|
||
_ac .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",_affg .String ());
|
||
_dbdeb .V =_ae .MakeEncodedString (_bgfe .String (),true );case *_ae .PdfObjectString :_dbdeb .V =_ae .MakeEncodedString (_bgfe .String (),true );default:_ac .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",_bgfe ,_bgfe );
|
||
};case *PdfFieldButton :switch _fcgb .(type ){case *_ae .PdfObjectName :if len (_fcgb .String ())> 0{_dbdeb .V =_fcgb ;_bbccf (_dbdeb ,_fcgb );};case *_ae .PdfObjectString :if len (_fcgb .String ())> 0{_dbdeb .V =_ae .MakeName (_fcgb .String ());_bbccf (_dbdeb ,_dbdeb .V );
|
||
};default:_ac .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",_dbdeb .PartialName (),_fcgb );_dbdeb .V =_fcgb ;};case *PdfFieldChoice :switch _fcgb .(type ){case *_ae .PdfObjectName :if len (_fcgb .String ())> 0{_dbdeb .V =_ae .MakeString (_fcgb .String ());
|
||
_bbccf (_dbdeb ,_fcgb );};case *_ae .PdfObjectString :if len (_fcgb .String ())> 0{_dbdeb .V =_fcgb ;_bbccf (_dbdeb ,_ae .MakeName (_fcgb .String ()));};default:_ac .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",_dbdeb .PartialName (),_fcgb );
|
||
_dbdeb .V =_fcgb ;};case *PdfFieldSignature :_ac .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",_dbdeb .PartialName (),_fcgb );
|
||
};return nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element in
|
||
// range 0-1.
|
||
func (_eeda *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdce ,_caeed :=_ae .GetNumbersAsFloat (objects );
|
||
if _caeed !=nil {return nil ,_caeed ;};return _eeda .ColorFromFloats (_gdce );};
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_cbbe *PdfColorDeviceGray )GetNumComponents ()int {return 1};func (_fcd *PdfReader )newPdfActionJavaScriptFromDict (_cdc *_ae .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_cdc .Get ("\u004a\u0053")},nil ;};
|
||
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_cbef :=NewPdfAction ();_fec :=&PdfActionThread {};_fec .PdfAction =_cbef ;_cbef .SetContext (_fec );return _fec ;};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_begag fontCommon )String ()string {return _f .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_begag .coreString ());};func (_deb *PdfAnnotation )String ()string {_fdd :="";_aagab ,_effa :=_deb .ToPdfObject ().(*_ae .PdfIndirectObject );
|
||
if _effa {_fdd =_f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_deb ._ggd ,_aagab .PdfObject .String ());};return _fdd ;};
|
||
|
||
// 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{_cefff *_ae .PdfIndirectObject ;Certs []*_ae .PdfObjectStream ;OCSPs []*_ae .PdfObjectStream ;CRLs []*_ae .PdfObjectStream ;VRI map[string ]*VRI ;_eedc map[string ]*_ae .PdfObjectStream ;_fcgf map[string ]*_ae .PdfObjectStream ;_abda map[string ]*_ae .PdfObjectStream ;
|
||
};func (_fgde *PdfReader )newPdfAnnotationLinkFromDict (_gga *_ae .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_acda :=PdfAnnotationLink {};_acda .A =_gga .Get ("\u0041");_acda .Dest =_gga .Get ("\u0044\u0065\u0073\u0074");_acda .H =_gga .Get ("\u0048");
|
||
_acda .PA =_gga .Get ("\u0050\u0041");_acda .QuadPoints =_gga .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_acda .BS =_gga .Get ("\u0042\u0053");return &_acda ,nil ;};
|
||
|
||
// NewPdfColorPattern returns an empty color pattern.
|
||
func NewPdfColorPattern ()*PdfColorPattern {_bfcb :=&PdfColorPattern {};return _bfcb };
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_dcgce *PdfAcroForm )GetContainingPdfObject ()_ae .PdfObject {return _dcgce ._febbe };func (_fddf *PdfReader )newPdfAnnotationFileAttachmentFromDict (_bgdd *_ae .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_dbgd :=PdfAnnotationFileAttachment {};
|
||
_gfe ,_fdbd :=_fddf .newPdfAnnotationMarkupFromDict (_bgdd );if _fdbd !=nil {return nil ,_fdbd ;};_dbgd .PdfAnnotationMarkup =_gfe ;_dbgd .FS =_bgdd .Get ("\u0046\u0053");_dbgd .Name =_bgdd .Get ("\u004e\u0061\u006d\u0065");return &_dbgd ,nil ;};func _cbfb (_ccdda *_ae .PdfObjectDictionary )(*PdfFieldChoice ,error ){_ddef :=&PdfFieldChoice {};
|
||
_ddef .Opt ,_ =_ae .GetArray (_ccdda .Get ("\u004f\u0070\u0074"));_ddef .TI ,_ =_ae .GetInt (_ccdda .Get ("\u0054\u0049"));_ddef .I ,_ =_ae .GetArray (_ccdda .Get ("\u0049"));return _ddef ,nil ;};
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_be :=NewPdfAction ();_abb :=&PdfActionLaunch {};_abb .PdfAction =_be ;_be .SetContext (_abb );return _abb ;};func (_aagce *XObjectImage )getParamsDict ()*_ae .PdfObjectDictionary {_bgfedg :=_ae .MakeDict ();
|
||
_bgfedg .Set ("\u0057\u0069\u0064t\u0068",_ae .MakeInteger (*_aagce .Width ));_bgfedg .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ae .MakeInteger (*_aagce .Height ));_bgfedg .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ae .MakeInteger (int64 (_aagce .ColorSpace .GetNumComponents ())));
|
||
_bgfedg .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ae .MakeInteger (*_aagce .BitsPerComponent ));return _bgfedg ;};var _adaba =_bc .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _ae .PdfObject ;Flags _ae .PdfObject ;};
|
||
|
||
// 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 ;_gccbeg *_ae .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_ae .PdfObjectName ;Filter *_ae .PdfObjectName ;SubFilter *_ae .PdfObjectName ;Contents *_ae .PdfObjectString ;Cert _ae .PdfObject ;ByteRange *_ae .PdfObjectArray ;Reference *_ae .PdfObjectArray ;Changes *_ae .PdfObjectArray ;Name *_ae .PdfObjectString ;
|
||
M *_ae .PdfObjectString ;Location *_ae .PdfObjectString ;Reason *_ae .PdfObjectString ;ContactInfo *_ae .PdfObjectString ;R *_ae .PdfObjectInteger ;V *_ae .PdfObjectInteger ;PropBuild *_ae .PdfObjectDictionary ;PropAuthTime *_ae .PdfObjectInteger ;PropAuthType *_ae .PdfObjectName ;
|
||
};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_dabg pdfFont };
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_gbc :=NewPdfAnnotation ();_dade :=&PdfAnnotationCircle {};_dade .PdfAnnotation =_gbc ;_dade .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gbc .SetContext (_dade );return _dade ;};func (_beg *PdfReader )newPdfAnnotationPolygonFromDict (_eaff *_ae .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_gce :=PdfAnnotationPolygon {};
|
||
_bggd ,_fbfg :=_beg .newPdfAnnotationMarkupFromDict (_eaff );if _fbfg !=nil {return nil ,_fbfg ;};_gce .PdfAnnotationMarkup =_bggd ;_gce .Vertices =_eaff .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_gce .LE =_eaff .Get ("\u004c\u0045");_gce .BS =_eaff .Get ("\u0042\u0053");
|
||
_gce .IC =_eaff .Get ("\u0049\u0043");_gce .BE =_eaff .Get ("\u0042\u0045");_gce .IT =_eaff .Get ("\u0049\u0054");_gce .Measure =_eaff .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_gce ,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 (_bgca *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edcd :=vals [0];if _edcd < 0.0||_edcd > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_edcd );
|
||
return nil ,ErrColorOutOfRange ;};_bceg :=vals [1];if _bceg < 0.0||_bceg > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bceg );return nil ,ErrColorOutOfRange ;
|
||
};_bgdc :=vals [2];if _bgdc < 0.0||_bgdc > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_bgdc );return nil ,ErrColorOutOfRange ;};_fcbbf :=NewPdfColorCalRGB (_edcd ,_bceg ,_bgdc );
|
||
return _fcbbf ,nil ;};
|
||
|
||
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
|
||
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _ae .PdfObjectName ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cgae *PdfColorspaceDeviceGray )ToPdfObject ()_ae .PdfObject {return _ae .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_agdfg :=&XObjectForm {};_dacc :=&_ae .PdfObjectStream {};_dacc .PdfObjectDictionary =_ae .MakeDict ();_agdfg ._fccdf =_dacc ;return _agdfg ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_gadcg *PdfShadingPatternType3 )ToPdfObject ()_ae .PdfObject {_gadcg .PdfPattern .ToPdfObject ();_begbb :=_gadcg .getDict ();if _gadcg .Shading !=nil {_begbb .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_gadcg .Shading .ToPdfObject ());};if _gadcg .Matrix !=nil {_begbb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gadcg .Matrix );
|
||
};if _gadcg .ExtGState !=nil {_begbb .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_gadcg .ExtGState );};return _gadcg ._ebfged ;};
|
||
|
||
// 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 (_egdg *pdfFontSimple )SetEncoder (encoder _bgg .TextEncoder ){_egdg ._dead =encoder };
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_caafb *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_cffa :=pageNum -1;for _edfc :=range _caafb ._eabf {if _edfc ==_cffa {_dgfd :=page .Duplicate ();_gabdf (_dgfd );_caafb ._eabf [_edfc ]=_dgfd ;};};};func (_befc *PdfFont )baseFields ()*fontCommon {if _befc ._dabg ==nil {_ac .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 _befc ._dabg .baseFields ();};
|
||
|
||
// 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 (_ceaad *PdfFont )GetCharMetrics (code _bgg .CharCode )(CharMetrics ,bool ){var _dgfgf _cb .CharMetrics ;switch _fcfg :=_ceaad ._dabg .(type ){case *pdfFontSimple :if _ebfe ,_cdcf :=_fcfg .GetCharMetrics (code );_cdcf {return _ebfe ,_cdcf ;};case *pdfFontType0 :if _cdbda ,_cebafd :=_fcfg .GetCharMetrics (code );
|
||
_cebafd {return _cdbda ,_cebafd ;};case *pdfCIDFontType0 :if _gdfg ,_aabca :=_fcfg .GetCharMetrics (code );_aabca {return _gdfg ,_aabca ;};case *pdfCIDFontType2 :if _aagad ,_ccfd :=_fcfg .GetCharMetrics (code );_ccfd {return _aagad ,_ccfd ;};case *pdfFontType3 :if _deccg ,_agcdg :=_fcfg .GetCharMetrics (code );
|
||
_agcdg {return _deccg ,_agcdg ;};default:_ac .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",_ceaad ._dabg );
|
||
return _dgfgf ,false ;};if _fggegf ,_eeddg :=_ceaad .GetFontDescriptor ();_eeddg ==nil &&_fggegf !=nil {return _cb .CharMetrics {Wx :_fggegf ._ffdc },true ;};_ac .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",_ceaad );
|
||
return _dgfgf ,false ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_dcad *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};func _caabg ()string {_cadgd .Lock ();defer _cadgd .Unlock ();return _aedg };
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_dadg :=&PdfColorspaceLab {};_dadg .BlackPoint =[]float64 {0.0,0.0,0.0};_dadg .Range =[]float64 {-100,100,-100,100};return _dadg ;};
|
||
|
||
// 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 ;_gege *_ae .PdfIndirectObject ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_fgdef *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dcbg *PdfFilespec )ToPdfObject ()_ae .PdfObject {_fdcf :=_dcbg .getDict ();_fdcf .Clear ();_fdcf .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_fdcf .SetIfNotNil ("\u0046\u0053",_dcbg .FS );
|
||
_fdcf .SetIfNotNil ("\u0046",_dcbg .F );_fdcf .SetIfNotNil ("\u0055\u0046",_dcbg .UF );_fdcf .SetIfNotNil ("\u0044\u004f\u0053",_dcbg .DOS );_fdcf .SetIfNotNil ("\u004d\u0061\u0063",_dcbg .Mac );_fdcf .SetIfNotNil ("\u0055\u006e\u0069\u0078",_dcbg .Unix );
|
||
_fdcf .SetIfNotNil ("\u0049\u0044",_dcbg .ID );_fdcf .SetIfNotNil ("\u0056",_dcbg .V );_fdcf .SetIfNotNil ("\u0045\u0046",_dcbg .EF );_fdcf .SetIfNotNil ("\u0052\u0046",_dcbg .RF );_fdcf .SetIfNotNil ("\u0044\u0065\u0073\u0063",_dcbg .Desc );_fdcf .SetIfNotNil ("\u0043\u0049",_dcbg .CI );
|
||
return _dcbg ._caeaag ;};
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_cebcc *PdfReader )GetNumPages ()(int ,error ){if _cebcc ._bfcga .GetCrypter ()!=nil &&!_cebcc ._bfcga .IsAuthenticated (){return 0,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};return len (_cebcc ._bcaab ),nil ;};func (_dgegc *PdfReader )buildNameNodes (_ecbed *_ae .PdfIndirectObject ,_ddcgg map[_ae .PdfObject ]struct{})error {if _ecbed ==nil {return nil ;};if _ ,_efeaag :=_ddcgg [_ecbed ];_efeaag {_ac .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",_ecbed .ObjectNumber );
|
||
return nil ;};_ddcgg [_ecbed ]=struct{}{};_adfce ,_efgeg :=_ecbed .PdfObject .(*_ae .PdfObjectDictionary );if !_efgeg {return _db .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _dcddc ,_gfbed :=_ae .GetDict (_adfce .Get ("\u0044\u0065\u0073t\u0073"));
|
||
_gfbed {_efed ,_agcdd :=_ae .GetArray (_dcddc .Get ("\u004b\u0069\u0064\u0073"));if !_agcdd {return _db .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ac .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_efed );
|
||
for _bbgdf ,_gfcd :=range _efed .Elements (){_fggdf ,_degbg :=_ae .GetIndirect (_gfcd );if !_degbg {_ac .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",_fggdf );
|
||
return _db .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_efed .Set (_bbgdf ,_fggdf );_gcfbb :=_dgegc .buildNameNodes (_fggdf ,_ddcgg );if _gcfbb !=nil {return _gcfbb ;
|
||
};};};if _fedc ,_cdba :=_ae .GetDict (_adfce );_cdba {if !_ae .IsNullObject (_fedc .Get ("\u004b\u0069\u0064\u0073")){if _dgffb ,_ddbe :=_ae .GetArray (_fedc .Get ("\u004b\u0069\u0064\u0073"));_ddbe {for _cfcefe ,_bagga :=range _dgffb .Elements (){if _cgdc ,_cabeg :=_ae .GetIndirect (_bagga );
|
||
_cabeg {_dgffb .Set (_cfcefe ,_cgdc );_cdbf :=_dgegc .buildNameNodes (_cgdc ,_ddcgg );if _cdbf !=nil {return _cdbf ;};};};};};};return nil ;};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_ggbbb *PdfReader )PdfVersion ()_ae .Version {return _ggbbb ._bfcga .PdfVersion ()};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_bggc *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_db .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");
|
||
};_agfe ,_dfbcd :=_afc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._bbba ,img ._fdae );if _dfbcd !=nil {return img ,_dfbcd ;};_dage ,_dfbcd :=_afc .GrayConverter .Convert (_agfe );if _dfbcd !=nil {return img ,_dfbcd ;
|
||
};return _feagd (_dage .Base ()),nil ;};
|
||
|
||
// 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 (_fcdbe *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _fcdbe .flattenFieldsWithOpts (false ,appgen ,opts );};
|
||
|
||
// ToPdfObject implements model.PdfModel interface.
|
||
func (_bfce *PdfOutputIntent )ToPdfObject ()_ae .PdfObject {if _bfce ._gfdfbf ==nil {_bfce ._gfdfbf =_ae .MakeDict ();};_begb :=_bfce ._gfdfbf ;if _bfce .Type !=""{_begb .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName (_bfce .Type ));};_begb .Set ("\u0053",_ae .MakeName (_bfce .S .String ()));
|
||
if _bfce .OutputCondition !=""{_begb .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_ae .MakeString (_bfce .OutputCondition ));};_begb .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_ae .MakeString (_bfce .OutputConditionIdentifier ));
|
||
_begb .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_ae .MakeString (_bfce .RegistryName ));if _bfce .Info !=""{_begb .Set ("\u0049\u006e\u0066\u006f",_ae .MakeString (_bfce .Info ));};if len (_bfce .DestOutputProfile )!=0{_dcdca ,_acfa :=_ae .MakeStream (_bfce .DestOutputProfile ,_ae .NewFlateEncoder ());
|
||
if _acfa !=nil {_ac .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",_acfa );
|
||
};_dcdca .PdfObjectDictionary .Set ("\u004e",_ae .MakeInteger (int64 (_bfce .ColorComponents )));_eeab :=make ([]float64 ,_bfce .ColorComponents *2);for _dbcdf :=0;_dbcdf < _bfce .ColorComponents *2;_dbcdf ++{_addca :=0.0;if _dbcdf %2!=0{_addca =1.0;};
|
||
_eeab [_dbcdf ]=_addca ;};_dcdca .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_ae .MakeArrayFromFloats (_eeab ));_begb .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_dcdca );};return _begb ;
|
||
};func (_dcgbb *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _dcgbb ._cafdb };type pdfCIDFontType0 struct{fontCommon ;_cfbef *_ae .PdfIndirectObject ;_dbgg _bgg .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_ae .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ae .PdfObject ;W _ae .PdfObject ;DW2 _ae .PdfObject ;W2 _ae .PdfObject ;_abbcg map[_bgg .CharCode ]float64 ;_bbfb float64 ;};func (_gaebf *PdfWriter )adjustXRefAffectedVersion (_cfgaa bool ){if _cfgaa &&_gaebf ._faffe .Major ==1&&_gaebf ._faffe .Minor < 5{_gaebf ._faffe .Minor =5;
|
||
};};
|
||
|
||
// 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 *_ae .PdfObjectName ;Colorants _ae .PdfObject ;Process _ae .PdfObject ;MixingHints _ae .PdfObject ;_cabd *_ae .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
/*
|
||
Format: [/DeviceN names alternateSpace tintTransform]
|
||
or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
*/
|
||
func (_cfcb *PdfColorspaceDeviceN )ToPdfObject ()_ae .PdfObject {_cceeaf :=_ae .MakeArray (_ae .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_cceeaf .Append (_cfcb .ColorantNames );_cceeaf .Append (_cfcb .AlternateSpace .ToPdfObject ());_cceeaf .Append (_cfcb .TintTransform .ToPdfObject ());
|
||
if _cfcb .Attributes !=nil {_cceeaf .Append (_cfcb .Attributes .ToPdfObject ());};if _cfcb ._efbgg !=nil {_cfcb ._efbgg .PdfObject =_cceeaf ;return _cfcb ._efbgg ;};return _cceeaf ;};
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _ae .PdfObject ;H _ae .PdfObject ;};
|
||
|
||
// 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 (_gaag *PdfFont )SubsetRegistered ()error {switch _dcfcc :=_gaag ._dabg .(type ){case *pdfFontType0 :_gdcc :=_dcfcc .subsetRegistered ();if _gdcc !=nil {_ac .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gdcc );
|
||
return _gdcc ;};if _dcfcc ._fagcg !=nil {if _dcfcc ._bagdb !=nil {_dcfcc ._bagdb .ToPdfObject ();};_dcfcc .ToPdfObject ();};default:_ac .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",_dcfcc );
|
||
};return nil ;};
|
||
|
||
// 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 ,_gfdfbf :_ae .MakeDict (),ColorComponents :colorComponents };
|
||
};func _baabd (_fgbe _ae .PdfObject ,_gdbb bool )(*PdfFont ,error ){_gcee ,_dgag ,_egcfdg :=_accbe (_fgbe );if _gcee !=nil {_fagf (_gcee );};if _egcfdg !=nil {if _egcfdg ==ErrType1CFontNotSupported {_fcbf ,_dagf :=_gfbga (_gcee ,_dgag ,nil );if _dagf !=nil {_ac .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",_dgag ,_dagf );
|
||
return nil ,_egcfdg ;};return &PdfFont {_dabg :_fcbf },_egcfdg ;};return nil ,_egcfdg ;};_dbfga :=&PdfFont {};switch _dgag ._adce {case "\u0054\u0079\u0070e\u0030":if !_gdbb {_ac .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",_dgag );
|
||
return nil ,_db .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_cadf ,_bdee :=_ddgf (_gcee ,_dgag );if _bdee !=nil {_ac .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",_dgag ,_bdee );
|
||
return nil ,_bdee ;};_dbfga ._dabg =_cadf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _ggca *pdfFontSimple ;_gbcbe ,_bcacb :=_cb .NewStdFontByName (_cb .StdFontName (_dgag ._cedb ));
|
||
if _bcacb {_fada :=_fbefg (_gbcbe );_dbfga ._dabg =&_fada ;_efdc :=_ae .TraceToDirectObject (_fada .ToPdfObject ());_efbe ,_gfbd ,_cecbe :=_accbe (_efdc );if _cecbe !=nil {_ac .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",_dgag ,_fada );
|
||
return nil ,_cecbe ;};for _ ,_feff :=range _gcee .Keys (){_efbe .Set (_feff ,_gcee .Get (_feff ));};_ggca ,_cecbe =_gfbga (_efbe ,_gfbd ,_fada ._aacd );if _cecbe !=nil {_ac .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",_dgag ,_fada );
|
||
return nil ,_cecbe ;};_ggca ._deaed =_fada ._deaed ;_ggca ._gabf =_fada ._gabf ;if _ggca ._adegb ==nil {_ggca ._adegb =_fada ._adegb ;};}else {_ggca ,_egcfdg =_gfbga (_gcee ,_dgag ,nil );if _egcfdg !=nil {_ac .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",_dgag ,_egcfdg );
|
||
return nil ,_egcfdg ;};};_egcfdg =_ggca .addEncoding ();if _egcfdg !=nil {return nil ,_egcfdg ;};if _bcacb {_ggca .updateStandard14Font ();};if _bcacb &&_ggca ._dead ==nil &&_ggca ._aacd ==nil {_ac .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_ggca );
|
||
_ac .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_gbcbe );};if len (_ggca ._deaed )==0{_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_ggca );};_dbfga ._dabg =_ggca ;
|
||
case "\u0054\u0079\u0070e\u0033":_ffad ,_ccbbd :=_dgdfb (_gcee ,_dgag );if _ccbbd !=nil {_ac .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",_ccbbd );
|
||
return nil ,_ccbbd ;};_dbfga ._dabg =_ffad ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_eaad ,_fcdfe :=_aecgg (_gcee ,_dgag );if _fcdfe !=nil {_ac .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",_fcdfe );
|
||
return nil ,_fcdfe ;};_dbfga ._dabg =_eaad ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_ecbfae ,_cebd :=_agbff (_gcee ,_dgag );if _cebd !=nil {_ac .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",_dgag ,_cebd );
|
||
return nil ,_cebd ;};_dbfga ._dabg =_ecbfae ;default:_ac .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",_dgag );
|
||
return nil ,_f .Errorf ("\u0075\u006e\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065d\u0020\u0066\u006f\u006e\u0074\u0020\u0074y\u0070\u0065\u003a\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_dgag );};return _dbfga ,nil ;};
|
||
|
||
// PdfColorspaceSpecialSeparation is a Separation colorspace.
|
||
// At the moment the colour space is set to a Separation space, the conforming reader shall determine whether the
|
||
// device has an available colorant (e.g. dye) corresponding to the name of the requested space. If so, the conforming
|
||
// reader shall ignore the alternateSpace and tintTransform parameters; subsequent painting operations within the
|
||
// space shall apply the designated colorant directly, according to the tint values supplied.
|
||
//
|
||
// Format: [/Separation name alternateSpace tintTransform]
|
||
type PdfColorspaceSpecialSeparation struct{ColorantName *_ae .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_ddaac *_ae .PdfIndirectObject ;};
|
||
|
||
// PdfColorDeviceGray represents a grayscale color value that shall be represented by a single number in the
|
||
// range 0.0 to 1.0 where 0.0 corresponds to black and 1.0 to white.
|
||
type PdfColorDeviceGray float64 ;func _gdbe (_dbbf *_ae .PdfObjectDictionary )bool {for _ ,_eaeg :=range _dbbf .Keys (){if _ ,_gfdfg :=_defe [_eaeg .String ()];_gfdfg {return true ;};};return false ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bd *PdfActionGoToE )ToPdfObject ()_ae .PdfObject {_bd .PdfAction .ToPdfObject ();_dgc :=_bd ._cbe ;_daa :=_dgc .PdfObject .(*_ae .PdfObjectDictionary );_daa .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoToE )));if _bd .F !=nil {_daa .Set ("\u0046",_bd .F .ToPdfObject ());
|
||
};_daa .SetIfNotNil ("\u0044",_bd .D );_daa .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bd .NewWindow );_daa .SetIfNotNil ("\u0054",_bd .T );return _dgc ;};func _ecabg (_fbdfc _ae .PdfObject ){_ac .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_fbdfc ,_fbdfc .String ());
|
||
if _cegbb ,_deadgd :=_fbdfc .(*_ae .PdfObjectStream );_deadgd {_daeff ,_feeae :=_ae .DecodeStream (_cegbb );if _feeae !=nil {_ac .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_feeae );return ;};_ac .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_daeff );
|
||
}else if _begeg ,_afafeg :=_fbdfc .(*_ae .PdfIndirectObject );_afafeg {_ac .Log .Debug ("\u0025\u0054\u0020%\u0076",_begeg .PdfObject ,_begeg .PdfObject );_ac .Log .Debug ("\u0025\u0073",_begeg .PdfObject .String ());};};func _decf (_beeeg StdFontName )(pdfFontSimple ,error ){_agad ,_bgbe :=_cb .NewStdFontByName (_beeeg );
|
||
if !_bgbe {return pdfFontSimple {},ErrFontNotSupported ;};_becdb :=_fbefg (_agad );return _becdb ,nil ;};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_cdcc FieldFlag )String ()string {_gcda :="";if _cdcc ==FieldFlagClear {_gcda ="\u0043\u006c\u0065a\u0072";return _gcda ;};if _cdcc &FieldFlagReadOnly > 0{_gcda +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _cdcc &FieldFlagRequired > 0{_gcda +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
|
||
};if _cdcc &FieldFlagNoExport > 0{_gcda +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _cdcc &FieldFlagNoToggleToOff > 0{_gcda +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _cdcc &FieldFlagRadio > 0{_gcda +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _cdcc &FieldFlagPushbutton > 0{_gcda +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _cdcc &FieldFlagRadiosInUnision > 0{_gcda +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _cdcc &FieldFlagMultiline > 0{_gcda +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
|
||
};if _cdcc &FieldFlagPassword > 0{_gcda +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _cdcc &FieldFlagFileSelect > 0{_gcda +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _cdcc &FieldFlagDoNotScroll > 0{_gcda +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
|
||
};if _cdcc &FieldFlagComb > 0{_gcda +="\u007c\u0043\u006fm\u0062";};if _cdcc &FieldFlagRichText > 0{_gcda +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _cdcc &FieldFlagDoNotSpellCheck > 0{_gcda +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
|
||
};if _cdcc &FieldFlagCombo > 0{_gcda +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _cdcc &FieldFlagEdit > 0{_gcda +="\u007c\u0045\u0064i\u0074";};if _cdcc &FieldFlagSort > 0{_gcda +="\u007c\u0053\u006fr\u0074";};if _cdcc &FieldFlagMultiSelect > 0{_gcda +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _cdcc &FieldFlagCommitOnSelChange > 0{_gcda +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _eg .Trim (_gcda ,"\u007c");};
|
||
|
||
// 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 (_agcdgd *Image )GetSamples ()[]uint32 {_eaggc :=_ba .ResampleBytes (_agcdgd .Data ,int (_agcdgd .BitsPerComponent ));if _agcdgd .BitsPerComponent < 8{_eaggc =_agcdgd .samplesTrimPadding (_eaggc );};_gfce :=int (_agcdgd .Width )*int (_agcdgd .Height )*_agcdgd .ColorComponents ;
|
||
if len (_eaggc )< _gfce {_ac .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 (_eaggc ),_gfce );
|
||
return _eaggc ;}else if len (_eaggc )> _gfce {_ac .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 (_eaggc ),_gfce );
|
||
_eaggc =_eaggc [:_gfce ];};return _eaggc ;};func _fagf (_aebaf *_ae .PdfObjectDictionary ){_cbga ,_edca :=_ae .GetArray (_aebaf .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_bfbgc ,_ceebd :=_ae .GetIntVal (_aebaf .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));
|
||
_afac ,_fgee :=_ae .GetIntVal (_aebaf .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _edca &&_ceebd &&_fgee {_ccdaa :=_cbga .Len ();if _ccdaa !=_afac -_bfbgc +1{_ac .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",_ccdaa ,_afac );
|
||
_cggb :=_ae .PdfObjectInteger (_bfbgc +_ccdaa -1);_aebaf .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_cggb );};};};
|
||
|
||
// GetPdfVersion gets the version of the PDF used within this document.
|
||
func (_efedb *PdfWriter )GetPdfVersion ()string {return _efedb .getPdfVersion ()};
|
||
|
||
// GetRevisionNumber returns the version of the current Pdf document
|
||
func (_cfbgdb *PdfReader )GetRevisionNumber ()int {return _cfbgdb ._bfcga .GetRevisionNumber ()};
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};func (_dbe *PdfReader )newPdfActionResetFormFromDict (_aaga *_ae .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_aaga .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_aaga .Get ("\u0046\u006c\u0061g\u0073")},nil ;
|
||
};func _bbccf (_bgdcg *PdfField ,_abfec _ae .PdfObject ){for _ ,_gfeb :=range _bgdcg .Annotations {_gfeb .AS =_abfec ;_gfeb .ToPdfObject ();};};func _eebaa (_gdcce *[]*PdfField ,_ecbfb FieldFilterFunc ,_addbca bool )[]*PdfField {if _gdcce ==nil {return nil ;
|
||
};_dbfe :=*_gdcce ;if len (*_gdcce )==0{return nil ;};_gecc :=_dbfe [:0];if _ecbfb ==nil {_ecbfb =func (*PdfField )bool {return true };};var _gfegd []*PdfField ;for _ ,_ecacc :=range _dbfe {_bdafc :=_ecbfb (_ecacc );if _bdafc {_gfegd =append (_gfegd ,_ecacc );
|
||
if len (_ecacc .Kids )> 0{_gfegd =append (_gfegd ,_eebaa (&_ecacc .Kids ,_ecbfb ,_addbca )...);};};if !_addbca ||!_bdafc ||len (_ecacc .Kids )> 0{_gecc =append (_gecc ,_ecacc );};};*_gdcce =_gecc ;return _gfegd ;};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _ae .StreamEncoder ;FormType _ae .PdfObject ;BBox _ae .PdfObject ;Matrix _ae .PdfObject ;Resources *PdfPageResources ;Group _ae .PdfObject ;Ref _ae .PdfObject ;MetaData _ae .PdfObject ;PieceInfo _ae .PdfObject ;LastModified _ae .PdfObject ;
|
||
StructParent _ae .PdfObject ;StructParents _ae .PdfObject ;OPI _ae .PdfObject ;OC _ae .PdfObject ;Name _ae .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_fccdf *_ae .PdfObjectStream ;};
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_ebfa :=&XObjectImage {};_dcaeg :=&_ae .PdfObjectStream {};_dcaeg .PdfObjectDictionary =_ae .MakeDict ();_ebfa ._efaag =_dcaeg ;return _ebfa ;};func _dcdc (_dacbb string )(map[_bgg .CharCode ]_bgg .GlyphName ,error ){_fcaaf :=_eg .Split (_dacbb ,"\u000a");
|
||
_abdeb :=make (map[_bgg .CharCode ]_bgg .GlyphName );for _ ,_bcafc :=range _fcaaf {_adfcc :=_agaeb .FindStringSubmatch (_bcafc );if _adfcc ==nil {continue ;};_abece ,_bgea :=_adfcc [1],_adfcc [2];_afcd ,_eafge :=_bg .Atoi (_abece );if _eafge !=nil {_ac .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",_bcafc );
|
||
return nil ,_ae .ErrTypeError ;};_abdeb [_bgg .CharCode (_afcd )]=_bgg .GlyphName (_bgea );};_ac .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",_abdeb );
|
||
return _abdeb ,nil ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_aabc *PdfColorCalRGB )C ()float64 {return _aabc [2]};
|
||
|
||
// 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 (_feagg _gdc .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_abeb _de .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_afgc _de .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_dgdfg *Image ,_bbdbg int64 )(*Image ,error );};func (_cddde *PdfWriter )writeTrailer (_cdacc int ){_cddde .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");for _fagcd :=0;_fagcd <=_cdacc ;{for ;_fagcd <=_cdacc ;_fagcd ++{_egcgd ,_bfdce :=_cddde ._agfeg [_fagcd ];
|
||
if _bfdce &&(!_cddde ._dffad ||_cddde ._dffad &&(_egcgd .Type ==1&&_egcgd .Offset >=_cddde ._gaffa ||_egcgd .Type ==0)){break ;};};var _ecdc int ;for _ecdc =_fagcd +1;_ecdc <=_cdacc ;_ecdc ++{_gbeceb ,_fdedg :=_cddde ._agfeg [_ecdc ];if _fdedg &&(!_cddde ._dffad ||_cddde ._dffad &&(_gbeceb .Type ==1&&_gbeceb .Offset > _cddde ._gaffa )){continue ;
|
||
};break ;};_ebafbe :=_f .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_fagcd ,_ecdc -_fagcd );_cddde .writeString (_ebafbe );for _edfea :=_fagcd ;_edfea < _ecdc ;_edfea ++{_geeg :=_cddde ._agfeg [_edfea ];switch _geeg .Type {case 0:_ebafbe =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
|
||
_cddde .writeString (_ebafbe );case 1:_ebafbe =_f .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_geeg .Offset ,0);_cddde .writeString (_ebafbe );};};_fagcd =_ecdc +1;};_bbafb :=_ae .MakeDict ();_bbafb .Set ("\u0049\u006e\u0066\u006f",_cddde ._cbffg );
|
||
_bbafb .Set ("\u0052\u006f\u006f\u0074",_cddde ._aacfc );_bbafb .Set ("\u0053\u0069\u007a\u0065",_ae .MakeInteger (int64 (_cdacc +1)));if _cddde ._dffad &&_cddde ._afadc > 0{_bbafb .Set ("\u0050\u0072\u0065\u0076",_ae .MakeInteger (_cddde ._afadc ));};
|
||
if _cddde ._ecedf !=nil {_bbafb .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_cddde ._feddfa );};if _cddde ._dcdbd ==nil &&_cddde ._fddgb !=""&&_cddde ._dbdab !=""{_cddde ._dcdbd =_ae .MakeArray (_ae .MakeHexString (_cddde ._fddgb ),_ae .MakeHexString (_cddde ._dbdab ));
|
||
};if _cddde ._dcdbd !=nil {_bbafb .Set ("\u0049\u0044",_cddde ._dcdbd );_ac .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_cddde ._dcdbd );};_cddde .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_cddde .writeString (_bbafb .WriteString ());
|
||
_cddde .writeString ("\u000a");};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_cbd *PdfAction )GetContext ()PdfModel {if _cbd ==nil {return nil ;};return _cbd ._df ;};func _acada (_ddfgba *PdfField )[]*PdfField {_cceaf :=[]*PdfField {_ddfgba };for _ ,_agbdg :=range _ddfgba .Kids {_cceaf =append (_cceaf ,_acada (_agbdg )...);
|
||
};return _cceaf ;};
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_cdbd *DSS )GetContainingPdfObject ()_ae .PdfObject {return _cdbd ._cefff };
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_cdfca *PdfWriter )WriteToFile (outputFilePath string )error {_cfffg ,_aaaf :=_af .Create (outputFilePath );if _aaaf !=nil {return _aaaf ;};defer _cfffg .Close ();return _cdfca .Write (_cfffg );};
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_bffd *PdfFieldButton )ToPdfObject ()_ae .PdfObject {_bffd .PdfField .ToPdfObject ();_gada :=_bffd ._facca ;_adddg :=_gada .PdfObject .(*_ae .PdfObjectDictionary );_adddg .Set ("\u0046\u0054",_ae .MakeName ("\u0042\u0074\u006e"));if _bffd .Opt !=nil {_adddg .Set ("\u004f\u0070\u0074",_bffd .Opt );
|
||
};return _gada ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_edefc *PdfTransformParamsDocMDP )WriteString ()string {return _edefc .ToPdfObject ().WriteString ();};
|
||
|
||
// IsValid checks if the given pdf output intent type is valid.
|
||
func (_bedd PdfOutputIntentType )IsValid ()bool {return _bedd >=PdfOutputIntentTypeA1 &&_bedd <=PdfOutputIntentTypeX ;};func _accbe (_edagb _ae .PdfObject )(*_ae .PdfObjectDictionary ,*fontCommon ,error ){_efaf :=&fontCommon {};if _gbbeb ,_adbg :=_edagb .(*_ae .PdfIndirectObject );
|
||
_adbg {_efaf ._efef =_gbbeb .ObjectNumber ;};_bedbe ,_gfba :=_ae .GetDict (_edagb );if !_gfba {_ac .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",_edagb );
|
||
return nil ,nil ,ErrFontNotSupported ;};_gdgd ,_gfba :=_ae .GetNameVal (_bedbe .Get ("\u0054\u0079\u0070\u0065"));if !_gfba {_ac .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 _gdgd !="\u0046\u006f\u006e\u0074"{_ac .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.",_gdgd ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_ae .ErrTypeError ;};_bfag ,_gfba :=_ae .GetNameVal (_bedbe .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_gfba {_ac .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 ;};_efaf ._adce =_bfag ;_dcace ,_gfba :=_ae .GetNameVal (_bedbe .Get ("\u004e\u0061\u006d\u0065"));if _gfba {_efaf ._bbce =_dcace ;};_edfgg :=_bedbe .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _edfgg !=nil {_efaf ._dgea =_ae .TraceToDirectObject (_edfgg );
|
||
_ageb ,_gfff :=_dcbf (_efaf ._dgea ,_efaf );if _gfff !=nil {return _bedbe ,_efaf ,_gfff ;};_efaf ._ebfdc =_ageb ;}else if _bfag =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_bfag =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_eedf ,_ggcbf :=_abg .NewCIDSystemInfo (_bedbe .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _ggcbf !=nil {return _bedbe ,_efaf ,_ggcbf ;};_fgdc :=_f .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_eedf .Registry ,_eedf .Ordering );if _abg .IsPredefinedCMap (_fgdc ){_efaf ._ebfdc ,_ggcbf =_abg .LoadPredefinedCMap (_fgdc );
|
||
if _ggcbf !=nil {_ac .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",_fgdc ,_ggcbf );
|
||
};};};_dcbd :=_bedbe .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _dcbd !=nil {_dgece ,_dcbc :=_ebbc (_dcbd );if _dcbc !=nil {_ac .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",_dcbc );
|
||
return _bedbe ,_efaf ,_dcbc ;};_efaf ._cafdb =_dgece ;};if _bfag !="\u0054\u0079\u0070e\u0033"{_defb ,_fbbg :=_ae .GetNameVal (_bedbe .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_fbbg {_ac .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 _bedbe ,_efaf ,ErrRequiredAttributeMissing ;};_efaf ._cedb =_defb ;};return _bedbe ,_efaf ,nil ;};func (_bedf *PdfReader )newPdfActionNamedFromDict (_dac *_ae .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_dac .Get ("\u004e")},nil ;
|
||
};func (_gfab *Image )resampleLowBits (_dfgfee []uint32 ){_fdcag :=_afc .BytesPerLine (int (_gfab .Width ),int (_gfab .BitsPerComponent ),_gfab .ColorComponents );_bbdfc :=make ([]byte ,_gfab .ColorComponents *_fdcag *int (_gfab .Height ));_eefgf :=int (_gfab .BitsPerComponent )*_gfab .ColorComponents *int (_gfab .Width );
|
||
_ffbd :=uint8 (8);var (_agcga ,_gabda int ;_edcaa uint32 ;);for _bbea :=0;_bbea < int (_gfab .Height );_bbea ++{_gabda =_bbea *_fdcag ;for _fbge :=0;_fbge < _eefgf ;_fbge ++{_edcaa =_dfgfee [_agcga ];_ffbd -=uint8 (_gfab .BitsPerComponent );_bbdfc [_gabda ]|=byte (_edcaa )<<_ffbd ;
|
||
if _ffbd ==0{_ffbd =8;_gabda ++;};_agcga ++;};};_gfab .Data =_bbdfc ;};func (_dadgg *PdfReader )loadAnnotations (_bfggf _ae .PdfObject )([]*PdfAnnotation ,error ){_bdbga ,_aafe :=_ae .GetArray (_bfggf );if !_aafe {return nil ,_f .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _edeg []*PdfAnnotation ;for _ ,_ecdb :=range _bdbga .Elements (){_ecdb =_ae .ResolveReference (_ecdb );if _ ,_befcg :=_ecdb .(*_ae .PdfObjectNull );_befcg {continue ;};_aebca ,_fdab :=_ecdb .(*_ae .PdfObjectDictionary );_defde ,_bgbfc :=_ecdb .(*_ae .PdfIndirectObject );
|
||
if _fdab {_defde =&_ae .PdfIndirectObject {};_defde .PdfObject =_aebca ;}else {if !_bgbfc {return nil ,_f .Errorf ("\u0061\u006eno\u0074\u0061\u0074i\u006f\u006e\u0020\u006eot \u0069n \u0061\u006e\u0020\u0069\u006e\u0064\u0069re\u0063\u0074\u0020\u006f\u0062\u006a\u0065c\u0074");
|
||
};};_deadg ,_egeeg :=_dadgg .newPdfAnnotationFromIndirectObject (_defde );if _egeeg !=nil {return nil ,_egeeg ;};switch _ffdd :=_deadg .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_bggddg :=range _dadgg .AcroForm .AllFields (){if _bggddg ._facca ==_ffdd .Parent {_ffdd ._bab =_bggddg ;
|
||
break ;};};};if _deadg !=nil {_edeg =append (_edeg ,_deadg );};};return _edeg ,nil ;};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_eebdd *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _eebdd .MediaBox !=nil {return _eebdd .MediaBox ,nil ;};_dfcbd :=_eebdd .Parent ;for _dfcbd !=nil {_gdebe ,_addag :=_ae .GetDict (_dfcbd );if !_addag {return nil ,_db .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 _cfbgd :=_gdebe .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_cfbgd !=nil {_baecd ,_aagae :=_ae .GetArray (_cfbgd );if !_aagae {return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_ffff ,_geccd :=NewPdfRectangle (*_baecd );if _geccd !=nil {return nil ,_geccd ;};return _ffff ,nil ;};_dfcbd =_gdebe .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_db .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_cbdf *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_ae .StreamEncoder ,error ){_ddcbf ,_fdgcc :=_cbdf ._ebfged .(*_ae .PdfObjectStream );if !_fdgcc {_ac .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",_cbdf ._ebfged );
|
||
return nil ,nil ,_ae .ErrTypeError ;};_cdcec ,_gbbbe :=_ae .DecodeStream (_ddcbf );if _gbbbe !=nil {_ac .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",_gbbbe );
|
||
return nil ,nil ,_gbbbe ;};_cfecc ,_gbbbe :=_ae .NewEncoderFromStream (_ddcbf );if _gbbbe !=nil {_ac .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",_gbbbe );
|
||
return nil ,nil ,_gbbbe ;};return _cdcec ,_cfecc ,nil ;};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_adf :=NewPdfAnnotation ();_gab :=&PdfAnnotationRedact {};_gab .PdfAnnotation =_adf ;_gab .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_adf .SetContext (_gab );return _gab ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_bcacd *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ac .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_fcffg :=[]float64 {0.0};if _bcacd .C0 !=nil {_fcffg =_bcacd .C0 ;};_ddfc :=[]float64 {1.0};if _bcacd .C1 !=nil {_ddfc =_bcacd .C1 ;};var _fgafg []float64 ;for _gcgae :=0;_gcgae < len (_fcffg );_gcgae ++{_cagea :=_fcffg [_gcgae ]+_ag .Pow (x [0],_bcacd .N )*(_ddfc [_gcgae ]-_fcffg [_gcgae ]);
|
||
_fgafg =append (_fgafg ,_cagea );};return _fgafg ,nil ;};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _ae .PdfObject ;NewWindow _ae .PdfObject ;T _ae .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aff *PdfActionTrans )ToPdfObject ()_ae .PdfObject {_aff .PdfAction .ToPdfObject ();_fef :=_aff ._cbe ;_abba :=_fef .PdfObject .(*_ae .PdfObjectDictionary );_abba .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeTrans )));_abba .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_aff .Trans );
|
||
return _fef ;};func (_ebfebb *PdfWriter )optimizeDocument ()error {if _ebfebb ._bccf ==nil {return nil ;};_afdfe ,_ffedd :=_ae .GetDict (_ebfebb ._cbffg );if !_ffedd {return _db .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");
|
||
};_aafc :=_ed .Document {ID :[2]string {_ebfebb ._fddgb ,_ebfebb ._dbdab },Version :_ebfebb ._faffe ,Objects :_ebfebb ._edbe ,Info :_afdfe ,Crypt :_ebfebb ._ecedf ,UseHashBasedID :_ebfebb ._gfbc };if _gdee :=_ebfebb ._bccf .ApplyStandard (&_aafc );_gdee !=nil {return _gdee ;
|
||
};_ebfebb ._fddgb ,_ebfebb ._dbdab =_aafc .ID [0],_aafc .ID [1];_ebfebb ._faffe =_aafc .Version ;_ebfebb ._edbe =_aafc .Objects ;_ebfebb ._cbffg .PdfObject =_aafc .Info ;_ebfebb ._gfbc =_aafc .UseHashBasedID ;_ebfebb ._ecedf =_aafc .Crypt ;_fcgec :=make (map[_ae .PdfObject ]struct{},len (_ebfebb ._edbe ));
|
||
for _ ,_gaccg :=range _ebfebb ._edbe {_fcgec [_gaccg ]=struct{}{};};_ebfebb ._faecg =_fcgec ;return nil ;};
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _ae .PdfObject ;IsMap _ae .PdfObject ;};
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};
|
||
|
||
// 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 ){_bdeg ,_dddge :=_af .Open (filePath );if _dddge !=nil {_ac .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",_dddge );
|
||
return nil ,_dddge ;};defer _bdeg .Close ();return NewPdfFontFromTTF (_bdeg );};
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_aace *Image )AlphaMap (mapFunc AlphaMapFunc ){for _bgafg ,_eeeg :=range _aace ._bbba {_aace ._bbba [_bgafg ]=mapFunc (_eeeg );};};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_ggeg *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_befdd *_ae .PdfIndirectObject ;};
|
||
|
||
// 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 (_eebbc *PdfFont )CharcodesToUnicodeWithStats (charcodes []_bgg .CharCode )(_cfgf []rune ,_dcdbcg ,_aebac int ){_ededg ,_dcdbcg ,_aebac :=_eebbc .CharcodesToStrings (charcodes );return []rune (_eg .Join (_ededg ,"")),_dcdbcg ,_aebac ;};
|
||
|
||
// 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 _gdc .ReadSeeker )(*CompliancePdfReader ,error ){const _beee ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_fadg ,_gfgda :=_fccgfc (rs ,&ReaderOpts {ComplianceMode :true },false ,_beee );
|
||
if _gfgda !=nil {return nil ,_gfgda ;};return &CompliancePdfReader {PdfReader :_fadg },nil ;};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_abd :=NewPdfAction ();_dfa :=&PdfActionJavaScript {};_dfa .PdfAction =_abd ;_abd .SetContext (_dfa );return _dfa ;};
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_bga *PdfAnnotation )SetContext (ctx PdfModel ){_bga ._ggd =ctx };func (_cfbaf *PdfPage )getParentResources ()(*PdfPageResources ,error ){_ggaaf :=_cfbaf .Parent ;for _ggaaf !=nil {_dedf ,_bfceb :=_ae .GetDict (_ggaaf );if !_bfceb {_ac .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 ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _fdaba :=_dedf .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_fdaba !=nil {_deffa ,_abef :=_ae .GetDict (_fdaba );
|
||
if !_abef {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_dedba ,_gbgga :=NewPdfPageResourcesFromDict (_deffa );if _gbgga !=nil {return nil ,_gbgga ;};return _dedba ,nil ;
|
||
};_ggaaf =_dedf .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_deab *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_db .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");
|
||
};_ecdd ,_affef :=_afc .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._bbba ,img ._fdae );if _affef !=nil {return img ,_affef ;};_afabd ,_affef :=_afc .NRGBAConverter .Convert (_ecdd );
|
||
if _affef !=nil {return img ,_affef ;};_caeacdc :=_feagd (_afabd .Base ());_ac .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ac .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );
|
||
_ac .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_caeacdc .Data );_ac .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_caeacdc );return _caeacdc ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_cfdbe *PdfColorLab )ToInteger (bits int )[3]uint32 {_dbgb :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_dbgb *_cfdbe .L ()),uint32 (_dbgb *_cfdbe .A ()),uint32 (_dbgb *_cfdbe .B ())};};
|
||
|
||
// 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 ;
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_cbaf *PdfColorLab )A ()float64 {return _cbaf [1]};func _ebda (_cabc *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_cabc }};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_bceb *PdfShadingPattern )ToPdfObject ()_ae .PdfObject {_bceb .PdfPattern .ToPdfObject ();_daefa :=_bceb .getDict ();if _bceb .Shading !=nil {_daefa .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_bceb .Shading .ToPdfObject ());};if _bceb .Matrix !=nil {_daefa .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bceb .Matrix );
|
||
};if _bceb .ExtGState !=nil {_daefa .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_bceb .ExtGState );};return _bceb ._ebfged ;};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_ddec *PdfAcroForm )Fill (provider FieldValueProvider )error {return _ddec .fill (provider ,nil )};func (_aeeg *PdfReader )newPdfActionTransFromDict (_cca *_ae .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_cca .Get ("\u0054\u0072\u0061n\u0073")},nil ;
|
||
};
|
||
|
||
// EnableChain adds the specified certificate chain and validation data (OCSP
|
||
// and CRL information) for it to the global scope of the document DSS. The
|
||
// added data is used for validating any of the signatures present in the
|
||
// document. The LTV client attempts to build the certificate chain up to a
|
||
// trusted root by downloading any missing certificates.
|
||
func (_agcc *LTV )EnableChain (chain []*_fc .Certificate )error {return _agcc .enable (nil ,chain ,"")};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ffebd *PdfAnnotationStamp )ToPdfObject ()_ae .PdfObject {_ffebd .PdfAnnotation .ToPdfObject ();_bdgg :=_ffebd ._gcgf ;_gffa :=_bdgg .PdfObject .(*_ae .PdfObjectDictionary );_ffebd .PdfAnnotationMarkup .appendToPdfDictionary (_gffa );_gffa .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_gffa .SetIfNotNil ("\u004e\u0061\u006d\u0065",_ffebd .Name );return _bdgg ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_ccda *DSS )ToPdfObject ()_ae .PdfObject {_gdcag :=_ccda ._cefff .PdfObject .(*_ae .PdfObjectDictionary );_gdcag .Clear ();_gdde :=_ae .MakeDict ();for _bbda ,_bccdb :=range _ccda .VRI {_gdde .Set (*_ae .MakeName (_bbda ),_bccdb .ToPdfObject ());
|
||
};_gdcag .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_ceaec (_ccda .Certs ));_gdcag .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_ceaec (_ccda .OCSPs ));_gdcag .SetIfNotNil ("\u0043\u0052\u004c\u0073",_ceaec (_ccda .CRLs ));_gdcag .Set ("\u0056\u0052\u0049",_gdde );
|
||
return _ccda ._cefff ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_fabcd *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_fabcd .NumInputs {_ac .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 ,_db .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _fabcd ._fegc ==nil {_dgceb :=_fabcd .processSamples ();if _dgceb !=nil {return nil ,_dgceb ;};};_fadd :=_fabcd .Encode ;if _fadd ==nil {_fadd =[]float64 {};
|
||
for _edbfg :=0;_edbfg < len (_fabcd .Size );_edbfg ++{_fadd =append (_fadd ,0);_fadd =append (_fadd ,float64 (_fabcd .Size [_edbfg ]-1));};};_ffagg :=_fabcd .Decode ;if _ffagg ==nil {_ffagg =_fabcd .Range ;};_gafc :=make ([]int ,len (x ));for _cdece :=0;
|
||
_cdece < len (x );_cdece ++{_gbfgg :=x [_cdece ];_acde :=_ag .Min (_ag .Max (_gbfgg ,_fabcd .Domain [2*_cdece ]),_fabcd .Domain [2*_cdece +1]);_cdfgc :=_afc .LinearInterpolate (_acde ,_fabcd .Domain [2*_cdece ],_fabcd .Domain [2*_cdece +1],_fadd [2*_cdece ],_fadd [2*_cdece +1]);
|
||
_ccggd :=_ag .Min (_ag .Max (_cdfgc ,0),float64 (_fabcd .Size [_cdece ]-1));_ddcf :=int (_ag .Floor (_ccggd +0.5));if _ddcf < 0{_ddcf =0;}else if _ddcf > _fabcd .Size [_cdece ]{_ddcf =_fabcd .Size [_cdece ]-1;};_gafc [_cdece ]=_ddcf ;};_abdd :=_gafc [0];
|
||
for _dfef :=1;_dfef < _fabcd .NumInputs ;_dfef ++{_bbfd :=_gafc [_dfef ];for _gaae :=0;_gaae < _dfef ;_gaae ++{_bbfd *=_fabcd .Size [_gaae ];};_abdd +=_bbfd ;};_abdd *=_fabcd .NumOutputs ;var _dabdc []float64 ;for _cdccg :=0;_cdccg < _fabcd .NumOutputs ;
|
||
_cdccg ++{_ffdac :=_abdd +_cdccg ;if _ffdac >=len (_fabcd ._fegc ){_ac .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 ;};_cegdf :=_fabcd ._fegc [_ffdac ];_gbfgc :=_afc .LinearInterpolate (float64 (_cegdf ),0,_ag .Pow (2,float64 (_fabcd .BitsPerSample )),_ffagg [2*_cdccg ],_ffagg [2*_cdccg +1]);_gdag :=_ag .Min (_ag .Max (_gbfgc ,_fabcd .Range [2*_cdccg ]),_fabcd .Range [2*_cdccg +1]);
|
||
_dabdc =append (_dabdc ,_gdag );};return _dabdc ,nil ;};
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_ffcb *PdfField )SetFlag (flag FieldFlag ){_ffcb .Ff =_ae .MakeInteger (int64 (flag ))};
|
||
|
||
// 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 (_abed *LTV )Enable (sig *PdfSignature ,extraCerts []*_fc .Certificate )error {if _affad :=_abed .validateSig (sig );_affad !=nil {return _affad ;};_gdage ,_gbacb :=_abed .generateVRIKey (sig );if _gbacb !=nil {return _gbacb ;};if _ ,_fbed :=_abed ._dbggb .VRI [_gdage ];
|
||
_fbed &&_abed .SkipExisting {return nil ;};_bece ,_gbacb :=sig .GetCerts ();if _gbacb !=nil {return _gbacb ;};return _abed .enable (_bece ,extraCerts ,_gdage );};var (_cgcea =_bc .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");
|
||
_bage =_bc .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");_agaeb =_bc .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");
|
||
_aeebg ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_aagfc ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_aedef ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_gdaf *Image )GetParamsDict ()*_ae .PdfObjectDictionary {_ebeba :=_ae .MakeDict ();_ebeba .Set ("\u0057\u0069\u0064t\u0068",_ae .MakeInteger (_gdaf .Width ));_ebeba .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_ae .MakeInteger (_gdaf .Height ));_ebeba .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ae .MakeInteger (int64 (_gdaf .ColorComponents )));
|
||
_ebeba .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_ae .MakeInteger (_gdaf .BitsPerComponent ));return _ebeba ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ecg *PdfActionSubmitForm )ToPdfObject ()_ae .PdfObject {_ecg .PdfAction .ToPdfObject ();_gge :=_ecg ._cbe ;_eef :=_gge .PdfObject .(*_ae .PdfObjectDictionary );_eef .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeSubmitForm )));if _ecg .F !=nil {_eef .Set ("\u0046",_ecg .F .ToPdfObject ());
|
||
};_eef .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_ecg .Fields );_eef .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_ecg .Flags );return _gge ;};
|
||
|
||
// AnnotFilterFunc represents a PDF annotation filtering function. If the function
|
||
// returns true, the annotation is kept, otherwise it is discarded.
|
||
type AnnotFilterFunc func (*PdfAnnotation )bool ;func (_abbdc *PdfSignature )extractChainFromPKCS7 ()([]*_fc .Certificate ,error ){_dgaae ,_cebcf :=_dge .Parse (_abbdc .Contents .Bytes ());if _cebcf !=nil {return nil ,_cebcf ;};return _dgaae .Certificates ,nil ;
|
||
};
|
||
|
||
// 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 _ae .PdfObject ;FontFamily _ae .PdfObject ;FontStretch _ae .PdfObject ;FontWeight _ae .PdfObject ;Flags _ae .PdfObject ;FontBBox _ae .PdfObject ;ItalicAngle _ae .PdfObject ;Ascent _ae .PdfObject ;Descent _ae .PdfObject ;
|
||
Leading _ae .PdfObject ;CapHeight _ae .PdfObject ;XHeight _ae .PdfObject ;StemV _ae .PdfObject ;StemH _ae .PdfObject ;AvgWidth _ae .PdfObject ;MaxWidth _ae .PdfObject ;MissingWidth _ae .PdfObject ;FontFile _ae .PdfObject ;FontFile2 _ae .PdfObject ;FontFile3 _ae .PdfObject ;
|
||
CharSet _ae .PdfObject ;_fbafe int ;_ffdc float64 ;*fontFile ;_aebfg *_cb .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _ae .PdfObject ;Lang _ae .PdfObject ;FD _ae .PdfObject ;CIDSet _ae .PdfObject ;_dcfaf *_ae .PdfIndirectObject ;};func (_ceeda *PdfReader )buildPageList (_fbagg *_ae .PdfIndirectObject ,_febaf *_ae .PdfIndirectObject ,_fegac map[_ae .PdfObject ]struct{})error {if _fbagg ==nil {return nil ;
|
||
};if _ ,_fcdfd :=_fegac [_fbagg ];_fcdfd {_ac .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",_fbagg .ObjectNumber );
|
||
return nil ;};_fegac [_fbagg ]=struct{}{};_gbafe ,_edda :=_fbagg .PdfObject .(*_ae .PdfObjectDictionary );if !_edda {return _db .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_fcagdf ,_edda :=(*_gbafe ).Get ("\u0054\u0079\u0070\u0065").(*_ae .PdfObjectName );
|
||
if !_edda {if _gbafe .Get ("\u004b\u0069\u0064\u0073")==nil {return _db .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");};_ac .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.");
|
||
_fcagdf =_ae .MakeName ("\u0050\u0061\u0067e\u0073");_gbafe .Set ("\u0054\u0079\u0070\u0065",_fcagdf );};_ac .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",*_fcagdf ,_fbagg );
|
||
if *_fcagdf =="\u0050\u0061\u0067\u0065"{_becac ,_gcfde :=_ceeda .newPdfPageFromDict (_gbafe );if _gcfde !=nil {return _gcfde ;};_becac .setContainer (_fbagg );if _febaf !=nil {_gbafe .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_febaf );};_ceeda ._bcaab =append (_ceeda ._bcaab ,_fbagg );
|
||
_ceeda .PageList =append (_ceeda .PageList ,_becac );return nil ;};if *_fcagdf !="\u0050\u0061\u0067e\u0073"{_ac .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",_fcagdf );
|
||
return _db .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 _febaf !=nil {_gbafe .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_febaf );};if !_ceeda ._ffggb {_ebdgfa :=_ceeda .traverseObjectData (_fbagg );if _ebdgfa !=nil {return _ebdgfa ;};};_fdddc ,_ecced :=_ceeda ._bfcga .Resolve (_gbafe .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _ecced !=nil {_ac .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 _ecced ;};var _fddfg *_ae .PdfObjectArray ;
|
||
_fddfg ,_edda =_fdddc .(*_ae .PdfObjectArray );if !_edda {_begbg ,_cgece :=_fdddc .(*_ae .PdfIndirectObject );if !_cgece {return _db .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fddfg ,_edda =_begbg .PdfObject .(*_ae .PdfObjectArray );
|
||
if !_edda {return _db .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");};};_ac .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_fddfg );
|
||
for _ecffa ,_gegbe :=range _fddfg .Elements (){_eegb ,_cgbga :=_ae .GetIndirect (_gegbe );if !_cgbga {_ac .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",_eegb );
|
||
return _db .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_fddfg .Set (_ecffa ,_eegb );_ecced =_ceeda .buildPageList (_eegb ,_fbagg ,_fegac );if _ecced !=nil {return _ecced ;
|
||
};};return nil ;};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;func (_bcge *PdfReader )newPdfActionHideFromDict (_abe *_ae .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_abe .Get ("\u0054"),H :_abe .Get ("\u0048")},nil ;};
|
||
|
||
// GetCatalogMetadata gets the catalog defined XMP Metadata.
|
||
func (_deceb *PdfReader )GetCatalogMetadata ()(_ae .PdfObject ,bool ){if _deceb ._aedf ==nil {return nil ,false ;};_abagd :=_deceb ._aedf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _abagd ,_abagd !=nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dccf *PdfAnnotationWidget )ToPdfObject ()_ae .PdfObject {_dccf .PdfAnnotation .ToPdfObject ();_aegf :=_dccf ._gcgf ;_geff :=_aegf .PdfObject .(*_ae .PdfObjectDictionary );if _dccf ._bde {return _aegf ;};_dccf ._bde =true ;_geff .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_geff .SetIfNotNil ("\u0048",_dccf .H );_geff .SetIfNotNil ("\u004d\u004b",_dccf .MK );_geff .SetIfNotNil ("\u0041",_dccf .A );_geff .SetIfNotNil ("\u0041\u0041",_dccf .AA );_geff .SetIfNotNil ("\u0042\u0053",_dccf .BS );_ccee :=_dccf .Parent ;if _dccf ._bab !=nil {if _dccf ._bab ._facca ==_dccf ._gcgf {_dccf ._bab .ToPdfObject ();
|
||
};_ccee =_dccf ._bab .GetContainingPdfObject ();};if _ccee !=_aegf {_geff .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_ccee );};_dccf ._bde =false ;return _aegf ;};func (_cdfed *LTV )getCerts (_edadb []*_fc .Certificate )([][]byte ,error ){_beca :=make ([][]byte ,0,len (_edadb ));
|
||
for _ ,_cggef :=range _edadb {_beca =append (_beca ,_cggef .Raw );};return _beca ,nil ;};
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_ge :=NewPdfAction ();_cge :=&PdfActionSetOCGState {};_cge .PdfAction =_ge ;_ge .SetContext (_cge );return _cge ;};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_degdd *PdfPageResources )SetXObjectByName (keyName _ae .PdfObjectName ,stream *_ae .PdfObjectStream )error {if _degdd .XObject ==nil {_degdd .XObject =_ae .MakeDict ();};_fdbec :=_ae .TraceToDirectObject (_degdd .XObject );_gecfa ,_ebgcb :=_fdbec .(*_ae .PdfObjectDictionary );
|
||
if !_ebgcb {_ac .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",_degdd .XObject ,_fdbec );return _db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_gecfa .Set (keyName ,stream );return nil ;};func (_eebaf *PdfReader )newPdfOutlineItemFromIndirectObject (_ccbac *_ae .PdfIndirectObject )(*PdfOutlineItem ,error ){_dbfdc ,_deddd :=_ccbac .PdfObject .(*_ae .PdfObjectDictionary );if !_deddd {return nil ,_f .Errorf ("\u006f\u0075\u0074l\u0069\u006e\u0065\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006eo\u0074\u0020\u0061\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079");
|
||
};_adfe :=NewPdfOutlineItem ();_bgbce :=_dbfdc .Get ("\u0054\u0069\u0074l\u0065");if _bgbce ==nil {return nil ,_f .Errorf ("\u006d\u0069\u0073s\u0069\u006e\u0067\u0020\u0054\u0069\u0074\u006c\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0020\u0049\u0074\u0065\u006d\u0020\u0028r\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0029");
|
||
};_ddbde ,_cbdeb :=_ae .GetString (_bgbce );if !_cbdeb {return nil ,_f .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_bgbce );};_adfe .Title =_ddbde ;if _gaab :=_dbfdc .Get ("\u0043\u006f\u0075n\u0074");
|
||
_gaab !=nil {_fgfa ,_baba :=_gaab .(*_ae .PdfObjectInteger );if !_baba {return nil ,_f .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_gaab );};_aggff :=int64 (*_fgfa );
|
||
_adfe .Count =&_aggff ;};if _ccdcgb :=_dbfdc .Get ("\u0044\u0065\u0073\u0074");_ccdcgb !=nil {_adfe .Dest =_ae .ResolveReference (_ccdcgb );if !_eebaf ._ffggb {_agbdcf :=_eebaf .traverseObjectData (_adfe .Dest );if _agbdcf !=nil {return nil ,_agbdcf ;};
|
||
};};if _cadge :=_dbfdc .Get ("\u0041");_cadge !=nil {_adfe .A =_ae .ResolveReference (_cadge );if !_eebaf ._ffggb {_ceec :=_eebaf .traverseObjectData (_adfe .A );if _ceec !=nil {return nil ,_ceec ;};};};if _egdb :=_dbfdc .Get ("\u0053\u0045");_egdb !=nil {_adfe .SE =nil ;
|
||
};if _agfcf :=_dbfdc .Get ("\u0043");_agfcf !=nil {_adfe .C =_ae .ResolveReference (_agfcf );};if _bgcga :=_dbfdc .Get ("\u0046");_bgcga !=nil {_adfe .F =_ae .ResolveReference (_bgcga );};return _adfe ,nil ;};
|
||
|
||
// 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 ()_ae .PdfObject ;GetContainingPdfObject ()_ae .PdfObject ;};
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_cgcbe *PdfSignature )Initialize ()error {if _cgcbe .Handler ==nil {return _db .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 _cgcbe .Handler .InitSignature (_cgcbe );};
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_ad *PdfAction )SetContext (ctx PdfModel ){_ad ._df =ctx };
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _ae .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_aeba *PdfColorspaceDeviceCMYK )ToPdfObject ()_ae .PdfObject {return _ae .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// 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 (_afgdc *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_gccba :=_afgdc .fill (provider ,appGen );if _gccba !=nil {return _gccba ;};if _ ,_dgac :=provider .(FieldImageProvider );_dgac {_gccba =_afgdc .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
|
||
};return _gccba ;};
|
||
|
||
// 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 (_bfcfg *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _dccee []*PdfOutlineTreeNode ;var _efffg []string ;var _gfga func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_gfga =func (_eage *PdfOutlineTreeNode ,_aagfd *[]*PdfOutlineTreeNode ,_fega *[]string ,_bdebf int ){if _eage ==nil {return ;
|
||
};if _eage ._aaea ==nil {_ac .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 ;};_gcca ,_eedaf :=_eage ._aaea .(*PdfOutlineItem );if _eedaf {*_aagfd =append (*_aagfd ,&_gcca .PdfOutlineTreeNode );
|
||
_ecccc :=_eg .Repeat ("\u0020",_bdebf *2)+_gcca .Title .Decoded ();*_fega =append (*_fega ,_ecccc );};if _eage .First !=nil {_effbd :=_eg .Repeat ("\u0020",_bdebf *2)+"\u002b";*_fega =append (*_fega ,_effbd );_gfga (_eage .First ,_aagfd ,_fega ,_bdebf +1);
|
||
};if _eedaf &&_gcca .Next !=nil {_gfga (_gcca .Next ,_aagfd ,_fega ,_bdebf );};};_gfga (_bfcfg ._ecbe ,&_dccee ,&_efffg ,0);return _dccee ,_efffg ,nil ;};
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_eccc *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
|
||
|
||
// 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 (_ddfgbg []_ae .PdfObject )([]_ae .PdfObject ,error );};
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};func _gfbga (_aggeec *_ae .PdfObjectDictionary ,_gcgfc *fontCommon ,_aefgf _bgg .TextEncoder )(*pdfFontSimple ,error ){_cceae :=_aead (_gcgfc );_cceae ._aacd =_aefgf ;if _aefgf ==nil {_babeg :=_aggeec .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
|
||
if _babeg ==nil {_babeg =_ae .MakeInteger (0);};_cceae .FirstChar =_babeg ;_cdbgd ,_gefc :=_ae .GetIntVal (_babeg );if !_gefc {_ac .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",_babeg );
|
||
return nil ,_ae .ErrTypeError ;};_dggca :=_bgg .CharCode (_cdbgd );_babeg =_aggeec .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _babeg ==nil {_babeg =_ae .MakeInteger (255);};_cceae .LastChar =_babeg ;_cdbgd ,_gefc =_ae .GetIntVal (_babeg );
|
||
if !_gefc {_ac .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",_babeg );return nil ,_ae .ErrTypeError ;
|
||
};_afgga :=_bgg .CharCode (_cdbgd );_cceae ._deaed =make (map[_bgg .CharCode ]float64 );_babeg =_aggeec .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _babeg !=nil {_cceae .Widths =_babeg ;_eaab ,_cebacd :=_ae .GetArray (_babeg );if !_cebacd {_ac .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",_babeg );
|
||
return nil ,_ae .ErrTypeError ;};_gdgab ,_eabeb :=_eaab .ToFloat64Array ();if _eabeb !=nil {_ac .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 ,_eabeb ;};if len (_gdgab )!=int (_afgga -_dggca +1){_ac .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",_afgga -_dggca +1,len (_gdgab ));
|
||
return nil ,_ae .ErrRangeError ;};for _dgfdc ,_cdda :=range _gdgab {_cceae ._deaed [_dggca +_bgg .CharCode (_dgfdc )]=_cdda ;};};};_cceae .Encoding =_ae .TraceToDirectObject (_aggeec .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _cceae ,nil ;
|
||
};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_bgddg *PdfColorCalRGB )A ()float64 {return _bgddg [0]};
|
||
|
||
// 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 (_aggc *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _abff []_bgg .TextEncoder ;var _daddf _bgg .CMapEncoder ;if _caaag :=_aggc .baseFields ()._ebfdc ;_caaag !=nil {_daddf =_bgg .NewCMapEncoder ("",nil ,_caaag );};_edaf :=_aggc .Encoder ();
|
||
if _edaf !=nil {switch _bcfa :=_edaf .(type ){case _bgg .SimpleEncoder :_ggbc :=_bcfa .BaseName ();if _ ,_eafga :=_dbec [_ggbc ];_eafga {_abff =append (_abff ,_edaf );};};};if len (_abff )==0{if _aggc .baseFields ()._ebfdc !=nil {_abff =append (_abff ,_daddf );
|
||
};if _edaf !=nil {_abff =append (_abff ,_edaf );};};var _gbgcd _aa .Buffer ;var _fceea int ;for _ ,_cegcc :=range data {var _gdbd bool ;for _ ,_edabf :=range _abff {if _bbeda :=_edabf .Encode (string (_cegcc ));len (_bbeda )> 0{_gbgcd .Write (_bbeda );
|
||
_gdbd =true ;break ;};};if !_gdbd {_ac .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",_cegcc );
|
||
_fceea ++;};};if _fceea !=0{_ac .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 ),_fceea ,_aggc ,_abff );
|
||
};return _gbgcd .Bytes (),_fceea ;};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_dbgdg :=PdfPage {};_dbgdg ._efgca =_ae .MakeDict ();_dbgdg .Resources =NewPdfPageResources ();_gafff :=_ae .PdfIndirectObject {};_gafff .PdfObject =_dbgdg ._efgca ;_dbgdg ._egbbg =&_gafff ;_dbgdg ._eedgd =*_dbgdg ._efgca ;return &_dbgdg ;
|
||
};
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
|
||
|
||
// 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 _gdc .ReadSeeker )(*PdfReader ,error ){const _fdbe ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _fccgfc (rs ,&ReaderOpts {},false ,_fdbe );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eegd *PdfAnnotationSquare )ToPdfObject ()_ae .PdfObject {_eegd .PdfAnnotation .ToPdfObject ();_ebbf :=_eegd ._gcgf ;_bbg :=_ebbf .PdfObject .(*_ae .PdfObjectDictionary );if _eegd .PdfAnnotationMarkup !=nil {_eegd .PdfAnnotationMarkup .appendToPdfDictionary (_bbg );
|
||
};_bbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_bbg .SetIfNotNil ("\u0042\u0053",_eegd .BS );_bbg .SetIfNotNil ("\u0049\u0043",_eegd .IC );_bbg .SetIfNotNil ("\u0042\u0045",_eegd .BE );
|
||
_bbg .SetIfNotNil ("\u0052\u0044",_eegd .RD );return _ebbf ;};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_bagee *PdfPageResources )AddExtGState (gsName _ae .PdfObjectName ,gsDict _ae .PdfObject )error {if _bagee .ExtGState ==nil {_bagee .ExtGState =_ae .MakeDict ();};_ddeag :=_bagee .ExtGState ;_dadec ,_dbfgc :=_ae .TraceToDirectObject (_ddeag ).(*_ae .PdfObjectDictionary );
|
||
if !_dbfgc {_ac .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",_ddeag ,_ae .TraceToDirectObject (_ddeag ));
|
||
return _ae .ErrTypeError ;};_dadec .Set (gsName ,gsDict );return nil ;};func _edag (_ceff _ae .PdfObject )(*PdfColorspaceCalRGB ,error ){_ebdg :=NewPdfColorspaceCalRGB ();if _ddcb ,_caba :=_ceff .(*_ae .PdfIndirectObject );_caba {_ebdg ._gbge =_ddcb ;};
|
||
_ceff =_ae .TraceToDirectObject (_ceff );_cebac ,_gccb :=_ceff .(*_ae .PdfObjectArray );if !_gccb {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cebac .Len ()!=2{return nil ,_f .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_ceff =_ae .TraceToDirectObject (_cebac .Get (0));_afde ,_gccb :=_ceff .(*_ae .PdfObjectName );if !_gccb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");
|
||
};if *_afde !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_f .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_ceff =_ae .TraceToDirectObject (_cebac .Get (1));
|
||
_egcb ,_gccb :=_ceff .(*_ae .PdfObjectDictionary );if !_gccb {return nil ,_f .Errorf ("\u0043\u0061l\u0052\u0047\u0042\u0020\u006e\u0061\u006d\u0065\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u004e\u0061\u006d\u0065\u0020\u006f\u0062je\u0063\u0074");};_ceff =_egcb .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");
|
||
_ceff =_ae .TraceToDirectObject (_ceff );_gcgb ,_gccb :=_ceff .(*_ae .PdfObjectArray );if !_gccb {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050o\u0069\u006e\u0074");
|
||
};if _gcgb .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0057h\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");};_eaddd ,_ecdfg :=_gcgb .GetAsFloat64Slice ();
|
||
if _ecdfg !=nil {return nil ,_ecdfg ;};_ebdg .WhitePoint =_eaddd ;_ceff =_egcb .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _ceff !=nil {_ceff =_ae .TraceToDirectObject (_ceff );_fbea ,_eefgc :=_ceff .(*_ae .PdfObjectArray );
|
||
if !_eefgc {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076a\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050o\u0069\u006e\u0074");};if _fbea .Len ()!=3{return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052\u0047\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u0042l\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};_accc ,_daacg :=_fbea .GetAsFloat64Slice ();if _daacg !=nil {return nil ,_daacg ;};_ebdg .BlackPoint =_accc ;};_ceff =_egcb .Get ("\u0047\u0061\u006dm\u0061");if _ceff !=nil {_ceff =_ae .TraceToDirectObject (_ceff );_cebe ,_ebfg :=_ceff .(*_ae .PdfObjectArray );
|
||
if !_ebfg {return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _cebe .Len ()!=3{return nil ,_f .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
|
||
};_bgeb ,_bggf :=_cebe .GetAsFloat64Slice ();if _bggf !=nil {return nil ,_bggf ;};_ebdg .Gamma =_bgeb ;};_ceff =_egcb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _ceff !=nil {_ceff =_ae .TraceToDirectObject (_ceff );_dgeec ,_cbcc :=_ceff .(*_ae .PdfObjectArray );
|
||
if !_cbcc {return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _dgeec .Len ()!=9{_ac .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_dgeec .String ());
|
||
return nil ,_f .Errorf ("\u0043\u0061\u006c\u0052G\u0042\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064 \u004da\u0074\u0072\u0069\u0078\u0020\u0061\u0072r\u0061\u0079");};_ccad ,_aeaf :=_dgeec .GetAsFloat64Slice ();if _aeaf !=nil {return nil ,_aeaf ;
|
||
};_ebdg .Matrix =_ccad ;};return _ebdg ,nil ;};func (_eee *PdfReader )newPdfActionGoTo3DViewFromDict (_gbfd *_ae .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_gbfd .Get ("\u0054\u0041"),V :_gbfd .Get ("\u0056")},nil ;
|
||
};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_fecaf *PdfSignature )GetContainingPdfObject ()_ae .PdfObject {return _fecaf ._gccbeg };
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_gfcbg *PdfOutlineTreeNode )ToPdfObject ()_ae .PdfObject {return _gfcbg .GetContext ().ToPdfObject ();};
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_gbbbd *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_gbbbd .ToPdfOutline ().PdfOutlineTreeNode ;};func (_gfcb *PdfReader )newPdfAnnotation3DFromDict (_cce *_ae .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_ceeb :=PdfAnnotation3D {};
|
||
_ceeb .T3DD =_cce .Get ("\u0033\u0044\u0044");_ceeb .T3DV =_cce .Get ("\u0033\u0044\u0056");_ceeb .T3DA =_cce .Get ("\u0033\u0044\u0041");_ceeb .T3DI =_cce .Get ("\u0033\u0044\u0049");_ceeb .T3DB =_cce .Get ("\u0033\u0044\u0042");return &_ceeb ,nil ;};
|
||
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};
|
||
|
||
// 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 *_ae .PdfParser ;DiffPolicy _dbg .DiffPolicy ;};
|
||
|
||
// 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 (_ggafa *PdfColorspaceLab )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_dgabe ,_feecf :=_ae .GetNumbersAsFloat (objects );
|
||
if _feecf !=nil {return nil ,_feecf ;};return _ggafa .ColorFromFloats (_dgabe );};
|
||
|
||
// 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 (_egfcd *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_db .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");
|
||
};_bcaeac :=&PdfColorPattern {};_febe ,_beecf :=objects [len (objects )-1].(*_ae .PdfObjectName );if !_beecf {_ac .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 ;};_bcaeac .PatternName =*_febe ;if len (objects )> 1{_gfbg :=objects [0:len (objects )-1];if _egfcd .UnderlyingCS ==nil {_ac .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 ,_db .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_agfd ,_cabge :=_egfcd .UnderlyingCS .ColorFromPdfObjects (_gfbg );if _cabge !=nil {_ac .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",_cabge );
|
||
return nil ,_cabge ;};_bcaeac .Color =_agfd ;};return _bcaeac ,nil ;};
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_cgafb *PdfPageResources )SetXObjectFormByName (keyName _ae .PdfObjectName ,xform *XObjectForm )error {_cfbfce :=xform .ToPdfObject ().(*_ae .PdfObjectStream );_bbdac :=_cgafb .SetXObjectByName (keyName ,_cfbfce );return _bbdac ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cgaea *PdfShadingType1 )ToPdfObject ()_ae .PdfObject {_cgaea .PdfShading .ToPdfObject ();_dfcd ,_cggfe :=_cgaea .getShadingDict ();if _cggfe !=nil {_ac .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 _cgaea .Domain !=nil {_dfcd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cgaea .Domain );};if _cgaea .Matrix !=nil {_dfcd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_cgaea .Matrix );};if _cgaea .Function !=nil {if len (_cgaea .Function )==1{_dfcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cgaea .Function [0].ToPdfObject ());
|
||
}else {_edcdd :=_ae .MakeArray ();for _ ,_dgcfc :=range _cgaea .Function {_edcdd .Append (_dgcfc .ToPdfObject ());};_dfcd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_edcdd );};};return _cgaea ._dcdgda ;};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_ffgfe *PdfColorDeviceCMYK )Y ()float64 {return _ffgfe [2]};func _eeedf (_dcaac _ae .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_acfb :=NewPdfColorspaceSpecialIndexed ();if _geece ,_beaeb :=_dcaac .(*_ae .PdfIndirectObject );_beaeb {_acfb ._edeb =_geece ;
|
||
};_dcaac =_ae .TraceToDirectObject (_dcaac );_gfad ,_aagff :=_dcaac .(*_ae .PdfObjectArray );if !_aagff {return nil ,_f .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _gfad .Len ()!=4{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069\u006e\u0076a\u006ci\u0064\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
|
||
};_dcaac =_gfad .Get (0);_cged ,_aagff :=_dcaac .(*_ae .PdfObjectName );if !_aagff {return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_cged !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_dcaac =_gfad .Get (1);_abac ,_eecbg :=DetermineColorspaceNameFromPdfObject (_dcaac );if _eecbg !=nil {return nil ,_eecbg ;};if _abac =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_abac =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ac .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",_abac );
|
||
return nil ,_cdgb ;};_cgca ,_eecbg :=NewPdfColorspaceFromPdfObject (_dcaac );if _eecbg !=nil {return nil ,_eecbg ;};_acfb .Base =_cgca ;_dcaac =_gfad .Get (2);_cfdd ,_eecbg :=_ae .GetNumberAsInt64 (_dcaac );if _eecbg !=nil {return nil ,_eecbg ;};if _cfdd > 255{return nil ,_f .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_acfb .HiVal =int (_cfdd );_dcaac =_gfad .Get (3);_acfb .Lookup =_dcaac ;_dcaac =_ae .TraceToDirectObject (_dcaac );var _abdeg []byte ;if _fcea ,_cdfee :=_dcaac .(*_ae .PdfObjectString );_cdfee {_abdeg =_fcea .Bytes ();_ac .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",_abdeg );
|
||
}else if _defc ,_cbce :=_dcaac .(*_ae .PdfObjectStream );_cbce {_ac .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_dcaac .String ());_ac .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_defc .Stream ),_defc .Stream );
|
||
_ebggd ,_gceb :=_ae .DecodeStream (_defc );if _gceb !=nil {return nil ,_gceb ;};_ac .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_ebggd ),_ebggd );_abdeg =_ebggd ;}else {_ac .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_dcaac );
|
||
return nil ,_f .Errorf ("\u0069\u006e\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076a\u006ci\u0064\u0020\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if len (_abdeg )< _acfb .Base .GetNumComponents ()*(_acfb .HiVal +1){_ac .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");
|
||
_ac .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 (_abdeg ),_acfb .Base .GetNumComponents (),_acfb .HiVal );
|
||
}else {_abdeg =_abdeg [:_acfb .Base .GetNumComponents ()*(_acfb .HiVal +1)];};_acfb ._dfca =_abdeg ;return _acfb ,nil ;};
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_efgc :=NewPdfAnnotation ();_egfc :=&PdfAnnotationSquiggly {};_egfc .PdfAnnotation =_efgc ;_egfc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_efgc .SetContext (_egfc );return _egfc ;};func (_dacd *PdfReader )newPdfAnnotationRedactFromDict (_aebd *_ae .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_dcff :=PdfAnnotationRedact {};
|
||
_gaba ,_ebfc :=_dacd .newPdfAnnotationMarkupFromDict (_aebd );if _ebfc !=nil {return nil ,_ebfc ;};_dcff .PdfAnnotationMarkup =_gaba ;_dcff .QuadPoints =_aebd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_dcff .IC =_aebd .Get ("\u0049\u0043");
|
||
_dcff .RO =_aebd .Get ("\u0052\u004f");_dcff .OverlayText =_aebd .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_dcff .Repeat =_aebd .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_dcff .DA =_aebd .Get ("\u0044\u0041");_dcff .Q =_aebd .Get ("\u0051");
|
||
return &_dcff ,nil ;};
|
||
|
||
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
|
||
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_ddddc :=&PdfColorPatternType2 {};return _ddddc ;};
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_afgdd *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_afgdd ._faffe .Major =majorVersion ;_afgdd ._faffe .Minor =minorVersion ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgb *PdfActionLaunch )ToPdfObject ()_ae .PdfObject {_dgb .PdfAction .ToPdfObject ();_ea :=_dgb ._cbe ;_cef :=_ea .PdfObject .(*_ae .PdfObjectDictionary );_cef .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeLaunch )));if _dgb .F !=nil {_cef .Set ("\u0046",_dgb .F .ToPdfObject ());
|
||
};_cef .SetIfNotNil ("\u0057\u0069\u006e",_dgb .Win );_cef .SetIfNotNil ("\u004d\u0061\u0063",_dgb .Mac );_cef .SetIfNotNil ("\u0055\u006e\u0069\u0078",_dgb .Unix );_cef .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_dgb .NewWindow );return _ea ;
|
||
};
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_ae .PdfObjectArray ;Domain *_ae .PdfObjectArray ;Function []PdfFunction ;Extend *_ae .PdfObjectArray ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_efcf *PdfOutlineTreeNode )GetContainingPdfObject ()_ae .PdfObject {return _efcf .GetContext ().GetContainingPdfObject ();};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an intialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_febbe :_ae .MakeIndirectObject (_ae .MakeDict ())};};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_fffee *PdfWriter )SetPageLabels (pageLabels _ae .PdfObject )error {if pageLabels ==nil {return nil ;};_ac .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");
|
||
_fffee ._caddd .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _fffee .addObjects (pageLabels );};
|
||
|
||
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
|
||
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_eece :=&PdfColorPatternType3 {};return _eece };
|
||
|
||
// 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 _ae .PdfObject ;_dfca []byte ;_edeb *_ae .PdfIndirectObject ;};
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_cbeg :=NewPdfAnnotation ();_faa :=&PdfAnnotation3D {};_faa .PdfAnnotation =_cbeg ;_cbeg .SetContext (_faa );return _faa ;};
|
||
|
||
// GetStructRoot gets the StructTreeRoot object
|
||
func (_bfffg *PdfPage )GetStructTreeRoot ()(*_ae .PdfObject ,bool ){_eaabg ,_bgbd :=_bfffg ._bceef .GetCatalogStructTreeRoot ();return &_eaabg ,_bgbd ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_fgfea *PdfTilingPattern )ToPdfObject ()_ae .PdfObject {_fgfea .PdfPattern .ToPdfObject ();_fbbgb :=_fgfea .getDict ();if _fgfea .PaintType !=nil {_fbbgb .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_fgfea .PaintType );};if _fgfea .TilingType !=nil {_fbbgb .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_fgfea .TilingType );
|
||
};if _fgfea .BBox !=nil {_fbbgb .Set ("\u0042\u0042\u006f\u0078",_fgfea .BBox .ToPdfObject ());};if _fgfea .XStep !=nil {_fbbgb .Set ("\u0058\u0053\u0074e\u0070",_fgfea .XStep );};if _fgfea .YStep !=nil {_fbbgb .Set ("\u0059\u0053\u0074e\u0070",_fgfea .YStep );
|
||
};if _fgfea .Resources !=nil {_fbbgb .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_fgfea .Resources .ToPdfObject ());};if _fgfea .Matrix !=nil {_fbbgb .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fgfea .Matrix );};return _fgfea ._ebfged ;};
|
||
|
||
// 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 *_ae .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_ae .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_ae .PdfObjectBool ;_ffgbf PdfModel ;_dcdgda _ae .PdfObject ;};func (_aaaa *pdfFontSimple )getFontEncoding ()(_dfbcb string ,_fcagd map[_bgg .CharCode ]_bgg .GlyphName ,_dagd error ){_dfbcb ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";
|
||
if _abag ,_abee :=_fedb [_aaaa ._cedb ];_abee {_dfbcb =_abag ;}else if _aaaa .fontFlags ()&_fdbaa !=0{for _cggae ,_dbee :=range _fedb {if _eg .Contains (_aaaa ._cedb ,_cggae ){_dfbcb =_dbee ;break ;};};};if _aaaa .Encoding ==nil {return _dfbcb ,nil ,nil ;
|
||
};switch _ffcg :=_aaaa .Encoding .(type ){case *_ae .PdfObjectName :return string (*_ffcg ),nil ,nil ;case *_ae .PdfObjectDictionary :_cfade ,_baceg :=_ae .GetName (_ffcg .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _baceg {_dfbcb =_cfade .String ();
|
||
};if _befdf :=_ffcg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");_befdf !=nil {_faea ,_effb :=_ae .GetArray (_befdf );if !_effb {_ac .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",_ffcg ,_ffcg .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_ae .ErrTypeError ;};_fcagd ,_dagd =_bgg .FromFontDifferences (_faea );};return _dfbcb ,_fcagd ,_dagd ;default:_ac .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",_aaaa .Encoding ,_aaaa .Encoding );
|
||
return "",nil ,_ae .ErrTypeError ;};};func _ddee (_dbbd []byte )bool {if len (_dbbd )< 4{return true ;};for _abgc :=range _dbbd [:4]{_faaa :=rune (_abgc );if !_dg .Is (_dg .ASCII_Hex_Digit ,_faaa )&&!_dg .IsSpace (_faaa ){return true ;};};return false ;
|
||
};func (_bagd *PdfReader )newPdfAnnotationTextFromDict (_facf *_ae .PdfObjectDictionary )(*PdfAnnotationText ,error ){_gagf :=PdfAnnotationText {};_bcfe ,_fabe :=_bagd .newPdfAnnotationMarkupFromDict (_facf );if _fabe !=nil {return nil ,_fabe ;};_gagf .PdfAnnotationMarkup =_bcfe ;
|
||
_gagf .Open =_facf .Get ("\u004f\u0070\u0065\u006e");_gagf .Name =_facf .Get ("\u004e\u0061\u006d\u0065");_gagf .State =_facf .Get ("\u0053\u0074\u0061t\u0065");_gagf .StateModel =_facf .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");
|
||
return &_gagf ,nil ;};
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_dcea *PdfSignature )SetName (name string ){_dcea .Name =_ae .MakeString (name )};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_cgfe *OutlineItem )Insert (index uint ,item *OutlineItem ){_dgbg :=uint (len (_cgfe .Entries ));if index > _dgbg {index =_dgbg ;};_cgfe .Entries =append (_cgfe .Entries [:index ],append ([]*OutlineItem {item },_cgfe .Entries [index :]...)...);};
|
||
func (_fceed *PdfWriter )writeObjects (){_ac .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_fceed ._edbe ));_fceed ._agfeg =make (map[int ]crossReference );_fceed ._agfeg [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
|
||
if _fceed ._ecbae .ObjectMap !=nil {for _ebeae ,_afaee :=range _fceed ._ecbae .ObjectMap {if _ebeae ==0{continue ;};if _afaee .XType ==_ae .XrefTypeObjectStream {_dbcbb :=crossReference {Type :2,ObjectNumber :_afaee .OsObjNumber ,Index :_afaee .OsObjIndex };
|
||
_fceed ._agfeg [_ebeae ]=_dbcbb ;};if _afaee .XType ==_ae .XrefTypeTableEntry {_fcafa :=crossReference {Type :1,ObjectNumber :_afaee .ObjectNumber ,Offset :_afaee .Offset };_fceed ._agfeg [_ebeae ]=_fcafa ;};};};};func (_cgfb *PdfWriter )writeObjectsInStreams (_cdaga map[_ae .PdfObject ]bool )error {for _ ,_acfac :=range _cgfb ._edbe {if _ddcec :=_cdaga [_acfac ];
|
||
_ddcec {continue ;};_caag :=int64 (0);switch _gdacg :=_acfac .(type ){case *_ae .PdfIndirectObject :_caag =_gdacg .ObjectNumber ;case *_ae .PdfObjectStream :_caag =_gdacg .ObjectNumber ;case *_ae .PdfObjectStreams :_caag =_gdacg .ObjectNumber ;default:_ac .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",_acfac );
|
||
return ErrTypeCheck ;};if _cgfb ._ecedf !=nil &&_acfac !=_cgfb ._feddfa {_adgb :=_cgfb ._ecedf .Encrypt (_acfac ,_caag ,0);if _adgb !=nil {_ac .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",_adgb );
|
||
return _adgb ;};};_cgfb .writeObject (int (_caag ),_acfac );};return nil ;};
|
||
|
||
// NewXObjectImageFromImage creates a new XObject Image from an image object
|
||
// with default options. If encoder is nil, uses raw encoding (none).
|
||
func NewXObjectImageFromImage (img *Image ,cs PdfColorspace ,encoder _ae .StreamEncoder )(*XObjectImage ,error ){_ddeb :=NewXObjectImage ();return UpdateXObjectImageFromImage (_ddeb ,img ,cs ,encoder );};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_cfbgb *PdfPage )AddImageResource (name _ae .PdfObjectName ,ximg *XObjectImage )error {var _eeeac *_ae .PdfObjectDictionary ;if _cfbgb .Resources .XObject ==nil {_eeeac =_ae .MakeDict ();_cfbgb .Resources .XObject =_eeeac ;}else {var _cccc bool ;
|
||
_eeeac ,_cccc =(_cfbgb .Resources .XObject ).(*_ae .PdfObjectDictionary );if !_cccc {return _db .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_eeeac .Set (name ,ximg .ToPdfObject ());
|
||
return nil ;};
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_debde *PdfWriter )SetForms (form *PdfAcroForm )error {_debde ._bgfd =form ;return nil };
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_ecefc *PdfPage )GetPageAsIndirectObject ()*_ae .PdfIndirectObject {return _ecefc ._egbbg };
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_cbdb *pdfSignDictionary )WriteString ()string {_cbdb ._aebde =0;_cbdb ._aedb =0;_cbdb ._fegef =0;_cbdb ._ebcfb =0;_bbfcg :=_aa .NewBuffer (nil );_bbfcg .WriteString ("\u003c\u003c");for _ ,_bgcc :=range _cbdb .Keys (){_facfg :=_cbdb .Get (_bgcc );
|
||
switch _bgcc {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bbfcg .WriteString (_bgcc .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._fegef =_bbfcg .Len ();_bbfcg .WriteString (_facfg .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._ebcfb =_bbfcg .Len ()-1;
|
||
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bbfcg .WriteString (_bgcc .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._aebde =_bbfcg .Len ();_bbfcg .WriteString (_facfg .WriteString ());_bbfcg .WriteString ("\u0020");_cbdb ._aedb =_bbfcg .Len ()-1;
|
||
default:_bbfcg .WriteString (_bgcc .WriteString ());_bbfcg .WriteString ("\u0020");_bbfcg .WriteString (_facfg .WriteString ());};};_bbfcg .WriteString ("\u003e\u003e");return _bbfcg .String ();};func (_cfc *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";
|
||
};type fontCommon struct{_cedb string ;_adce string ;_bbce string ;_dgea _ae .PdfObject ;_ebfdc *_abg .CMap ;_cafdb *PdfFontDescriptor ;_efef int64 ;};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_gedf :=NewPdfAnnotation ();_abec :=&PdfAnnotationWidget {};_abec .PdfAnnotation =_gedf ;_gedf .SetContext (_abec );return _abec ;};
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_fcge *_ae .PdfIndirectObject ;};
|
||
|
||
// 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 (_ecaad *PdfFont )CharcodesToStrings (charcodes []_bgg .CharCode )([]string ,int ,int ){_fdga :=_ecaad .baseFields ();_fbac :=make ([]string ,0,len (charcodes ));_cdaed :=0;_caeae :=_ecaad .Encoder ();_bgbf :=_fdga ._ebfdc !=nil &&_ecaad .IsSimple ()&&_ecaad .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_eg .Contains (_fdga ._ebfdc .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
|
||
if !_bgbf &&_caeae !=nil {switch _edfgb :=_caeae .(type ){case _bgg .SimpleEncoder :_aefeg :=_edfgb .BaseName ();if _ ,_afgab :=_dbec [_aefeg ];_afgab {for _ ,_adeb :=range charcodes {if _bdfd ,_efbec :=_caeae .CharcodeToRune (_adeb );_efbec {_fbac =append (_fbac ,string (_bdfd ));
|
||
}else {_ac .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",_adeb ,charcodes ,_fdga .isCIDFont (),_ecaad ,_caeae );
|
||
_cdaed ++;_fbac =append (_fbac ,_abg .MissingCodeString );};};return _fbac ,len (_fbac ),_cdaed ;};};};for _ ,_agfc :=range charcodes {if _fdga ._ebfdc !=nil {if _cecg ,_aaed :=_fdga ._ebfdc .CharcodeToUnicode (_abg .CharCode (_agfc ));_aaed {_fbac =append (_fbac ,_cecg );
|
||
continue ;};};if _caeae !=nil {if _gbfg ,_aegg :=_caeae .CharcodeToRune (_agfc );_aegg {_fbac =append (_fbac ,string (_gbfg ));continue ;};};_ac .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",_agfc ,charcodes ,_fdga .isCIDFont (),_ecaad ,_caeae );
|
||
_cdaed ++;_fbac =append (_fbac ,_abg .MissingCodeString );};if _cdaed !=0{_ac .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 ),_cdaed ,_ecaad );
|
||
};return _fbac ,len (_fbac ),_cdaed ;};func (_feebg fontCommon )asPdfObjectDictionary (_cagba string )*_ae .PdfObjectDictionary {if _cagba !=""&&_feebg ._adce !=""&&_cagba !=_feebg ._adce {_ac .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",_cagba ,_feebg );
|
||
}else if _cagba ==""&&_feebg ._adce ==""{_ac .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",_feebg );
|
||
}else if _feebg ._adce ==""{_feebg ._adce =_cagba ;};_cgcd :=_ae .MakeDict ();_cgcd .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0046\u006f\u006e\u0074"));_cgcd .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_ae .MakeName (_feebg ._cedb ));
|
||
_cgcd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName (_feebg ._adce ));if _feebg ._cafdb !=nil {_cgcd .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_feebg ._cafdb .ToPdfObject ());};if _feebg ._dgea !=nil {_cgcd .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_feebg ._dgea );
|
||
}else if _feebg ._ebfdc !=nil {_cfgga ,_afggb :=_feebg ._ebfdc .Stream ();if _afggb !=nil {_ac .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",_afggb );
|
||
}else {_cgcd .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_cfgga );};};return _cgcd ;};
|
||
|
||
// Transform rectangle with the supplied matrix.
|
||
func (_ebeeg *PdfRectangle )Transform (transformMatrix _ecc .Matrix ){_ebeeg .Llx ,_ebeeg .Lly =transformMatrix .Transform (_ebeeg .Llx ,_ebeeg .Lly );_ebeeg .Urx ,_ebeeg .Ury =transformMatrix .Transform (_ebeeg .Urx ,_ebeeg .Ury );_ebeeg .Normalize ();
|
||
};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_dbagb *PdfFont )Subtype ()string {_cfddd :=_dbagb .baseFields ()._adce ;if _dcaab ,_cdfgg :=_dbagb ._dabg .(*pdfFontType0 );_cdfgg {_cfddd =_cfddd +"\u003a"+_dcaab .DescendantFont .Subtype ();};return _cfddd ;};
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_cgcaa *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _cgcaa ._cagbf ==nil {_cgcaa ._cagbf =_ace .NewPSExecutor (_cgcaa .Program );};var _fceef []_ace .PSObject ;for _ ,_ddcdf :=range xVec {_fceef =append (_fceef ,_ace .MakeReal (_ddcdf ));
|
||
};_aecfe ,_ecbd :=_cgcaa ._cagbf .Execute (_fceef );if _ecbd !=nil {return nil ,_ecbd ;};_baacb ,_ecbd :=_ace .PSObjectArrayToFloat64Array (_aecfe );if _ecbd !=nil {return nil ,_ecbd ;};return _baacb ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_fceeb *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_eede *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _eede .Range };
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_fb :=NewPdfAction ();_fce :=&PdfActionSubmitForm {};_fce .PdfAction =_fb ;_fb .SetContext (_fce );return _fce ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_faec *PdfShadingType2 )ToPdfObject ()_ae .PdfObject {_faec .PdfShading .ToPdfObject ();_gcbef ,_edcb :=_faec .getShadingDict ();if _edcb !=nil {_ac .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 _gcbef ==nil {_ac .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _faec .Coords !=nil {_gcbef .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_faec .Coords );
|
||
};if _faec .Domain !=nil {_gcbef .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_faec .Domain );};if _faec .Function !=nil {if len (_faec .Function )==1{_gcbef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_faec .Function [0].ToPdfObject ());}else {_baggg :=_ae .MakeArray ();
|
||
for _ ,_aggdaa :=range _faec .Function {_baggg .Append (_aggdaa .ToPdfObject ());};_gcbef .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_baggg );};};if _faec .Extend !=nil {_gcbef .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_faec .Extend );
|
||
};return _faec ._dcdgda ;};
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_deaef *PdfPattern )IsTiling ()bool {return _deaef .PatternType ==1};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_cggf *PdfPage )HasFontByName (name _ae .PdfObjectName )bool {_gdfcf ,_acfg :=_cggf .Resources .Font .(*_ae .PdfObjectDictionary );if !_acfg {return false ;};if _beebb :=_gdfcf .Get (name );_beebb !=nil {return true ;};return false ;};func _afbe (_acgc *_ae .PdfObjectDictionary )(*PdfFieldButton ,error ){_gade :=&PdfFieldButton {};
|
||
_gade .PdfField =NewPdfField ();_gade .PdfField .SetContext (_gade );_gade .Opt ,_ =_ae .GetArray (_acgc .Get ("\u004f\u0070\u0074"));_faad :=NewPdfAnnotationWidget ();_faad .A ,_ =_ae .GetDict (_acgc .Get ("\u0041"));_faad .AP ,_ =_ae .GetDict (_acgc .Get ("\u0041\u0050"));
|
||
_faad .SetContext (_gade );_gade .PdfField .Annotations =append (_gade .PdfField .Annotations ,_faad );return _gade ,nil ;};type pdfSignDictionary struct{*_ae .PdfObjectDictionary ;_febbd *SignatureHandler ;_cbcbe *PdfSignature ;_ebcg int64 ;_aebde int ;
|
||
_aedb int ;_fegef int ;_ebcfb int ;};
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _d .Time ){_cadgd .Lock ();defer _cadgd .Unlock ();_fabd =modifiedDate ;};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_adcaa *PdfFont )BaseFont ()string {return _adcaa .baseFields ()._cedb };
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_dbd *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dbd .Base ==nil {return nil ,_db .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 _dbd .Base .ColorToRGB (color );};func _feagd (_bfbga *_afc .ImageBase )(_geba Image ){_geba .Width =int64 (_bfbga .Width );_geba .Height =int64 (_bfbga .Height );_geba .BitsPerComponent =int64 (_bfbga .BitsPerComponent );_geba .ColorComponents =_bfbga .ColorComponents ;
|
||
_geba .Data =_bfbga .Data ;_geba ._fdae =_bfbga .Decode ;_geba ._bbba =_bfbga .Alpha ;return _geba ;};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_aaagb FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_aaagb .Mask ()&^fl .Mask ())};
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_ggeaa :=NewPdfAnnotation ();_fed :=&PdfAnnotationStamp {};_fed .PdfAnnotation =_ggeaa ;_fed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ggeaa .SetContext (_fed );return _fed ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_cgcf *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _cgcf .UnderlyingCS ==nil {return nil ,_db .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 _cgcf .UnderlyingCS .ColorFromFloats (vals );};type pdfCIDFontType2 struct{fontCommon ;_ddafa *_ae .PdfIndirectObject ;_bddbd _bgg .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_ae .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _ae .PdfObject ;W _ae .PdfObject ;DW2 _ae .PdfObject ;W2 _ae .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _ae .PdfObject ;_fcbce map[_bgg .CharCode ]float64 ;_bddbc float64 ;_acae map[rune ]int ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_eega *PdfOutlineItem )ToPdfObject ()_ae .PdfObject {_eacf :=_eega ._dabga ;_cffg :=_eacf .PdfObject .(*_ae .PdfObjectDictionary );_cffg .Set ("\u0054\u0069\u0074l\u0065",_eega .Title );if _eega .A !=nil {_cffg .Set ("\u0041",_eega .A );};if _ffaaa :=_cffg .Get ("\u0053\u0045");
|
||
_ffaaa !=nil {_cffg .Remove ("\u0053\u0045");};if _eega .C !=nil {_cffg .Set ("\u0043",_eega .C );};if _eega .Dest !=nil {_cffg .Set ("\u0044\u0065\u0073\u0074",_eega .Dest );};if _eega .F !=nil {_cffg .Set ("\u0046",_eega .F );};if _eega .Count !=nil {_cffg .Set ("\u0043\u006f\u0075n\u0074",_ae .MakeInteger (*_eega .Count ));
|
||
};if _eega .Next !=nil {_cffg .Set ("\u004e\u0065\u0078\u0074",_eega .Next .ToPdfObject ());};if _eega .First !=nil {_cffg .Set ("\u0046\u0069\u0072s\u0074",_eega .First .ToPdfObject ());};if _eega .Prev !=nil {_cffg .Set ("\u0050\u0072\u0065\u0076",_eega .Prev .GetContext ().GetContainingPdfObject ());
|
||
};if _eega .Last !=nil {_cffg .Set ("\u004c\u0061\u0073\u0074",_eega .Last .GetContext ().GetContainingPdfObject ());};if _eega .Parent !=nil {_cffg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_eega .Parent .GetContext ().GetContainingPdfObject ());};
|
||
return _eacf ;};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_fedae :=&PdfSignature {Type :_ae .MakeName ("\u0053\u0069\u0067"),Handler :handler };_dfcde :=&pdfSignDictionary {PdfObjectDictionary :_ae .MakeDict (),_febbd :&handler ,_cbcbe :_fedae };_fedae ._gccbeg =_ae .MakeIndirectObject (_dfcde );
|
||
return _fedae ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_agdb *Outline )ToPdfObject ()_ae .PdfObject {return _agdb .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_bbbcf *pdfFontSimple )Encoder ()_bgg .TextEncoder {if _bbbcf ._dead !=nil {return _bbbcf ._dead ;};if _bbbcf ._aacd !=nil {return _bbbcf ._aacd ;};_bedgg ,_ :=_bgg .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _bedgg ;};
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_aaecd *Outline )Add (item *OutlineItem ){_aaecd .Entries =append (_aaecd .Entries ,item )};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_bb :=NewPdfAction ();_gcf :=&PdfActionGoToR {};_gcf .PdfAction =_bb ;_bb .SetContext (_gcf );return _gcf ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);
|
||
FieldFlagNoExport FieldFlag =(2<<1);FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);
|
||
FieldFlagFileSelect FieldFlag =(1<<20);FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<26);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);
|
||
FieldFlagSort FieldFlag =(1<<19);FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););func _fegbg (_gbcdb []byte )(_abcc ,_fdbde string ,_eacg error ){_ac .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_gbcdb ));
|
||
_gceeb :=_cgcea .FindIndex (_gbcdb );if _gceeb ==nil {_ac .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 "","",_ae .ErrTypeError ;};_gdcg :=_gceeb [1];_afbf :=_eg .Index (string (_gbcdb [_gdcg :]),_aeebg );if _afbf < 0{_abcc =string (_gbcdb [_gdcg :]);return _abcc ,"",nil ;};_gdgf :=_gdcg +_afbf ;_abcc =string (_gbcdb [_gdcg :_gdgf ]);_dfdba :=_gdgf ;
|
||
_afbf =_eg .Index (string (_gbcdb [_dfdba :]),_aagfc );if _afbf < 0{_ac .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",_eacg );
|
||
return "","",_ae .ErrTypeError ;};_dfcac :=_dfdba +_afbf ;_fdbde =string (_gbcdb [_dfdba :_dfcac ]);return _abcc ,_fdbde ,nil ;};
|
||
|
||
// GetContainingPdfObject implements model.PdfModel interface.
|
||
func (_cddcb *PdfOutputIntent )GetContainingPdfObject ()_ae .PdfObject {return _cddcb ._gfdfbf };
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_gabe *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_ebgg :=range pages {_ebgg =_ebgg .Duplicate ();_gabdf (_ebgg );_gabe ._eabf =append (_gabe ._eabf ,_ebgg );};};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_abacg *PdfFunctionType3 )ToPdfObject ()_ae .PdfObject {_fccg :=_ae .MakeDict ();_fccg .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (3));_aagfg :=&_ae .PdfObjectArray {};for _ ,_gcffbg :=range _abacg .Domain {_aagfg .Append (_ae .MakeFloat (_gcffbg ));
|
||
};_fccg .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_aagfg );if _abacg .Range !=nil {_bdcb :=&_ae .PdfObjectArray {};for _ ,_affcd :=range _abacg .Range {_bdcb .Append (_ae .MakeFloat (_affcd ));};_fccg .Set ("\u0052\u0061\u006eg\u0065",_bdcb );};if _abacg .Functions !=nil {_bgecg :=&_ae .PdfObjectArray {};
|
||
for _ ,_cdbgf :=range _abacg .Functions {_bgecg .Append (_cdbgf .ToPdfObject ());};_fccg .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_bgecg );};if _abacg .Bounds !=nil {_fcab :=&_ae .PdfObjectArray {};for _ ,_dbea :=range _abacg .Bounds {_fcab .Append (_ae .MakeFloat (_dbea ));
|
||
};_fccg .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_fcab );};if _abacg .Encode !=nil {_cbabe :=&_ae .PdfObjectArray {};for _ ,_dbfbf :=range _abacg .Encode {_cbabe .Append (_ae .MakeFloat (_dbfbf ));};_fccg .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_cbabe );
|
||
};if _abacg ._gege !=nil {_abacg ._gege .PdfObject =_fccg ;return _abacg ._gege ;};return _fccg ;};
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _ae .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _ae .PdfObject ;Contents _ae .PdfObject ;
|
||
Rotate *int64 ;Group _ae .PdfObject ;Thumb _ae .PdfObject ;B _ae .PdfObject ;Dur _ae .PdfObject ;Trans _ae .PdfObject ;AA _ae .PdfObject ;Metadata _ae .PdfObject ;PieceInfo _ae .PdfObject ;StructParents _ae .PdfObject ;ID _ae .PdfObject ;PZ _ae .PdfObject ;
|
||
SeparationInfo _ae .PdfObject ;Tabs _ae .PdfObject ;TemplateInstantiated _ae .PdfObject ;PresSteps _ae .PdfObject ;UserUnit _ae .PdfObject ;VP _ae .PdfObject ;Annots _ae .PdfObject ;_dgfec []*PdfAnnotation ;_efgca *_ae .PdfObjectDictionary ;_egbbg *_ae .PdfIndirectObject ;
|
||
_eedgd _ae .PdfObjectDictionary ;_bceef *PdfReader ;};
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_fecge *PdfPageResources )SetPatternByName (keyName _ae .PdfObjectName ,pattern _ae .PdfObject )error {if _fecge .Pattern ==nil {_fecge .Pattern =_ae .MakeDict ();};_fccfa ,_feeag :=_ae .GetDict (_fecge .Pattern );if !_feeag {return _ae .ErrTypeError ;
|
||
};_fccfa .Set (keyName ,pattern );return nil ;};
|
||
|
||
// ToWriter creates a new writer from the current reader, based on the specified options.
|
||
// If no options are provided, all reader properties are copied to the writer.
|
||
func (_ggbed *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_gggce :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_dgfecg ,_feeg :=_ggbed .GetNumPages ();if _feeg !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_feeg );
|
||
return nil ,_feeg ;};for _fddad :=1;_fddad <=_dgfecg ;_fddad ++{_gedec ,_adbaec :=_ggbed .GetPage (_fddad );if _adbaec !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbaec );return nil ,_adbaec ;};if opts .PageProcessCallback !=nil {_adbaec =opts .PageProcessCallback (_fddad ,_gedec );
|
||
if _adbaec !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbaec );return nil ,_adbaec ;};}else if opts .PageCallback !=nil {opts .PageCallback (_fddad ,_gedec );};_adbaec =_gggce .AddPage (_gedec );if _adbaec !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbaec );
|
||
return nil ,_adbaec ;};};_gggce ._faffe =_ggbed .PdfVersion ();if !opts .SkipInfo {_fgcaf ,_afcbfb :=_ggbed .GetPdfInfo ();if _afcbfb !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_afcbfb );}else {_gggce ._cbffg .PdfObject =_fgcaf .ToPdfObject ();
|
||
};};if !opts .SkipMetadata {if _bfea :=_ggbed ._aedf .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bfea !=nil {if _ecbbc :=_gggce .SetCatalogMetadata (_bfea );_ecbbc !=nil {return nil ,_ecbbc ;};};};if !opts .SkipAcroForm {_cegea :=_gggce .SetForms (_ggbed .AcroForm );
|
||
if _cegea !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_cegea );return nil ,_cegea ;};};if !opts .SkipOutlines {_gggce .AddOutlineTree (_ggbed .GetOutlineTree ());};if !opts .SkipOCProperties {_fgdbf ,_dded :=_ggbed .GetOCProperties ();
|
||
if _dded !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dded );}else {_dded =_gggce .SetOCProperties (_fgdbf );if _dded !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dded );};};};if !opts .SkipPageLabels {_fgbbe ,_ggfddf :=_ggbed .GetPageLabels ();
|
||
if _ggfddf !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ggfddf );}else {_ggfddf =_gggce .SetPageLabels (_fgbbe );if _ggfddf !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ggfddf );};};};if !opts .SkipNamedDests {_decbab ,_decad :=_ggbed .GetNamedDestinations ();
|
||
if _decad !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_decad );}else {_decad =_gggce .SetNamedDestinations (_decbab );if _decad !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_decad );};};};if !opts .SkipNameDictionary {_gadcgg ,_eefe :=_ggbed .GetNameDictionary ();
|
||
if _eefe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eefe );}else {_eefe =_gggce .SetNameDictionary (_gadcgg );if _eefe !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_eefe );};};};if !opts .SkipRotation &&_ggbed .Rotate !=nil {if _beadb :=_gggce .SetRotation (*_ggbed .Rotate );
|
||
_beadb !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_beadb );};};return &_gggce ,nil ;};
|
||
|
||
// NewPdfReaderLazy creates a new PdfReader for `rs` in lazy-loading mode. The difference
|
||
// from NewPdfReader is that in lazy-loading mode, objects are only loaded into memory when needed
|
||
// rather than entire structure being loaded into memory on reader creation.
|
||
// Note that it may make sense to use the lazy-load reader when processing only parts of files,
|
||
// rather than loading entire file into memory. Example: splitting a few pages from a large PDF file.
|
||
func NewPdfReaderLazy (rs _gdc .ReadSeeker )(*PdfReader ,error ){const _dgedg ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _fccgfc (rs ,&ReaderOpts {LazyLoad :true },false ,_dgedg );
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_egbb *PdfColorspaceDeviceRGB )ToPdfObject ()_ae .PdfObject {return _ae .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};func (_bgdeg *PdfWriter )copyObjects (){_fcdbb :=make (map[_ae .PdfObject ]_ae .PdfObject );_bcfga :=make ([]_ae .PdfObject ,0,len (_bgdeg ._edbe ));
|
||
_acgb :=make (map[_ae .PdfObject ]struct{},len (_bgdeg ._edbe ));_egcedb :=make (map[_ae .PdfObject ]struct{});for _ ,_bgefd :=range _bgdeg ._edbe {_bedfg :=_bgdeg .copyObject (_bgefd ,_fcdbb ,_egcedb ,false );if _ ,_gdcd :=_egcedb [_bgefd ];_gdcd {continue ;
|
||
};_bcfga =append (_bcfga ,_bedfg );_acgb [_bedfg ]=struct{}{};};_bgdeg ._edbe =_bcfga ;_bgdeg ._faecg =_acgb ;_bgdeg ._cbffg =_bgdeg .copyObject (_bgdeg ._cbffg ,_fcdbb ,nil ,false ).(*_ae .PdfIndirectObject );_bgdeg ._aacfc =_bgdeg .copyObject (_bgdeg ._aacfc ,_fcdbb ,nil ,false ).(*_ae .PdfIndirectObject );
|
||
if _bgdeg ._feddfa !=nil {_bgdeg ._feddfa =_bgdeg .copyObject (_bgdeg ._feddfa ,_fcdbb ,nil ,false ).(*_ae .PdfIndirectObject );};if _bgdeg ._dffad {_ddgdfd :=make (map[_ae .PdfObject ]int64 );for _dfdfa ,_dbegd :=range _bgdeg ._fbfcdf {if _dgga ,_cffgc :=_fcdbb [_dfdfa ];
|
||
_cffgc {_ddgdfd [_dgga ]=_dbegd ;}else {_ac .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");
|
||
};};_bgdeg ._fbfcdf =_ddgdfd ;};};
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_ae .PdfObjectBool ;SigFlags *_ae .PdfObjectInteger ;CO *_ae .PdfObjectArray ;DR *PdfPageResources ;DA *_ae .PdfObjectString ;Q *_ae .PdfObjectInteger ;XFA _ae .PdfObject ;
|
||
|
||
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
|
||
ADBEEchoSign _ae .PdfObject ;_febbe *_ae .PdfIndirectObject ;_fcbae bool ;};func (_ggeeg *PdfReader )newPdfSignatureFromIndirect (_ecebc *_ae .PdfIndirectObject )(*PdfSignature ,error ){_fddea ,_dgdcb :=_ecebc .PdfObject .(*_ae .PdfObjectDictionary );if !_dgdcb {_ac .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 _adgcd ,_ggfb :=_ggeeg ._gdbcb .GetModelFromPrimitive (_ecebc ).(*PdfSignature );_ggfb {return _adgcd ,nil ;};_fdege :=&PdfSignature {};_fdege ._gccbeg =_ecebc ;_fdege .Type ,_ =_ae .GetName (_fddea .Get ("\u0054\u0079\u0070\u0065"));
|
||
_fdege .Filter ,_dgdcb =_ae .GetName (_fddea .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_dgdcb {_ac .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 ;};_fdege .SubFilter ,_ =_ae .GetName (_fddea .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_fdege .Contents ,_dgdcb =_ae .GetString (_fddea .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_dgdcb {_ac .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 _bdag ,_bddf :=_ae .GetArray (_fddea .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_bddf {_fdege .Reference =_ae .MakeArray ();for _ ,_cdacg :=range _bdag .Elements (){_efccb ,_abccc :=_ae .GetDict (_cdacg );
|
||
if !_abccc {_ac .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 ;
|
||
};_gdbfa ,_acfgd :=_ggeeg .newPdfSignatureReferenceFromDict (_efccb );if _acfgd !=nil {return nil ,_acfgd ;};_fdege .Reference .Append (_gdbfa .ToPdfObject ());};};_fdege .Cert =_fddea .Get ("\u0043\u0065\u0072\u0074");_fdege .ByteRange ,_ =_ae .GetArray (_fddea .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
|
||
_fdege .Changes ,_ =_ae .GetArray (_fddea .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_fdege .Name ,_ =_ae .GetString (_fddea .Get ("\u004e\u0061\u006d\u0065"));_fdege .M ,_ =_ae .GetString (_fddea .Get ("\u004d"));_fdege .Location ,_ =_ae .GetString (_fddea .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_fdege .Reason ,_ =_ae .GetString (_fddea .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_fdege .ContactInfo ,_ =_ae .GetString (_fddea .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_fdege .R ,_ =_ae .GetInt (_fddea .Get ("\u0052"));
|
||
_fdege .V ,_ =_ae .GetInt (_fddea .Get ("\u0056"));_fdege .PropBuild ,_ =_ae .GetDict (_fddea .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_fdege .PropAuthTime ,_ =_ae .GetInt (_fddea .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_fdege .PropAuthType ,_ =_ae .GetName (_fddea .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_ggeeg ._gdbcb .Register (_ecebc ,_fdege );return _fdege ,nil ;};
|
||
|
||
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
|
||
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_ae .PdfObjectArray ;ExtGState _ae .PdfObject ;};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_eaag :=map[rune ]int {};for _ ,_bfca :=range text {_eaag [_bfca ]++;};return _eaag ;};func (_fceg *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";
|
||
};func (_adaa *PdfWriter )writeOutputIntents ()error {if len (_adaa ._bbbca )==0{return nil ;};_ffccf :=make ([]_ae .PdfObject ,len (_adaa ._bbbca ));for _adbaf ,_bagcf :=range _adaa ._bbbca {_gdgefc :=_bagcf .ToPdfObject ();_ffccf [_adbaf ]=_ae .MakeIndirectObject (_gdgefc );
|
||
};_gbccg :=_ae .MakeIndirectObject (_ae .MakeArray (_ffccf ...));_adaa ._caddd .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_gbccg );if _abgab :=_adaa .addObjects (_gbccg );_abgab !=nil {return _abgab ;};return nil ;
|
||
};
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_egde *PdfPage )GetAllContentStreams ()(string ,error ){_daeb ,_gefca :=_egde .GetContentStreams ();if _gefca !=nil {return "",_gefca ;};return _eg .Join (_daeb ,"\u0020"),nil ;};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_ffed *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_cecb *PdfColorDeviceRGB )B ()float64 {return _cecb [2]};
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_degacc *PdfPageResources )GetXObjectByName (keyName _ae .PdfObjectName )(*_ae .PdfObjectStream ,XObjectType ){if _degacc .XObject ==nil {return nil ,XObjectTypeUndefined ;};_bggcg ,_bbfeb :=_ae .TraceToDirectObject (_degacc .XObject ).(*_ae .PdfObjectDictionary );
|
||
if !_bbfeb {_ac .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",_ae .TraceToDirectObject (_degacc .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _cccda :=_bggcg .Get (keyName );_cccda !=nil {_beacc ,_agffb :=_ae .GetStream (_cccda );if !_agffb {_ac .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",_cccda );
|
||
return nil ,XObjectTypeUndefined ;};_dcba :=_beacc .PdfObjectDictionary ;_ebaef ,_agffb :=_ae .TraceToDirectObject (_dcba .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_ae .PdfObjectName );if !_agffb {_ac .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",_dcba .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_ebaef =="\u0049\u006d\u0061g\u0065"{return _beacc ,XObjectTypeImage ;}else if *_ebaef =="\u0046\u006f\u0072\u006d"{return _beacc ,XObjectTypeForm ;}else if *_ebaef =="\u0050\u0053"{return _beacc ,XObjectTypePS ;
|
||
}else {_ac .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",*_ebaef );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
|
||
};};type pdfFontType3 struct{fontCommon ;_cfbea *_ae .PdfIndirectObject ;
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _ae .PdfObject ;Encoding _ae .PdfObject ;FontBBox _ae .PdfObject ;FontMatrix _ae .PdfObject ;FirstChar _ae .PdfObject ;LastChar _ae .PdfObject ;Widths _ae .PdfObject ;Resources _ae .PdfObject ;_adggg map[_bgg .CharCode ]float64 ;_debad _bgg .TextEncoder ;
|
||
};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_ecgd *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func _dbaeg (_agbag *_ae .PdfObjectDictionary )(*PdfShadingType6 ,error ){_eaee :=PdfShadingType6 {};_dgcff :=_agbag .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _dgcff ==nil {_ac .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 ;};_ddeaf ,_abce :=_dgcff .(*_ae .PdfObjectInteger );if !_abce {_ac .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",_dgcff );
|
||
return nil ,_ae .ErrTypeError ;};_eaee .BitsPerCoordinate =_ddeaf ;_dgcff =_agbag .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dgcff ==nil {_ac .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 ;};_ddeaf ,_abce =_dgcff .(*_ae .PdfObjectInteger );if !_abce {_ac .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",_dgcff );
|
||
return nil ,_ae .ErrTypeError ;};_eaee .BitsPerComponent =_ddeaf ;_dgcff =_agbag .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _dgcff ==nil {_ac .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 ;};_ddeaf ,_abce =_dgcff .(*_ae .PdfObjectInteger );if !_abce {_ac .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",_dgcff );
|
||
return nil ,_ae .ErrTypeError ;};_eaee .BitsPerComponent =_ddeaf ;_dgcff =_agbag .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dgcff ==nil {_ac .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 ;};_ggcfb ,_abce :=_dgcff .(*_ae .PdfObjectArray );if !_abce {_ac .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",_dgcff );
|
||
return nil ,_ae .ErrTypeError ;};_eaee .Decode =_ggcfb ;if _afdba :=_agbag .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_afdba !=nil {_eaee .Function =[]PdfFunction {};if _cebda ,_bcage :=_afdba .(*_ae .PdfObjectArray );_bcage {for _ ,_gcbdb :=range _cebda .Elements (){_gegf ,_ceebg :=_gdbef (_gcbdb );
|
||
if _ceebg !=nil {_ac .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",_ceebg );return nil ,_ceebg ;};_eaee .Function =append (_eaee .Function ,_gegf );
|
||
};}else {_dcebb ,_fdfaa :=_gdbef (_afdba );if _fdfaa !=nil {_ac .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",_fdfaa );return nil ,_fdfaa ;
|
||
};_eaee .Function =append (_eaee .Function ,_dcebb );};};return &_eaee ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bffa *PdfAnnotationWatermark )ToPdfObject ()_ae .PdfObject {_bffa .PdfAnnotation .ToPdfObject ();_fcdc :=_bffa ._gcgf ;_acgf :=_fcdc .PdfObject .(*_ae .PdfObjectDictionary );_acgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_acgf .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_bffa .FixedPrint );return _fcdc ;};
|
||
|
||
// SetNamedDestinations sets the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_eebedc *PdfWriter )SetNamedDestinations (dests _ae .PdfObject )error {if dests ==nil {return nil ;};_ac .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
|
||
_eebedc ._caddd .Set ("\u0044\u0065\u0073t\u0073",dests );return _eebedc .addObjects (dests );};const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
|
||
|
||
// GetPerms returns the Permissions dictionary
|
||
func (_bffac *PdfReader )GetPerms ()*Permissions {return _bffac ._cgfad };
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_afcbb *PdfWriter )GetOptimizer ()Optimizer {return _afcbb ._ffefg };
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;VerticesPerRow *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};func (_cecd *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};
|
||
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_eceb *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_eceb .GetNumComponents (){return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fbae ,_cadg :=_eceb .TintTransform .Evaluate (vals );
|
||
if _cadg !=nil {return nil ,_cadg ;};_ecaa ,_cadg :=_eceb .AlternateSpace .ColorFromFloats (_fbae );if _cadg !=nil {return nil ,_cadg ;};return _ecaa ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cegce *PdfAnnotationPrinterMark )ToPdfObject ()_ae .PdfObject {_cegce .PdfAnnotation .ToPdfObject ();_cfgb :=_cegce ._gcgf ;_decg :=_cfgb .PdfObject .(*_ae .PdfObjectDictionary );_decg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_decg .SetIfNotNil ("\u004d\u004e",_cegce .MN );return _cfgb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdfe *PdfAnnotationLink )ToPdfObject ()_ae .PdfObject {_fdfe .PdfAnnotation .ToPdfObject ();_fcbd :=_fdfe ._gcgf ;_eaec :=_fcbd .PdfObject .(*_ae .PdfObjectDictionary );_eaec .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _fdfe ._ebf !=nil &&_fdfe ._ebf ._df !=nil {_eaec .Set ("\u0041",_fdfe ._ebf ._df .ToPdfObject ());}else if _fdfe .A !=nil {_eaec .Set ("\u0041",_fdfe .A );};_eaec .SetIfNotNil ("\u0044\u0065\u0073\u0074",_fdfe .Dest );_eaec .SetIfNotNil ("\u0048",_fdfe .H );
|
||
_eaec .SetIfNotNil ("\u0050\u0041",_fdfe .PA );_eaec .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fdfe .QuadPoints );_eaec .SetIfNotNil ("\u0042\u0053",_fdfe .BS );return _fcbd ;};
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_cadgd .Lock ();defer _cadgd .Unlock ();_bbgdec =producer };
|
||
|
||
// 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 (_fccce *Image )SetSamples (samples []uint32 ){if _fccce .BitsPerComponent < 8{samples =_fccce .samplesAddPadding (samples );};_cabca :=_ba .ResampleUint32 (samples ,int (_fccce .BitsPerComponent ),8);_bagba :=make ([]byte ,len (_cabca ));for _eccbc ,_aecab :=range _cabca {_bagba [_eccbc ]=byte (_aecab );
|
||
};_fccce .Data =_bagba ;};
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _ae .PdfObject )(*PdfFilespec ,error ){_dfbcf :=&PdfFilespec {};var _dbba *_ae .PdfObjectDictionary ;if _fbcg ,_gdgb :=_ae .GetIndirect (obj );_gdgb {_dfbcf ._caeaag =_fbcg ;_dfbf ,_beeee :=_ae .GetDict (_fbcg .PdfObject );
|
||
if !_beeee {_ac .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 ,_ae .ErrTypeError ;};_dbba =_dfbf ;}else if _cdfd ,_dcdgd :=_ae .GetDict (obj );
|
||
_dcdgd {_dfbcf ._caeaag =_cdfd ;_dbba =_cdfd ;}else {_ac .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 ,_ae .ErrTypeError ;};if _dbba ==nil {_ac .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,_db .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _bbeb :=_dbba .Get ("\u0054\u0079\u0070\u0065");_bbeb !=nil {_bfaaa ,_gcac :=_bbeb .(*_ae .PdfObjectName );if !_gcac {_ac .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",_bbeb );
|
||
}else {if *_bfaaa !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ac .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",*_bfaaa );
|
||
};};};if _dedbe :=_dbba .Get ("\u0046\u0053");_dedbe !=nil {_dfbcf .FS =_dedbe ;};if _fbabc :=_dbba .Get ("\u0046");_fbabc !=nil {_dfbcf .F =_fbabc ;};if _fggaa :=_dbba .Get ("\u0055\u0046");_fggaa !=nil {_dfbcf .UF =_fggaa ;};if _dcbbe :=_dbba .Get ("\u0044\u004f\u0053");
|
||
_dcbbe !=nil {_dfbcf .DOS =_dcbbe ;};if _afgd :=_dbba .Get ("\u004d\u0061\u0063");_afgd !=nil {_dfbcf .Mac =_afgd ;};if _afaf :=_dbba .Get ("\u0055\u006e\u0069\u0078");_afaf !=nil {_dfbcf .Unix =_afaf ;};if _dfbg :=_dbba .Get ("\u0049\u0044");_dfbg !=nil {_dfbcf .ID =_dfbg ;
|
||
};if _ddce :=_dbba .Get ("\u0056");_ddce !=nil {_dfbcf .V =_ddce ;};if _cdfdb :=_dbba .Get ("\u0045\u0046");_cdfdb !=nil {_dfbcf .EF =_cdfdb ;};if _aeae :=_dbba .Get ("\u0052\u0046");_aeae !=nil {_dfbcf .RF =_aeae ;};if _gfcfc :=_dbba .Get ("\u0044\u0065\u0073\u0063");
|
||
_gfcfc !=nil {_dfbcf .Desc =_gfcfc ;};if _gabc :=_dbba .Get ("\u0043\u0049");_gabc !=nil {_dfbcf .CI =_gabc ;};return _dfbcf ,nil ;};
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_cag :=NewPdfAction ();_egg :=&PdfActionTrans {};_egg .PdfAction =_cag ;_cag .SetContext (_egg );return _egg ;};func (_ffeda *Image )samplesTrimPadding (_dbbdd []uint32 )[]uint32 {_ffebeg :=_ffeda .ColorComponents *int (_ffeda .Width )*int (_ffeda .Height );
|
||
if len (_dbbdd )==_ffebeg {return _dbbdd ;};_fdcc :=make ([]uint32 ,_ffebeg );_agdg :=int (_ffeda .Width )*_ffeda .ColorComponents ;var _agbc ,_fccdd ,_eeege ,_gdfa int ;_deddg :=_afc .BytesPerLine (int (_ffeda .Width ),int (_ffeda .BitsPerComponent ),_ffeda .ColorComponents );
|
||
for _agbc =0;_agbc < int (_ffeda .Height );_agbc ++{_fccdd =_agbc *int (_ffeda .Width );_eeege =_agbc *_deddg ;for _gdfa =0;_gdfa < _agdg ;_gdfa ++{_fdcc [_fccdd +_gdfa ]=_dbbdd [_eeege +_gdfa ];};};return _fdcc ;};
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_dcaee *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_dcaee .HiVal )};};
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _d .Time ){_cadgd .Lock ();defer _cadgd .Unlock ();_ddage =creationDate ;};
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_dgef *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _dgef .Alternate ==nil {_ac .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 _dgef .N ==1{_ac .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");
|
||
_ffdgf :=NewPdfColorspaceDeviceGray ();return _ffdgf .ImageToRGB (img );}else if _dgef .N ==3{_ac .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 _dgef .N ==4{_ac .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");
|
||
_eggc :=NewPdfColorspaceDeviceCMYK ();return _eggc .ImageToRGB (img );}else {return img ,_db .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");
|
||
};};_ac .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",_dgef );
|
||
_dgbfd ,_egfde :=_dgef .Alternate .ImageToRGB (img );_ac .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ac .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_dgbfd );
|
||
return _dgbfd ,_egfde ;};
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_gfdc *PdfFont )ToPdfObject ()_ae .PdfObject {if _gfdc ._dabg ==nil {_ac .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 _ae .MakeNull ();
|
||
};return _gfdc ._dabg .ToPdfObject ();};func (_abbe *PdfReader )newPdfPageFromDict (_aeea *_ae .PdfObjectDictionary )(*PdfPage ,error ){_ddfbf :=NewPdfPage ();_ddfbf ._efgca =_aeea ;_ddfbf ._eedgd =*_aeea ;_ceed :=*_aeea ;_fffca ,_gcffe :=_ceed .Get ("\u0054\u0079\u0070\u0065").(*_ae .PdfObjectName );
|
||
if !_gcffe {return nil ,_db .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 *_fffca !="\u0050\u0061\u0067\u0065"{return nil ,_db .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 _dddef :=_ceed .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dddef !=nil {_ddfbf .Parent =_dddef ;};if _cgfg :=_ceed .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_cgfg !=nil {_gaagg ,_eaca :=_ae .GetString (_cgfg );
|
||
if !_eaca {return nil ,_db .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");};
|
||
_bfdgf ,_aagc :=NewPdfDate (_gaagg .Str ());if _aagc !=nil {return nil ,_aagc ;};_ddfbf .LastModified =&_bfdgf ;};if _ecacd :=_ceed .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_ecacd !=nil &&!_ae .IsNullObject (_ecacd ){_badfg ,_ebbfd :=_ae .GetDict (_ecacd );
|
||
if !_ebbfd {return nil ,_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063e\u0020d\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u0028\u0025\u0054\u0029",_ecacd );};var _dadgf error ;_ddfbf .Resources ,_dadgf =NewPdfPageResourcesFromDict (_badfg );
|
||
if _dadgf !=nil {return nil ,_dadgf ;};}else {_edeec ,_daaa :=_ddfbf .getParentResources ();if _daaa !=nil {return nil ,_daaa ;};if _edeec ==nil {_edeec =NewPdfPageResources ();};_ddfbf .Resources =_edeec ;};if _cbgdb :=_ceed .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_cbgdb !=nil {_cgecb ,_eafd :=_ae .GetArray (_cbgdb );if !_eafd {return nil ,_db .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 _cffcb error ;
|
||
_ddfbf .MediaBox ,_cffcb =NewPdfRectangle (*_cgecb );if _cffcb !=nil {return nil ,_cffcb ;};};if _edeea :=_ceed .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_edeea !=nil {_accfg ,_cddea :=_ae .GetArray (_edeea );if !_cddea {return nil ,_db .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _cgbd error ;_ddfbf .CropBox ,_cgbd =NewPdfRectangle (*_accfg );if _cgbd !=nil {return nil ,_cgbd ;};};if _aagbc :=_ceed .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_aagbc !=nil {_bgegd ,_bcba :=_ae .GetArray (_aagbc );if !_bcba {return nil ,_db .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 _efbb error ;_ddfbf .BleedBox ,_efbb =NewPdfRectangle (*_bgegd );if _efbb !=nil {return nil ,_efbb ;};};if _abeef :=_ceed .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_abeef !=nil {_gbbdg ,_bgggd :=_ae .GetArray (_abeef );if !_bgggd {return nil ,_db .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _adac error ;_ddfbf .TrimBox ,_adac =NewPdfRectangle (*_gbbdg );if _adac !=nil {return nil ,_adac ;};};if _fgcda :=_ceed .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_fgcda !=nil {_cbbgb ,_fgab :=_ae .GetArray (_fgcda );if !_fgab {return nil ,_db .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _gebac error ;_ddfbf .ArtBox ,_gebac =NewPdfRectangle (*_cbbgb );if _gebac !=nil {return nil ,_gebac ;};};if _edeff :=_ceed .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_edeff !=nil {_ddfbf .BoxColorInfo =_edeff ;};
|
||
if _fbfe :=_ceed .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_fbfe !=nil {_ddfbf .Contents =_fbfe ;};if _dccfc :=_ceed .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dccfc !=nil {_dgcb ,_adef :=_ae .GetNumberAsInt64 (_dccfc );if _adef !=nil {return nil ,_db .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");
|
||
};_ddfbf .Rotate =&_dgcb ;};if _dcfb :=_ceed .Get ("\u0047\u0072\u006fu\u0070");_dcfb !=nil {_ddfbf .Group =_dcfb ;};if _ebea :=_ceed .Get ("\u0054\u0068\u0075m\u0062");_ebea !=nil {_ddfbf .Thumb =_ebea ;};if _gadcd :=_ceed .Get ("\u0042");_gadcd !=nil {_ddfbf .B =_gadcd ;
|
||
};if _gcead :=_ceed .Get ("\u0044\u0075\u0072");_gcead !=nil {_ddfbf .Dur =_gcead ;};if _cfdbc :=_ceed .Get ("\u0054\u0072\u0061n\u0073");_cfdbc !=nil {_ddfbf .Trans =_cfdbc ;};if _cggdc :=_ceed .Get ("\u0041\u0041");_cggdc !=nil {_ddfbf .AA =_cggdc ;};
|
||
if _cfcef :=_ceed .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_cfcef !=nil {_ddfbf .Metadata =_cfcef ;};if _ddabca :=_ceed .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_ddabca !=nil {_ddfbf .PieceInfo =_ddabca ;};if _eaabe :=_ceed .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
|
||
_eaabe !=nil {_ddfbf .StructParents =_eaabe ;};if _ccab :=_ceed .Get ("\u0049\u0044");_ccab !=nil {_ddfbf .ID =_ccab ;};if _bcceg :=_ceed .Get ("\u0050\u005a");_bcceg !=nil {_ddfbf .PZ =_bcceg ;};if _eaacb :=_ceed .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
|
||
_eaacb !=nil {_ddfbf .SeparationInfo =_eaacb ;};if _gbfe :=_ceed .Get ("\u0054\u0061\u0062\u0073");_gbfe !=nil {_ddfbf .Tabs =_gbfe ;};if _gdfb :=_ceed .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
|
||
_gdfb !=nil {_ddfbf .TemplateInstantiated =_gdfb ;};if _bdadfd :=_ceed .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_bdadfd !=nil {_ddfbf .PresSteps =_bdadfd ;};if _dedcb :=_ceed .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_dedcb !=nil {_ddfbf .UserUnit =_dedcb ;
|
||
};if _afafe :=_ceed .Get ("\u0056\u0050");_afafe !=nil {_ddfbf .VP =_afafe ;};if _dgadb :=_ceed .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_dgadb !=nil {_ddfbf .Annots =_dgadb ;};_ddfbf ._bceef =_abbe ;return _ddfbf ,nil ;};func _gccbg ()*modelManager {_gacbb :=modelManager {};
|
||
_gacbb ._gbed =map[PdfModel ]_ae .PdfObject {};_gacbb ._bdcg =map[_ae .PdfObject ]PdfModel {};return &_gacbb ;};
|
||
|
||
// 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 *_ce .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_ce .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_ce .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_gbcge *PdfAppender ;_dbggb *DSS ;};
|
||
|
||
// ToImage converts an object to an Image which can be transformed or saved out.
|
||
// The image data is decoded and the Image returned.
|
||
func (_deffb *XObjectImage )ToImage ()(*Image ,error ){_caddb :=&Image {};if _deffb .Height ==nil {return nil ,_db .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_caddb .Height =*_deffb .Height ;if _deffb .Width ==nil {return nil ,_db .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_caddb .Width =*_deffb .Width ;if _deffb .BitsPerComponent ==nil {switch _deffb .Filter .(type ){case *_ae .CCITTFaxEncoder ,*_ae .JBIG2Encoder :_caddb .BitsPerComponent =1;
|
||
case *_ae .LZWEncoder ,*_ae .RunLengthEncoder :_caddb .BitsPerComponent =8;default:return nil ,_db .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 {_caddb .BitsPerComponent =*_deffb .BitsPerComponent ;};_caddb .ColorComponents =_deffb .ColorSpace .GetNumComponents ();_deffb ._efaag .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_ae .MakeInteger (int64 (_caddb .ColorComponents )));
|
||
_edea ,_cggdag :=_ae .DecodeStream (_deffb ._efaag );if _cggdag !=nil {return nil ,_cggdag ;};_caddb .Data =_edea ;if _deffb .Decode !=nil {_deccb ,_aefba :=_deffb .Decode .(*_ae .PdfObjectArray );if !_aefba {_ac .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_db .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_bffaca ,_dgffc :=_deccb .ToFloat64Array ();if _dgffc !=nil {return nil ,_dgffc ;};switch _deffb .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_fecbf :=_deffb .ColorSpace .DecodeArray ();
|
||
if _fecbf [0]==_bffaca [0]&&_fecbf [1]==_bffaca [1]&&_fecbf [2]==_bffaca [2]&&_fecbf [3]==_bffaca [3]{_caddb ._fdae =_bffaca ;};default:_caddb ._fdae =_bffaca ;};};return _caddb ,nil ;};
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _ae .PdfObject )(*PdfFont ,error ){return _baabd (fontObj ,true )};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_ddde *PdfFont )Encoder ()_bgg .TextEncoder {_bfbbaf :=_ddde .actualFont ();if _bfbbaf ==nil {_ac .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",_ddde ._dabg );
|
||
return nil ;};return _bfbbaf .Encoder ();};
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_bgdfa *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _bgdfa .UnderlyingCS .GetNumComponents ();};
|
||
|
||
// GetRevision returns the specific version of the PdfReader for the current Pdf document
|
||
func (_ddffd *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_dbcac :=_ddffd ._bfcga .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _dbcac {return nil ,_db .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
|
||
};if revisionNumber ==_dbcac {return _ddffd ,nil ;};if _ddffd ._afagc [revisionNumber ]!=nil {return _ddffd ._afagc [revisionNumber ],nil ;};_dccgf :=_ddffd ;for _ddae :=_dbcac -1;_ddae >=revisionNumber ;_ddae --{_cedde ,_gdcagag :=_dccgf .GetPreviousRevision ();
|
||
if _gdcagag !=nil {return nil ,_gdcagag ;};_ddffd ._afagc [_ddae ]=_cedde ;_dccgf =_cedde ;};return _dccgf ,nil ;};
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_cgcg *PdfReader )GetOutlines ()(*Outline ,error ){if _cgcg ==nil {return nil ,_db .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");
|
||
};_egfef :=_cgcg .GetOutlineTree ();if _egfef ==nil {return nil ,_db .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 _fabfa func (_ebae *PdfOutlineTreeNode ,_ecfeb *[]*OutlineItem );_fabfa =func (_cgaca *PdfOutlineTreeNode ,_dddf *[]*OutlineItem ){if _cgaca ==nil {return ;};if _cgaca ._aaea ==nil {_ac .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 _agde *OutlineItem ;if _cfeaa ,_gadeb :=_cgaca ._aaea .(*PdfOutlineItem );_gadeb {_ggdc :=_cfeaa .Dest ;if (_ggdc ==nil ||_ae .IsNullObject (_ggdc ))&&_cfeaa .A !=nil {if _dfaea ,_bdgba :=_ae .GetDict (_cfeaa .A );_bdgba {if _cfdad ,_egbf :=_ae .GetArray (_dfaea .Get ("\u0044"));
|
||
_egbf {_ggdc =_cfdad ;}else {_cdfc ,_faafc :=_ae .GetString (_dfaea .Get ("\u0044"));if !_faafc {return ;};_bfcge ,_faafc :=_cgcg ._aedf .Get ("\u004e\u0061\u006de\u0073").(*_ae .PdfObjectReference );if !_faafc {return ;};_gecb ,_feaeg :=_cgcg ._bfcga .LookupByReference (*_bfcge );
|
||
if _feaeg !=nil {_ac .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",_feaeg .Error ());
|
||
return ;};_bagg ,_faafc :=_gecb .(*_ae .PdfIndirectObject );if !_faafc {return ;};_bcfbc :=map[_ae .PdfObject ]struct{}{};_feaeg =_cgcg .buildNameNodes (_bagg ,_bcfbc );if _feaeg !=nil {_ac .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",_feaeg .Error ());
|
||
return ;};for _ccdf :=range _bcfbc {_bgaba ,_deecgg :=_ae .GetDict (_ccdf );if !_deecgg {continue ;};_bgbaf ,_deecgg :=_ae .GetArray (_bgaba .Get ("\u004e\u0061\u006de\u0073"));if !_deecgg {continue ;};for _gdfe ,_fbged :=range _bgbaf .Elements (){switch _fbged .(type ){case *_ae .PdfObjectString :if _fbged .String ()==_cdfc .String (){if _bcfd :=_bgbaf .Get (_gdfe +1);
|
||
_bcfd !=nil {if _ddcdcb ,_defcgg :=_ae .GetDict (_bcfd );_defcgg {_ggdc =_ddcdcb .Get ("\u0044");break ;};};};};};};};};};var _efgfe OutlineDest ;if _ggdc !=nil &&!_ae .IsNullObject (_ggdc ){if _feaa ,_eagab :=_abbdb (_ggdc ,_cgcg );_eagab ==nil {_efgfe =*_feaa ;
|
||
}else {_ac .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",_ggdc ,_eagab );
|
||
};};_agde =NewOutlineItem (_cfeaa .Title .Decoded (),_efgfe );*_dddf =append (*_dddf ,_agde );if _cfeaa .Next !=nil {_fabfa (_cfeaa .Next ,_dddf );};};if _cgaca .First !=nil {if _agde !=nil {_dddf =&_agde .Entries ;};_fabfa (_cgaca .First ,_dddf );};};
|
||
_ggegde :=NewOutline ();_fabfa (_egfef ,&_ggegde .Entries );return _ggegde ,nil ;};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_cdfb ,_afdd :=_cb .NewStdFontByName (HelveticaName );if !_afdd {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");
|
||
};_dbaf :=_fbefg (_cdfb );return &PdfFont {_dabg :&_dbaf };};func (_fadbd *PdfWriter )writeString (_ccffe string ){if _fadbd ._fffcb !=nil {return ;};_cbdde ,_eadgg :=_fadbd ._dfgcc .WriteString (_ccffe );_fadbd ._eeegee +=int64 (_cbdde );_fadbd ._fffcb =_eadgg ;
|
||
};
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_fgff *PdfPage )AddContentStreamByString (contentStr string )error {_defcg ,_dccg :=_ae .MakeStream ([]byte (contentStr ),_ae .NewFlateEncoder ());if _dccg !=nil {return _dccg ;};if _fgff .Contents ==nil {_fgff .Contents =_defcg ;}else {_dceca :=_ae .TraceToDirectObject (_fgff .Contents );
|
||
_fdbga ,_gbfef :=_dceca .(*_ae .PdfObjectArray );if !_gbfef {_fdbga =_ae .MakeArray (_dceca );};_fdbga .Append (_defcg );_fgff .Contents =_fdbga ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bag *PdfActionMovie )ToPdfObject ()_ae .PdfObject {_bag .PdfAction .ToPdfObject ();_bed :=_bag ._cbe ;_cfd :=_bed .PdfObject .(*_ae .PdfObjectDictionary );_cfd .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeMovie )));_cfd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_bag .Annotation );
|
||
_cfd .SetIfNotNil ("\u0054",_bag .T );_cfd .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_bag .Operation );return _bed ;};
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_gecf FieldFlag )Mask ()uint32 {return uint32 (_gecf )};func (_abefa *PdfReader )resolveReference (_egabe *_ae .PdfObjectReference )(_ae .PdfObject ,bool ,error ){_acbdd ,_cfcd :=_abefa ._bfcga .ObjCache [int (_egabe .ObjectNumber )];if !_cfcd {_ac .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_egabe );
|
||
_dddfe ,_gfaeg :=_abefa ._bfcga .LookupByReference (*_egabe );if _gfaeg !=nil {return nil ,false ,_gfaeg ;};_abefa ._bfcga .ObjCache [int (_egabe .ObjectNumber )]=_dddfe ;return _dddfe ,false ,nil ;};return _acbdd ,true ,nil ;};func (_cbcf *PdfReader )newPdfAnnotationStrikeOut (_aca *_ae .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_effg :=PdfAnnotationStrikeOut {};
|
||
_daef ,_ccag :=_cbcf .newPdfAnnotationMarkupFromDict (_aca );if _ccag !=nil {return nil ,_ccag ;};_effg .PdfAnnotationMarkup =_daef ;_effg .QuadPoints =_aca .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_effg ,nil ;};
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_bdca FieldFlag )Has (fl FieldFlag )bool {return (_bdca .Mask ()&fl .Mask ())> 0};func (_ceffe *PdfReader )loadDSS ()(*DSS ,error ){if _ceffe ._bfcga .GetCrypter ()!=nil &&!_ceffe ._bfcga .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006ce\u0020\u006e\u0065\u0065d\u0020\u0074\u006f\u0020\u0062\u0065\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};_fddce :=_ceffe ._aedf .Get ("\u0044\u0053\u0053");if _fddce ==nil {return nil ,nil ;};_dafef ,_ :=_ae .GetIndirect (_fddce );_fddce =_ae .TraceToDirectObject (_fddce );switch _aeade :=_fddce .(type ){case *_ae .PdfObjectNull :return nil ,nil ;case *_ae .PdfObjectDictionary :return _cgaba (_dafef ,_aeade );
|
||
};return nil ,_f .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_fddce );};
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _ae .PdfObject ;T _ae .PdfObject ;Operation _ae .PdfObject ;};func (_aaeab *PdfReader )traverseObjectData (_gdecd _ae .PdfObject )error {return _ae .ResolveReferencesDeep (_gdecd ,_aaeab ._agege );};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_aaea interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};func _fabff (_fggge *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_fggge }};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ded *PdfAnnotationRichMedia )ToPdfObject ()_ae .PdfObject {_ded .PdfAnnotation .ToPdfObject ();_egfce :=_ded ._gcgf ;_aggd :=_egfce .PdfObject .(*_ae .PdfObjectDictionary );_aggd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_aggd .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_ded .RichMediaSettings );_aggd .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_ded .RichMediaContent );
|
||
return _egfce ;};
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_cecgd *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _cecgd ._dgfec ==nil {_cecgd .GetAnnotations ();};_cecgd ._dgfec =append (_cecgd ._dgfec ,annot );};func _egec (_cdaa ,_ffgb string )string {if _eg .Contains (_cdaa ,"\u002b"){_edadd :=_eg .Split (_cdaa ,"\u002b");
|
||
if len (_edadd )==2{_cdaa =_edadd [1];};};return _ffgb +"\u002b"+_cdaa ;};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_bbdad *PdfTilingPattern )IsColored ()bool {if _bbdad .PaintType !=nil &&*_bbdad .PaintType ==1{return true ;};return false ;};func (_aba *PdfReader )newPdfAnnotationTrapNetFromDict (_decb *_ae .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_fecg :=PdfAnnotationTrapNet {};
|
||
return &_fecg ,nil ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_eefg *PdfColorDeviceCMYK )M ()float64 {return _eefg [1]};
|
||
|
||
// 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 _gdc .ReadSeeker )(*PdfFont ,error ){const _dfgfb =_bgg .CharCode (32);const _cccbg =_bgg .CharCode (255);_ceaag ,_eeee :=_abc .ReadAll (r );if _eeee !=nil {_ac .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",_eeee );
|
||
return nil ,_eeee ;};_eaedd ,_eeee :=_cb .TtfParse (_aa .NewReader (_ceaag ));if _eeee !=nil {_ac .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",_eeee );
|
||
return nil ,_eeee ;};_dbcde :=&pdfFontSimple {_deaed :make (map[_bgg .CharCode ]float64 ),fontCommon :fontCommon {_adce :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_dbcde ._dead =_bgg .NewWinAnsiEncoder ();_dbcde ._cedb =_eaedd .PostScriptName ;
|
||
_dbcde .FirstChar =_ae .MakeInteger (int64 (_dfgfb ));_dbcde .LastChar =_ae .MakeInteger (int64 (_cccbg ));_abdg :=1000.0/float64 (_eaedd .UnitsPerEm );if len (_eaedd .Widths )<=0{return nil ,_db .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");
|
||
};_bdea :=_abdg *float64 (_eaedd .Widths [0]);_egccba :=make ([]float64 ,0,_cccbg -_dfgfb +1);for _cfag :=_dfgfb ;_cfag <=_cccbg ;_cfag ++{_afbca ,_dedea :=_dbcde .Encoder ().CharcodeToRune (_cfag );if !_dedea {_ac .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_cfag );
|
||
_egccba =append (_egccba ,_bdea );continue ;};_gfea ,_dcgc :=_eaedd .Chars [_afbca ];if !_dcgc {_ac .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_egccba =append (_egccba ,_bdea );
|
||
continue ;};_cfgfg :=_abdg *float64 (_eaedd .Widths [_gfea ]);_egccba =append (_egccba ,_cfgfg );};_dbcde .Widths =_ae .MakeIndirectObject (_ae .MakeArrayFromFloats (_egccba ));if len (_egccba )< int (_cccbg -_dfgfb +1){_ac .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 (_egccba ),255-32+1);
|
||
return nil ,_ae .ErrRangeError ;};for _defebe :=_dfgfb ;_defebe <=_cccbg ;_defebe ++{_dbcde ._deaed [_defebe ]=_egccba [_defebe -_dfgfb ];};_dbcde .Encoding =_ae .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");
|
||
_fggdd :=&PdfFontDescriptor {};_fggdd .FontName =_ae .MakeName (_eaedd .PostScriptName );_fggdd .Ascent =_ae .MakeFloat (_abdg *float64 (_eaedd .TypoAscender ));_fggdd .Descent =_ae .MakeFloat (_abdg *float64 (_eaedd .TypoDescender ));_fggdd .CapHeight =_ae .MakeFloat (_abdg *float64 (_eaedd .CapHeight ));
|
||
_fggdd .FontBBox =_ae .MakeArrayFromFloats ([]float64 {_abdg *float64 (_eaedd .Xmin ),_abdg *float64 (_eaedd .Ymin ),_abdg *float64 (_eaedd .Xmax ),_abdg *float64 (_eaedd .Ymax )});_fggdd .ItalicAngle =_ae .MakeFloat (_eaedd .ItalicAngle );_fggdd .MissingWidth =_ae .MakeFloat (_abdg *float64 (_eaedd .Widths [0]));
|
||
_adagb ,_eeee :=_ae .MakeStream (_ceaag ,_ae .NewFlateEncoder ());if _eeee !=nil {_ac .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",_eeee );
|
||
return nil ,_eeee ;};_adagb .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ae .MakeInteger (int64 (len (_ceaag ))));_fggdd .FontFile2 =_adagb ;if _eaedd .Bold {_fggdd .StemV =_ae .MakeInteger (120);}else {_fggdd .StemV =_ae .MakeInteger (70);
|
||
};_dcbfa :=_gcga ;if _eaedd .IsFixedPitch {_dcbfa |=_ebaf ;};if _eaedd .ItalicAngle !=0{_dcbfa |=_fggg ;};_fggdd .Flags =_ae .MakeInteger (int64 (_dcbfa ));_dbcde ._cafdb =_fggdd ;_cgfd :=&PdfFont {_dabg :_dbcde };return _cgfd ,nil ;};func (_eccg *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _eccg ._cafdb };
|
||
|
||
|
||
// 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 *_ae .PdfObjectStream )(*XObjectImage ,error ){_bgfad :=&XObjectImage {};_bgfad ._efaag =stream ;_eeag :=*(stream .PdfObjectDictionary );_feede ,_dcgfe :=_ae .NewEncoderFromStream (stream );if _dcgfe !=nil {return nil ,_dcgfe ;
|
||
};_bgfad .Filter =_feede ;if _eggb :=_ae .TraceToDirectObject (_eeag .Get ("\u0057\u0069\u0064t\u0068"));_eggb !=nil {_ecdcf ,_cdeb :=_eggb .(*_ae .PdfObjectInteger );if !_cdeb {return nil ,_db .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");
|
||
};_dbafg :=int64 (*_ecdcf );_bgfad .Width =&_dbafg ;}else {return nil ,_db .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _fbcffg :=_ae .TraceToDirectObject (_eeag .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_fbcffg !=nil {_agbda ,_acefc :=_fbcffg .(*_ae .PdfObjectInteger );if !_acefc {return nil ,_db .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dfeff :=int64 (*_agbda );
|
||
_bgfad .Height =&_dfeff ;}else {return nil ,_db .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _ageae :=_ae .TraceToDirectObject (_eeag .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_ageae !=nil {_gbdgc ,_aeaef :=NewPdfColorspaceFromPdfObject (_ageae );if _aeaef !=nil {return nil ,_aeaef ;};_bgfad .ColorSpace =_gbdgc ;}else {_ac .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");
|
||
_bgfad .ColorSpace =NewPdfColorspaceDeviceGray ();};if _dbgea :=_ae .TraceToDirectObject (_eeag .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_dbgea !=nil {_ddcfe ,_adgbd :=_dbgea .(*_ae .PdfObjectInteger );
|
||
if !_adgbd {return nil ,_db .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_dbbea :=int64 (*_ddcfe );_bgfad .BitsPerComponent =&_dbbea ;};_bgfad .Intent =_eeag .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_bgfad .ImageMask =_eeag .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_bgfad .Mask =_eeag .Get ("\u004d\u0061\u0073\u006b");_bgfad .Decode =_eeag .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_bgfad .Interpolate =_eeag .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_bgfad .Alternatives =_eeag .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_bgfad .SMask =_eeag .Get ("\u0053\u004d\u0061s\u006b");_bgfad .SMaskInData =_eeag .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_bgfad .Matte =_eeag .Get ("\u004d\u0061\u0074t\u0065");_bgfad .Name =_eeag .Get ("\u004e\u0061\u006d\u0065");_bgfad .StructParent =_eeag .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_bgfad .ID =_eeag .Get ("\u0049\u0044");
|
||
_bgfad .OPI =_eeag .Get ("\u004f\u0050\u0049");_bgfad .Metadata =_eeag .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bgfad .OC =_eeag .Get ("\u004f\u0043");_bgfad .Stream =stream .Stream ;return _bgfad ,nil ;};func (_fcdg *pdfFontType3 )baseFields ()*fontCommon {return &_fcdg .fontCommon };
|
||
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_ae .PdfObjectString ;Q *_ae .PdfObjectInteger ;DS *_ae .PdfObjectString ;RV _ae .PdfObject ;MaxLen *_ae .PdfObjectInteger ;};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};func (_beeac *pdfCIDFontType0 )baseFields ()*fontCommon {return &_beeac .fontCommon };
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_aegbd *PdfAcroForm )AllFields ()[]*PdfField {if _aegbd ==nil {return nil ;};var _bggeg []*PdfField ;if _aegbd .Fields !=nil {for _ ,_begacg :=range *_aegbd .Fields {_bggeg =append (_bggeg ,_acada (_begacg )...);};};return _bggeg ;};
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_bad :=NewPdfAnnotation ();_bead :=&PdfAnnotationFileAttachment {};_bead .PdfAnnotation =_bad ;_bead .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bad .SetContext (_bead );return _bead ;
|
||
};
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _ae .PdfObject ;NewWindow _ae .PdfObject ;};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_bca :=NewPdfAnnotation ();_aaa :=&PdfAnnotationSquare {};_aaa .PdfAnnotation =_bca ;_aaa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bca .SetContext (_aaa );return _aaa ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_ffgec *PdfColorLab )B ()float64 {return _ffgec [2]};func _ebce (_bgae *_ae .PdfObjectStream )(*PdfFunctionType4 ,error ){_cffbg :=&PdfFunctionType4 {};_cffbg ._cbec =_bgae ;_bgfeb :=_bgae .PdfObjectDictionary ;_feeedf ,_fcedc :=_ae .TraceToDirectObject (_bgfeb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );
|
||
if !_fcedc {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_db .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 _feeedf .Len ()%2!=0{_ac .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_fgdgf ,_adfae :=_feeedf .ToFloat64Array ();
|
||
if _adfae !=nil {return nil ,_adfae ;};_cffbg .Domain =_fgdgf ;_feeedf ,_fcedc =_ae .TraceToDirectObject (_bgfeb .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );if _fcedc {if _feeedf .Len ()< 0||_feeedf .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_caff ,_bffeg :=_feeedf .ToFloat64Array ();if _bffeg !=nil {return nil ,_bffeg ;};_cffbg .Range =_caff ;};_aeagd ,_adfae :=_ae .DecodeStream (_bgae );if _adfae !=nil {return nil ,_adfae ;};_cffbg ._eabdc =_aeagd ;_bdeac :=_ace .NewPSParser (_aeagd );
|
||
_ccfa ,_adfae :=_bdeac .Parse ();if _adfae !=nil {return nil ,_adfae ;};_cffbg .Program =_ccfa ;return _cffbg ,nil ;};func (_bcaa *PdfAcroForm )fill (_gegb FieldValueProvider ,_acefg FieldAppearanceGenerator )error {if _bcaa ==nil {return nil ;};_bagc ,_dfabc :=_gegb .FieldValues ();
|
||
if _dfabc !=nil {return _dfabc ;};for _ ,_bgeab :=range _bcaa .AllFields (){_dgagc :=_bgeab .PartialName ();_fddca ,_fcbda :=_bagc [_dgagc ];if !_fcbda {if _ddbg ,_agff :=_bgeab .FullName ();_agff ==nil {_fddca ,_fcbda =_bagc [_ddbg ];};};if !_fcbda {_ac .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",_dgagc );
|
||
continue ;};if _gfdgf :=_gdad (_bgeab ,_fddca );_gfdgf !=nil {return _gfdgf ;};if _acefg ==nil {continue ;};for _ ,_agfcb :=range _bgeab .Annotations {_agbfc ,_bgba :=_acefg .GenerateAppearanceDict (_bcaa ,_bgeab ,_agfcb );if _bgba !=nil {return _bgba ;
|
||
};_agfcb .AP =_agbfc ;_agfcb .ToPdfObject ();};};return 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 (_ccfff PdfOutputIntentType )String ()string {switch _ccfff {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";};};
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_efbee *PdfAcroForm )ToPdfObject ()_ae .PdfObject {_efdca :=_efbee ._febbe ;_fcga :=_efdca .PdfObject .(*_ae .PdfObjectDictionary );if _efbee .Fields !=nil {_addcea :=_ae .PdfObjectArray {};for _ ,_dfeg :=range *_efbee .Fields {_beadf :=_dfeg .GetContext ();
|
||
if _beadf !=nil {_addcea .Append (_beadf .ToPdfObject ());}else {_addcea .Append (_dfeg .ToPdfObject ());};};_fcga .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_addcea );};if _efbee .NeedAppearances !=nil {_fcga .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_efbee .NeedAppearances );
|
||
}else {if _cagg :=_fcga .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_cagg !=nil {_fcga .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _efbee .SigFlags !=nil {_fcga .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_efbee .SigFlags );
|
||
};if _efbee .CO !=nil {_fcga .Set ("\u0043\u004f",_efbee .CO );};if _efbee .DR !=nil {_fcga .Set ("\u0044\u0052",_efbee .DR .ToPdfObject ());};if _efbee .DA !=nil {_fcga .Set ("\u0044\u0041",_efbee .DA );};if _efbee .Q !=nil {_fcga .Set ("\u0051",_efbee .Q );
|
||
};if _efbee .XFA !=nil {_fcga .Set ("\u0058\u0046\u0041",_efbee .XFA );};if _efbee .ADBEEchoSign !=nil {_fcga .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_efbee .ADBEEchoSign );};return _efdca ;};func (_gbga *PdfAppender )replaceObject (_ageg ,_bfc _ae .PdfObject ){switch _cafg :=_ageg .(type ){case *_ae .PdfIndirectObject :_gbga ._dcdbc [_bfc ]=_cafg .ObjectNumber ;
|
||
case *_ae .PdfObjectStream :_gbga ._dcdbc [_bfc ]=_cafg .ObjectNumber ;};};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_aeec *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ac .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 ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0066\u006f\u0072\u0020\u0069m\u0061\u0067\u0065\u0020\u0028p\u0061\u0074t\u0065\u0072\u006e\u0029");};func (_gcfc *PdfAppender )addNewObject (_acaa _ae .PdfObject ){if _ ,_fgag :=_gcfc ._dcefg [_acaa ];
|
||
!_fgag {_gcfc ._gea =append (_gcfc ._gea ,_acaa );_gcfc ._dcefg [_acaa ]=struct{}{};};};
|
||
|
||
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
|
||
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_ae .PdfObjectArray ;ExtGState _ae .PdfObject ;};func (_agca *PdfWriter )setDocInfo (_gggaf _ae .PdfObject ){if _agca .hasObject (_agca ._cbffg ){delete (_agca ._faecg ,_agca ._cbffg );
|
||
delete (_agca ._eecfg ,_agca ._cbffg );for _baccd ,_eadde :=range _agca ._edbe {if _eadde ==_agca ._cbffg {copy (_agca ._edbe [_baccd :],_agca ._edbe [_baccd +1:]);_agca ._edbe [len (_agca ._edbe )-1]=nil ;_agca ._edbe =_agca ._edbe [:len (_agca ._edbe )-1];
|
||
break ;};};};_bcbg :=_ae .PdfIndirectObject {};_bcbg .PdfObject =_gggaf ;_agca ._cbffg =&_bcbg ;_agca .addObject (&_bcbg );};
|
||
|
||
// FieldImageProvider provides fields images for specified fields.
|
||
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_cadgd .Lock ();defer _cadgd .Unlock ();_egafe =subject };
|
||
|
||
// NewReaderOpts generates a default `ReaderOpts` instance.
|
||
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_fgbb *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _fgbb .AlternateSpace ==nil {return nil ,_db .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 _fgbb .AlternateSpace .ColorToRGB (color );};func (_eeeb *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_cegf *OutlineItem )ToPdfObject ()_ae .PdfObject {_fcfgg ,_ :=_cegf .ToPdfOutlineItem ();return _fcfgg .ToPdfObject ();};
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_dagee *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_gabg :=_ba .NewReader (img .getBase ());_ffgg :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_gadb :=_ba .NewWriter (_ffgg );
|
||
_caeeb :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_cadaa :=make ([]uint32 ,3);var (_eaeb error ;_dfgfe ,_fgbf ,_begfe ,_cccb ,_adeg ,_bede float64 ;);for {_eaeb =_gabg .ReadSamples (_cadaa );if _eaeb ==_gdc .EOF {break ;}else if _eaeb !=nil {return img ,_eaeb ;
|
||
};_dfgfe =float64 (_cadaa [0])/_caeeb ;_fgbf =float64 (_cadaa [1])/_caeeb ;_begfe =float64 (_cadaa [2])/_caeeb ;_cccb =_dagee .Matrix [0]*_ag .Pow (_dfgfe ,_dagee .Gamma [0])+_dagee .Matrix [3]*_ag .Pow (_fgbf ,_dagee .Gamma [1])+_dagee .Matrix [6]*_ag .Pow (_begfe ,_dagee .Gamma [2]);
|
||
_adeg =_dagee .Matrix [1]*_ag .Pow (_dfgfe ,_dagee .Gamma [0])+_dagee .Matrix [4]*_ag .Pow (_fgbf ,_dagee .Gamma [1])+_dagee .Matrix [7]*_ag .Pow (_begfe ,_dagee .Gamma [2]);_bede =_dagee .Matrix [2]*_ag .Pow (_dfgfe ,_dagee .Gamma [0])+_dagee .Matrix [5]*_ag .Pow (_fgbf ,_dagee .Gamma [1])+_dagee .Matrix [8]*_ag .Pow (_begfe ,_dagee .Gamma [2]);
|
||
_dfgfe =3.240479*_cccb +-1.537150*_adeg +-0.498535*_bede ;_fgbf =-0.969256*_cccb +1.875992*_adeg +0.041556*_bede ;_begfe =0.055648*_cccb +-0.204043*_adeg +1.057311*_bede ;_dfgfe =_ag .Min (_ag .Max (_dfgfe ,0),1.0);_fgbf =_ag .Min (_ag .Max (_fgbf ,0),1.0);
|
||
_begfe =_ag .Min (_ag .Max (_begfe ,0),1.0);_cadaa [0]=uint32 (_dfgfe *_caeeb );_cadaa [1]=uint32 (_fgbf *_caeeb );_cadaa [2]=uint32 (_begfe *_caeeb );if _eaeb =_gadb .WriteSamples (_cadaa );_eaeb !=nil {return img ,_eaeb ;};};return _feagd (&_ffgg ),nil ;
|
||
};func _eccae (_ebfeg _ae .PdfObject )(*PdfPattern ,error ){_afaba :=&PdfPattern {};var _bbfbe *_ae .PdfObjectDictionary ;if _gfbde ,_aefefd :=_ae .GetIndirect (_ebfeg );_aefefd {_afaba ._ebfged =_gfbde ;_gaacb ,_daca :=_gfbde .PdfObject .(*_ae .PdfObjectDictionary );
|
||
if !_daca {_ac .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",_gfbde .PdfObject );
|
||
return nil ,_ae .ErrTypeError ;};_bbfbe =_gaacb ;}else if _gcfff ,_ecefcd :=_ae .GetStream (_ebfeg );_ecefcd {_afaba ._ebfged =_gcfff ;_bbfbe =_gcfff .PdfObjectDictionary ;}else {_ac .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",_ebfeg );
|
||
return nil ,_ae .ErrTypeError ;};_gccebc :=_bbfbe .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gccebc ==nil {_ac .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 ;};_gffaef ,_fegfd :=_gccebc .(*_ae .PdfObjectInteger );if !_fegfd {_ac .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",_gccebc );
|
||
return nil ,_ae .ErrTypeError ;};if *_gffaef !=1&&*_gffaef !=2{_ac .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",*_gffaef );return nil ,_ae .ErrRangeError ;
|
||
};_afaba .PatternType =int64 (*_gffaef );switch *_gffaef {case 1:_deaf ,_cdfba :=_bfgec (_bbfbe );if _cdfba !=nil {return nil ,_cdfba ;};_deaf .PdfPattern =_afaba ;_afaba ._ebafb =_deaf ;return _afaba ,nil ;case 2:_dcgbc ,_adaf :=_fcfca (_bbfbe );if _adaf !=nil {return nil ,_adaf ;
|
||
};_dcgbc .PdfPattern =_afaba ;_afaba ._ebafb =_dcgbc ;return _afaba ,nil ;};return nil ,_db .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_ffba *PdfFieldText )ToPdfObject ()_ae .PdfObject {_ffba .PdfField .ToPdfObject ();_caac :=_ffba ._facca ;_dabdd :=_caac .PdfObject .(*_ae .PdfObjectDictionary );_dabdd .Set ("\u0046\u0054",_ae .MakeName ("\u0054\u0078"));if _ffba .DA !=nil {_dabdd .Set ("\u0044\u0041",_ffba .DA );
|
||
};if _ffba .Q !=nil {_dabdd .Set ("\u0051",_ffba .Q );};if _ffba .DS !=nil {_dabdd .Set ("\u0044\u0053",_ffba .DS );};if _ffba .RV !=nil {_dabdd .Set ("\u0052\u0056",_ffba .RV );};if _ffba .MaxLen !=nil {_dabdd .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_ffba .MaxLen );
|
||
};return _caac ;};
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _ae .PdfObject ;Dest _ae .PdfObject ;H _ae .PdfObject ;PA _ae .PdfObject ;QuadPoints _ae .PdfObject ;BS _ae .PdfObject ;_ebf *PdfAction ;_cfdf *PdfReader ;};
|
||
|
||
// ParserMetadata gets the parser metadata.
|
||
func (_aaeee *CompliancePdfReader )ParserMetadata ()_ae .ParserMetadata {if _aaeee ._bccd ==(_ae .ParserMetadata {}){_aaeee ._bccd ,_ =_aaeee ._bfcga .ParserMetadata ();};return _aaeee ._bccd ;};
|
||
|
||
// 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 (_cegba *PdfOutlineTreeNode )GetContext ()PdfModel {if _cegedc ,_fbcff :=_cegba ._aaea .(*PdfOutline );_fbcff {return _cegedc ;};if _gbceg ,_acge :=_cegba ._aaea .(*PdfOutlineItem );_acge {return _gbceg ;};_ac .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 ;};
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _ff .Permissions ;Algorithm EncryptionAlgorithm ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cece *PdfColorspaceSpecialSeparation )ToPdfObject ()_ae .PdfObject {_fdfed :=_ae .MakeArray (_ae .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_fdfed .Append (_cece .ColorantName );_fdfed .Append (_cece .AlternateSpace .ToPdfObject ());
|
||
_fdfed .Append (_cece .TintTransform .ToPdfObject ());if _cece ._ddaac !=nil {_cece ._ddaac .PdfObject =_fdfed ;return _cece ._ddaac ;};return _fdfed ;};
|
||
|
||
// 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 (_cdef *_ed .Document )error ;};
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_gabbc *PdfRectangle )Height ()float64 {return _ag .Abs (_gabbc .Ury -_gabbc .Lly )};
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_eeae *PdfColorspaceDeviceN )GetNumComponents ()int {return _eeae .ColorantNames .Len ()};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_fee :=NewPdfAnnotation ();_edgf :=&PdfAnnotationRichMedia {};_edgf .PdfAnnotation =_fee ;_fee .SetContext (_edgf );return _edgf ;};
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_ggcff []byte )(_gbae int ,_baccb error );};
|
||
|
||
// 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 ,_bgg .SimpleEncoder ,error ){_cbfe ,_cfecd :=_decf (basefont );if _cfecd !=nil {return nil ,nil ,_cfecd ;};_edage ,_becgf :=_cbfe .Encoder ().(_bgg .SimpleEncoder );
|
||
if !_becgf {return nil ,nil ,_f .Errorf ("\u006f\u006e\u006c\u0079\u0020s\u0069\u006d\u0070\u006c\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006eg\u0020\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0054",_cbfe .Encoder ());
|
||
};_gcgd :=make (map[rune ]_bgg .GlyphName );for _bedeb :=range alphabet {if _ ,_deff :=_edage .RuneToCharcode (_bedeb );!_deff {_ ,_bgde :=_cbfe ._gabf .Read (_bedeb );if !_bgde {_ac .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",_bedeb ,_bedeb );
|
||
continue ;};_ceddfd ,_bgde :=_bgg .RuneToGlyph (_bedeb );if !_bgde {_ac .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_bedeb ,_bedeb );continue ;};if len (_gcgd )>=255{return nil ,nil ,_db .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");
|
||
};_gcgd [_bedeb ]=_ceddfd ;};};var (_fgdgd []_bgg .CharCode ;_ebbff []_bgg .CharCode ;);for _gadbb :=_bgg .CharCode (1);_gadbb <=0xff;_gadbb ++{_cfbe ,_dcfe :=_edage .CharcodeToRune (_gadbb );if !_dcfe {_fgdgd =append (_fgdgd ,_gadbb );continue ;};if _ ,_dcfe =alphabet [_cfbe ];
|
||
!_dcfe {_ebbff =append (_ebbff ,_gadbb );};};_cafag :=append (_fgdgd ,_ebbff ...);if len (_cafag )< len (_gcgd ){return nil ,nil ,_f .Errorf ("n\u0065\u0065\u0064\u0020\u0074\u006f\u0020\u0065\u006ec\u006f\u0064\u0065\u0020\u0025\u0064\u0020ru\u006e\u0065\u0073\u002c \u0062\u0075\u0074\u0020\u0068\u0061\u0076\u0065\u0020on\u006c\u0079 \u0025\u0064\u0020\u0073\u006c\u006f\u0074\u0073",len (_gcgd ),len (_cafag ));
|
||
};_aggf :=make ([]rune ,0,len (_gcgd ));for _ccbc :=range _gcgd {_aggf =append (_aggf ,_ccbc );};_cf .Slice (_aggf ,func (_efgd ,_edbf int )bool {return _aggf [_efgd ]< _aggf [_edbf ]});_gfcbc :=make (map[_bgg .CharCode ]_bgg .GlyphName ,len (_aggf ));
|
||
for _ ,_ggaa :=range _aggf {_babc :=_cafag [0];_cafag =_cafag [1:];_gfcbc [_babc ]=_gcgd [_ggaa ];};_edage =_bgg .ApplyDifferences (_edage ,_gfcbc );_cbfe .SetEncoder (_edage );return &PdfFont {_dabg :&_cbfe },_edage ,nil ;};func _adfee (_cdfa _ae .PdfObject )(*PdfPageResourcesColorspaces ,error ){_eecg :=&PdfPageResourcesColorspaces {};
|
||
if _cbgfc ,_aeeba :=_cdfa .(*_ae .PdfIndirectObject );_aeeba {_eecg ._ccfef =_cbgfc ;_cdfa =_cbgfc .PdfObject ;};_cfcc ,_dgfa :=_ae .GetDict (_cdfa );if !_dgfa {return nil ,_db .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_eecg .Names =[]string {};_eecg .Colorspaces =map[string ]PdfColorspace {};for _ ,_aecb :=range _cfcc .Keys (){_fbedb :=_cfcc .Get (_aecb );_eecg .Names =append (_eecg .Names ,string (_aecb ));_defcb ,_ecee :=NewPdfColorspaceFromPdfObject (_fbedb );if _ecee !=nil {return nil ,_ecee ;
|
||
};_eecg .Colorspaces [string (_aecb )]=_defcb ;};return _eecg ,nil ;};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_beabe :=PdfColorLab {l ,a ,b };return &_beabe };func _edagad ()_d .Time {_cadgd .Lock ();defer _cadgd .Unlock ();return _fabd };
|
||
|
||
// 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 (_ecdgf *PdfFieldButton )GetType ()ButtonType {_bgdgg :=ButtonTypeCheckbox ;if _ecdgf .Ff !=nil {if (uint32 (*_ecdgf .Ff )&FieldFlagPushbutton .Mask ())> 0{_bgdgg =ButtonTypePush ;}else if (uint32 (*_ecdgf .Ff )&FieldFlagRadio .Mask ())> 0{_bgdgg =ButtonTypeRadio ;
|
||
};};return _bgdgg ;};
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_cecdd *PdfPage )error ;};
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_fdag *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_aeab :=pageNum -1;var _cegd *PdfPage ;for _ebge ,_deeb :=range _fdag ._eabf {if _ebge ==_aeab {_cegd =_deeb ;};};if _cegd ==nil {return _f .Errorf ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0050\u0061\u0067\u0065\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061r\u0079\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0073o\u0075\u0072\u0063\u0065\u0020\u0064o\u0063\u0075\u006de\u006e\u0074",pageNum );
|
||
};if _cegd ._egbbg !=nil &&_cegd ._egbbg .GetParser ()==_fdag ._afad ._bfcga {_cegd =_cegd .Duplicate ();_fdag ._eabf [_aeab ]=_cegd ;};page =page .Duplicate ();_gabdf (page );_fdda :=_fbbf (_cegd );_abaf :=_fbbf (page );_bacb :=make (map[_ae .PdfObjectName ]_ae .PdfObjectName );
|
||
for _ddfg :=range _abaf {if _ ,_dcdf :=_fdda [_ddfg ];_dcdf {for _ebdf :=1;true ;_ebdf ++{_begac :=_ae .PdfObjectName (string (_ddfg )+_bg .Itoa (_ebdf ));if _ ,_efcd :=_fdda [_begac ];!_efcd {_bacb [_ddfg ]=_begac ;break ;};};};};_gfgb ,_aeag :=page .GetContentStreams ();
|
||
if _aeag !=nil {return _aeag ;};_gcgfe ,_aeag :=_cegd .GetContentStreams ();if _aeag !=nil {return _aeag ;};for _ccf ,_efd :=range _gfgb {for _eed ,_adagc :=range _bacb {_efd =_eg .Replace (_efd ,"\u002f"+string (_eed ),"\u002f"+string (_adagc ),-1);};
|
||
_gfgb [_ccf ]=_efd ;};_gcgfe =append (_gcgfe ,_gfgb ...);if _ffd :=_cegd .SetContentStreams (_gcgfe ,_ae .NewFlateEncoder ());_ffd !=nil {return _ffd ;};_cegd ._dgfec =append (_cegd ._dgfec ,page ._dgfec ...);if _cegd .Resources ==nil {_cegd .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_cegd .Resources .Font =_fdag .mergeResources (_cegd .Resources .Font ,page .Resources .Font ,_bacb );_cegd .Resources .XObject =_fdag .mergeResources (_cegd .Resources .XObject ,page .Resources .XObject ,_bacb );_cegd .Resources .Properties =_fdag .mergeResources (_cegd .Resources .Properties ,page .Resources .Properties ,_bacb );
|
||
if _cegd .Resources .ProcSet ==nil {_cegd .Resources .ProcSet =page .Resources .ProcSet ;};_cegd .Resources .Shading =_fdag .mergeResources (_cegd .Resources .Shading ,page .Resources .Shading ,_bacb );_cegd .Resources .ExtGState =_fdag .mergeResources (_cegd .Resources .ExtGState ,page .Resources .ExtGState ,_bacb );
|
||
};_bacbf ,_aeag :=_cegd .GetMediaBox ();if _aeag !=nil {return _aeag ;};_fdca ,_aeag :=page .GetMediaBox ();if _aeag !=nil {return _aeag ;};var _aaab bool ;if _bacbf .Llx > _fdca .Llx {_bacbf .Llx =_fdca .Llx ;_aaab =true ;};if _bacbf .Lly > _fdca .Lly {_bacbf .Lly =_fdca .Lly ;
|
||
_aaab =true ;};if _bacbf .Urx < _fdca .Urx {_bacbf .Urx =_fdca .Urx ;_aaab =true ;};if _bacbf .Ury < _fdca .Ury {_bacbf .Ury =_fdca .Ury ;_aaab =true ;};if _aaab {_cegd .MediaBox =_bacbf ;};return nil ;};
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_bacca *Image )SetAlpha (alpha []byte ){_bacca ._bbba =alpha };
|
||
|
||
// 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 ;_ggde *_ae .PdfIndirectObject ;};func (_dafe Image )getBase ()_afc .ImageBase {return _afc .NewImageBase (int (_dafe .Width ),int (_dafe .Height ),int (_dafe .BitsPerComponent ),_dafe .ColorComponents ,_dafe .Data ,_dafe ._bbba ,_dafe ._fdae );
|
||
};
|
||
|
||
// 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 _ae .PdfObjectArray )(*PdfRectangle ,error ){_ebdac :=PdfRectangle {};if arr .Len ()!=4{return nil ,_db .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 _abbdgf error ;_ebdac .Llx ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (0));if _abbdgf !=nil {return nil ,_abbdgf ;};_ebdac .Lly ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (1));if _abbdgf !=nil {return nil ,_abbdgf ;};_ebdac .Urx ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (2));
|
||
if _abbdgf !=nil {return nil ,_abbdgf ;};_ebdac .Ury ,_abbdgf =_ae .GetNumberAsFloat (arr .Get (3));if _abbdgf !=nil {return nil ,_abbdgf ;};return &_ebdac ,nil ;};
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_degd :=NewPdfAnnotation ();_ceg :=&PdfAnnotationWatermark {};_ceg .PdfAnnotation =_degd ;_degd .SetContext (_ceg );return _ceg ;};
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_ggbf *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_ggbf .Filter .UpdateParams (img .GetParamsDict ());_ddcde ,_ccbg :=_ggbf .Filter .EncodeBytes (img .Data );if _ccbg !=nil {return _ccbg ;};_ggbf .Stream =_ddcde ;_edgga :=img .Width ;
|
||
_ggbf .Width =&_edgga ;_cafge :=img .Height ;_ggbf .Height =&_cafge ;_fcgfg :=img .BitsPerComponent ;_ggbf .BitsPerComponent =&_fcgfg ;if cs ==nil {if img .ColorComponents ==1{_ggbf .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_ggbf .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_ggbf .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _db .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_ggbf .ColorSpace =cs ;};return nil ;
|
||
};
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_bccg *_ae .PdfIndirectObject ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_bbcd pdfCIDFontType2 )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){_bbge ,_acdf :=_bbcd ._acae [r ];if !_acdf {_ccac ,_gbba :=_ae .GetInt (_bbcd .DW );if !_gbba {return _cb .CharMetrics {},false ;};_bbge =int (*_ccac );};return _cb .CharMetrics {Wx :float64 (_bbge )},true ;
|
||
};
|
||
|
||
// 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 (_beabbc *PdfPage )Size ()(float64 ,float64 ,error ){_egeb ,_acaca :=_beabbc .GetMediaBox ();if _acaca !=nil {return 0,0,_acaca ;};_fbgc ,_agfgc :=_egeb .Width (),_egeb .Height ();_agffg ,_acaca :=_beabbc .GetRotate ();if _acaca !=nil {_ac .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",_acaca .Error ());
|
||
};if _badg :=_agffg ;_badg %360!=0&&_badg %90==0{if _daec :=(360+_badg %360)%360;_daec ==90||_daec ==270{_fbgc ,_agfgc =_agfgc ,_fbgc ;};};return _fbgc ,_agfgc ,nil ;};func (_dgcdg *PdfReader )newPdfAnnotationMarkupFromDict (_bbdb *_ae .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_fafb :=&PdfAnnotationMarkup {};
|
||
if _dbae :=_bbdb .Get ("\u0054");_dbae !=nil {_fafb .T =_dbae ;};if _cggd :=_bbdb .Get ("\u0050\u006f\u0070u\u0070");_cggd !=nil {_ecd ,_ddgd :=_cggd .(*_ae .PdfIndirectObject );if !_ddgd {if _ ,_fdf :=_cggd .(*_ae .PdfObjectNull );!_fdf {return nil ,_db .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 {_ggfa ,_ddgdd :=_dgcdg .newPdfAnnotationFromIndirectObject (_ecd );if _ddgdd !=nil {return nil ,_ddgdd ;};if _ggfa !=nil {_bfe ,_afcb :=_ggfa ._ggd .(*PdfAnnotationPopup );if !_afcb {return nil ,_db .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");
|
||
};_fafb .Popup =_bfe ;};};};if _abde :=_bbdb .Get ("\u0043\u0041");_abde !=nil {_fafb .CA =_abde ;};if _fcbb :=_bbdb .Get ("\u0052\u0043");_fcbb !=nil {_fafb .RC =_fcbb ;};if _gcb :=_bbdb .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_gcb !=nil {_fafb .CreationDate =_gcb ;};if _dbcd :=_bbdb .Get ("\u0049\u0052\u0054");_dbcd !=nil {_fafb .IRT =_dbcd ;};if _cggdf :=_bbdb .Get ("\u0053\u0075\u0062\u006a");_cggdf !=nil {_fafb .Subj =_cggdf ;};if _gdcb :=_bbdb .Get ("\u0052\u0054");_gdcb !=nil {_fafb .RT =_gdcb ;
|
||
};if _gbcg :=_bbdb .Get ("\u0049\u0054");_gbcg !=nil {_fafb .IT =_gbcg ;};if _gcff :=_bbdb .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_gcff !=nil {_fafb .ExData =_gcff ;};return _fafb ,nil ;};
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_gfcfcd *PdfWriter )SetOptimizer (optimizer Optimizer ){_gfcfcd ._ffefg =optimizer };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aece *PdfActionURI )ToPdfObject ()_ae .PdfObject {_aece .PdfAction .ToPdfObject ();_fgb :=_aece ._cbe ;_dcg :=_fgb .PdfObject .(*_ae .PdfObjectDictionary );_dcg .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeURI )));_dcg .SetIfNotNil ("\u0055\u0052\u0049",_aece .URI );
|
||
_dcg .SetIfNotNil ("\u0049\u0073\u004da\u0070",_aece .IsMap );return _fgb ;};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_gddgg :=&PdfColorspaceDeviceN {};return _gddgg ;};
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_ffag *PdfColorspaceLab )DecodeArray ()[]float64 {_gbdd :=[]float64 {0,100};if _ffag .Range !=nil &&len (_ffag .Range )==4{_gbdd =append (_gbdd ,_ffag .Range ...);}else {_gbdd =append (_gbdd ,-100,100,-100,100);};return _gbdd ;};
|
||
|
||
// 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 ;_gfdfbf *_ae .PdfObjectDictionary ;};
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_eafg *PdfFont )ToUnicode ()string {if _eafg .baseFields ()._ebfdc ==nil {return "";};return _eafg .baseFields ()._ebfdc .Name ();};
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_egddf *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _ae .GetNumberAsFloat (_egddf .Descent );};
|
||
|
||
// 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 (_egef *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cddd :=vals [0];if _cddd < 0.0||_cddd > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cddd );
|
||
return nil ,ErrColorOutOfRange ;};_efga :=vals [1];if _efga < 0.0||_efga > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_efga );return nil ,ErrColorOutOfRange ;
|
||
};_gad :=vals [2];if _gad < 0.0||_gad > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gad );return nil ,ErrColorOutOfRange ;};_aaabg :=vals [3];if _aaabg < 0.0||_aaabg > 1.0{_ac .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_aaabg );
|
||
return nil ,ErrColorOutOfRange ;};_fbef :=NewPdfColorDeviceCMYK (_cddd ,_efga ,_gad ,_aaabg );return _fbef ,nil ;};
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_agdec *PdfShading )SetContext (ctx PdfModel ){_agdec ._ffgbf =ctx };
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_ddcc *PdfColorDeviceCMYK )K ()float64 {return _ddcc [3]};
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_dgdb *PdfPage )GetContentStreamObjs ()[]_ae .PdfObject {if _dgdb .Contents ==nil {return nil ;};_egbdfc :=_ae .TraceToDirectObject (_dgdb .Contents );if _bccgc ,_egced :=_egbdfc .(*_ae .PdfObjectArray );_egced {return _bccgc .Elements ();};return []_ae .PdfObject {_egbdfc };
|
||
};func (_ada *PdfReader )newPdfActionSoundFromDict (_cee *_ae .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_cee .Get ("\u0053\u006f\u0075n\u0064"),Volume :_cee .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_cee .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_cee .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_cee .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_gccf *PdfColorspaceICCBased )ToPdfObject ()_ae .PdfObject {_cecce :=&_ae .PdfObjectArray {};_cecce .Append (_ae .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _egbbd *_ae .PdfObjectStream ;if _gccf ._egefc !=nil {_egbbd =_gccf ._egefc ;
|
||
}else {_egbbd =&_ae .PdfObjectStream {};};_egfbc :=_ae .MakeDict ();_egfbc .Set ("\u004e",_ae .MakeInteger (int64 (_gccf .N )));if _gccf .Alternate !=nil {_egfbc .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_gccf .Alternate .ToPdfObject ());};if _gccf .Metadata !=nil {_egfbc .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gccf .Metadata );
|
||
};if _gccf .Range !=nil {var _fcdb []_ae .PdfObject ;for _ ,_cege :=range _gccf .Range {_fcdb =append (_fcdb ,_ae .MakeFloat (_cege ));};_egfbc .Set ("\u0052\u0061\u006eg\u0065",_ae .MakeArray (_fcdb ...));};_egfbc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_gccf .Data ))));
|
||
_egbbd .Stream =_gccf .Data ;_egbbd .PdfObjectDictionary =_egfbc ;_cecce .Append (_egbbd );if _gccf ._debg !=nil {_gccf ._debg .PdfObject =_cecce ;return _gccf ._debg ;};return _cecce ;};
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_cadgd .Lock ();defer _cadgd .Unlock ();_ffbad =keywords };func (_cfga *pdfFontSimple )updateStandard14Font (){_fgdbb ,_ggcf :=_cfga .Encoder ().(_bgg .SimpleEncoder );if !_ggcf {_ac .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",_cfga .Encoder (),_cfga );
|
||
return ;};_cdade :=_fgdbb .Charcodes ();_cfga ._deaed =make (map[_bgg .CharCode ]float64 ,len (_cdade ));for _ ,_efafe :=range _cdade {_gabcg ,_ :=_fgdbb .CharcodeToRune (_efafe );_cgfa ,_ :=_cfga ._gabf .Read (_gabcg );_cfga ._deaed [_efafe ]=_cgfa .Wx ;
|
||
};};func _agbff (_ebcad *_ae .PdfObjectDictionary ,_ecgcf *fontCommon )(*pdfCIDFontType2 ,error ){if _ecgcf ._adce !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ac .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",_ecgcf );
|
||
return nil ,_ae .ErrRangeError ;};_gcgc :=_ebda (_ecgcf );_abcff ,_caaab :=_ae .GetDict (_ebcad .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_caaab {_ac .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",_ecgcf );
|
||
return nil ,ErrRequiredAttributeMissing ;};_gcgc .CIDSystemInfo =_abcff ;_gcgc .DW =_ebcad .Get ("\u0044\u0057");_gcgc .W =_ebcad .Get ("\u0057");_gcgc .DW2 =_ebcad .Get ("\u0044\u0057\u0032");_gcgc .W2 =_ebcad .Get ("\u0057\u0032");_gcgc .CIDToGIDMap =_ebcad .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_gcgc ._bddbc =1000.0;if _bcgd ,_bffec :=_ae .GetNumberAsFloat (_gcgc .DW );_bffec ==nil {_gcgc ._bddbc =_bcgd ;};_dgbaf ,_abgg :=_cdfgf (_gcgc .W );if _abgg !=nil {return nil ,_abgg ;};if _dgbaf ==nil {_dgbaf =map[_bgg .CharCode ]float64 {};};_gcgc ._fcbce =_dgbaf ;
|
||
return _gcgc ,nil ;};func (_acfbb *PdfWriter )setDocumentIDs (_bgegb ,_afece string ){_acfbb ._dcdbd =_ae .MakeArray (_ae .MakeHexString (_bgegb ),_ae .MakeHexString (_afece ));};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_cbcbcg *PdfDate )ToPdfObject ()_ae .PdfObject {_gdaag :=_f .Sprintf ("\u0044\u003a\u0025\u002e\u0034\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064\u0025\u002e2\u0064\u0025\u0063\u0025\u002e2\u0064\u0027%\u002e\u0032\u0064\u0027",_cbcbcg ._edbbd ,_cbcbcg ._cedda ,_cbcbcg ._ddefe ,_cbcbcg ._bedgeg ,_cbcbcg ._fbcga ,_cbcbcg ._eabef ,_cbcbcg ._eaedg ,_cbcbcg ._adaec ,_cbcbcg ._befea );
|
||
return _ae .MakeString (_gdaag );};func (_acaef *pdfFontSimple )baseFields ()*fontCommon {return &_acaef .fontCommon };
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_dadfb DefaultImageHandler )Read (reader _gdc .Reader )(*Image ,error ){_cecbf ,_ ,_bbfe :=_de .Decode (reader );if _bbfe !=nil {_ac .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_bbfe );
|
||
return nil ,_bbfe ;};return _dadfb .NewImageFromGoImage (_cecbf );};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gbgcb *PdfShadingType4 )ToPdfObject ()_ae .PdfObject {_gbgcb .PdfShading .ToPdfObject ();_gffga ,_aefd :=_gbgcb .getShadingDict ();if _aefd !=nil {_ac .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 _gbgcb .BitsPerCoordinate !=nil {_gffga .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_gbgcb .BitsPerCoordinate );};if _gbgcb .BitsPerComponent !=nil {_gffga .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_gbgcb .BitsPerComponent );
|
||
};if _gbgcb .BitsPerFlag !=nil {_gffga .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_gbgcb .BitsPerFlag );};if _gbgcb .Decode !=nil {_gffga .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_gbgcb .Decode );};if _gbgcb .Function !=nil {if len (_gbgcb .Function )==1{_gffga .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbgcb .Function [0].ToPdfObject ());
|
||
}else {_fggdfd :=_ae .MakeArray ();for _ ,_ceabb :=range _gbgcb .Function {_fggdfd .Append (_ceabb .ToPdfObject ());};_gffga .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fggdfd );};};return _gbgcb ._dcdgda ;};
|
||
|
||
// 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 ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
|
||
|
||
// 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 (_ceab int ,_efacf *PdfPage )error ;func (_dggg *PdfReader )newPdfActionMovieFromDict (_bfdd *_ae .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_bfdd .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_bfdd .Get ("\u0054"),Operation :_bfdd .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};func _beggc (_ccgc *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_ccgc }};
|
||
|
||
// 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 (_ebe *PdfAnnotationWidget )Field ()*PdfField {return _ebe ._bab };
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_fdbaf *PdfPageResources )GetXObjectImageByName (keyName _ae .PdfObjectName )(*XObjectImage ,error ){_bgfab ,_cefdf :=_fdbaf .GetXObjectByName (keyName );if _bgfab ==nil {return nil ,nil ;};if _cefdf !=XObjectTypeImage {return nil ,_db .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_edeeg ,_cdafd :=NewXObjectImageFromStream (_bgfab );if _cdafd !=nil {return nil ,_cdafd ;};return _edeeg ,nil ;};func (_fbcc *PdfAnnotationMarkup )appendToPdfDictionary (_bcbdc *_ae .PdfObjectDictionary ){_bcbdc .SetIfNotNil ("\u0054",_fbcc .T );if _fbcc .Popup !=nil {_bcbdc .Set ("\u0050\u006f\u0070u\u0070",_fbcc .Popup .ToPdfObject ());
|
||
};_bcbdc .SetIfNotNil ("\u0043\u0041",_fbcc .CA );_bcbdc .SetIfNotNil ("\u0052\u0043",_fbcc .RC );_bcbdc .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_fbcc .CreationDate );_bcbdc .SetIfNotNil ("\u0049\u0052\u0054",_fbcc .IRT );
|
||
_bcbdc .SetIfNotNil ("\u0053\u0075\u0062\u006a",_fbcc .Subj );_bcbdc .SetIfNotNil ("\u0052\u0054",_fbcc .RT );_bcbdc .SetIfNotNil ("\u0049\u0054",_fbcc .IT );_bcbdc .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_fbcc .ExData );};
|
||
|
||
// 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 (_efac *PdfFieldButton )SetType (btype ButtonType ){_dacb :=uint32 (0);if _efac .Ff !=nil {_dacb =uint32 (*_efac .Ff );};switch btype {case ButtonTypePush :_dacb |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_dacb |=FieldFlagRadio .Mask ();
|
||
};_efac .Ff =_ae .MakeInteger (int64 (_dacb ));};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_gac *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};func _fbfeb (_ddcgd *_ae .PdfObjectDictionary )(*PdfShadingType3 ,error ){_dgadgf :=PdfShadingType3 {};_ccec :=_ddcgd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _ccec ==nil {_ac .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 ;};_dceb ,_efadc :=_ccec .(*_ae .PdfObjectArray );if !_efadc {_ac .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",_ccec );
|
||
return nil ,_ae .ErrTypeError ;};if _dceb .Len ()!=6{_ac .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",_dceb .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_dgadgf .Coords =_dceb ;if _eagc :=_ddcgd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_eagc !=nil {_eagc =_ae .TraceToDirectObject (_eagc );_gbcc ,_dfcfb :=_eagc .(*_ae .PdfObjectArray );if !_dfcfb {_ac .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",_eagc );
|
||
return nil ,_ae .ErrTypeError ;};_dgadgf .Domain =_gbcc ;};_ccec =_ddcgd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _ccec ==nil {_ac .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 ;};_dgadgf .Function =[]PdfFunction {};if _bgdea ,_bbcbc :=_ccec .(*_ae .PdfObjectArray );_bbcbc {for _ ,_fagff :=range _bgdea .Elements (){_bdbgc ,_badce :=_gdbef (_fagff );if _badce !=nil {_ac .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",_badce );
|
||
return nil ,_badce ;};_dgadgf .Function =append (_dgadgf .Function ,_bdbgc );};}else {_baecc ,_ddeab :=_gdbef (_ccec );if _ddeab !=nil {_ac .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",_ddeab );
|
||
return nil ,_ddeab ;};_dgadgf .Function =append (_dgadgf .Function ,_baecc );};if _cfcff :=_ddcgd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_cfcff !=nil {_cfcff =_ae .TraceToDirectObject (_cfcff );_daeaa ,_gaad :=_cfcff .(*_ae .PdfObjectArray );if !_gaad {_ac .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",_cfcff );
|
||
return nil ,_ae .ErrTypeError ;};if _daeaa .Len ()!=2{_ac .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",_daeaa .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_dgadgf .Extend =_daeaa ;};return &_dgadgf ,nil ;};
|
||
|
||
// UpdateXObjectImageFromImage creates a new XObject Image from an
|
||
// Image object `img` and default masks from xobjIn.
|
||
// The default masks are overridden if img.hasAlpha
|
||
// If `encoder` is nil, uses raw encoding (none).
|
||
func UpdateXObjectImageFromImage (xobjIn *XObjectImage ,img *Image ,cs PdfColorspace ,encoder _ae .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {encoder =_ae .NewRawEncoder ();};encoder .UpdateParams (img .GetParamsDict ());_aagaef ,_afeab :=encoder .EncodeBytes (img .Data );
|
||
if _afeab !=nil {_ac .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_afeab );return nil ,_afeab ;};_egdbc :=NewXObjectImage ();_becbg :=img .Width ;_cbfcd :=img .Height ;
|
||
_egdbc .Width =&_becbg ;_egdbc .Height =&_cbfcd ;_fcbef :=img .BitsPerComponent ;_egdbc .BitsPerComponent =&_fcbef ;_egdbc .Filter =encoder ;_egdbc .Stream =_aagaef ;if cs ==nil {if img .ColorComponents ==1{_egdbc .ColorSpace =NewPdfColorspaceDeviceGray ();
|
||
if img .BitsPerComponent ==16{switch encoder .(type ){case *_ae .DCTEncoder :_egdbc .ColorSpace =NewPdfColorspaceDeviceRGB ();_fcbef =8;_egdbc .BitsPerComponent =&_fcbef ;};};}else if img .ColorComponents ==3{_egdbc .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{switch encoder .(type ){case *_ae .DCTEncoder :_egdbc .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_egdbc .ColorSpace =NewPdfColorspaceDeviceCMYK ();};}else {return nil ,_db .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");
|
||
};}else {_egdbc .ColorSpace =cs ;};if len (img ._bbba )!=0{_efee :=NewXObjectImage ();_efee .Filter =encoder ;_bbgc ,_ggaea :=encoder .EncodeBytes (img ._bbba );if _ggaea !=nil {_ac .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_ggaea );
|
||
return nil ,_ggaea ;};_efee .Stream =_bbgc ;_efee .BitsPerComponent =_egdbc .BitsPerComponent ;_efee .Width =&img .Width ;_efee .Height =&img .Height ;_efee .ColorSpace =NewPdfColorspaceDeviceGray ();_egdbc .SMask =_efee .ToPdfObject ();}else {_egdbc .SMask =xobjIn .SMask ;
|
||
_egdbc .ImageMask =xobjIn .ImageMask ;if _egdbc .ColorSpace .GetNumComponents ()==1{_fbeaa (_egdbc );};};return _egdbc ,nil ;};func (_bbad *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_fcfb :=NewPdfAnnotation ();_bcbd :=&PdfAnnotationPopup {};_bcbd .PdfAnnotation =_fcfb ;_fcfb .SetContext (_bcbd );return _bcbd ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_dbffd *PdfPageResourcesColorspaces )ToPdfObject ()_ae .PdfObject {_bedae :=_ae .MakeDict ();for _ ,_dcgga :=range _dbffd .Names {_bedae .Set (_ae .PdfObjectName (_dcgga ),_dbffd .Colorspaces [_dcgga ].ToPdfObject ());};if _dbffd ._ccfef !=nil {_dbffd ._ccfef .PdfObject =_bedae ;
|
||
return _dbffd ._ccfef ;};return _bedae ;};func (_dafb *PdfWriter )updateObjectNumbers (){_abbfa :=_dafb .ObjNumOffset ;_gacbf :=0;for _ ,_ffagd :=range _dafb ._edbe {_fbgf :=int64 (_gacbf +1+_abbfa );_eadga :=true ;if _dafb ._dffad {if _dbbgf ,_cgddf :=_dafb ._fbfcdf [_ffagd ];
|
||
_cgddf {_fbgf =_dbbgf ;_eadga =false ;};};switch _agaaf :=_ffagd .(type ){case *_ae .PdfIndirectObject :_agaaf .ObjectNumber =_fbgf ;_agaaf .GenerationNumber =0;case *_ae .PdfObjectStream :_agaaf .ObjectNumber =_fbgf ;_agaaf .GenerationNumber =0;case *_ae .PdfObjectStreams :_agaaf .ObjectNumber =_fbgf ;
|
||
_agaaf .GenerationNumber =0;default:_ac .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",_agaaf );continue ;
|
||
};if _eadga {_gacbf ++;};};_fdfga :=func (_gafae _ae .PdfObject )int64 {switch _agdab :=_gafae .(type ){case *_ae .PdfIndirectObject :return _agdab .ObjectNumber ;case *_ae .PdfObjectStream :return _agdab .ObjectNumber ;case *_ae .PdfObjectStreams :return _agdab .ObjectNumber ;
|
||
};return 0;};_cf .SliceStable (_dafb ._edbe ,func (_egeeb ,_bffda int )bool {return _fdfga (_dafb ._edbe [_egeeb ])< _fdfga (_dafb ._edbe [_bffda ])});};
|
||
|
||
// 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 (_cbcfd *PdfPage )SetContentStreams (cStreams []string ,encoder _ae .StreamEncoder )error {if len (cStreams )==0{_cbcfd .Contents =nil ;return nil ;};if encoder ==nil {encoder =_ae .NewRawEncoder ();};var _adefa []*_ae .PdfObjectStream ;for _ ,_abbce :=range cStreams {_bgfg :=&_ae .PdfObjectStream {};
|
||
_fafbf :=encoder .MakeStreamDict ();_dfaef ,_gdea :=encoder .EncodeBytes ([]byte (_abbce ));if _gdea !=nil {return _gdea ;};_fafbf .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_dfaef ))));_bgfg .PdfObjectDictionary =_fafbf ;
|
||
_bgfg .Stream =_dfaef ;_adefa =append (_adefa ,_bgfg );};if len (_adefa )==1{_cbcfd .Contents =_adefa [0];}else {_efgfa :=_ae .MakeArray ();for _ ,_cfdg :=range _adefa {_efgfa .Append (_cfdg );};_cbcfd .Contents =_efgfa ;};return nil ;};
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_deage *PdfAcroForm ,_aeegd *PdfField ,_fcba *PdfAnnotationWidget )(*_ae .PdfObjectDictionary ,error );};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_geda *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_cad :=NewPdfAction ();_dcd :=&PdfActionHide {};_dcd .PdfAction =_cad ;_cad .SetContext (_dcd );return _dcd ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_efaa *PdfColorDeviceGray )ToInteger (bits int )uint32 {_gbd :=_ag .Pow (2,float64 (bits ))-1;return uint32 (_gbd *_efaa .Val ());};
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_ege :=NewPdfAnnotation ();_bgge :=&PdfAnnotationPolygon {};_bgge .PdfAnnotation =_ege ;_bgge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ege .SetContext (_bgge );return _bgge ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_afed pdfFontSimple )GetRuneMetrics (r rune )(_cb .CharMetrics ,bool ){if _afed ._gabf !=nil {_cafae ,_cebaff :=_afed ._gabf .Read (r );if _cebaff {return _cafae ,true ;};};_fbbfe :=_afed .Encoder ();if _fbbfe ==nil {_ac .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_afed );
|
||
return _cb .CharMetrics {},false ;};_fdbc ,_eeba :=_fbbfe .RuneToCharcode (r );if !_eeba {if r !=' '{_ac .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 ,_afed );
|
||
};return _cb .CharMetrics {},false ;};_adba ,_gcec :=_afed .GetCharMetrics (_fdbc );return _adba ,_gcec ;};func (_cdcca *LTV )enable (_faag ,_gefg []*_fc .Certificate ,_efacb string )error {_efgac ,_afbfc ,_ffbcga :=_cdcca .buildCertChain (_faag ,_gefg );
|
||
if _ffbcga !=nil {return _ffbcga ;};_gddef ,_ffbcga :=_cdcca .getCerts (_efgac );if _ffbcga !=nil {return _ffbcga ;};var _aabe ,_aeaa [][]byte ;if _cdcca .OCSPClient !=nil {_aabe ,_ffbcga =_cdcca .getOCSPs (_efgac ,_afbfc );if _ffbcga !=nil {return _ffbcga ;
|
||
};};if _cdcca .CRLClient !=nil {_aeaa ,_ffbcga =_cdcca .getCRLs (_efgac );if _ffbcga !=nil {return _ffbcga ;};};_fbbe :=_cdcca ._dbggb ;_beegf ,_ffbcga :=_fbbe .addCerts (_gddef );if _ffbcga !=nil {return _ffbcga ;};_bgbea ,_ffbcga :=_fbbe .addOCSPs (_aabe );
|
||
if _ffbcga !=nil {return _ffbcga ;};_aceac ,_ffbcga :=_fbbe .addCRLs (_aeaa );if _ffbcga !=nil {return _ffbcga ;};if _efacb !=""{_fbbe .VRI [_efacb ]=&VRI {Cert :_beegf ,OCSP :_bgbea ,CRL :_aceac };};_cdcca ._gbcge .SetDSS (_fbbe );return nil ;};
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_beed *PdfPage )Duplicate ()*PdfPage {_gfabc :=*_beed ;_gfabc ._efgca =_ae .MakeDict ();_gfabc ._egbbg =_ae .MakeIndirectObject (_gfabc ._efgca );_gfabc ._eedgd =*_gfabc ._efgca ;return &_gfabc ;};
|
||
|
||
// 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 {_febcf ,_deagb :=NewStandard14Font (basefont );if _deagb !=nil {panic (_f .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0053\u0074\u0061n\u0064\u0061\u0072\u0064\u0031\u0034\u0046\u006f\u006e\u0074 \u0025\u0023\u0071",basefont ));
|
||
};return _febcf ;};
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_cbbdg *PdfSignature )SetDate (date _d .Time ,format string ){if format ==""{format ="\u0044\u003a\u003200\u0036\u0030\u0031\u0030\u0032\u0031\u0035\u0030\u0034\u0030\u0035\u002d\u0030\u0037\u0027\u0030\u0030\u0027";};_cbbdg .M =_ae .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_affc *PdfFontDescriptor )String ()string {var _fedfe []string ;if _affc .FontName !=nil {_fedfe =append (_fedfe ,_affc .FontName .String ());};if _affc .FontFamily !=nil {_fedfe =append (_fedfe ,_affc .FontFamily .String ());};if _affc .fontFile !=nil {_fedfe =append (_fedfe ,_affc .fontFile .String ());
|
||
};if _affc ._aebfg !=nil {_fedfe =append (_fedfe ,_affc ._aebfg .String ());};_fedfe =append (_fedfe ,_f .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_affc .FontFile3 !=nil ));return _f .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_eg .Join (_fedfe ,"\u002c\u0020"));
|
||
};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_eaefc :=PdfColorCalRGB {a ,b ,c };return &_eaefc ;};
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_agege :map[_ae .PdfObject ]struct{}{},_gdbcb :_gccbg (),_bfcga :_ae .NewParserFromString (txt )};};
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_aaec :=&PdfBorderStyle {};return _aaec };
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_dcgd :=PdfColorDeviceGray (grayVal );return &_dcgd ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_ggbe *PdfFunctionType0 )ToPdfObject ()_ae .PdfObject {if _ggbe ._aegae ==nil {_ggbe ._aegae =&_ae .PdfObjectStream {};};_bdad :=_ae .MakeDict ();_bdad .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (0));
|
||
_cbbaa :=&_ae .PdfObjectArray {};for _ ,_dbdd :=range _ggbe .Domain {_cbbaa .Append (_ae .MakeFloat (_dbdd ));};_bdad .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_cbbaa );_ebdab :=&_ae .PdfObjectArray {};for _ ,_ceafb :=range _ggbe .Range {_ebdab .Append (_ae .MakeFloat (_ceafb ));
|
||
};_bdad .Set ("\u0052\u0061\u006eg\u0065",_ebdab );_efadf :=&_ae .PdfObjectArray {};for _ ,_effca :=range _ggbe .Size {_efadf .Append (_ae .MakeInteger (int64 (_effca )));};_bdad .Set ("\u0053\u0069\u007a\u0065",_efadf );_bdad .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_ae .MakeInteger (int64 (_ggbe .BitsPerSample )));
|
||
if _ggbe .Order !=1{_bdad .Set ("\u004f\u0072\u0064e\u0072",_ae .MakeInteger (int64 (_ggbe .Order )));};_bdad .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_ggbe ._ecefb ))));_ggbe ._aegae .Stream =_ggbe ._ecefb ;_ggbe ._aegae .PdfObjectDictionary =_bdad ;
|
||
return _ggbe ._aegae ;};
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_cega *PdfColorspaceCalGray )ToPdfObject ()_ae .PdfObject {_deed :=&_ae .PdfObjectArray {};_deed .Append (_ae .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_aaee :=_ae .MakeDict ();if _cega .WhitePoint !=nil {_aaee .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_ae .MakeArray (_ae .MakeFloat (_cega .WhitePoint [0]),_ae .MakeFloat (_cega .WhitePoint [1]),_ae .MakeFloat (_cega .WhitePoint [2])));
|
||
}else {_ac .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 _cega .BlackPoint !=nil {_aaee .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ae .MakeArray (_ae .MakeFloat (_cega .BlackPoint [0]),_ae .MakeFloat (_cega .BlackPoint [1]),_ae .MakeFloat (_cega .BlackPoint [2])));
|
||
};_aaee .Set ("\u0047\u0061\u006dm\u0061",_ae .MakeFloat (_cega .Gamma ));_deed .Append (_aaee );if _cega ._befdd !=nil {_cega ._befdd .PdfObject =_deed ;return _cega ._befdd ;};return _deed ;};
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_bagaa *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_dadf :=_ba .NewReader (img .getBase ());_dbaea :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_bagaa .AlternateSpace .GetNumComponents (),nil ,img ._bbba ,nil );
|
||
_dfe :=_ba .NewWriter (_dbaea );_ffcc :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_ac .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");
|
||
_ac .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_bagaa .TintTransform );_dddaf :=_bagaa .AlternateSpace .DecodeArray ();var (_fbbcc uint32 ;_abge error ;);for {_fbbcc ,_abge =_dadf .ReadSample ();
|
||
if _abge ==_gdc .EOF {break ;};if _abge !=nil {return img ,_abge ;};_defa :=float64 (_fbbcc )/_ffcc ;_bfcc ,_decc :=_bagaa .TintTransform .Evaluate ([]float64 {_defa });if _decc !=nil {return img ,_decc ;};for _ccffc ,_edae :=range _bfcc {_edbb :=_afc .LinearInterpolate (_edae ,_dddaf [_ccffc *2],_dddaf [_ccffc *2+1],0,1);
|
||
if _decc =_dfe .WriteSample (uint32 (_edbb *_ffcc ));_decc !=nil {return img ,_decc ;};};};return _bagaa .AlternateSpace .ImageToRGB (_feagd (&_dbaea ));};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _ae .PdfObject ;V _ae .PdfObject ;};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _ae .PdfObject ;};func (_dabafg *PdfWriter )writeXRefStreams (_bbadc int ,_bbfa int64 )error {_aecd :=_bbadc +1;_dabafg ._agfeg [_aecd ]=crossReference {Type :1,ObjectNumber :_aecd ,Offset :_bbfa };_bagbc :=_aa .NewBuffer (nil );
|
||
_ddedf :=_ae .MakeArray ();for _aebbb :=0;_aebbb <=_bbadc ;{for ;_aebbb <=_bbadc ;_aebbb ++{_egaee ,_fdgff :=_dabafg ._agfeg [_aebbb ];if _fdgff &&(!_dabafg ._dffad ||_dabafg ._dffad &&(_egaee .Type ==1&&_egaee .Offset >=_dabafg ._gaffa ||_egaee .Type ==0)){break ;
|
||
};};var _acba int ;for _acba =_aebbb +1;_acba <=_bbadc ;_acba ++{_adccc ,_dbgffe :=_dabafg ._agfeg [_acba ];if _dbgffe &&(!_dabafg ._dffad ||_dabafg ._dffad &&(_adccc .Type ==1&&_adccc .Offset > _dabafg ._gaffa )){continue ;};break ;};_ddedf .Append (_ae .MakeInteger (int64 (_aebbb )),_ae .MakeInteger (int64 (_acba -_aebbb )));
|
||
for _abgag :=_aebbb ;_abgag < _acba ;_abgag ++{_dbcb :=_dabafg ._agfeg [_abgag ];switch _dbcb .Type {case 0:_fd .Write (_bagbc ,_fd .BigEndian ,byte (0));_fd .Write (_bagbc ,_fd .BigEndian ,uint32 (0));_fd .Write (_bagbc ,_fd .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_fd .Write (_bagbc ,_fd .BigEndian ,byte (1));_fd .Write (_bagbc ,_fd .BigEndian ,uint32 (_dbcb .Offset ));_fd .Write (_bagbc ,_fd .BigEndian ,uint16 (_dbcb .Generation ));case 2:_fd .Write (_bagbc ,_fd .BigEndian ,byte (2));_fd .Write (_bagbc ,_fd .BigEndian ,uint32 (_dbcb .ObjectNumber ));
|
||
_fd .Write (_bagbc ,_fd .BigEndian ,uint16 (_dbcb .Index ));};};_aebbb =_acba +1;};_ggbba ,_ecddf :=_ae .MakeStream (_bagbc .Bytes (),_ae .NewFlateEncoder ());if _ecddf !=nil {return _ecddf ;};_ggbba .ObjectNumber =int64 (_aecd );_ggbba .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_ggbba .PdfObjectDictionary .Set ("\u0057",_ae .MakeArray (_ae .MakeInteger (1),_ae .MakeInteger (4),_ae .MakeInteger (2)));_ggbba .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_ddedf );_ggbba .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_ae .MakeInteger (int64 (_aecd +1)));
|
||
_ggbba .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_dabafg ._cbffg );_ggbba .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_dabafg ._aacfc );if _dabafg ._dffad &&_dabafg ._afadc > 0{_ggbba .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_ae .MakeInteger (_dabafg ._afadc ));
|
||
};if _dabafg ._ecedf !=nil {_ggbba .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_dabafg ._feddfa );};if _dabafg ._dcdbd ==nil &&_dabafg ._fddgb !=""&&_dabafg ._dbdab !=""{_dabafg ._dcdbd =_ae .MakeArray (_ae .MakeHexString (_dabafg ._fddgb ),_ae .MakeHexString (_dabafg ._dbdab ));
|
||
};if _dabafg ._dcdbd !=nil {_ac .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_dabafg ._dcdbd );_ggbba .Set ("\u0049\u0044",_dabafg ._dcdbd );};_dabafg .writeObject (int (_ggbba .ObjectNumber ),_ggbba );return nil ;};func (_geag *PdfWriter )checkPendingObjects (){for _fbedd ,_eegbed :=range _geag ._fage {if !_geag .hasObject (_fbedd ){_ac .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",_fbedd ,_fbedd ,_fbedd );
|
||
for _ ,_eecga :=range _eegbed {for _ ,_gacf :=range _eecga .Keys (){_gbbca :=_eecga .Get (_gacf );if _gbbca ==_fbedd {_ac .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");
|
||
_eecga .Set (_gacf ,_ae .MakeNull ());break ;};};};};};};
|
||
|
||
// 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 ;_ebafb PdfModel ;_ebfged _ae .PdfObject ;};
|
||
|
||
// SetRotation sets the rotation of all pages added to writer. The rotation is
|
||
// specified in degrees and must be a multiple of 90.
|
||
// The Rotate field of individual pages has priority over the global rotation.
|
||
func (_faegf *PdfWriter )SetRotation (rotate int64 )error {_fcegd ,_bdebd :=_ae .GetDict (_faegf ._efcgc );if !_bdebd {return ErrTypeCheck ;};_fcegd .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_ae .MakeInteger (rotate ));return nil ;};
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_aeefc *PdfFontDescriptor )ToPdfObject ()_ae .PdfObject {_bgad :=_ae .MakeDict ();if _aeefc ._dcfaf ==nil {_aeefc ._dcfaf =&_ae .PdfIndirectObject {};};_aeefc ._dcfaf .PdfObject =_bgad ;_bgad .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _aeefc .FontName !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_aeefc .FontName );};if _aeefc .FontFamily !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_aeefc .FontFamily );};if _aeefc .FontStretch !=nil {_bgad .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_aeefc .FontStretch );
|
||
};if _aeefc .FontWeight !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_aeefc .FontWeight );};if _aeefc .Flags !=nil {_bgad .Set ("\u0046\u006c\u0061g\u0073",_aeefc .Flags );};if _aeefc .FontBBox !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_aeefc .FontBBox );
|
||
};if _aeefc .ItalicAngle !=nil {_bgad .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_aeefc .ItalicAngle );};if _aeefc .Ascent !=nil {_bgad .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_aeefc .Ascent );};if _aeefc .Descent !=nil {_bgad .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_aeefc .Descent );
|
||
};if _aeefc .Leading !=nil {_bgad .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_aeefc .Leading );};if _aeefc .CapHeight !=nil {_bgad .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_aeefc .CapHeight );};if _aeefc .XHeight !=nil {_bgad .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_aeefc .XHeight );
|
||
};if _aeefc .StemV !=nil {_bgad .Set ("\u0053\u0074\u0065m\u0056",_aeefc .StemV );};if _aeefc .StemH !=nil {_bgad .Set ("\u0053\u0074\u0065m\u0048",_aeefc .StemH );};if _aeefc .AvgWidth !=nil {_bgad .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_aeefc .AvgWidth );
|
||
};if _aeefc .MaxWidth !=nil {_bgad .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_aeefc .MaxWidth );};if _aeefc .MissingWidth !=nil {_bgad .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_aeefc .MissingWidth );};if _aeefc .FontFile !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_aeefc .FontFile );
|
||
};if _aeefc .FontFile2 !=nil {_bgad .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_aeefc .FontFile2 );};if _aeefc .FontFile3 !=nil {_bgad .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_aeefc .FontFile3 );};if _aeefc .CharSet !=nil {_bgad .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_aeefc .CharSet );
|
||
};if _aeefc .Style !=nil {_bgad .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_aeefc .FontName );};if _aeefc .Lang !=nil {_bgad .Set ("\u004c\u0061\u006e\u0067",_aeefc .Lang );};if _aeefc .FD !=nil {_bgad .Set ("\u0046\u0044",_aeefc .FD );};
|
||
if _aeefc .CIDSet !=nil {_bgad .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_aeefc .CIDSet );};return _aeefc ._dcfaf ;};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_dcee *PdfColorspaceSpecialIndexed )ToPdfObject ()_ae .PdfObject {_bedge :=_ae .MakeArray (_ae .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_bedge .Append (_dcee .Base .ToPdfObject ());_bedge .Append (_ae .MakeInteger (int64 (_dcee .HiVal )));
|
||
_bedge .Append (_dcee .Lookup );if _dcee ._edeb !=nil {_dcee ._edeb .PdfObject =_bedge ;return _dcee ._edeb ;};return _bedge ;};
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_eaaeg *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_eefd :=_ba .NewReader (img .getBase ());_dbad :=_afc .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._bbba ,img ._fdae );
|
||
_gaef :=_ba .NewWriter (_dbad );_bgag :=_ag .Pow (2,float64 (img .BitsPerComponent ))-1;_becgc :=_eaaeg .GetNumComponents ();_gfaec :=make ([]uint32 ,_becgc );_aaggd :=make ([]float64 ,_becgc );for {_fabfd :=_eefd .ReadSamples (_gfaec );if _fabfd ==_gdc .EOF {break ;
|
||
}else if _fabfd !=nil {return img ,_fabfd ;};for _fgfe :=0;_fgfe < _becgc ;_fgfe ++{_dfceb :=float64 (_gfaec [_fgfe ])/_bgag ;_aaggd [_fgfe ]=_dfceb ;};_fddcb ,_fabfd :=_eaaeg .TintTransform .Evaluate (_aaggd );if _fabfd !=nil {return img ,_fabfd ;};for _ ,_cage :=range _fddcb {_cage =_ag .Min (_ag .Max (0,_cage ),1.0);
|
||
if _fabfd =_gaef .WriteSample (uint32 (_cage *_bgag ));_fabfd !=nil {return img ,_fabfd ;};};};return _eaaeg .AlternateSpace .ImageToRGB (_feagd (&_dbad ));};
|
||
|
||
// 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 *_ae .PdfObjectString ;Q *_ae .PdfObjectInteger ;DS *_ae .PdfObjectString ;RV _ae .PdfObject ;};
|
||
|
||
// 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 ){_bfaga ,_gbbae :=_af .Open (filePath );if _gbbae !=nil {_ac .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_gbbae );
|
||
return nil ,_gbbae ;};defer _bfaga .Close ();return NewCompositePdfFontFromTTF (_bfaga );};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_gefd *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_adab :=vals [0];_gbac :=[]float64 {_adab };_cabfe ,_cbda :=_gefd .TintTransform .Evaluate (_gbac );
|
||
if _cbda !=nil {_ac .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",_cbda );_ac .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_gefd .TintTransform );
|
||
return nil ,_cbda ;};_ac .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",_cabfe ,_gefd .AlternateSpace );
|
||
_fagda ,_cbda :=_gefd .AlternateSpace .ColorFromFloats (_cabfe );if _cbda !=nil {_ac .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",_cbda );
|
||
return nil ,_cbda ;};return _fagda ,nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_cc *PdfAction )GetContainingPdfObject ()_ae .PdfObject {return _cc ._cbe };
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _ae .PdfObject ;};
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_eeg :=NewPdfAnnotation ();_eec :=&PdfAnnotationScreen {};_eec .PdfAnnotation =_eeg ;_eeg .SetContext (_eec );return _eec ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ccfga *PdfSignatureReference )ToPdfObject ()_ae .PdfObject {_feaed :=_ae .MakeDict ();_feaed .SetIfNotNil ("\u0054\u0079\u0070\u0065",_ccfga .Type );_feaed .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_ccfga .TransformMethod );
|
||
_feaed .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_ccfga .TransformParams );_feaed .SetIfNotNil ("\u0044\u0061\u0074\u0061",_ccfga .Data );_feaed .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_ccfga .DigestMethod );
|
||
return _feaed ;};func _ceaec (_feab []*_ae .PdfObjectStream )*_ae .PdfObjectArray {if len (_feab )==0{return nil ;};_beabed :=make ([]_ae .PdfObject ,0,len (_feab ));for _ ,_fdadd :=range _feab {_beabed =append (_beabed ,_fdadd );};return _ae .MakeArray (_beabed ...);
|
||
};func (_cbcbc *PdfReader )flattenFieldsWithOpts (_feca bool ,_cbff FieldAppearanceGenerator ,_addce *FieldFlattenOpts )error {if _addce ==nil {_addce =&FieldFlattenOpts {};};var _feeeg bool ;_dfgb :=map[*PdfAnnotation ]bool {};{var _aefef []*PdfField ;
|
||
_afdaf :=_cbcbc .AcroForm ;if _afdaf !=nil {if _addce .FilterFunc !=nil {_aefef =_afdaf .filteredFields (_addce .FilterFunc ,true );_feeeg =_afdaf .Fields !=nil &&len (*_afdaf .Fields )> 0;}else {_aefef =_afdaf .AllFields ();};};for _ ,_edbab :=range _aefef {for _ ,_edfgd :=range _edbab .Annotations {_dfgb [_edfgd .PdfAnnotation ]=_edbab .V !=nil ;
|
||
if _cbff !=nil {_dbbb ,_egda :=_cbff .GenerateAppearanceDict (_afdaf ,_edbab ,_edfgd );if _egda !=nil {return _egda ;};_edfgd .AP =_dbbb ;};};};};if _feca {for _ ,_efde :=range _cbcbc .PageList {_degg ,_dfcc :=_efde .GetAnnotations ();if _dfcc !=nil {return _dfcc ;
|
||
};for _ ,_dfabd :=range _degg {_dfgb [_dfabd ]=true ;};};};for _ ,_dfff :=range _cbcbc .PageList {var _eefb []*PdfAnnotation ;if _cbff !=nil {if _cddee :=_cbff .WrapContentStream (_dfff );_cddee !=nil {return _cddee ;};};_feag ,_egccb :=_dfff .GetAnnotations ();
|
||
if _egccb !=nil {return _egccb ;};for _ ,_bcec :=range _feag {_gbfdd ,_bfcg :=_dfgb [_bcec ];if !_bfcg &&_addce .AnnotFilterFunc !=nil {if _ ,_ffac :=_bcec .GetContext ().(*PdfAnnotationWidget );!_ffac {_bfcg =_addce .AnnotFilterFunc (_bcec );};};if !_bfcg {_eefb =append (_eefb ,_bcec );
|
||
continue ;};switch _bcec .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;};_dafg ,_dfed ,_gffgb :=_gfaa (_bcec );if _gffgb !=nil {if !_gbfdd {_ac .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 ;};_ac .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",_gffgb );
|
||
continue ;};if _dafg ==nil {continue ;};_faaf :=_dfff .Resources .GenerateXObjectName ();_dfff .Resources .SetXObjectFormByName (_faaf ,_dafg );_eeaf ,_gffgb :=_eaebe (_dafg );if _gffgb !=nil {_ac .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",_gffgb );
|
||
}else {_afdc :=_ecc .IdentityMatrix ();_afdc =_afdc .Translate (-_eeaf .Llx ,-_eeaf .Lly );_afcbd :=0.0;if _eeaf .Width ()> 0{_afcbd =_dfed .Width ()/_eeaf .Width ();};_dbbg :=0.0;if _eeaf .Height ()> 0{_dbbg =_dfed .Height ()/_eeaf .Height ();};_afdc =_afdc .Scale (_afcbd ,_dbbg );
|
||
_dfed .Transform (_afdc );};_dgdag :=_ag .Min (_dfed .Llx ,_dfed .Urx );_fafgg :=_ag .Min (_dfed .Lly ,_dfed .Ury );var _bfcd []string ;_bfcd =append (_bfcd ,"\u0071");_bfcd =append (_bfcd ,_f .Sprintf ("\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020%\u002e6\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0025\u002e\u0036\u0066\u0020\u0063\u006d",1.0,0.0,0.0,1.0,_dgdag ,_fafgg ));
|
||
_bfcd =append (_bfcd ,_f .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_faaf .String ()));_bfcd =append (_bfcd ,"\u0051");_cbbf :=_eg .Join (_bfcd ,"\u000a");_gffgb =_dfff .AppendContentStream (_cbbf );if _gffgb !=nil {return _gffgb ;};if _dafg .Resources !=nil {_eggd ,_bgcg :=_ae .GetDict (_dafg .Resources .Font );
|
||
if _bgcg {for _ ,_acedf :=range _eggd .Keys (){if !_dfff .Resources .HasFontByName (_acedf ){_dfff .Resources .SetFontByName (_acedf ,_eggd .Get (_acedf ));};};};};};if len (_eefb )> 0{_dfff ._dgfec =_eefb ;}else {_dfff ._dgfec =[]*PdfAnnotation {};};};
|
||
if !_feeeg {_cbcbc .AcroForm =nil ;};return nil ;};
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_adagg *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_adagg ._febfa =colorspace ;};func (_bceeg *PdfWriter )flushWriter ()error {if _bceeg ._fffcb ==nil {_bceeg ._fffcb =_bceeg ._dfgcc .Flush ();};return _bceeg ._fffcb ;
|
||
};func (_dggd *PdfPattern )getDict ()*_ae .PdfObjectDictionary {if _gadca ,_facfd :=_dggd ._ebfged .(*_ae .PdfIndirectObject );_facfd {_afagd ,_gbddb :=_gadca .PdfObject .(*_ae .PdfObjectDictionary );if !_gbddb {return nil ;};return _afagd ;}else if _abafc ,_gegeg :=_dggd ._ebfged .(*_ae .PdfObjectStream );
|
||
_gegeg {return _abafc .PdfObjectDictionary ;}else {_ac .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",_dggd ._ebfged );
|
||
return nil ;};};func _ddbdf (_dadag _ae .PdfObject )(string ,error ){_dadag =_ae .TraceToDirectObject (_dadag );switch _egeef :=_dadag .(type ){case *_ae .PdfObjectString :return _egeef .Str (),nil ;case *_ae .PdfObjectStream :_adfdf ,_bdfea :=_ae .DecodeStream (_egeef );
|
||
if _bdfea !=nil {return "",_bdfea ;};return string (_adfdf ),nil ;};return "",_f .Errorf ("\u0069\u006e\u0076\u0061\u006ci\u0064\u0020\u0063\u006f\u006e\u0074\u0065\u006e\u0074\u0020\u0073\u0074\u0072e\u0061\u006d\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0020\u0068\u006f\u006c\u0064\u0065\u0072\u0020\u0028\u0025\u0054\u0029",_dadag );
|
||
};
|
||
|
||
// 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 ;
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_aeccg :=&PdfFilespec {};_aeccg ._caeaag =_ae .MakeIndirectObject (_ae .MakeDict ());return _aeccg ;};
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};var _fedb =map[string ]string {"\u0053\u0079\u006d\u0062\u006f\u006c":"\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067","\u005a\u0061\u0070f\u0044\u0069\u006e\u0067\u0062\u0061\u0074\u0073":"Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067"};
|
||
func _gdbef (_dfcf _ae .PdfObject )(PdfFunction ,error ){_dfcf =_ae .ResolveReference (_dfcf );if _abffg ,_dddc :=_dfcf .(*_ae .PdfObjectStream );_dddc {_cbbag :=_abffg .PdfObjectDictionary ;_daee ,_adcb :=_cbbag .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ae .PdfObjectInteger );
|
||
if !_adcb {_ac .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 ,_db .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 *_daee ==0{return _eaage (_abffg );}else if *_daee ==4{return _ebce (_abffg );}else {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gaeffe ,_cfcg :=_dfcf .(*_ae .PdfIndirectObject );
|
||
_cfcg {_beeb ,_ecggf :=_gaeffe .PdfObject .(*_ae .PdfObjectDictionary );if !_ecggf {_ac .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 ,_db .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");};_bfeb ,_ecggf :=_beeb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ae .PdfObjectInteger );
|
||
if !_ecggf {_ac .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 ,_db .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 *_bfeb ==2{return _cgabb (_gaeffe );}else if *_bfeb ==3{return _fffbg (_gaeffe );}else {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gaggb ,_dgfb :=_dfcf .(*_ae .PdfObjectDictionary );
|
||
_dgfb {_fcagg ,_bgbab :=_gaggb .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_ae .PdfObjectInteger );if !_bgbab {_ac .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 ,_db .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 *_fcagg ==2{return _cgabb (_gaggb );}else if *_fcagg ==3{return _fffbg (_gaggb );
|
||
}else {return nil ,_db .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ac .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_dfcf );
|
||
return nil ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};func (_badf *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _cgfc []*PdfFieldSignature ;for _ ,_ccca :=range _badf .AllFields (){switch _cbag :=_ccca .GetContext ().(type ){case *PdfFieldSignature :_cffd :=_cbag ;
|
||
_cgfc =append (_cgfc ,_cffd );};};return _cgfc ;};
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_cbbea *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _cbbea ._dgfec !=nil {return _cbbea ._dgfec ,nil ;};if _cbbea .Annots ==nil {_cbbea ._dgfec =[]*PdfAnnotation {};return nil ,nil ;};if _cbbea ._bceef ==nil {_cbbea ._dgfec =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_bdbea ,_dedeb :=_cbbea ._bceef .loadAnnotations (_cbbea .Annots );if _dedeb !=nil {return nil ,_dedeb ;};if _bdbea ==nil {_cbbea ._dgfec =[]*PdfAnnotation {};};_cbbea ._dgfec =_bdbea ;return _cbbea ._dgfec ,nil ;};func (_dabf *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";
|
||
};
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_ae .PdfObjectDictionary )(*PdfPageResources ,error ){_bbec :=NewPdfPageResources ();if _fcdcea :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fcdcea !=nil {_bbec .ExtGState =_fcdcea ;};if _cgcfg :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_cgcfg !=nil &&!_ae .IsNullObject (_cgcfg ){_bbec .ColorSpace =_cgcfg ;};if _bcfbb :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_bcfbb !=nil {_bbec .Pattern =_bcfbb ;};if _gefb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_gefb !=nil {_bbec .Shading =_gefb ;
|
||
};if _dbaeaf :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_dbaeaf !=nil {_bbec .XObject =_dbaeaf ;};if _gcdg :=_ae .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_gcdg !=nil {_bbec .Font =_gcdg ;};if _fdfda :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_fdfda !=nil {_bbec .ProcSet =_fdfda ;};if _beadcd :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_beadcd !=nil {_bbec .Properties =_beadcd ;};return _bbec ,nil ;};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _ae .PdfObject ;Mac _ae .PdfObject ;Unix _ae .PdfObject ;NewWindow _ae .PdfObject ;};
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_geegd *XObjectImage )GetContainingPdfObject ()_ae .PdfObject {return _geegd ._efaag };
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_ae .PdfObjectArray ;Matrix *_ae .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_egfgg *PdfShadingType3 )ToPdfObject ()_ae .PdfObject {_egfgg .PdfShading .ToPdfObject ();_affd ,_feggb :=_egfgg .getShadingDict ();if _feggb !=nil {_ac .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 _egfgg .Coords !=nil {_affd .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_egfgg .Coords );};if _egfgg .Domain !=nil {_affd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_egfgg .Domain );};if _egfgg .Function !=nil {if len (_egfgg .Function )==1{_affd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_egfgg .Function [0].ToPdfObject ());
|
||
}else {_fdccc :=_ae .MakeArray ();for _ ,_dafda :=range _egfgg .Function {_fdccc .Append (_dafda .ToPdfObject ());};_affd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fdccc );};};if _egfgg .Extend !=nil {_affd .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_egfgg .Extend );
|
||
};return _egfgg ._dcdgda ;};func (_bfaa *PdfReader )newPdfFieldSignatureFromDict (_efag *_ae .PdfObjectDictionary )(*PdfFieldSignature ,error ){_ggafe :=&PdfFieldSignature {};_cdae ,_dbbfe :=_ae .GetIndirect (_efag .Get ("\u0056"));if _dbbfe {var _cgbad error ;
|
||
_ggafe .V ,_cgbad =_bfaa .newPdfSignatureFromIndirect (_cdae );if _cgbad !=nil {return nil ,_cgbad ;};};_ggafe .Lock ,_ =_ae .GetIndirect (_efag .Get ("\u004c\u006f\u0063\u006b"));_ggafe .SV ,_ =_ae .GetIndirect (_efag .Get ("\u0053\u0056"));return _ggafe ,nil ;
|
||
};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ccdb *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_efaeg :=_ag .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_efaeg *_ccdb .R ()),uint32 (_efaeg *_ccdb .G ()),uint32 (_efaeg *_ccdb .B ())};};
|
||
|
||
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
|
||
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _ae .PdfObjectName ;};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_gafa *PdfReader )GetPageLabels ()(_ae .PdfObject ,error ){_debcf :=_ae .ResolveReference (_gafa ._aedf .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _debcf ==nil {return nil ,nil ;};if !_gafa ._ffggb {_fgbbd :=_gafa .traverseObjectData (_debcf );
|
||
if _fgbbd !=nil {return nil ,_fgbbd ;};};return _debcf ,nil ;};func (_daba *PdfFilespec )getDict ()*_ae .PdfObjectDictionary {if _eafaa ,_bffba :=_daba ._caeaag .(*_ae .PdfIndirectObject );_bffba {_baad ,_cccg :=_eafaa .PdfObject .(*_ae .PdfObjectDictionary );
|
||
if !_cccg {return nil ;};return _baad ;}else if _aabf ,_gfdfgg :=_daba ._caeaag .(*_ae .PdfObjectDictionary );_gfdfgg {return _aabf ;}else {_ac .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",_daba ._caeaag );
|
||
return nil ;};};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_fdaf pdfCIDFontType0 )GetCharMetrics (code _bgg .CharCode )(_cb .CharMetrics ,bool ){_gbdde :=_fdaf ._bbfb ;if _dfcg ,_cefde :=_fdaf ._abbcg [code ];_cefde {_gbdde =_dfcg ;};return _cb .CharMetrics {Wx :_gbdde },true ;};func (_fgef *PdfReader )newPdfActionRenditionFromDict (_aab *_ae .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_aab .Get ("\u0052"),AN :_aab .Get ("\u0041\u004e"),OP :_aab .Get ("\u004f\u0050"),JS :_aab .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_cfabc *PdfShadingType7 )ToPdfObject ()_ae .PdfObject {_cfabc .PdfShading .ToPdfObject ();_dffaf ,_gaeg :=_cfabc .getShadingDict ();if _gaeg !=nil {_ac .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 _cfabc .BitsPerCoordinate !=nil {_dffaf .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_cfabc .BitsPerCoordinate );};if _cfabc .BitsPerComponent !=nil {_dffaf .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_cfabc .BitsPerComponent );
|
||
};if _cfabc .BitsPerFlag !=nil {_dffaf .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_cfabc .BitsPerFlag );};if _cfabc .Decode !=nil {_dffaf .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_cfabc .Decode );};if _cfabc .Function !=nil {if len (_cfabc .Function )==1{_dffaf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_cfabc .Function [0].ToPdfObject ());
|
||
}else {_dfdg :=_ae .MakeArray ();for _ ,_begc :=range _cfabc .Function {_dfdg .Append (_begc .ToPdfObject ());};_dffaf .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dfdg );};};return _cfabc ._dcdgda ;};type modelManager struct{_gbed map[PdfModel ]_ae .PdfObject ;
|
||
_bdcg map[_ae .PdfObject ]PdfModel ;};
|
||
|
||
// 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 (_dagb *PdfWriter )ApplyStandard (optimizer StandardApplier ){_dagb ._bccf =optimizer };
|
||
|
||
// 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 (_gfde *PdfReader )CheckAccessRights (password []byte )(bool ,_ff .Permissions ,error ){return _gfde ._bfcga .CheckAccessRights (password );};func _afdgg ()string {_dcgg :="\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 _cfaf _aa .Buffer ;for _agba :=0;_agba < 6;_agba ++{_cfaf .WriteRune (rune (_dcgg [_dd .Intn (len (_dcgg ))]));};return _cfaf .String ();};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_babfa *PdfPage )HasExtGState (name _ae .PdfObjectName )bool {if _babfa .Resources ==nil {return false ;};if _babfa .Resources .ExtGState ==nil {return false ;};_bfcdg ,_ggegd :=_ae .TraceToDirectObject (_babfa .Resources .ExtGState ).(*_ae .PdfObjectDictionary );
|
||
if !_ggegd {_ac .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",_ae .TraceToDirectObject (_babfa .Resources .ExtGState ));
|
||
return false ;};_ebfcf :=_bfcdg .Get (name );_fecfb :=_ebfcf !=nil ;return _fecfb ;};
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_bgac *PdfAnnotationLink )SetAction (action *PdfAction ){_bgac ._ebf =action ;if action ==nil {_bgac .A =nil ;};};func (_fgge *PdfReader )newPdfAnnotationPopupFromDict (_fdcg *_ae .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_dcef :=PdfAnnotationPopup {};
|
||
_dcef .Parent =_fdcg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_dcef .Open =_fdcg .Get ("\u004f\u0070\u0065\u006e");return &_dcef ,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";);var _ pdfFont =(*pdfCIDFontType2 )(nil );
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aeccf *PdfAnnotationText )ToPdfObject ()_ae .PdfObject {_aeccf .PdfAnnotation .ToPdfObject ();_dggc :=_aeccf ._gcgf ;_fcbbg :=_dggc .PdfObject .(*_ae .PdfObjectDictionary );if _aeccf .PdfAnnotationMarkup !=nil {_aeccf .PdfAnnotationMarkup .appendToPdfDictionary (_fcbbg );
|
||
};_fcbbg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0054\u0065\u0078\u0074"));_fcbbg .SetIfNotNil ("\u004f\u0070\u0065\u006e",_aeccf .Open );_fcbbg .SetIfNotNil ("\u004e\u0061\u006d\u0065",_aeccf .Name );_fcbbg .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_aeccf .State );
|
||
_fcbbg .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_aeccf .StateModel );return _dggc ;};
|
||
|
||
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
|
||
func (_bbcfa *PdfWriter )SetCatalogMetadata (meta _ae .PdfObject )error {if meta ==nil {_bbcfa ._caddd .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_bedfa ,_bbggf :=_ae .GetStream (meta );if !_bbggf {return _db .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");
|
||
};_bbcfa .addObject (_bedfa );_bbcfa ._caddd .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_bedfa );return nil ;};func (_facbd *LTV )buildCertChain (_gccd ,_gcaea []*_fc .Certificate )([]*_fc .Certificate ,map[string ]*_fc .Certificate ,error ){_ffgc :=map[string ]*_fc .Certificate {};
|
||
for _ ,_fddafd :=range _gccd {_ffgc [_fddafd .Subject .CommonName ]=_fddafd ;};_caafe :=_gccd ;for _ ,_fbgg :=range _gcaea {_adcbb :=_fbgg .Subject .CommonName ;if _ ,_dbdb :=_ffgc [_adcbb ];_dbdb {continue ;};_ffgc [_adcbb ]=_fbgg ;_caafe =append (_caafe ,_fbgg );
|
||
};if len (_caafe )==0{return nil ,nil ,ErrSignNoCertificates ;};var _fdacc error ;for _ggfgg :=_caafe [0];_ggfgg !=nil &&!_facbd .CertClient .IsCA (_ggfgg );{_acffc ,_egcfc :=_ffgc [_ggfgg .Issuer .CommonName ];if !_egcfc {if _acffc ,_fdacc =_facbd .CertClient .GetIssuer (_ggfgg );
|
||
_fdacc !=nil {_ac .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",_fdacc );
|
||
break ;};_ffgc [_ggfgg .Issuer .CommonName ]=_acffc ;_caafe =append (_caafe ,_acffc );};_ggfgg =_acffc ;};return _caafe ,_ffgc ,nil ;};
|
||
|
||
// 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 ,*_af .File ,error ){const _feedc ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
|
||
_dfdcg ,_dcfcd :=_af .Open (pdfFile );if _dcfcd !=nil {return nil ,nil ,_dcfcd ;};_dfaga ,_dcfcd :=_fccgfc (_dfdcg ,opts ,true ,_feedc );if _dcfcd !=nil {_dfdcg .Close ();return nil ,nil ,_dcfcd ;};return _dfaga ,_dfdcg ,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{_bfcga *_ae .PdfParser ;_cgccc _ae .PdfObject ;_cdee *_ae .PdfIndirectObject ;_adffd *_ae .PdfObjectDictionary ;_bcaab []*_ae .PdfIndirectObject ;PageList []*PdfPage ;_gbfa int ;_aedf *_ae .PdfObjectDictionary ;_ecbe *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_cgfad *Permissions ;_aabeg map[*PdfReader ]*PdfReader ;_afagc []*PdfReader ;_gdbcb *modelManager ;_ffggb bool ;_agege map[_ae .PdfObject ]struct{};_bgbcea _gdc .ReadSeeker ;_decgb string ;_dbeeb bool ;_bagca *ReaderOpts ;
|
||
_bafaa bool ;};
|
||
|
||
// 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 _gdc .ReadSeeker )(*PdfFont ,error ){_gdfgc ,_gcebb :=_abc .ReadAll (r );if _gcebb !=nil {_ac .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",_gcebb );
|
||
return nil ,_gcebb ;};_bdfe ,_gcebb :=_cb .TtfParse (_aa .NewReader (_gdfgc ));if _gcebb !=nil {_ac .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",_gcebb );
|
||
return nil ,_gcebb ;};_dcaeea :=&pdfCIDFontType2 {fontCommon :fontCommon {_adce :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_ae .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_bdfe .Widths )<=0{return nil ,_db .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");
|
||
};_fbcb :=1000.0/float64 (_bdfe .UnitsPerEm );_cgga :=_fbcb *float64 (_bdfe .Widths [0]);_caeaf :=make (map[rune ]int );_dgaga :=make (map[_cb .GID ]int );_beggg :=_cb .GID (len (_bdfe .Widths ));for _dbfgb ,_bffaa :=range _bdfe .Chars {if _bffaa > _beggg -1{continue ;
|
||
};_deggd :=int (_fbcb *float64 (_bdfe .Widths [_bffaa ]));_caeaf [_dbfgb ]=_deggd ;_dgaga [_bffaa ]=_deggd ;};_dcaeea ._acae =_caeaf ;_dcaeea .DW =_ae .MakeInteger (int64 (_cgga ));_abada :=_gggb (_dgaga ,uint16 (_beggg ));_dcaeea .W =_ae .MakeIndirectObject (_abada );
|
||
_fbaa :=_ae .MakeDict ();_fbaa .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_ae .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_fbaa .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_ae .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_fbaa .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_ae .MakeInteger (0));_dcaeea .CIDSystemInfo =_fbaa ;_defeb :=&PdfFontDescriptor {FontName :_ae .MakeName (_bdfe .PostScriptName ),Ascent :_ae .MakeFloat (_fbcb *float64 (_bdfe .TypoAscender )),Descent :_ae .MakeFloat (_fbcb *float64 (_bdfe .TypoDescender )),CapHeight :_ae .MakeFloat (_fbcb *float64 (_bdfe .CapHeight )),FontBBox :_ae .MakeArrayFromFloats ([]float64 {_fbcb *float64 (_bdfe .Xmin ),_fbcb *float64 (_bdfe .Ymin ),_fbcb *float64 (_bdfe .Xmax ),_fbcb *float64 (_bdfe .Ymax )}),ItalicAngle :_ae .MakeFloat (_bdfe .ItalicAngle ),MissingWidth :_ae .MakeFloat (_cgga )};
|
||
_bcdg ,_gcebb :=_ae .MakeStream (_gdfgc ,_ae .NewFlateEncoder ());if _gcebb !=nil {_ac .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",_gcebb );
|
||
return nil ,_gcebb ;};_bcdg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_ae .MakeInteger (int64 (len (_gdfgc ))));_defeb .FontFile2 =_bcdg ;if _bdfe .Bold {_defeb .StemV =_ae .MakeInteger (120);}else {_defeb .StemV =_ae .MakeInteger (70);
|
||
};_eafgaa :=_fdbaa ;if _bdfe .IsFixedPitch {_eafgaa |=_ebaf ;};if _bdfe .ItalicAngle !=0{_eafgaa |=_fggg ;};_defeb .Flags =_ae .MakeInteger (int64 (_eafgaa ));_dcaeea ._cedb =_bdfe .PostScriptName ;_dcaeea ._cafdb =_defeb ;_bfgg :=pdfFontType0 {fontCommon :fontCommon {_adce :"\u0054\u0079\u0070e\u0030",_cedb :_bdfe .PostScriptName },DescendantFont :&PdfFont {_dabg :_dcaeea },Encoding :_ae .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_bagdb :_bdfe .NewEncoder ()};
|
||
if len (_bdfe .Chars )> 0{_dagfg :=make (map[_abg .CharCode ]rune ,len (_bdfe .Chars ));for _baddd ,_fabaa :=range _bdfe .Chars {_aagdc :=_abg .CharCode (_fabaa );if _ccdef ,_cfce :=_dagfg [_aagdc ];!_cfce ||(_cfce &&_ccdef > _baddd ){_dagfg [_aagdc ]=_baddd ;
|
||
};};_bfgg ._ebfdc =_abg .NewToUnicodeCMap (_dagfg );};_defbd :=PdfFont {_dabg :&_bfgg };return &_defbd ,nil ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_beaa *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bccb ,_gbgg :=_ae .GetNumbersAsFloat (objects );
|
||
if _gbgg !=nil {return nil ,_gbgg ;};return _beaa .ColorFromFloats (_bccb );};
|
||
|
||
// 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 ){_cfec ,_ecae :=_decf (basefont );if _ecae !=nil {return nil ,_ecae ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_cfec ._dead =_bgg .NewWinAnsiEncoder ();};return &PdfFont {_dabg :&_cfec },nil ;
|
||
};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_cagag *PdfPageResources )SetShadingByName (keyName _ae .PdfObjectName ,shadingObj _ae .PdfObject )error {if _cagag .Shading ==nil {_cagag .Shading =_ae .MakeDict ();};_fgadf ,_bggaa :=_ae .GetDict (_cagag .Shading );if !_bggaa {return _ae .ErrTypeError ;
|
||
};_fgadf .Set (keyName ,shadingObj );return nil ;};func (_ddcd *DSS )addCRLs (_beda [][]byte )([]*_ae .PdfObjectStream ,error ){return _ddcd .add (&_ddcd .CRLs ,_ddcd ._abda ,_beda );};
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_ae .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_aegbf *PdfShadingType6 )ToPdfObject ()_ae .PdfObject {_aegbf .PdfShading .ToPdfObject ();_ddca ,_fdfg :=_aegbf .getShadingDict ();if _fdfg !=nil {_ac .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 _aegbf .BitsPerCoordinate !=nil {_ddca .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_aegbf .BitsPerCoordinate );};if _aegbf .BitsPerComponent !=nil {_ddca .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_aegbf .BitsPerComponent );
|
||
};if _aegbf .BitsPerFlag !=nil {_ddca .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_aegbf .BitsPerFlag );};if _aegbf .Decode !=nil {_ddca .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_aegbf .Decode );};if _aegbf .Function !=nil {if len (_aegbf .Function )==1{_ddca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aegbf .Function [0].ToPdfObject ());
|
||
}else {_gfbec :=_ae .MakeArray ();for _ ,_gfgcg :=range _aegbf .Function {_gfbec .Append (_gfgcg .ToPdfObject ());};_ddca .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gfbec );};};return _aegbf ._dcdgda ;};func (_bebf *pdfFontType0 )bytesToCharcodes (_ffbg []byte )([]_bgg .CharCode ,bool ){if _bebf ._gbced ==nil {return nil ,false ;
|
||
};_cdgba ,_daegg :=_bebf ._gbced .BytesToCharcodes (_ffbg );if !_daegg {return nil ,false ;};_badb :=make ([]_bgg .CharCode ,len (_cdgba ));for _fdfc ,_cedae :=range _cdgba {_badb [_fdfc ]=_bgg .CharCode (_cedae );};return _badb ,true ;};func (_bgec *PdfReader )newPdfAnnotationFreeTextFromDict (_acc *_ae .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_dfab :=PdfAnnotationFreeText {};
|
||
_cfea ,_fga :=_bgec .newPdfAnnotationMarkupFromDict (_acc );if _fga !=nil {return nil ,_fga ;};_dfab .PdfAnnotationMarkup =_cfea ;_dfab .DA =_acc .Get ("\u0044\u0041");_dfab .Q =_acc .Get ("\u0051");_dfab .RC =_acc .Get ("\u0052\u0043");_dfab .DS =_acc .Get ("\u0044\u0053");
|
||
_dfab .CL =_acc .Get ("\u0043\u004c");_dfab .IT =_acc .Get ("\u0049\u0054");_dfab .BE =_acc .Get ("\u0042\u0045");_dfab .RD =_acc .Get ("\u0052\u0044");_dfab .BS =_acc .Get ("\u0042\u0053");_dfab .LE =_acc .Get ("\u004c\u0045");return &_dfab ,nil ;};func (_fageg *PdfWriter )copyObject (_gbbgf _ae .PdfObject ,_fbddf map[_ae .PdfObject ]_ae .PdfObject ,_dbef map[_ae .PdfObject ]struct{},_agcddf bool )_ae .PdfObject {_eddeb :=!_fageg ._dffad &&_dbef !=nil ;
|
||
if _feecc ,_bbgag :=_fbddf [_gbbgf ];_bbgag {if _eddeb &&!_agcddf {delete (_dbef ,_gbbgf );};return _feecc ;};if _gbbgf ==nil {_cefeg :=_ae .MakeNull ();return _cefeg ;};_cdecgg :=_gbbgf ;switch _egddg :=_gbbgf .(type ){case *_ae .PdfObjectArray :_ddeaa :=_ae .MakeArray ();
|
||
_cdecgg =_ddeaa ;_fbddf [_gbbgf ]=_cdecgg ;for _ ,_ecgf :=range _egddg .Elements (){_ddeaa .Append (_fageg .copyObject (_ecgf ,_fbddf ,_dbef ,_agcddf ));};case *_ae .PdfObjectStreams :_gfgef :=&_ae .PdfObjectStreams {PdfObjectReference :_egddg .PdfObjectReference };
|
||
_cdecgg =_gfgef ;_fbddf [_gbbgf ]=_cdecgg ;for _ ,_debbg :=range _egddg .Elements (){_gfgef .Append (_fageg .copyObject (_debbg ,_fbddf ,_dbef ,_agcddf ));};case *_ae .PdfObjectStream :_aggfe :=&_ae .PdfObjectStream {Stream :_egddg .Stream ,PdfObjectReference :_egddg .PdfObjectReference };
|
||
_cdecgg =_aggfe ;_fbddf [_gbbgf ]=_cdecgg ;_aggfe .PdfObjectDictionary =_fageg .copyObject (_egddg .PdfObjectDictionary ,_fbddf ,_dbef ,_agcddf ).(*_ae .PdfObjectDictionary );case *_ae .PdfObjectDictionary :var _gbcdg bool ;if _eddeb &&!_agcddf {if _cbcdb ,_ :=_ae .GetNameVal (_egddg .Get ("\u0054\u0079\u0070\u0065"));
|
||
_cbcdb =="\u0050\u0061\u0067\u0065"{_ ,_bfbcb :=_fageg ._eaggg [_egddg ];_agcddf =!_bfbcb ;_gbcdg =_agcddf ;};};_gegaf :=_ae .MakeDict ();_cdecgg =_gegaf ;_fbddf [_gbbgf ]=_cdecgg ;for _ ,_acdg :=range _egddg .Keys (){_gegaf .Set (_acdg ,_fageg .copyObject (_egddg .Get (_acdg ),_fbddf ,_dbef ,_agcddf ));
|
||
};if _gbcdg {_cdecgg =_ae .MakeNull ();_agcddf =false ;};case *_ae .PdfIndirectObject :_gbfbe :=&_ae .PdfIndirectObject {PdfObjectReference :_egddg .PdfObjectReference };_cdecgg =_gbfbe ;_fbddf [_gbbgf ]=_cdecgg ;_gbfbe .PdfObject =_fageg .copyObject (_egddg .PdfObject ,_fbddf ,_dbef ,_agcddf );
|
||
case *_ae .PdfObjectString :_ebbcf :=*_egddg ;_cdecgg =&_ebbcf ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectName :_fgdebg :=*_egddg ;_cdecgg =&_fgdebg ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectNull :_cdecgg =_ae .MakeNull ();_fbddf [_gbbgf ]=_cdecgg ;
|
||
case *_ae .PdfObjectInteger :_ceeedb :=*_egddg ;_cdecgg =&_ceeedb ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectReference :_ecfff :=*_egddg ;_cdecgg =&_ecfff ;_fbddf [_gbbgf ]=_cdecgg ;case *_ae .PdfObjectFloat :_bddfe :=*_egddg ;_cdecgg =&_bddfe ;_fbddf [_gbbgf ]=_cdecgg ;
|
||
case *_ae .PdfObjectBool :_cfaddf :=*_egddg ;_cdecgg =&_cfaddf ;_fbddf [_gbbgf ]=_cdecgg ;case *pdfSignDictionary :_gddggg :=&pdfSignDictionary {PdfObjectDictionary :_ae .MakeDict (),_febbd :_egddg ._febbd ,_cbcbe :_egddg ._cbcbe };_cdecgg =_gddggg ;_fbddf [_gbbgf ]=_cdecgg ;
|
||
for _ ,_ccgge :=range _egddg .Keys (){_gddggg .Set (_ccgge ,_fageg .copyObject (_egddg .Get (_ccgge ),_fbddf ,_dbef ,_agcddf ));};default:_ac .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",_gbbgf );
|
||
};if _eddeb &&_agcddf {_dbef [_gbbgf ]=struct{}{};};return _cdecgg ;};func _gabdf (_bcebc *PdfPage ){_ggcca :=_gcg .GetLicenseKey ();if _ggcca !=nil &&_ggcca .IsLicensed (){return ;};_acbgc :=_ae .PdfObjectName ("\u0055\u0046\u0031");if !_bcebc .Resources .HasFontByName (_acbgc ){_bcebc .Resources .SetFontByName (_acbgc ,DefaultFont ().ToPdfObject ());
|
||
};var _eaaca []string ;_eaaca =append (_eaaca ,"\u0071");_eaaca =append (_eaaca ,"\u0042\u0054");_eaaca =append (_eaaca ,_f .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_acbgc .String ()));_eaaca =append (_eaaca ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
|
||
_eaaca =append (_eaaca ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_gebba :="\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";
|
||
_eaaca =append (_eaaca ,_f .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_gebba ));_eaaca =append (_eaaca ,"\u0045\u0054");_eaaca =append (_eaaca ,"\u0051");_gfegc :=_eg .Join (_eaaca ,"\u000a");_bcebc .AddContentStreamByString (_gfegc );_bcebc .ToPdfObject ();
|
||
};
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_cddfeb :=PdfWriter {};_cddfeb ._faecg =map[_ae .PdfObject ]struct{}{};_cddfeb ._edbe =[]_ae .PdfObject {};_cddfeb ._fage =map[_ae .PdfObject ][]*_ae .PdfObjectDictionary {};_cddfeb ._eecfg =map[_ae .PdfObject ]struct{}{};
|
||
_cddfeb ._faffe .Major =1;_cddfeb ._faffe .Minor =3;_aebdb :=_ae .MakeDict ();_fgcc :=[]struct{_edadf _ae .PdfObjectName ;_ccage string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_fcfe ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_acaae ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_dddac ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_edfed ()},{"\u0054\u0069\u0074l\u0065",_caabg ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_acedb ()}};
|
||
for _ ,_efbba :=range _fgcc {if _efbba ._ccage !=""{_aebdb .Set (_efbba ._edadf ,_ae .MakeString (_efbba ._ccage ));};};if _adbde :=_cgdeg ();!_adbde .IsZero (){if _eacga ,_fded :=NewPdfDateFromTime (_adbde );_fded ==nil {_aebdb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eacga .ToPdfObject ());
|
||
};};if _dgeee :=_edagad ();!_dgeee .IsZero (){if _cffda ,_dfbcfa :=NewPdfDateFromTime (_dgeee );_dfbcfa ==nil {_aebdb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_cffda .ToPdfObject ());};};_cced :=_ae .PdfIndirectObject {};_cced .PdfObject =_aebdb ;
|
||
_cddfeb ._cbffg =&_cced ;_cddfeb .addObject (&_cced );_dbbdc :=_ae .PdfIndirectObject {};_dfafc :=_ae .MakeDict ();_dfafc .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_dbbdc .PdfObject =_dfafc ;_cddfeb ._aacfc =&_dbbdc ;
|
||
_cddfeb .addObject (_cddfeb ._aacfc );_efaae ,_gefgd :=_dfbdga ("\u0077");if _gefgd !=nil {_ac .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gefgd );};_cddfeb ._afegd =_efaae ;_bbdgc :=_ae .PdfIndirectObject {};_fdbdfa :=_ae .MakeDict ();
|
||
_fdbdfa .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050\u0061\u0067e\u0073"));_abbdea :=_ae .PdfObjectArray {};_fdbdfa .Set ("\u004b\u0069\u0064\u0073",&_abbdea );_fdbdfa .Set ("\u0043\u006f\u0075n\u0074",_ae .MakeInteger (0));_bbdgc .PdfObject =_fdbdfa ;
|
||
_cddfeb ._efcgc =&_bbdgc ;_cddfeb ._eaggg =map[_ae .PdfObject ]struct{}{};_cddfeb .addObject (_cddfeb ._efcgc );_dfafc .Set ("\u0050\u0061\u0067e\u0073",&_bbdgc );_cddfeb ._caddd =_dfafc ;_ac .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_dbbdc );
|
||
return _cddfeb ;};
|
||
|
||
// 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 (_cbca *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_agag ,_ecdg :=_ae .GetNumbersAsFloat (objects );
|
||
if _ecdg !=nil {return nil ,_ecdg ;};return _cbca .ColorFromFloats (_agag );};
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_bgfbf *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_fecb :=RC4_128bit ;if options !=nil {_fecb =options .Algorithm ;};_gbceb :=_ff .PermOwner ;if options !=nil {_gbceb =options .Permissions ;};var _bbgdg _ee .Filter ;
|
||
switch _fecb {case RC4_128bit :_bbgdg =_ee .NewFilterV2 (16);case AES_128bit :_bbgdg =_ee .NewFilterAESV2 ();case AES_256bit :_bbgdg =_ee .NewFilterAESV3 ();default:return _f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_abbaf ,_ffgad ,_acdag :=_ae .PdfCryptNewEncrypt (_bbgdg ,userPass ,ownerPass ,_gbceb );if _acdag !=nil {return _acdag ;};_bgfbf ._ecedf =_abbaf ;if _ffgad .Major !=0{_bgfbf .SetVersion (_ffgad .Major ,_ffgad .Minor );};_bgfbf ._dfebg =_ffgad .Encrypt ;
|
||
_bgfbf ._fddgb ,_bgfbf ._dbdab =_ffgad .ID0 ,_ffgad .ID1 ;_dgeae :=_ae .MakeIndirectObject (_ffgad .Encrypt );_bgfbf ._feddfa =_dgeae ;_bgfbf .addObject (_dgeae );return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_dagc *PdfPattern )ToPdfObject ()_ae .PdfObject {_debae :=_dagc .getDict ();_debae .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_debae .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (_dagc .PatternType ));
|
||
return _dagc ._ebfged ;};func (_baaaf *LTV )getOCSPs (_afedf []*_fc .Certificate ,_edcc map[string ]*_fc .Certificate )([][]byte ,error ){_ffcdd :=make ([][]byte ,0,len (_afedf ));for _ ,_cebafa :=range _afedf {for _ ,_bfgaa :=range _cebafa .OCSPServer {if _baaaf .CertClient .IsCA (_cebafa ){continue ;
|
||
};_ecbg ,_dbafd :=_edcc [_cebafa .Issuer .CommonName ];if !_dbafd {_ac .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 ;};_ ,_ffcbf ,_dfee :=_baaaf .OCSPClient .MakeRequest (_bfgaa ,_cebafa ,_ecbg );if _dfee !=nil {_ac .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",_dfee );
|
||
continue ;};_ffcdd =append (_ffcdd ,_ffcbf );};};return _ffcdd ,nil ;};
|
||
|
||
// GetStandardApplier gets currently used StandardApplier..
|
||
func (_feaba *PdfWriter )GetStandardApplier ()StandardApplier {return _feaba ._bccf };
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _ae .PdfObject ;Name _ae .PdfObject ;};func (_fddgc *PdfWriter )checkCrossReferenceStream ()bool {_dccba :=_fddgc ._faffe .Major > 1||(_fddgc ._faffe .Major ==1&&_fddgc ._faffe .Minor > 4);
|
||
if _fddgc ._edgdg !=nil {_dccba =*_fddgc ._edgdg ;};return _dccba ;};type pdfFontSimple struct{fontCommon ;_adcge *_ae .PdfIndirectObject ;_deaed map[_bgg .CharCode ]float64 ;_dead _bgg .TextEncoder ;_aacd _bgg .TextEncoder ;_adegb *PdfFontDescriptor ;
|
||
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _ae .PdfObject ;LastChar _ae .PdfObject ;Widths _ae .PdfObject ;Encoding _ae .PdfObject ;_gabf *_cb .RuneCharSafeMap ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_afdg *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_beeg ,_adbd :=_ae .GetNumbersAsFloat (objects );
|
||
if _adbd !=nil {return nil ,_adbd ;};return _afdg .ColorFromFloats (_beeg );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ca *PdfAction )ToPdfObject ()_ae .PdfObject {_dba :=_ca ._cbe ;_ef :=_dba .PdfObject .(*_ae .PdfObjectDictionary );_ef .Clear ();_ef .Set ("\u0054\u0079\u0070\u0065",_ae .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ef .SetIfNotNil ("\u0053",_ca .S );
|
||
_ef .SetIfNotNil ("\u004e\u0065\u0078\u0074",_ca .Next );return _dba ;};
|
||
|
||
// GetRotate gets the inheritable rotate value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_gaffgc *PdfPage )GetRotate ()(int64 ,error ){if _gaffgc .Rotate !=nil {return *_gaffgc .Rotate ,nil ;};_cecea :=_gaffgc .Parent ;for _cecea !=nil {_daed ,_ggcgd :=_ae .GetDict (_cecea );if !_ggcgd {return 0,_db .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 _dcacc :=_daed .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_dcacc !=nil {_dbecc ,_ccadf :=_ae .GetInt (_dcacc );if !_ccadf {return 0,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");};if _dbecc !=nil {return int64 (*_dbecc ),nil ;
|
||
};return 0,_db .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_cecea =_daed .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_db .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
|
||
};func _gggb (_gbacf map[_cb .GID ]int ,_edde uint16 )*_ae .PdfObjectArray {_ddgc :=&_ae .PdfObjectArray {};_ceefg :=_cb .GID (_edde );for _ffebfb :=_cb .GID (0);_ffebfb < _ceefg ;{_dfdcb ,_agaf :=_gbacf [_ffebfb ];if !_agaf {_ffebfb ++;continue ;};_eeead :=_ffebfb ;
|
||
for _egaf :=_eeead +1;_egaf < _ceefg ;_egaf ++{if _gcfbf ,_ggfcb :=_gbacf [_egaf ];!_ggfcb ||_dfdcb !=_gcfbf {break ;};_eeead =_egaf ;};_ddgc .Append (_ae .MakeInteger (int64 (_ffebfb )));_ddgc .Append (_ae .MakeInteger (int64 (_eeead )));_ddgc .Append (_ae .MakeInteger (int64 (_dfdcb )));
|
||
_ffebfb =_eeead +1;};return _ddgc ;};
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_fffg *PdfField )Flags ()FieldFlag {var _bbed FieldFlag ;_bgbc ,_bbde :=_fffg .inherit (func (_acaad *PdfField )bool {if _acaad .Ff !=nil {_bbed =FieldFlag (*_acaad .Ff );return true ;};return false ;});if _bbde !=nil {_ac .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",_bbde );
|
||
};if !_bgbc {_ac .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 _bbed ;};func (_abgf *PdfReader )newPdfAnnotationScreenFromDict (_agge *_ae .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_gdb :=PdfAnnotationScreen {};
|
||
_gdb .T =_agge .Get ("\u0054");_gdb .MK =_agge .Get ("\u004d\u004b");_gdb .A =_agge .Get ("\u0041");_gdb .AA =_agge .Get ("\u0041\u0041");return &_gdb ,nil ;};
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _ae .PdfObject ;Movie _ae .PdfObject ;A _ae .PdfObject ;};
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_cgdg *PdfRectangle )ToPdfObject ()_ae .PdfObject {return _ae .MakeArray (_ae .MakeFloat (_cgdg .Llx ),_ae .MakeFloat (_cgdg .Lly ),_ae .MakeFloat (_cgdg .Urx ),_ae .MakeFloat (_cgdg .Ury ));};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";
|
||
TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";);
|
||
|
||
// 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 (_abebg *PdfSignature ,_cadba Hasher ,_adegf SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};func _dgdfb (_bbgg *_ae .PdfObjectDictionary ,_bcfg *fontCommon )(*pdfFontType3 ,error ){_eaddg :=_beggc (_bcfg );_ggaeb :=_bbgg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");
|
||
if _ggaeb ==nil {_ggaeb =_ae .MakeInteger (0);};_eaddg .FirstChar =_ggaeb ;_ffdcc ,_edfa :=_ae .GetIntVal (_ggaeb );if !_edfa {_ac .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",_ggaeb );
|
||
return nil ,_ae .ErrTypeError ;};_aebg :=_bgg .CharCode (_ffdcc );_ggaeb =_bbgg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _ggaeb ==nil {_ggaeb =_ae .MakeInteger (255);};_eaddg .LastChar =_ggaeb ;_ffdcc ,_edfa =_ae .GetIntVal (_ggaeb );
|
||
if !_edfa {_ac .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",_ggaeb );return nil ,_ae .ErrTypeError ;
|
||
};_cbdd :=_bgg .CharCode (_ffdcc );_ggaeb =_bbgg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _ggaeb !=nil {_eaddg .Resources =_ggaeb ;};_ggaeb =_bbgg .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _ggaeb ==nil {_ac .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",_ggaeb );
|
||
return nil ,_ae .ErrNotSupported ;};_eaddg .CharProcs =_ggaeb ;_ggaeb =_bbgg .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _ggaeb ==nil {_ac .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",_ggaeb );
|
||
return nil ,_ae .ErrNotSupported ;};_eaddg .FontMatrix =_ggaeb ;_eaddg ._adggg =make (map[_bgg .CharCode ]float64 );_ggaeb =_bbgg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _ggaeb !=nil {_eaddg .Widths =_ggaeb ;_ccded ,_gbea :=_ae .GetArray (_ggaeb );
|
||
if !_gbea {_ac .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",_ggaeb );return nil ,_ae .ErrTypeError ;
|
||
};_ecda ,_dceg :=_ccded .ToFloat64Array ();if _dceg !=nil {_ac .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 ,_dceg ;};if len (_ecda )!=int (_cbdd -_aebg +1){_ac .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",_cbdd -_aebg +1,len (_ecda ));
|
||
return nil ,_ae .ErrRangeError ;};_agaeg ,_gbea :=_ae .GetArray (_eaddg .FontMatrix );if !_gbea {_ac .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",_agaeg );
|
||
return nil ,_dceg ;};_dfdb ,_dceg :=_agaeg .ToFloat64Array ();if _dceg !=nil {_ac .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 ,_dceg ;};_faca :=_ecc .NewMatrix (_dfdb [0],_dfdb [1],_dfdb [2],_dfdb [3],_dfdb [4],_dfdb [5]);for _addee ,_bbfge :=range _ecda {_fcbfa ,_ :=_faca .Transform (_bbfge ,_bbfge );_eaddg ._adggg [_aebg +_bgg .CharCode (_addee )]=_fcbfa ;};};_eaddg .Encoding =_ae .TraceToDirectObject (_bbgg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
_fcdcb :=_bbgg .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _fcdcb !=nil {_eaddg ._dgea =_ae .TraceToDirectObject (_fcdcb );_gcce ,_fddcd :=_dcbf (_eaddg ._dgea ,&_eaddg .fontCommon );if _fddcd !=nil {return nil ,_fddcd ;};_eaddg ._ebfdc =_gcce ;
|
||
};if _afdb :=_eaddg ._ebfdc ;_afdb !=nil {_eaddg ._debad =_bgg .NewCMapEncoder ("",nil ,_afdb );}else {_eaddg ._debad =_bgg .NewPdfDocEncoder ();};return _eaddg ,nil ;};func _ebgef (_cebc _ae .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_dgefd :=NewPdfColorspaceSpecialSeparation ();
|
||
if _fcce ,_adec :=_cebc .(*_ae .PdfIndirectObject );_adec {_dgefd ._ddaac =_fcce ;};_cebc =_ae .TraceToDirectObject (_cebc );_cabf ,_dbege :=_cebc .(*_ae .PdfObjectArray );if !_dbege {return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062je\u0063\u0074");
|
||
};if _cabf .Len ()!=4{return nil ,_f .Errorf ("\u0073\u0065p\u0061\u0072\u0061\u0074i\u006f\u006e \u0043\u0053\u003a\u0020\u0049\u006e\u0063\u006fr\u0072\u0065\u0063\u0074\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");};_cebc =_cabf .Get (0);
|
||
_babga ,_dbege :=_cebc .(*_ae .PdfObjectName );if !_dbege {return nil ,_f .Errorf ("\u0073\u0065\u0070ar\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a \u0069n\u0076a\u006ci\u0064\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};if *_babga !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_f .Errorf ("\u0073\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e\u0020\u0043\u0053\u003a\u0020w\u0072o\u006e\u0067\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u006e\u0061\u006d\u0065");
|
||
};_cebc =_cabf .Get (1);_babga ,_dbege =_cebc .(*_ae .PdfObjectName );if !_dbege {return nil ,_f .Errorf ("\u0073\u0065pa\u0072\u0061\u0074i\u006f\u006e\u0020\u0043S: \u0049nv\u0061\u006c\u0069\u0064\u0020\u0063\u006flo\u0072\u0061\u006e\u0074\u0020\u006e\u0061m\u0065");
|
||
};_dgefd .ColorantName =_babga ;_cebc =_cabf .Get (2);_cagbb ,_fdbgf :=NewPdfColorspaceFromPdfObject (_cebc );if _fdbgf !=nil {return nil ,_fdbgf ;};_dgefd .AlternateSpace =_cagbb ;_gde ,_fdbgf :=_gdbef (_cabf .Get (3));if _fdbgf !=nil {return nil ,_fdbgf ;
|
||
};_dgefd .TintTransform =_gde ;return _dgefd ,nil ;};func (_eeacg *PdfWriter )setHashIDs (_dafec _b .Hash )error {_aacc :=_dafec .Sum (nil );if _eeacg ._fddgb ==""{_eeacg ._fddgb =_g .EncodeToString (_aacc [:8]);};_eeacg .setDocumentIDs (_eeacg ._fddgb ,_g .EncodeToString (_aacc [8:]));
|
||
return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fba *PdfAnnotationTrapNet )ToPdfObject ()_ae .PdfObject {_fba .PdfAnnotation .ToPdfObject ();_gffg :=_fba ._gcgf ;_cdcbb :=_gffg .PdfObject .(*_ae .PdfObjectDictionary );_cdcbb .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _gffg ;};func _fbbbae (_fcca *_ae .PdfObjectDictionary )(*PdfShadingType2 ,error ){_fedaa :=PdfShadingType2 {};_feffc :=_fcca .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _feffc ==nil {_ac .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 ;};_efbgc ,_deddf :=_feffc .(*_ae .PdfObjectArray );if !_deddf {_ac .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",_feffc );
|
||
return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _efbgc .Len ()!=4{_ac .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",_efbgc .Len ());
|
||
return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_fedaa .Coords =_efbgc ;if _bedab :=_fcca .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_bedab !=nil {_bedab =_ae .TraceToDirectObject (_bedab );
|
||
_cabae ,_dbfc :=_bedab .(*_ae .PdfObjectArray );if !_dbfc {_ac .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",_bedab );return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_fedaa .Domain =_cabae ;};_feffc =_fcca .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _feffc ==nil {_ac .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 ;};_fedaa .Function =[]PdfFunction {};if _gfag ,_faffdd :=_feffc .(*_ae .PdfObjectArray );_faffdd {for _ ,_ecbfac :=range _gfag .Elements (){_ccfae ,_ccgda :=_gdbef (_ecbfac );if _ccgda !=nil {_ac .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",_ccgda );
|
||
return nil ,_ccgda ;};_fedaa .Function =append (_fedaa .Function ,_ccfae );};}else {_cfadd ,_fbage :=_gdbef (_feffc );if _fbage !=nil {_ac .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",_fbage );
|
||
return nil ,_fbage ;};_fedaa .Function =append (_fedaa .Function ,_cfadd );};if _addbg :=_fcca .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_addbg !=nil {_addbg =_ae .TraceToDirectObject (_addbg );_fbddd ,_ddcgf :=_addbg .(*_ae .PdfObjectArray );if !_ddcgf {_ac .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",_addbg );
|
||
return nil ,_ae .ErrTypeError ;};if _fbddd .Len ()!=2{_ac .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",_fbddd .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_fedaa .Extend =_fbddd ;};return &_fedaa ,nil ;};
|
||
|
||
// PageCallback callback function used in page loading
|
||
// that could be used to modify the page content.
|
||
//
|
||
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
|
||
type PageCallback func (_decab int ,_eacgf *PdfPage );func _cgabb (_bcfec _ae .PdfObject )(*PdfFunctionType2 ,error ){_baffd :=&PdfFunctionType2 {};var _dcecf *_ae .PdfObjectDictionary ;if _acbc ,_fgbeb :=_bcfec .(*_ae .PdfIndirectObject );_fgbeb {_bgcde ,_dafa :=_acbc .PdfObject .(*_ae .PdfObjectDictionary );
|
||
if !_dafa {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baffd ._ggde =_acbc ;_dcecf =_bgcde ;}else if _gbece ,_cdfeg :=_bcfec .(*_ae .PdfObjectDictionary );_cdfeg {_dcecf =_gbece ;}else {return nil ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_ac .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_dcecf .String ());_acgfg ,_eededd :=_ae .TraceToDirectObject (_dcecf .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_ae .PdfObjectArray );if !_eededd {_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_db .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 _acgfg .Len ()< 0||_acgfg .Len ()%2!=0{_ac .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");
|
||
return nil ,_db .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_aecca ,_dface :=_acgfg .ToFloat64Array ();if _dface !=nil {return nil ,_dface ;};_baffd .Domain =_aecca ;_acgfg ,_eededd =_ae .TraceToDirectObject (_dcecf .Get ("\u0052\u0061\u006eg\u0065")).(*_ae .PdfObjectArray );
|
||
if _eededd {if _acgfg .Len ()< 0||_acgfg .Len ()%2!=0{return nil ,_db .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_agee ,_gbbd :=_acgfg .ToFloat64Array ();if _gbbd !=nil {return nil ,_gbbd ;};_baffd .Range =_agee ;
|
||
};_acgfg ,_eededd =_ae .TraceToDirectObject (_dcecf .Get ("\u0043\u0030")).(*_ae .PdfObjectArray );if _eededd {_gcefb ,_eabebe :=_acgfg .ToFloat64Array ();if _eabebe !=nil {return nil ,_eabebe ;};_baffd .C0 =_gcefb ;};_acgfg ,_eededd =_ae .TraceToDirectObject (_dcecf .Get ("\u0043\u0031")).(*_ae .PdfObjectArray );
|
||
if _eededd {_cbcea ,_cgacc :=_acgfg .ToFloat64Array ();if _cgacc !=nil {return nil ,_cgacc ;};_baffd .C1 =_cbcea ;};if len (_baffd .C0 )!=len (_baffd .C1 ){_ac .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");
|
||
return nil ,_ae .ErrRangeError ;};N ,_dface :=_ae .GetNumberAsFloat (_ae .TraceToDirectObject (_dcecf .Get ("\u004e")));if _dface !=nil {_ac .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",_dcecf .String ());
|
||
return nil ,_dface ;};_baffd .N =N ;return _baffd ,nil ;};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_bbcef *OutlineItem )Add (item *OutlineItem ){_bbcef .Entries =append (_bbcef .Entries ,item )};var ErrColorOutOfRange =_db .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");
|
||
|
||
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
|
||
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_age :=&PdfAppender {_aced :reader ._bgbcea ,Reader :reader ,_ceda :reader ._bfcga ,_bcefc :reader ._agege };_fefe ,_fgea :=_age ._aced .Seek (0,_gdc .SeekEnd );
|
||
if _fgea !=nil {return nil ,_fgea ;};_age ._egcg =_fefe ;if _ ,_fgea =_age ._aced .Seek (0,_gdc .SeekStart );_fgea !=nil {return nil ,_fgea ;};_age ._afad ,_fgea =NewPdfReaderWithOpts (_age ._aced ,opts );if _fgea !=nil {return nil ,_fgea ;};for _ ,_ddag :=range _age .Reader .GetObjectNums (){if _age ._bcgg < _ddag {_age ._bcgg =_ddag ;
|
||
};};_age ._gedb =_age ._ceda .GetXrefTable ();_age ._daea =_age ._ceda .GetXrefOffset ();_age ._eabf =append (_age ._eabf ,_age ._afad .PageList ...);_age ._dcefg =make (map[_ae .PdfObject ]struct{});_age ._dcdbc =make (map[_ae .PdfObject ]int64 );_age ._gfge =make (map[_ae .PdfObject ]struct{});
|
||
_age ._eced =_age ._afad .AcroForm ;_age ._ddad =_age ._afad .DSS ;if opts !=nil {_age ._acf =opts .Password ;};if encryptOptions !=nil {_age ._gffe =encryptOptions ;};return _age ,nil ;};
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;};
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};func (_egbdf *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _ae .PdfObject ;IC _ae .PdfObject ;RO _ae .PdfObject ;OverlayText _ae .PdfObject ;Repeat _ae .PdfObject ;DA _ae .PdfObject ;Q _ae .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_cbbdc *PdfFunctionType2 )ToPdfObject ()_ae .PdfObject {_dbgfe :=_ae .MakeDict ();_dbgfe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_ae .MakeInteger (2));_baaab :=&_ae .PdfObjectArray {};for _ ,_effae :=range _cbbdc .Domain {_baaab .Append (_ae .MakeFloat (_effae ));
|
||
};_dbgfe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_baaab );if _cbbdc .Range !=nil {_gbafd :=&_ae .PdfObjectArray {};for _ ,_beffe :=range _cbbdc .Range {_gbafd .Append (_ae .MakeFloat (_beffe ));};_dbgfe .Set ("\u0052\u0061\u006eg\u0065",_gbafd );};
|
||
if _cbbdc .C0 !=nil {_adebe :=&_ae .PdfObjectArray {};for _ ,_eebbfb :=range _cbbdc .C0 {_adebe .Append (_ae .MakeFloat (_eebbfb ));};_dbgfe .Set ("\u0043\u0030",_adebe );};if _cbbdc .C1 !=nil {_ffcd :=&_ae .PdfObjectArray {};for _ ,_caef :=range _cbbdc .C1 {_ffcd .Append (_ae .MakeFloat (_caef ));
|
||
};_dbgfe .Set ("\u0043\u0031",_ffcd );};_dbgfe .Set ("\u004e",_ae .MakeFloat (_cbbdc .N ));if _cbbdc ._ggde !=nil {_cbbdc ._ggde .PdfObject =_dbgfe ;return _cbbdc ._ggde ;};return _dbgfe ;};
|
||
|
||
// SetSubtype sets the Subtype S for given PdfOutputIntent.
|
||
func (_aafa *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _db .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");
|
||
};_aafa .S =subtype ;return nil ;};
|
||
|
||
// SetDocInfo sets the document /Info metadata.
|
||
// This will overwrite any globally declared document info.
|
||
func (_faaed *PdfAppender )SetDocInfo (info *PdfInfo ){_faaed ._eecfe =info };
|
||
|
||
// 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 (_bdfc *Image )ConvertToBinary ()error {if _bdfc .ColorComponents ==1&&_bdfc .BitsPerComponent ==1{return nil ;};_cbfge ,_fgdad :=_bdfc .ToGoImage ();if _fgdad !=nil {return _fgdad ;};_fbeg ,_fgdad :=_afc .MonochromeConverter .Convert (_cbfge );if _fgdad !=nil {return _fgdad ;
|
||
};_bdfc .Data =_fbeg .Base ().Data ;_bdfc ._bbba ,_fgdad =_afc .ScaleAlphaToMonochrome (_bdfc ._bbba ,int (_bdfc .Width ),int (_bdfc .Height ));if _fgdad !=nil {return _fgdad ;};_bdfc .BitsPerComponent =1;_bdfc .ColorComponents =1;_bdfc ._fdae =nil ;return nil ;
|
||
};func (_bcae *PdfReader )newPdfAnnotationSquigglyFromDict (_abbd *_ae .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_acef :=PdfAnnotationSquiggly {};_caeb ,_gdcf :=_bcae .newPdfAnnotationMarkupFromDict (_abbd );if _gdcf !=nil {return nil ,_gdcf ;
|
||
};_acef .PdfAnnotationMarkup =_caeb ;_acef .QuadPoints =_abbd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_acef ,nil ;};func (_gee *PdfReader )newPdfActionThreadFromDict (_aee *_ae .PdfObjectDictionary )(*PdfActionThread ,error ){_bfg ,_def :=_ceb (_aee .Get ("\u0046"));
|
||
if _def !=nil {return nil ,_def ;};return &PdfActionThread {D :_aee .Get ("\u0044"),B :_aee .Get ("\u0042"),F :_bfg },nil ;};
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_fgeeb *PdfTilingPattern )SetContentStream (content []byte ,encoder _ae .StreamEncoder )error {_ccddd ,_ggbgb :=_fgeeb ._ebfged .(*_ae .PdfObjectStream );if !_ggbgb {_ac .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",_fgeeb ._ebfged );
|
||
return _ae .ErrTypeError ;};if encoder ==nil {encoder =_ae .NewRawEncoder ();};_ebbcb :=_ccddd .PdfObjectDictionary ;_bfacb :=encoder .MakeStreamDict ();_ebbcb .Merge (_bfacb );_abega ,_dcbfb :=encoder .EncodeBytes (content );if _dcbfb !=nil {return _dcbfb ;
|
||
};_ebbcb .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_ae .MakeInteger (int64 (len (_abega ))));_ccddd .Stream =_abega ;return nil ;};func (_faede *PdfWriter )optimize ()error {if _faede ._ffefg ==nil {return nil ;};var _dabbg error ;_faede ._edbe ,_dabbg =_faede ._ffefg .Optimize (_faede ._edbe );
|
||
if _dabbg !=nil {return _dabbg ;};_dcfbg :=make (map[_ae .PdfObject ]struct{},len (_faede ._edbe ));for _ ,_dfgcb :=range _faede ._edbe {_dcfbg [_dfgcb ]=struct{}{};};_faede ._faecg =_dcfbg ;return nil ;};func (_egac *PdfAppender )mergeResources (_afgg ,_cceaa _ae .PdfObject ,_ddgb map[_ae .PdfObjectName ]_ae .PdfObjectName )_ae .PdfObject {if _cceaa ==nil &&_afgg ==nil {return nil ;
|
||
};if _cceaa ==nil {return _afgg ;};_dgbf ,_gfeg :=_ae .GetDict (_cceaa );if !_gfeg {return _afgg ;};if _afgg ==nil {_eaecb :=_ae .MakeDict ();_eaecb .Merge (_dgbf );return _cceaa ;};_bfgf ,_gfeg :=_ae .GetDict (_afgg );if !_gfeg {_ac .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");
|
||
_bfgf =_ae .MakeDict ();};for _ ,_ccef :=range _dgbf .Keys (){if _cgab ,_cdce :=_ddgb [_ccef ];_cdce {_bfgf .Set (_cgab ,_dgbf .Get (_ccef ));}else {_bfgf .Set (_ccef ,_dgbf .Get (_ccef ));};};return _bfgf ;};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_gdgga *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _gdgga ._ebafb .(*PdfTilingPattern );};
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_gfaefb *PdfRectangle )Normalize (){if _gfaefb .Llx > _gfaefb .Urx {_gfaefb .Llx ,_gfaefb .Urx =_gfaefb .Urx ,_gfaefb .Llx ;};if _gfaefb .Lly > _gfaefb .Ury {_gfaefb .Lly ,_gfaefb .Ury =_gfaefb .Ury ,_gfaefb .Lly ;};};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_afdea *PdfShadingType5 )ToPdfObject ()_ae .PdfObject {_afdea .PdfShading .ToPdfObject ();_ggffb ,_bcecg :=_afdea .getShadingDict ();if _bcecg !=nil {_ac .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 _afdea .BitsPerCoordinate !=nil {_ggffb .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_afdea .BitsPerCoordinate );};if _afdea .BitsPerComponent !=nil {_ggffb .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_afdea .BitsPerComponent );
|
||
};if _afdea .VerticesPerRow !=nil {_ggffb .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_afdea .VerticesPerRow );};if _afdea .Decode !=nil {_ggffb .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_afdea .Decode );};
|
||
if _afdea .Function !=nil {if len (_afdea .Function )==1{_ggffb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_afdea .Function [0].ToPdfObject ());}else {_dbabf :=_ae .MakeArray ();for _ ,_fbfdg :=range _afdea .Function {_dbabf .Append (_fbfdg .ToPdfObject ());
|
||
};_ggffb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dbabf );};};return _afdea ._dcdgda ;};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_gead *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_gead .Base .GetNumComponents ();if N < 1{return Image {},_f .Errorf ("\u0062\u0061d \u0062\u0061\u0073e\u0020\u0063\u006f\u006cors\u0070ac\u0065\u0020\u004e\u0075\u006d\u0043\u006fmp\u006f\u006e\u0065\u006e\u0074\u0073\u003d%\u0064",N );
|
||
};_dgaa :=_afc .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._bbba ,img ._fdae );_cgdf :=_ba .NewReader (img .getBase ());_fabea :=_ba .NewWriter (_dgaa );var (_bgfa uint32 ;_agggd int ;_cbg error ;);for {_bgfa ,_cbg =_cgdf .ReadSample ();
|
||
if _cbg ==_gdc .EOF {break ;}else if _cbg !=nil {return img ,_cbg ;};_agggd =int (_bgfa );_ac .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",_agggd ,N ,len (_gead ._dfca ));
|
||
if (_agggd +1)*N > len (_gead ._dfca ){_agggd =len (_gead ._dfca )/N -1;_ac .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_agggd );if _agggd < 0{_ac .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 _cabgf :=_agggd *N ;_cabgf < (_agggd +1)*N ;_cabgf ++{if _cbg =_fabea .WriteSample (uint32 (_gead ._dfca [_cabgf ]));_cbg !=nil {return img ,_cbg ;};};};return _gead .Base .ImageToRGB (_feagd (&_dgaa ));};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_efdf *PdfColorCalRGB )GetNumComponents ()int {return 3};const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);func (_cdb *PdfReader )newPdfAnnotationUnderlineFromDict (_cggg *_ae .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_acdaf :=PdfAnnotationUnderline {};
|
||
_fbfd ,_fffc :=_cdb .newPdfAnnotationMarkupFromDict (_cggg );if _fffc !=nil {return nil ,_fffc ;};_acdaf .PdfAnnotationMarkup =_fbfd ;_acdaf .QuadPoints =_cggg .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_acdaf ,nil ;};
|
||
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_acffb :=appender .Reader .DSS ;if _acffb ==nil {_acffb =NewDSS ();};if _cedf :=_acffb .generateHashMaps ();_cedf !=nil {return nil ,_cedf ;};return <V {CertClient :_ce .NewCertClient (),OCSPClient :_ce .NewOCSPClient (),CRLClient :_ce .NewCRLClient (),SkipExisting :true ,_gbcge :appender ,_dbggb :_acffb },nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fegd *PdfActionSound )ToPdfObject ()_ae .PdfObject {_fegd .PdfAction .ToPdfObject ();_eb :=_fegd ._cbe ;_dgcd :=_eb .PdfObject .(*_ae .PdfObjectDictionary );_dgcd .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeSound )));_dgcd .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fegd .Sound );
|
||
_dgcd .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_fegd .Volume );_dgcd .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_fegd .Synchronous );_dgcd .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_fegd .Repeat );
|
||
_dgcd .SetIfNotNil ("\u004d\u0069\u0078",_fegd .Mix );return _eb ;};const (BorderEffectNoEffect BorderEffect =iota ;BorderEffectCloudy BorderEffect =iota ;);
|
||
|
||
// 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 };};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_cdecg *PdfPageResources )GetXObjectFormByName (keyName _ae .PdfObjectName )(*XObjectForm ,error ){_cadc ,_bafe :=_cdecg .GetXObjectByName (keyName );if _cadc ==nil {return nil ,nil ;};if _bafe !=XObjectTypeForm {return nil ,_db .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_eabff ,_dced :=NewXObjectFormFromStream (_cadc );if _dced !=nil {return nil ,_dced ;};return _eabff ,nil ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_fafdda pdfCIDFontType0 )Encoder ()_bgg .TextEncoder {return _fafdda ._dbgg };
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_cfab *pdfCIDFontType2 )ToPdfObject ()_ae .PdfObject {if _cfab ._ddafa ==nil {_cfab ._ddafa =&_ae .PdfIndirectObject {};};_cdffb :=_cfab .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
|
||
_cfab ._ddafa .PdfObject =_cdffb ;if _cfab .CIDSystemInfo !=nil {_cdffb .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_cfab .CIDSystemInfo );};if _cfab .DW !=nil {_cdffb .Set ("\u0044\u0057",_cfab .DW );};if _cfab .DW2 !=nil {_cdffb .Set ("\u0044\u0057\u0032",_cfab .DW2 );
|
||
};if _cfab .W !=nil {_cdffb .Set ("\u0057",_cfab .W );};if _cfab .W2 !=nil {_cdffb .Set ("\u0057\u0032",_cfab .W2 );};if _cfab .CIDToGIDMap !=nil {_cdffb .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_cfab .CIDToGIDMap );};return _cfab ._ddafa ;
|
||
};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_ggdd *PdfSignature )GetCerts ()([]*_fc .Certificate ,error ){var _afabe []func ()([]*_fc .Certificate ,error );switch _cddaa ,_ :=_ae .GetNameVal (_ggdd .SubFilter );_cddaa {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":_afabe =append (_afabe ,_ggdd .extractChainFromPKCS7 ,_ggdd .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_afabe =append (_afabe ,_ggdd .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_afabe =append (_afabe ,_ggdd .extractChainFromPKCS7 );
|
||
default:return nil ,_f .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_cddaa );};for _ ,_ccbag :=range _afabe {_fbaaa ,_badfb :=_ccbag ();if _badfb !=nil {return nil ,_badfb ;
|
||
};if len (_fbaaa )> 0{return _fbaaa ,nil ;};};return nil ,ErrSignNoCertificates ;};func (_deddb *PdfWriter )addObject (_gbedb _ae .PdfObject )bool {_eddbb :=_deddb .hasObject (_gbedb );if !_eddbb {_adbgc :=_ae .ResolveReferencesDeep (_gbedb ,_deddb ._eecfg );
|
||
if _adbgc !=nil {_ac .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_adbgc );};_deddb ._edbe =append (_deddb ._edbe ,_gbedb );_deddb ._faecg [_gbedb ]=struct{}{};return true ;};return false ;
|
||
};func (_dfccc *PdfShading )getShadingDict ()(*_ae .PdfObjectDictionary ,error ){_ffbeb :=_dfccc ._dcdgda ;if _feagb ,_dgfdcf :=_ffbeb .(*_ae .PdfIndirectObject );_dgfdcf {_ecfga ,_ffggba :=_feagb .PdfObject .(*_ae .PdfObjectDictionary );if !_ffggba {return nil ,_ae .ErrTypeError ;
|
||
};return _ecfga ,nil ;}else if _bggb ,_aeccga :=_ffbeb .(*_ae .PdfObjectStream );_aeccga {return _bggb .PdfObjectDictionary ,nil ;}else if _fecc ,_fdbfg :=_ffbeb .(*_ae .PdfObjectDictionary );_fdbfg {return _fecc ,nil ;}else {_ac .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 ,_ae .ErrTypeError ;};};
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_feea *PdfPageResources )GetShadingByName (keyName _ae .PdfObjectName )(*PdfShading ,bool ){if _feea .Shading ==nil {return nil ,false ;};_bgaa ,_fgfcg :=_ae .TraceToDirectObject (_feea .Shading ).(*_ae .PdfObjectDictionary );if !_fgfcg {_ac .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",_feea .Shading );
|
||
return nil ,false ;};if _fgead :=_bgaa .Get (keyName );_fgead !=nil {_bdcc ,_egaa :=_eddea (_fgead );if _egaa !=nil {_ac .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",_egaa );
|
||
return nil ,false ;};return _bdcc ,true ;};return nil ,false ;};func (_cfda *PdfAcroForm )filteredFields (_cgaag FieldFilterFunc ,_eadg bool )[]*PdfField {if _cfda ==nil {return nil ;};return _eebaa (_cfda .Fields ,_cgaag ,_eadg );};
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_aeef *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _aeef .Alternate ==nil {if _aeef .N ==1{_efdd :=NewPdfColorspaceDeviceGray ();return _efdd .ColorFromFloats (vals );}else if _aeef .N ==3{_afda :=NewPdfColorspaceDeviceRGB ();
|
||
return _afda .ColorFromFloats (vals );}else if _aeef .N ==4{_edgc :=NewPdfColorspaceDeviceCMYK ();return _edgc .ColorFromFloats (vals );}else {return nil ,_db .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 _aeef .Alternate .ColorFromFloats (vals );};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_dcecb *PdfFieldButton )IsCheckbox ()bool {return _dcecb .GetType ()==ButtonTypeCheckbox };
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _ae .PdfObject ;Q _ae .PdfObject ;RC _ae .PdfObject ;DS _ae .PdfObject ;CL _ae .PdfObject ;IT _ae .PdfObject ;BE _ae .PdfObject ;RD _ae .PdfObject ;BS _ae .PdfObject ;LE _ae .PdfObject ;
|
||
};
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_cadgd .Lock ();defer _cadgd .Unlock ();_fcfa =author };
|
||
|
||
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
|
||
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_gefe :=&PdfShadingPatternType2 {};_gefe .Matrix =_ae .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_gefe .PdfPattern =&PdfPattern {};_gefe .PdfPattern .PatternType =int64 (*_ae .MakeInteger (2));
|
||
_gefe .PdfPattern ._ebafb =_gefe ;_gefe .PdfPattern ._ebfged =_ae .MakeIndirectObject (_ae .MakeDict ());return _gefe ;};func (_ece *PdfReader )newPdfAnnotationSoundFromDict (_cdg *_ae .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_bffe :=PdfAnnotationSound {};
|
||
_egff ,_fda :=_ece .newPdfAnnotationMarkupFromDict (_cdg );if _fda !=nil {return nil ,_fda ;};_bffe .PdfAnnotationMarkup =_egff ;_bffe .Name =_cdg .Get ("\u004e\u0061\u006d\u0065");_bffe .Sound =_cdg .Get ("\u0053\u006f\u0075n\u0064");return &_bffe ,nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dce *PdfActionGoTo3DView )ToPdfObject ()_ae .PdfObject {_dce .PdfAction .ToPdfObject ();_dbgf :=_dce ._cbe ;_cec :=_dbgf .PdfObject .(*_ae .PdfObjectDictionary );_cec .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoTo3DView )));_cec .SetIfNotNil ("\u0054\u0041",_dce .TA );
|
||
_cec .SetIfNotNil ("\u0056",_dce .V );return _dbgf ;};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_deecg *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_ae .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_db .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_aefed ,_decba :=_ae .GetNumbersAsFloat (objects );
|
||
if _decba !=nil {return nil ,_decba ;};return _deecg .ColorFromFloats (_aefed );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dfc *PdfActionGoTo )ToPdfObject ()_ae .PdfObject {_dfc .PdfAction .ToPdfObject ();_feg :=_dfc ._cbe ;_dad :=_feg .PdfObject .(*_ae .PdfObjectDictionary );_dad .SetIfNotNil ("\u0053",_ae .MakeName (string (ActionTypeGoTo )));_dad .SetIfNotNil ("\u0044",_dfc .D );
|
||
return _feg ;};
|
||
|
||
// String returns a string representation of the field.
|
||
func (_gfedc *PdfField )String ()string {if _gbdca ,_eaed :=_gfedc .ToPdfObject ().(*_ae .PdfIndirectObject );_eaed {return _f .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_gfedc ._dadc ,_gbdca .PdfObject .String ());};return "";};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_edba *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgab *PdfAnnotationUnderline )ToPdfObject ()_ae .PdfObject {_bgab .PdfAnnotation .ToPdfObject ();_egcf :=_bgab ._gcgf ;_cccd :=_egcf .PdfObject .(*_ae .PdfObjectDictionary );_bgab .PdfAnnotationMarkup .appendToPdfDictionary (_cccd );_cccd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_cccd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bgab .QuadPoints );return _egcf ;};
|
||
|
||
// GetFillImage get attached model.Image in push button.
|
||
func (_begg *PdfFieldButton )GetFillImage ()*Image {if _begg .IsPush (){return _begg ._bbcf ;};return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bdbg *PdfAnnotationSquiggly )ToPdfObject ()_ae .PdfObject {_bdbg .PdfAnnotation .ToPdfObject ();_cgge :=_bdbg ._gcgf ;_cggc :=_cgge .PdfObject .(*_ae .PdfObjectDictionary );_bdbg .PdfAnnotationMarkup .appendToPdfDictionary (_cggc );_cggc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_cggc .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdbg .QuadPoints );return _cgge ;};func (_gggbf *PdfWriter )writeDocumentVersion (){if _gggbf ._dffad {_gggbf .writeString ("\u000a");}else {_gggbf .writeString (_f .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_gggbf ._faffe .Major ,_gggbf ._faffe .Minor ));
|
||
_gggbf .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};func _fbeaa (_gfgcga *XObjectImage )error {if _gfgcga .SMask ==nil {return nil ;};_cdcef ,_acbcg :=_gfgcga .SMask .(*_ae .PdfObjectStream );if !_acbcg {_ac .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 _ae .ErrTypeError ;};_aegac :=_cdcef .PdfObjectDictionary ;_feccc :=_aegac .Get ("\u004d\u0061\u0074t\u0065");if _feccc ==nil {return nil ;};_ccggb ,_aafg :=_addeed (_feccc .(*_ae .PdfObjectArray ));if _aafg !=nil {return _aafg ;};_cdafb :=_ae .MakeArrayFromFloats ([]float64 {_ccggb });
|
||
_aegac .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_cdafb );return nil ;};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_fafd *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_gggcc ,_cdfe :=color .(*PdfColorDeviceGray );if !_cdfe {_ac .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 ,_db .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_gggcc ),float64 (*_gggcc ),float64 (*_gggcc )),nil ;};
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_cabfg *PdfField )SetContext (ctx PdfModel ){_cabfg ._dadc =ctx };
|
||
|
||
// 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 ;_bccd _ae .ParserMetadata ;};func (_ebd *PdfReader )newPdfAnnotationMovieFromDict (_fgae *_ae .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_dddd :=PdfAnnotationMovie {};_dddd .T =_fgae .Get ("\u0054");
|
||
_dddd .Movie =_fgae .Get ("\u004d\u006f\u0076i\u0065");_dddd .A =_fgae .Get ("\u0041");return &_dddd ,nil ;};func _edfed ()string {_cadgd .Lock ();defer _cadgd .Unlock ();return _egafe };func (_bbfce *PdfWriter )writeAcroFormFields ()error {if _bbfce ._bgfd ==nil {return nil ;
|
||
};_ac .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");_bgagc :=_bbfce ._bgfd .ToPdfObject ();_ac .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_bgagc );
|
||
_bbfce ._caddd .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_bgagc );_ccedg :=_bbfce .addObjects (_bgagc );if _ccedg !=nil {return _ccedg ;};return nil ;};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_cbcb *PdfField )GetContext ()PdfModel {return _cbcb ._dadc };
|
||
|
||
// 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 (_ceeff *CompliancePdfReader )error ;};
|
||
|
||
// 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 (_abbf *Image )Resample (targetBitsPerComponent int64 ){if _abbf .BitsPerComponent ==targetBitsPerComponent {return ;};_cgdac :=_abbf .GetSamples ();if targetBitsPerComponent < _abbf .BitsPerComponent {_cddg :=_abbf .BitsPerComponent -targetBitsPerComponent ;
|
||
for _daeee :=range _cgdac {_cgdac [_daeee ]>>=uint (_cddg );};}else if targetBitsPerComponent > _abbf .BitsPerComponent {_ddabc :=targetBitsPerComponent -_abbf .BitsPerComponent ;for _adeaa :=range _cgdac {_cgdac [_adeaa ]<<=uint (_ddabc );};};_abbf .BitsPerComponent =targetBitsPerComponent ;
|
||
if _abbf .BitsPerComponent < 8{_abbf .resampleLowBits (_cgdac );return ;};_bcccb :=_afc .BytesPerLine (int (_abbf .Width ),int (_abbf .BitsPerComponent ),_abbf .ColorComponents );_gaaae :=make ([]byte ,_bcccb *int (_abbf .Height ));var (_ceafg ,_edefb ,_bbag ,_dffa int ;
|
||
_dcgbd uint32 ;);for _bbag =0;_bbag < int (_abbf .Height );_bbag ++{_ceafg =_bbag *_bcccb ;_edefb =(_bbag +1)*_bcccb -1;_bfabf :=_ba .ResampleUint32 (_cgdac [_ceafg :_edefb ],int (targetBitsPerComponent ),8);for _dffa ,_dcgbd =range _bfabf {_gaaae [_dffa +_ceafg ]=byte (_dcgbd );
|
||
};};_abbf .Data =_gaaae ;};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_abbb *PdfWriter )SetDocInfo (info *PdfInfo ){_abbb .setDocInfo (info .ToPdfObject ())};func _aagb (_beaf _ae .PdfObject )(*PdfBorderStyle ,error ){_baffe :=&PdfBorderStyle {};_baffe ._aadd =_beaf ;var _addc *_ae .PdfObjectDictionary ;_beaf =_ae .TraceToDirectObject (_beaf );
|
||
_addc ,_dedb :=_beaf .(*_ae .PdfObjectDictionary );if !_dedb {return nil ,_db .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _dabc :=_addc .Get ("\u0054\u0079\u0070\u0065");_dabc !=nil {_dfad ,_gbeg :=_dabc .(*_ae .PdfObjectName );
|
||
if !_gbeg {_ac .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",_dabc );
|
||
}else {if *_dfad !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ac .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",*_dfad );};};};if _agd :=_addc .Get ("\u0057");
|
||
_agd !=nil {_dcdg ,_fgefg :=_ae .GetNumberAsFloat (_agd );if _fgefg !=nil {_ac .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_fgefg );return nil ,_fgefg ;};_baffe .W =&_dcdg ;
|
||
};if _beagf :=_addc .Get ("\u0053");_beagf !=nil {_fbee ,_gcgfa :=_beagf .(*_ae .PdfObjectName );if !_gcgfa {return nil ,_db .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 _begf BorderStyle ;switch *_fbee {case "\u0053":_begf =BorderStyleSolid ;case "\u0044":_begf =BorderStyleDashed ;case "\u0042":_begf =BorderStyleBeveled ;case "\u0049":_begf =BorderStyleInset ;case "\u0055":_begf =BorderStyleUnderline ;default:_ac .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_fbee );
|
||
return nil ,_db .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_baffe .S =&_begf ;};if _bdgf :=_addc .Get ("\u0044");_bdgf !=nil {_cfba ,_afb :=_bdgf .(*_ae .PdfObjectArray );
|
||
if !_afb {_ac .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",_bdgf );return nil ,_db .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_bgcda ,_ede :=_cfba .ToIntegerArray ();if _ede !=nil {_ac .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",_ede );
|
||
return nil ,_ede ;};_baffe .D =&_bgcda ;};return _baffe ,nil ;};
|
||
|
||
// ParsePdfObject parses input pdf object into given output intent.
|
||
func (_ggbda *PdfOutputIntent )ParsePdfObject (object _ae .PdfObject )error {_edbgg ,_ffded :=_ae .GetDict (object );if !_ffded {_ac .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 _db .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");
|
||
};_ggbda ._gfdfbf =_edbgg ;_ggbda .Type ,_ =_edbgg .GetString ("\u0054\u0079\u0070\u0065");_eaga ,_ffded :=_edbgg .GetString ("\u0053");if _ffded {switch _eaga {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_ggbda .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_ggbda .S =PdfOutputIntentTypeA2 ;
|
||
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_ggbda .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_ggbda .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_ggbda .S =PdfOutputIntentTypeX ;
|
||
};};_ggbda .OutputCondition ,_ =_edbgg .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_ggbda .OutputConditionIdentifier ,_ =_edbgg .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
|
||
_ggbda .RegistryName ,_ =_edbgg .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_ggbda .Info ,_ =_edbgg .GetString ("\u0049\u006e\u0066\u006f");if _cbffc ,_ecbfd :=_ae .GetStream (_edbgg .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
|
||
_ecbfd {_ggbda .ColorComponents ,_ =_ae .GetIntVal (_cbffc .Get ("\u004e"));_bbafc ,_abbfb :=_ae .DecodeStream (_cbffc );if _abbfb !=nil {return _abbfb ;};_ggbda .DestOutputProfile =_bbafc ;};return nil ;};
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_ae .PdfObjectArray ;_bbcf *Image ;};
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _ae .PdfObject ;Sy _ae .PdfObject ;};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_afbd *pdfFontSimple )ToPdfObject ()_ae .PdfObject {if _afbd ._adcge ==nil {_afbd ._adcge =&_ae .PdfIndirectObject {};};_gbbc :=_afbd .baseFields ().asPdfObjectDictionary ("");_afbd ._adcge .PdfObject =_gbbc ;if _afbd .FirstChar !=nil {_gbbc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_afbd .FirstChar );
|
||
};if _afbd .LastChar !=nil {_gbbc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_afbd .LastChar );};if _afbd .Widths !=nil {_gbbc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_afbd .Widths );};if _afbd .Encoding !=nil {_gbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_afbd .Encoding );
|
||
}else if _afbd ._dead !=nil {_fdfd :=_afbd ._dead .ToPdfObject ();if _fdfd !=nil {_gbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_fdfd );};};return _afbd ._adcge ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_fbdd *PdfColorspaceLab )ToPdfObject ()_ae .PdfObject {_cagb :=_ae .MakeArray ();_cagb .Append (_ae .MakeName ("\u004c\u0061\u0062"));_fdddb :=_ae .MakeDict ();if _fbdd .WhitePoint !=nil {_dede :=_ae .MakeArray (_ae .MakeFloat (_fbdd .WhitePoint [0]),_ae .MakeFloat (_fbdd .WhitePoint [1]),_ae .MakeFloat (_fbdd .WhitePoint [2]));
|
||
_fdddb .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_dede );}else {_ac .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 _fbdd .BlackPoint !=nil {_ecef :=_ae .MakeArray (_ae .MakeFloat (_fbdd .BlackPoint [0]),_ae .MakeFloat (_fbdd .BlackPoint [1]),_ae .MakeFloat (_fbdd .BlackPoint [2]));_fdddb .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_ecef );
|
||
};if _fbdd .Range !=nil {_cecf :=_ae .MakeArray (_ae .MakeFloat (_fbdd .Range [0]),_ae .MakeFloat (_fbdd .Range [1]),_ae .MakeFloat (_fbdd .Range [2]),_ae .MakeFloat (_fbdd .Range [3]));_fdddb .Set ("\u0052\u0061\u006eg\u0065",_cecf );};_cagb .Append (_fdddb );
|
||
if _fbdd ._bccg !=nil {_fbdd ._bccg .PdfObject =_cagb ;return _fbdd ._bccg ;};return _cagb ;};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_gbdbc *PdfWriter )SetOCProperties (ocProperties _ae .PdfObject )error {_bgfed :=_gbdbc ._caddd ;if ocProperties !=nil {_ac .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_bgfed .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _gbdbc .addObjects (ocProperties );};return nil ;};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_gdbdf *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _gdbdf ._ecbe };
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_gdeg *PdfPage )GetContainingPdfObject ()_ae .PdfObject {return _gdeg ._egbbg };
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _d .Time )(PdfDate ,error ){_acdee :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_gaceb ,_ :=_bg .ParseInt (_acdee [1:3],10,32);_dfbdg ,_ :=_bg .ParseInt (_acdee [4:6],10,32);return PdfDate {_edbbd :int64 (timeObj .Year ()),_cedda :int64 (timeObj .Month ()),_ddefe :int64 (timeObj .Day ()),_bedgeg :int64 (timeObj .Hour ()),_fbcga :int64 (timeObj .Minute ()),_eabef :int64 (timeObj .Second ()),_eaedg :_acdee [0],_adaec :_gaceb ,_befea :_dfbdg },nil ;
|
||
};func _ggfdf (_egebc *_ae .PdfObjectDictionary )(*PdfShadingType7 ,error ){_gedaf :=PdfShadingType7 {};_cgdfb :=_egebc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _cgdfb ==nil {_ac .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 ;};_eeebd ,_fccde :=_cgdfb .(*_ae .PdfObjectInteger );if !_fccde {_ac .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",_cgdfb );
|
||
return nil ,_ae .ErrTypeError ;};_gedaf .BitsPerCoordinate =_eeebd ;_cgdfb =_egebc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _cgdfb ==nil {_ac .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 ;};_eeebd ,_fccde =_cgdfb .(*_ae .PdfObjectInteger );if !_fccde {_ac .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",_cgdfb );
|
||
return nil ,_ae .ErrTypeError ;};_gedaf .BitsPerComponent =_eeebd ;_cgdfb =_egebc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _cgdfb ==nil {_ac .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 ;};_eeebd ,_fccde =_cgdfb .(*_ae .PdfObjectInteger );if !_fccde {_ac .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",_cgdfb );
|
||
return nil ,_ae .ErrTypeError ;};_gedaf .BitsPerComponent =_eeebd ;_cgdfb =_egebc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _cgdfb ==nil {_ac .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 ;};_gfgag ,_fccde :=_cgdfb .(*_ae .PdfObjectArray );if !_fccde {_ac .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",_cgdfb );
|
||
return nil ,_ae .ErrTypeError ;};_gedaf .Decode =_gfgag ;if _aabge :=_egebc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_aabge !=nil {_gedaf .Function =[]PdfFunction {};if _fgbebf ,_ffgab :=_aabge .(*_ae .PdfObjectArray );_ffgab {for _ ,_geac :=range _fgbebf .Elements (){_bgbeab ,_faadg :=_gdbef (_geac );
|
||
if _faadg !=nil {_ac .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",_faadg );return nil ,_faadg ;};_gedaf .Function =append (_gedaf .Function ,_bgbeab );
|
||
};}else {_gafe ,_afgaf :=_gdbef (_aabge );if _afgaf !=nil {_ac .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",_afgaf );return nil ,_afgaf ;
|
||
};_gedaf .Function =append (_gedaf .Function ,_gafe );};};return &_gedaf ,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 _ae .StreamEncoder ;Intent _ae .PdfObject ;ImageMask _ae .PdfObject ;Mask _ae .PdfObject ;Matte _ae .PdfObject ;Decode _ae .PdfObject ;Interpolate _ae .PdfObject ;Alternatives _ae .PdfObject ;
|
||
SMask _ae .PdfObject ;SMaskInData _ae .PdfObject ;Name _ae .PdfObject ;StructParent _ae .PdfObject ;ID _ae .PdfObject ;OPI _ae .PdfObject ;Metadata _ae .PdfObject ;OC _ae .PdfObject ;Stream []byte ;_efaag *_ae .PdfObjectStream ;};func _gfed (_fgca *_ae .PdfObjectDictionary )*VRI {_abfdc ,_ :=_ae .GetString (_fgca .Get ("\u0054\u0055"));
|
||
_bfaf ,_ :=_ae .GetString (_fgca .Get ("\u0054\u0053"));return &VRI {Cert :_fdgbg (_fgca .Get ("\u0043\u0065\u0072\u0074")),OCSP :_fdgbg (_fgca .Get ("\u004f\u0043\u0053\u0050")),CRL :_fdgbg (_fgca .Get ("\u0043\u0052\u004c")),TU :_abfdc ,TS :_bfaf };};
|
||
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_ae .PdfObjectInteger ;BitsPerComponent *_ae .PdfObjectInteger ;BitsPerFlag *_ae .PdfObjectInteger ;Decode *_ae .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_gdddc :=&PdfColorspaceCalGray {};_gdddc .BlackPoint =[]float64 {0.0,0.0,0.0};_gdddc .Gamma =1;return _gdddc ;};
|
||
|
||
// GetNamedDestinations returns the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_bagade *PdfReader )GetNamedDestinations ()(_ae .PdfObject ,error ){_fbgcf :=_ae .ResolveReference (_bagade ._aedf .Get ("\u0044\u0065\u0073t\u0073"));if _fbgcf ==nil {return nil ,nil ;};if !_bagade ._ffggb {_cfedb :=_bagade .traverseObjectData (_fbgcf );
|
||
if _cfedb !=nil {return nil ,_cfedb ;};};return _fbgcf ,nil ;};func (_acce *PdfReader )newPdfAnnotationHighlightFromDict (_ega *_ae .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_fadf :=PdfAnnotationHighlight {};_fgdg ,_gda :=_acce .newPdfAnnotationMarkupFromDict (_ega );
|
||
if _gda !=nil {return nil ,_gda ;};_fadf .PdfAnnotationMarkup =_fgdg ;_fadf .QuadPoints =_ega .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fadf ,nil ;};func (_fabb *PdfPage )setContainer (_bgeg *_ae .PdfIndirectObject ){_bgeg .PdfObject =_fabb ._efgca ;
|
||
_fabb ._egbbg =_bgeg ;};
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_abdef *BorderStyle )GetPdfName ()string {switch *_abdef {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;func _fcfca (_ccbd *_ae .PdfObjectDictionary )(*PdfShadingPattern ,error ){_gbag :=&PdfShadingPattern {};_aafb :=_ccbd .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _aafb ==nil {_ac .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_affeb ,_bcgea :=_eddea (_aafb );if _bcgea !=nil {_ac .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bcgea );return nil ,_bcgea ;
|
||
};_gbag .Shading =_affeb ;if _fddda :=_ccbd .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fddda !=nil {_degba ,_ccbae :=_fddda .(*_ae .PdfObjectArray );if !_ccbae {_ac .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",_fddda );
|
||
return nil ,_ae .ErrTypeError ;};_gbag .Matrix =_degba ;};if _fdgf :=_ccbd .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_fdgf !=nil {_gbag .ExtGState =_fdgf ;};return _gbag ,nil ;};func (_afcf *PdfWriter )mapObjectStreams (_gegfc bool )(map[_ae .PdfObject ]bool ,bool ){_degfgc :=make (map[_ae .PdfObject ]bool );
|
||
for _ ,_gfafd :=range _afcf ._edbe {if _cbdfb ,_decaa :=_gfafd .(*_ae .PdfObjectStreams );_decaa {_gegfc =true ;for _ ,_ggfcd :=range _cbdfb .Elements (){_degfgc [_ggfcd ]=true ;if _ffdde ,_ecfae :=_ggfcd .(*_ae .PdfIndirectObject );_ecfae {_degfgc [_ffdde .PdfObject ]=true ;
|
||
};};};};return _degfgc ,_gegfc ;};
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_cdfcc *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _cdfcc ._bfcga .GetCrypter ()!=nil &&!_cdfcc ._bfcga .IsAuthenticated (){return nil ,_f .Errorf ("\u0066\u0069\u006c\u0065\u0020\u006e\u0065\u0065\u0064\u0073\u0020\u0074\u006f\u0020\u0062e\u0020d\u0065\u0063\u0072\u0079\u0070\u0074\u0065\u0064\u0020\u0066\u0069\u0072\u0073\u0074");
|
||
};if len (_cdfcc ._bcaab )< pageNumber {return nil ,_db .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");
|
||
};_aaabe :=pageNumber -1;if _aaabe < 0{return nil ,_f .Errorf ("\u0070\u0061\u0067\u0065\u0020\u006e\u0075\u006d\u0062\u0065r\u0069\u006e\u0067\u0020\u006d\u0075\u0073t\u0020\u0073\u0074\u0061\u0072\u0074\u0020\u0061\u0074\u0020\u0031");};_faega :=_cdfcc .PageList [_aaabe ];
|
||
return _faega ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gebd *PdfAnnotationStrikeOut )ToPdfObject ()_ae .PdfObject {_gebd .PdfAnnotation .ToPdfObject ();_aaeg :=_gebd ._gcgf ;_bbgd :=_aaeg .PdfObject .(*_ae .PdfObjectDictionary );_gebd .PdfAnnotationMarkup .appendToPdfDictionary (_bbgd );_bbgd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_bbgd .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_gebd .QuadPoints );return _aaeg ;};var _ pdfFont =(*pdfFontType3 )(nil );
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gebb *PdfBorderStyle )ToPdfObject ()_ae .PdfObject {_efae :=_ae .MakeDict ();if _gebb ._aadd !=nil {if _dbce ,_gdf :=_gebb ._aadd .(*_ae .PdfIndirectObject );_gdf {_dbce .PdfObject =_efae ;};};_efae .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_ae .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _gebb .W !=nil {_efae .Set ("\u0057",_ae .MakeFloat (*_gebb .W ));};if _gebb .S !=nil {_efae .Set ("\u0053",_ae .MakeName (_gebb .S .GetPdfName ()));};if _gebb .D !=nil {_efae .Set ("\u0044",_ae .MakeArrayFromIntegers (*_gebb .D ));};if _gebb ._aadd !=nil {return _gebb ._aadd ;
|
||
};return _efae ;}; |