mirror of
https://github.com/unidoc/unipdf.git
synced 2025-04-29 13:48:54 +08:00
5199 lines
771 KiB
Go
5199 lines
771 KiB
Go
//
|
||
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
||
//
|
||
// This is a commercial product and requires a license to operate.
|
||
// A trial license can be obtained at https://unidoc.io
|
||
//
|
||
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
||
//
|
||
// Use of this source code is governed by the UniDoc End User License Agreement
|
||
// terms that can be accessed at https://unidoc.io/eula/
|
||
|
||
// Package model provides an interface for working with high-level objects (models) in PDF files, including
|
||
// reading and writing documents.
|
||
//
|
||
// The document structure of a PDF is constructed of a hierarchy of data models, representing a tree
|
||
// of information starting from the Document catalog (Figure 5 p. 80).
|
||
// It is based on the core package which handles core functionality such as file i/o, parsing and
|
||
// handling of primitive PDF objects (core.PdfObject).
|
||
//
|
||
// As an example of the interface, the following snippet can read the PDF and output the number of pages:
|
||
//
|
||
// f, err := os.Open(inputPath)
|
||
// if err != nil {
|
||
// return nil, err
|
||
// }
|
||
// defer f.Close()
|
||
// pdfReader, err := unipdf.NewPdfReader(f)
|
||
// if err != nil {
|
||
// fmt.Printf("Failed to read PDF file: %v\n", err)
|
||
// os.Exit(1)
|
||
// }
|
||
// numPages, err := pdfReader.GetNumPages()
|
||
// if err != nil {
|
||
// fmt.Printf("Failed to get number of pages: %v\n", err)
|
||
// os.Exit(1)
|
||
// }
|
||
// fmt.Printf("The PDF file has %d pages\n", numPages)
|
||
//
|
||
// For more examples, see the unidoc-examples repository on GitHub: https://github.com/unidoc/unidoc-examples
|
||
package model ;import (_b "bufio";_bf "bytes";_dad "crypto/md5";_fc "crypto/rand";_ed "crypto/sha1";_gff "crypto/x509";_ff "encoding/binary";_f "encoding/hex";_ad "errors";_dc "fmt";_dff "github.com/gabriel-vasile/mimetype";_ada "github.com/unidoc/pkcs7";
|
||
_ag "github.com/unidoc/unipdf/v3/common";_fd "github.com/unidoc/unipdf/v3/core";_dfg "github.com/unidoc/unipdf/v3/core/security";_dce "github.com/unidoc/unipdf/v3/core/security/crypt";_gd "github.com/unidoc/unipdf/v3/internal/cmap";_gbed "github.com/unidoc/unipdf/v3/internal/imageutil";
|
||
_ae "github.com/unidoc/unipdf/v3/internal/license";_bg "github.com/unidoc/unipdf/v3/internal/sampling";_ee "github.com/unidoc/unipdf/v3/internal/textencoding";_def "github.com/unidoc/unipdf/v3/internal/timeutils";_gdd "github.com/unidoc/unipdf/v3/internal/transform";
|
||
_ca "github.com/unidoc/unipdf/v3/model/internal/docutil";_cf "github.com/unidoc/unipdf/v3/model/internal/fonts";_gfg "github.com/unidoc/unipdf/v3/model/mdp";_ef "github.com/unidoc/unipdf/v3/model/sigutil";_fa "github.com/unidoc/unipdf/v3/ps";_geb "github.com/unidoc/unitype";
|
||
_ebb "golang.org/x/xerrors";_a "hash";_gb "image";_gc "image/color";_ "image/gif";_ "image/png";_bc "io";_gcb "io/ioutil";_af "math";_de "math/rand";_gbe "os";_gf "path/filepath";_ge "regexp";_da "sort";_bd "strconv";_gg "strings";_g "sync";_cd "time";
|
||
_df "unicode";_eb "unicode/utf8";);
|
||
|
||
// SetAlpha sets the alpha layer for the image.
|
||
func (_ddcf *Image )SetAlpha (alpha []byte ){_ddcf ._gfffd =alpha };func (_cfcce *pdfCIDFontType0 )baseFields ()*fontCommon {return &_cfcce .fontCommon };func (_abead *PdfWriter )getPdfVersion ()string {return _dc .Sprintf ("\u0025\u0064\u002e%\u0064",_abead ._ggaddg .Major ,_abead ._ggaddg .Minor );
|
||
};
|
||
|
||
// NewXObjectFormFromStream builds the Form XObject from a stream object.
|
||
// TODO: Should this be exposed? Consider different access points.
|
||
func NewXObjectFormFromStream (stream *_fd .PdfObjectStream )(*XObjectForm ,error ){_eddfa :=&XObjectForm {};_eddfa ._cebfa =stream ;_feada :=*(stream .PdfObjectDictionary );_gcedb ,_fadfe :=_fd .NewEncoderFromStream (stream );if _fadfe !=nil {return nil ,_fadfe ;
|
||
};_eddfa .Filter =_gcedb ;if _cedfb :=_feada .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_cedfb !=nil {_gecffg ,_dcgfa :=_cedfb .(*_fd .PdfObjectName );if !_dcgfa {return nil ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if *_gecffg !="\u0046\u006f\u0072\u006d"{_ag .Log .Debug ("I\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072m\u0020\u0073\u0075\u0062ty\u0070\u0065");
|
||
};};if _gbgfb :=_feada .Get ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065");_gbgfb !=nil {_eddfa .FormType =_gbgfb ;};if _edgae :=_feada .Get ("\u0042\u0042\u006f\u0078");_edgae !=nil {_eddfa .BBox =_edgae ;};if _daabe :=_feada .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_daabe !=nil {_eddfa .Matrix =_daabe ;};if _egafeb :=_feada .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_egafeb !=nil {_egafeb =_fd .TraceToDirectObject (_egafeb );_efafgb ,_egcdg :=_egafeb .(*_fd .PdfObjectDictionary );if !_egcdg {_ag .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 ,_fd .ErrTypeError ;};_dgbfg ,_gacffb :=NewPdfPageResourcesFromDict (_efafgb );if _gacffb !=nil {_ag .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 ,_gacffb ;};_eddfa .Resources =_dgbfg ;_ag .Log .Trace ("\u0046\u006f\u0072\u006d r\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u003a\u0020\u0025\u0023\u0076",_eddfa .Resources );};_eddfa .Group =_feada .Get ("\u0047\u0072\u006fu\u0070");
|
||
_eddfa .Ref =_feada .Get ("\u0052\u0065\u0066");_eddfa .MetaData =_feada .Get ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061");_eddfa .PieceInfo =_feada .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_eddfa .LastModified =_feada .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");
|
||
_eddfa .StructParent =_feada .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_eddfa .StructParents =_feada .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");_eddfa .OPI =_feada .Get ("\u004f\u0050\u0049");
|
||
_eddfa .OC =_feada .Get ("\u004f\u0043");_eddfa .Name =_feada .Get ("\u004e\u0061\u006d\u0065");_eddfa .Stream =stream .Stream ;return _eddfa ,nil ;};
|
||
|
||
// GetContentStreamObjs returns a slice of PDF objects containing the content
|
||
// streams of the page.
|
||
func (_gcdfe *PdfPage )GetContentStreamObjs ()[]_fd .PdfObject {if _gcdfe .Contents ==nil {return nil ;};_cgffg :=_fd .TraceToDirectObject (_gcdfe .Contents );if _ebcf ,_fadg :=_cgffg .(*_fd .PdfObjectArray );_fadg {return _ebcf .Elements ();};return []_fd .PdfObject {_cgffg };
|
||
};
|
||
|
||
// 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 (_bgccg _bc .Reader )(*Image ,error );
|
||
|
||
// NewImageFromGoImage loads a NRGBA32 unidoc Image from a standard Go image structure.
|
||
NewImageFromGoImage (_ggfc _gb .Image )(*Image ,error );
|
||
|
||
// NewGrayImageFromGoImage loads a grayscale unidoc Image from a standard Go image structure.
|
||
NewGrayImageFromGoImage (_bede _gb .Image )(*Image ,error );
|
||
|
||
// Compress an image.
|
||
Compress (_dfgc *Image ,_aebef int64 )(*Image ,error );};func (_gfbe *PdfReader )newPdfAnnotationLineFromDict (_gca *_fd .PdfObjectDictionary )(*PdfAnnotationLine ,error ){_adfb :=PdfAnnotationLine {};_bbb ,_daf :=_gfbe .newPdfAnnotationMarkupFromDict (_gca );
|
||
if _daf !=nil {return nil ,_daf ;};_adfb .PdfAnnotationMarkup =_bbb ;_adfb .L =_gca .Get ("\u004c");_adfb .BS =_gca .Get ("\u0042\u0053");_adfb .LE =_gca .Get ("\u004c\u0045");_adfb .IC =_gca .Get ("\u0049\u0043");_adfb .LL =_gca .Get ("\u004c\u004c");
|
||
_adfb .LLE =_gca .Get ("\u004c\u004c\u0045");_adfb .Cap =_gca .Get ("\u0043\u0061\u0070");_adfb .IT =_gca .Get ("\u0049\u0054");_adfb .LLO =_gca .Get ("\u004c\u004c\u004f");_adfb .CP =_gca .Get ("\u0043\u0050");_adfb .Measure =_gca .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");
|
||
_adfb .CO =_gca .Get ("\u0043\u004f");return &_adfb ,nil ;};
|
||
|
||
// ImageToRGB convert 1-component grayscale data to 3-component RGB.
|
||
func (_bcdg *PdfColorspaceDeviceGray )ImageToRGB (img Image )(Image ,error ){if img .ColorComponents !=1{return img ,_ad .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");
|
||
};_aceg ,_gdba :=_gbed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gfffd ,img ._cdbdc );if _gdba !=nil {return img ,_gdba ;};_efgg ,_gdba :=_gbed .NRGBAConverter .Convert (_aceg );
|
||
if _gdba !=nil {return img ,_gdba ;};_dffa :=_eeafa (_efgg .Base ());_ag .Log .Trace ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079\u0020\u002d>\u0020\u0052\u0047\u0042");_ag .Log .Trace ("s\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",img .Data );
|
||
_ag .Log .Trace ("\u0052G\u0042 \u0073\u0061\u006d\u0070\u006c\u0065\u0073\u003a\u0020\u0025\u0076",_dffa .Data );_ag .Log .Trace ("\u0025\u0076\u0020\u002d\u003e\u0020\u0025\u0076",img ,_dffa );return _dffa ,nil ;};
|
||
|
||
// NewPdfActionRendition returns a new "rendition" action.
|
||
func NewPdfActionRendition ()*PdfActionRendition {_efb :=NewPdfAction ();_ded :=&PdfActionRendition {};_ded .PdfAction =_efb ;_efb .SetContext (_ded );return _ded ;};
|
||
|
||
// NewPdfFileSpecFromEmbeddedFile construct a new PdfFileSpec that contains an embedded file.
|
||
func NewPdfFileSpecFromEmbeddedFile (file *EmbeddedFile )*PdfFilespec {_dabg :=&PdfFilespec {};_dabg ._cbfc =_fd .MakeIndirectObject (_fd .MakeDict ());_dabg .Desc =_fd .MakeString (file .Description );_dabg .EF =file .ToPdfObject ();_dabg .F =_fd .MakeString (file .Name );
|
||
_dabg .UF =_fd .MakeEncodedString (file .Name ,true );_gbcc :="U\u006e\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064";switch file .Relationship {case RelationshipSource :_gbcc ="\u0053\u006f\u0075\u0072\u0063\u0065";case RelationshipData :_gbcc ="\u0044\u0061\u0074\u0061";
|
||
case RelationshipAlternative :_gbcc ="A\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065";case RelationshipSupplement :_gbcc ="\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074";};_dabg .AFRelationship =_fd .MakeName (_gbcc );return _dabg ;
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_ebaf *PdfColorspaceSpecialPattern )ToPdfObject ()_fd .PdfObject {if _ebaf .UnderlyingCS ==nil {return _fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e");};_ebca :=_fd .MakeArray (_fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_ebca .Append (_ebaf .UnderlyingCS .ToPdfObject ());
|
||
if _ebaf ._gcgab !=nil {_ebaf ._gcgab .PdfObject =_ebca ;return _ebaf ._gcgab ;};return _ebca ;};
|
||
|
||
// FieldFlag represents form field flags. Some of the flags can apply to all types of fields whereas other
|
||
// flags are specific.
|
||
type FieldFlag uint32 ;
|
||
|
||
// NewPdfActionGoToE returns a new "go to embedded" action.
|
||
func NewPdfActionGoToE ()*PdfActionGoToE {_efd :=NewPdfAction ();_gad :=&PdfActionGoToE {};_gad .PdfAction =_efd ;_efd .SetContext (_gad );return _gad ;};func _gabge (_gfec _fd .PdfObject ,_bbgfd bool )(*PdfFont ,error ){_eced ,_edef ,_cbgf :=_ccag (_gfec );
|
||
if _eced !=nil {_eeeea (_eced );};if _cbgf !=nil {if _cbgf ==ErrType1CFontNotSupported {_adgbf ,_gegec :=_fcced (_eced ,_edef ,nil );if _gegec !=nil {_ag .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",_edef ,_gegec );
|
||
return nil ,_cbgf ;};return &PdfFont {_gbaac :_adgbf },_cbgf ;};return nil ,_cbgf ;};_caad :=&PdfFont {};switch _edef ._eded {case "\u0054\u0079\u0070e\u0030":if !_bbgfd {_ag .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",_edef );
|
||
return nil ,_ad .New ("\u0063\u0079\u0063\u006cic\u0061\u006c\u0020\u0074\u0079\u0070\u0065\u0030\u0020\u006c\u006f\u0061\u0064\u0069n\u0067");};_abaf ,_defef :=_afde (_eced ,_edef );if _defef !=nil {_ag .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",_edef ,_defef );
|
||
return nil ,_defef ;};_caad ._gbaac =_abaf ;case "\u0054\u0079\u0070e\u0031","\u004dM\u0054\u0079\u0070\u0065\u0031","\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":var _fdfa *pdfFontSimple ;_ddgf ,_ggce :=_cf .NewStdFontByName (_cf .StdFontName (_edef ._ffedb ));
|
||
if _ggce {_abgee :=_fdea (_ddgf );_caad ._gbaac =&_abgee ;_cecg :=_fd .TraceToDirectObject (_abgee .ToPdfObject ());_bgefc ,_fdgg ,_eecb :=_ccag (_cecg );if _eecb !=nil {_ag .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",_edef ,_abgee );
|
||
return nil ,_eecb ;};for _ ,_geddb :=range _eced .Keys (){_bgefc .Set (_geddb ,_eced .Get (_geddb ));};_fdfa ,_eecb =_fcced (_bgefc ,_fdgg ,_abgee ._gadae );if _eecb !=nil {_ag .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",_edef ,_abgee );
|
||
return nil ,_eecb ;};_fdfa ._bafeg =_abgee ._bafeg ;_fdfa ._dcgdd =_abgee ._dcgdd ;if _fdfa ._cbffb ==nil {_fdfa ._cbffb =_abgee ._cbffb ;};}else {_fdfa ,_cbgf =_fcced (_eced ,_edef ,nil );if _cbgf !=nil {_ag .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",_edef ,_cbgf );
|
||
return nil ,_cbgf ;};};_cbgf =_fdfa .addEncoding ();if _cbgf !=nil {return nil ,_cbgf ;};if _ggce {_fdfa .updateStandard14Font ();};if _ggce &&_fdfa ._dcfda ==nil &&_fdfa ._gadae ==nil {_ag .Log .Error ("\u0073\u0069\u006d\u0070\u006c\u0065\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_fdfa );
|
||
_ag .Log .Error ("\u0066n\u0074\u003d\u0025\u002b\u0076",_ddgf );};if len (_fdfa ._bafeg )==0{_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u004e\u006f\u0020\u0077\u0069d\u0074h\u0073.\u0020\u0066\u006f\u006e\u0074\u003d\u0025s",_fdfa );};_caad ._gbaac =_fdfa ;
|
||
case "\u0054\u0079\u0070e\u0033":_fdee ,_deeed :=_fgbga (_eced ,_edef );if _deeed !=nil {_ag .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",_deeed );
|
||
return nil ,_deeed ;};_caad ._gbaac =_fdee ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030":_cafe ,_cebd :=_feffd (_eced ,_edef );if _cebd !=nil {_ag .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",_cebd );
|
||
return nil ,_cebd ;};_caad ._gbaac =_cafe ;case "\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032":_gaaa ,_gbda :=_gadd (_eced ,_edef );if _gbda !=nil {_ag .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",_edef ,_gbda );
|
||
return nil ,_gbda ;};_caad ._gbaac =_gaaa ;default:_ag .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",_edef );
|
||
return nil ,_dc .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",_edef );};return _caad ,nil ;};
|
||
|
||
// ToPdfObject converts PdfAcroForm to a PdfObject, i.e. an indirect object containing the
|
||
// AcroForm dictionary.
|
||
func (_aafa *PdfAcroForm )ToPdfObject ()_fd .PdfObject {_fffae :=_aafa ._fefdb ;_ccagd :=_fffae .PdfObject .(*_fd .PdfObjectDictionary );if _aafa .Fields !=nil {_feec :=_fd .PdfObjectArray {};for _ ,_afeea :=range *_aafa .Fields {_bacg :=_afeea .GetContext ();
|
||
if _bacg !=nil {_feec .Append (_bacg .ToPdfObject ());}else {_feec .Append (_afeea .ToPdfObject ());};};_ccagd .Set ("\u0046\u0069\u0065\u006c\u0064\u0073",&_feec );};if _aafa .NeedAppearances !=nil {_ccagd .Set ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073",_aafa .NeedAppearances );
|
||
}else {if _edac :=_ccagd .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");_edac !=nil {_ccagd .Remove ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");};};if _aafa .SigFlags !=nil {_ccagd .Set ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073",_aafa .SigFlags );
|
||
};if _aafa .CO !=nil {_ccagd .Set ("\u0043\u004f",_aafa .CO );};if _aafa .DR !=nil {_ccagd .Set ("\u0044\u0052",_aafa .DR .ToPdfObject ());};if _aafa .DA !=nil {_ccagd .Set ("\u0044\u0041",_aafa .DA );};if _aafa .Q !=nil {_ccagd .Set ("\u0051",_aafa .Q );
|
||
};if _aafa .XFA !=nil {_ccagd .Set ("\u0058\u0046\u0041",_aafa .XFA );};if _aafa .ADBEEchoSign !=nil {_ccagd .Set ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e",_aafa .ADBEEchoSign );};return _fffae ;};
|
||
|
||
// PdfActionRendition represents a Rendition action.
|
||
type PdfActionRendition struct{*PdfAction ;R _fd .PdfObject ;AN _fd .PdfObject ;OP _fd .PdfObject ;JS _fd .PdfObject ;};
|
||
|
||
// NewPdfColorspaceDeviceRGB returns a new RGB colorspace object.
|
||
func NewPdfColorspaceDeviceRGB ()*PdfColorspaceDeviceRGB {return &PdfColorspaceDeviceRGB {}};
|
||
|
||
// PdfAnnotationLink represents Link annotations.
|
||
// (Section 12.5.6.5 p. 403).
|
||
type PdfAnnotationLink struct{*PdfAnnotation ;A _fd .PdfObject ;Dest _fd .PdfObject ;H _fd .PdfObject ;PA _fd .PdfObject ;QuadPoints _fd .PdfObject ;BS _fd .PdfObject ;_abb *PdfAction ;_cff *PdfReader ;};
|
||
|
||
// PdfAnnotationWidget represents Widget annotations.
|
||
// Note: Widget annotations are used to display form fields.
|
||
// (Section 12.5.6.19).
|
||
type PdfAnnotationWidget struct{*PdfAnnotation ;H _fd .PdfObject ;MK _fd .PdfObject ;A _fd .PdfObject ;AA _fd .PdfObject ;BS _fd .PdfObject ;Parent _fd .PdfObject ;_eabc *PdfField ;_cfgb bool ;};
|
||
|
||
// ToPdfObject converts date to a PDF string object.
|
||
func (_gfcea *PdfDate )ToPdfObject ()_fd .PdfObject {_dcada :=_dc .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",_gfcea ._bdaae ,_gfcea ._gbdf ,_gfcea ._afcde ,_gfcea ._bgagg ,_gfcea ._gbgef ,_gfcea ._cfdgb ,_gfcea ._fcdea ,_gfcea ._bbea ,_gfcea ._gdeac );
|
||
return _fd .MakeString (_dcada );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bfec *PdfAnnotationLine )ToPdfObject ()_fd .PdfObject {_bfec .PdfAnnotation .ToPdfObject ();_egd :=_bfec ._aeb ;_cdbcd :=_egd .PdfObject .(*_fd .PdfObjectDictionary );_bfec .PdfAnnotationMarkup .appendToPdfDictionary (_cdbcd );_cdbcd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004c\u0069\u006e\u0065"));
|
||
_cdbcd .SetIfNotNil ("\u004c",_bfec .L );_cdbcd .SetIfNotNil ("\u0042\u0053",_bfec .BS );_cdbcd .SetIfNotNil ("\u004c\u0045",_bfec .LE );_cdbcd .SetIfNotNil ("\u0049\u0043",_bfec .IC );_cdbcd .SetIfNotNil ("\u004c\u004c",_bfec .LL );_cdbcd .SetIfNotNil ("\u004c\u004c\u0045",_bfec .LLE );
|
||
_cdbcd .SetIfNotNil ("\u0043\u0061\u0070",_bfec .Cap );_cdbcd .SetIfNotNil ("\u0049\u0054",_bfec .IT );_cdbcd .SetIfNotNil ("\u004c\u004c\u004f",_bfec .LLO );_cdbcd .SetIfNotNil ("\u0043\u0050",_bfec .CP );_cdbcd .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_bfec .Measure );
|
||
_cdbcd .SetIfNotNil ("\u0043\u004f",_bfec .CO );return _egd ;};func _deecg (_dgagb *fontCommon )*pdfCIDFontType0 {return &pdfCIDFontType0 {fontCommon :*_dgagb }};var _dceef =false ;
|
||
|
||
// PdfAnnotationScreen represents Screen annotations.
|
||
// (Section 12.5.6.18).
|
||
type PdfAnnotationScreen struct{*PdfAnnotation ;T _fd .PdfObject ;MK _fd .PdfObject ;A _fd .PdfObject ;AA _fd .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ccea *PdfAnnotationWidget )ToPdfObject ()_fd .PdfObject {_ccea .PdfAnnotation .ToPdfObject ();_gae :=_ccea ._aeb ;_gbfg :=_gae .PdfObject .(*_fd .PdfObjectDictionary );if _ccea ._cfgb {return _gae ;};_ccea ._cfgb =true ;_gbfg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0057\u0069\u0064\u0067\u0065\u0074"));
|
||
_gbfg .SetIfNotNil ("\u0048",_ccea .H );_gbfg .SetIfNotNil ("\u004d\u004b",_ccea .MK );_gbfg .SetIfNotNil ("\u0041",_ccea .A );_gbfg .SetIfNotNil ("\u0041\u0041",_ccea .AA );_gbfg .SetIfNotNil ("\u0042\u0053",_ccea .BS );_gddf :=_ccea .Parent ;if _ccea ._eabc !=nil {if _ccea ._eabc ._dffeb ==_ccea ._aeb {_ccea ._eabc .ToPdfObject ();
|
||
};_gddf =_ccea ._eabc .GetContainingPdfObject ();};if _gddf !=_gae {_gbfg .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddf );};_ccea ._cfgb =false ;return _gae ;};
|
||
|
||
// NewPdfDateFromTime will create a PdfDate based on the given time
|
||
func NewPdfDateFromTime (timeObj _cd .Time )(PdfDate ,error ){_ccdde :=timeObj .Format ("\u002d\u0030\u0037\u003a\u0030\u0030");_dbbac ,_ :=_bd .ParseInt (_ccdde [1:3],10,32);_dbbbbd ,_ :=_bd .ParseInt (_ccdde [4:6],10,32);return PdfDate {_bdaae :int64 (timeObj .Year ()),_gbdf :int64 (timeObj .Month ()),_afcde :int64 (timeObj .Day ()),_bgagg :int64 (timeObj .Hour ()),_gbgef :int64 (timeObj .Minute ()),_cfdgb :int64 (timeObj .Second ()),_fcdea :_ccdde [0],_bbea :_dbbac ,_gdeac :_dbbbbd },nil ;
|
||
};
|
||
|
||
// Read reads an image and loads into a new Image object with an RGB
|
||
// colormap and 8 bits per component.
|
||
func (_acecf DefaultImageHandler )Read (reader _bc .Reader )(*Image ,error ){_cgce ,_ ,_cfdbg :=_gb .Decode (reader );if _cfdbg !=nil {_ag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_cfdbg );
|
||
return nil ,_cfdbg ;};return _acecf .NewImageFromGoImage (_cgce );};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cfega pdfCIDFontType0 )Encoder ()_ee .TextEncoder {return _cfega ._ffabe };const (RC4_128bit =EncryptionAlgorithm (iota );AES_128bit ;AES_256bit ;);
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_eeaa *PdfColorCalRGB )A ()float64 {return _eeaa [0]};func _eeeea (_dcae *_fd .PdfObjectDictionary ){_fabfe ,_gafb :=_fd .GetArray (_dcae .Get ("\u0057\u0069\u0064\u0074\u0068\u0073"));_fabgd ,_egdb :=_fd .GetIntVal (_dcae .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r"));
|
||
_feab ,_bdbg :=_fd .GetIntVal (_dcae .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072"));if _gafb &&_egdb &&_bdbg {_bedbb :=_fabfe .Len ();if _bedbb !=_feab -_fabgd +1{_ag .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",_bedbb ,_feab );
|
||
_dabb :=_fd .PdfObjectInteger (_fabgd +_bedbb -1);_dcae .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",&_dabb );};};};func _fcaeg (_ecebd *_fd .PdfObjectDictionary )(*PdfShadingType3 ,error ){_gfag :=PdfShadingType3 {};_deag :=_ecebd .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");
|
||
if _deag ==nil {_ag .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 ;
|
||
};_bcbc ,_dcgb :=_deag .(*_fd .PdfObjectArray );if !_dcgb {_ag .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",_deag );return nil ,_fd .ErrTypeError ;
|
||
};if _bcbc .Len ()!=6{_ag .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",_bcbc .Len ());return nil ,ErrInvalidAttribute ;};_gfag .Coords =_bcbc ;
|
||
if _gcca :=_ecebd .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_gcca !=nil {_gcca =_fd .TraceToDirectObject (_gcca );_cacgg ,_gfae :=_gcca .(*_fd .PdfObjectArray );if !_gfae {_ag .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",_gcca );
|
||
return nil ,_fd .ErrTypeError ;};_gfag .Domain =_cacgg ;};_deag =_ecebd .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _deag ==nil {_ag .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 ;};_gfag .Function =[]PdfFunction {};if _fccb ,_cgcec :=_deag .(*_fd .PdfObjectArray );_cgcec {for _ ,_egdgb :=range _fccb .Elements (){_feagg ,_cfead :=_badad (_egdgb );if _cfead !=nil {_ag .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",_cfead );
|
||
return nil ,_cfead ;};_gfag .Function =append (_gfag .Function ,_feagg );};}else {_eadfe ,_faffd :=_badad (_deag );if _faffd !=nil {_ag .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",_faffd );
|
||
return nil ,_faffd ;};_gfag .Function =append (_gfag .Function ,_eadfe );};if _cagdg :=_ecebd .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_cagdg !=nil {_cagdg =_fd .TraceToDirectObject (_cagdg );_bafag ,_egbfb :=_cagdg .(*_fd .PdfObjectArray );if !_egbfb {_ag .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",_cagdg );
|
||
return nil ,_fd .ErrTypeError ;};if _bafag .Len ()!=2{_ag .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",_bafag .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_gfag .Extend =_bafag ;};return &_gfag ,nil ;};func _bdaa (_fcgdf map[_cf .GID ]int ,_ddfb uint16 )*_fd .PdfObjectArray {_ccefea :=&_fd .PdfObjectArray {};_eeac :=_cf .GID (_ddfb );for _afce :=_cf .GID (0);_afce < _eeac ;{_eegg ,_cedd :=_fcgdf [_afce ];
|
||
if !_cedd {_afce ++;continue ;};_egfc :=_afce ;for _adae :=_egfc +1;_adae < _eeac ;_adae ++{if _gefb ,_egdfg :=_fcgdf [_adae ];!_egdfg ||_eegg !=_gefb {break ;};_egfc =_adae ;};_ccefea .Append (_fd .MakeInteger (int64 (_afce )));_ccefea .Append (_fd .MakeInteger (int64 (_egfc )));
|
||
_ccefea .Append (_fd .MakeInteger (int64 (_eegg )));_afce =_egfc +1;};return _ccefea ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cgeec pdfFontType3 )Encoder ()_ee .TextEncoder {return _cgeec ._eceb };
|
||
|
||
// GetCapHeight returns the CapHeight of the font `descriptor`.
|
||
func (_ageb *PdfFontDescriptor )GetCapHeight ()(float64 ,error ){return _fd .GetNumberAsFloat (_ageb .CapHeight );};
|
||
|
||
// FieldAppearanceGenerator generates appearance stream for a given field.
|
||
type FieldAppearanceGenerator interface{ContentStreamWrapper ;GenerateAppearanceDict (_gffac *PdfAcroForm ,_dabc *PdfField ,_cffab *PdfAnnotationWidget )(*_fd .PdfObjectDictionary ,error );};func _bceg (_dcedb StdFontName )(pdfFontSimple ,error ){_afaf ,_ffaaf :=_cf .NewStdFontByName (_dcedb );
|
||
if !_ffaaf {return pdfFontSimple {},ErrFontNotSupported ;};_adbdd :=_fdea (_afaf );return _adbdd ,nil ;};
|
||
|
||
// NewPdfColorCalRGB returns a new CalRBG color.
|
||
func NewPdfColorCalRGB (a ,b ,c float64 )*PdfColorCalRGB {_abfa :=PdfColorCalRGB {a ,b ,c };return &_abfa ;};func (_adfg *PdfReader )newPdfActionSetOCGStateFromDict (_cae *_fd .PdfObjectDictionary )(*PdfActionSetOCGState ,error ){return &PdfActionSetOCGState {State :_cae .Get ("\u0053\u0074\u0061t\u0065"),PreserveRB :_cae .Get ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042")},nil ;
|
||
};func (_bgef *PdfFilespec )getDict ()*_fd .PdfObjectDictionary {if _fgae ,_daeed :=_bgef ._cbfc .(*_fd .PdfIndirectObject );_daeed {_fbee ,_dafdd :=_fgae .PdfObject .(*_fd .PdfObjectDictionary );if !_dafdd {return nil ;};return _fbee ;}else if _dgbf ,_bccgg :=_bgef ._cbfc .(*_fd .PdfObjectDictionary );
|
||
_bccgg {return _dgbf ;}else {_ag .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",_bgef ._cbfc );
|
||
return nil ;};};
|
||
|
||
// SetName sets the `Name` field of the signature.
|
||
func (_geafe *PdfSignature )SetName (name string ){_geafe .Name =_fd .MakeEncodedString (name ,true )};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_gbbd *PdfFilespec )GetContainingPdfObject ()_fd .PdfObject {return _gbbd ._cbfc };var _geafg =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":{}};
|
||
|
||
|
||
// IsCID returns true if the underlying font is CID.
|
||
func (_acfbf *PdfFont )IsCID ()bool {return _acfbf .baseFields ().isCIDFont ()};func _fafdc (_gbcg _fd .PdfObject )(*PdfColorspaceSpecialSeparation ,error ){_bbdb :=NewPdfColorspaceSpecialSeparation ();if _gggd ,_cffe :=_gbcg .(*_fd .PdfIndirectObject );
|
||
_cffe {_bbdb ._dbeeaf =_gggd ;};_gbcg =_fd .TraceToDirectObject (_gbcg );_aafg ,_ffbe :=_gbcg .(*_fd .PdfObjectArray );if !_ffbe {return nil ,_dc .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 _aafg .Len ()!=4{return nil ,_dc .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");};_gbcg =_aafg .Get (0);
|
||
_abgac ,_ffbe :=_gbcg .(*_fd .PdfObjectName );if !_ffbe {return nil ,_dc .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 *_abgac !="\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"{return nil ,_dc .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");
|
||
};_gbcg =_aafg .Get (1);_abgac ,_ffbe =_gbcg .(*_fd .PdfObjectName );if !_ffbe {return nil ,_dc .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");
|
||
};_bbdb .ColorantName =_abgac ;_gbcg =_aafg .Get (2);_ebdf ,_agac :=NewPdfColorspaceFromPdfObject (_gbcg );if _agac !=nil {return nil ,_agac ;};_bbdb .AlternateSpace =_ebdf ;_cdc ,_agac :=_badad (_aafg .Get (3));if _agac !=nil {return nil ,_agac ;};_bbdb .TintTransform =_cdc ;
|
||
return _bbdb ,nil ;};func _bbcga (_gdeba _fd .PdfObject )(*fontFile ,error ){_ag .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",_gdeba );
|
||
_caeda :=&fontFile {};_gdeba =_fd .TraceToDirectObject (_gdeba );_dfff ,_egbc :=_gdeba .(*_fd .PdfObjectStream );if !_egbc {_ag .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",_gdeba );
|
||
return nil ,_fd .ErrTypeError ;};_cecged :=_dfff .PdfObjectDictionary ;_egcdb ,_fdafb :=_fd .DecodeStream (_dfff );if _fdafb !=nil {return nil ,_fdafb ;};_fccc ,_egbc :=_fd .GetNameVal (_cecged .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_egbc {_caeda ._gccee =_fccc ;
|
||
if _fccc =="\u0054\u0079\u0070\u0065\u0031\u0043"{_ag .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 ;};};_afgfb ,_ :=_fd .GetIntVal (_cecged .Get ("\u004ce\u006e\u0067\u0074\u0068\u0031"));_abff ,_ :=_fd .GetIntVal (_cecged .Get ("\u004ce\u006e\u0067\u0074\u0068\u0032"));if _afgfb > len (_egcdb ){_afgfb =len (_egcdb );
|
||
};if _afgfb +_abff > len (_egcdb ){_abff =len (_egcdb )-_afgfb ;};_febef :=_egcdb [:_afgfb ];var _cfedd []byte ;if _abff > 0{_cfedd =_egcdb [_afgfb :_afgfb +_abff ];};if _afgfb > 0&&_abff > 0{_fefbb :=_caeda .loadFromSegments (_febef ,_cfedd );if _fefbb !=nil {return nil ,_fefbb ;
|
||
};};return _caeda ,nil ;};
|
||
|
||
// PdfOutputIntentType is the subtype of the given PdfOutputIntent.
|
||
type PdfOutputIntentType int ;
|
||
|
||
// WriteToFile writes the Appender output to file specified by path.
|
||
func (_ggca *PdfAppender )WriteToFile (outputPath string )error {_cddf ,_fege :=_gbe .Create (outputPath );if _fege !=nil {return _fege ;};defer _cddf .Close ();return _ggca .Write (_cddf );};
|
||
|
||
// NewImageFromGoImage creates a new NRGBA32 unidoc Image from a golang Image.
|
||
// If `goimg` is grayscale (*goimage.Gray8) then calls NewGrayImageFromGoImage instead.
|
||
func (_eggc DefaultImageHandler )NewImageFromGoImage (goimg _gb .Image )(*Image ,error ){_eada ,_agddfg :=_gbed .FromGoImage (goimg );if _agddfg !=nil {return nil ,_agddfg ;};_bddaf :=_eeafa (_eada .Base ());return &_bddaf ,nil ;};const (BorderEffectNoEffect BorderEffect =iota ;
|
||
BorderEffectCloudy BorderEffect =iota ;);
|
||
|
||
// NewPdfPageResourcesColorspaces returns a new PdfPageResourcesColorspaces object.
|
||
func NewPdfPageResourcesColorspaces ()*PdfPageResourcesColorspaces {_cecef :=&PdfPageResourcesColorspaces {};_cecef .Names =[]string {};_cecef .Colorspaces =map[string ]PdfColorspace {};_cecef ._abdg =&_fd .PdfIndirectObject {};return _cecef ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_fagd *PdfShadingType7 )ToPdfObject ()_fd .PdfObject {_fagd .PdfShading .ToPdfObject ();_aabdd ,_bfeeg :=_fagd .getShadingDict ();if _bfeeg !=nil {_ag .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 _fagd .BitsPerCoordinate !=nil {_aabdd .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_fagd .BitsPerCoordinate );};if _fagd .BitsPerComponent !=nil {_aabdd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fagd .BitsPerComponent );
|
||
};if _fagd .BitsPerFlag !=nil {_aabdd .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_fagd .BitsPerFlag );};if _fagd .Decode !=nil {_aabdd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_fagd .Decode );};if _fagd .Function !=nil {if len (_fagd .Function )==1{_aabdd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fagd .Function [0].ToPdfObject ());
|
||
}else {_fecaf :=_fd .MakeArray ();for _ ,_acegb :=range _fagd .Function {_fecaf .Append (_acegb .ToPdfObject ());};_aabdd .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fecaf );};};return _fagd ._cdgfd ;};
|
||
|
||
// GetContext returns the annotation context which contains the specific type-dependent context.
|
||
// The context represents the subannotation.
|
||
func (_edg *PdfAnnotation )GetContext ()PdfModel {if _edg ==nil {return nil ;};return _edg ._cfda ;};
|
||
|
||
// 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 ;_dccfd PdfModel ;_gcgba _fd .PdfObject ;};
|
||
|
||
// SetSubtype sets the Subtype S for given PdfOutputIntent.
|
||
func (_ccgb *PdfOutputIntent )SetSubtype (subtype PdfOutputIntentType )error {if !subtype .IsValid (){return _ad .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");
|
||
};_ccgb .S =subtype ;return nil ;};
|
||
|
||
// GetXObjectFormByName returns the XObjectForm with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_daagd *PdfPageResources )GetXObjectFormByName (keyName _fd .PdfObjectName )(*XObjectForm ,error ){_aaaae ,_fdfcff :=_daagd .GetXObjectByName (keyName );if _aaaae ==nil {return nil ,nil ;};if _fdfcff !=XObjectTypeForm {return nil ,_ad .New ("\u006e\u006f\u0074\u0020\u0061\u0020\u0066\u006f\u0072\u006d");
|
||
};_aadcg ,_cgcfb :=NewXObjectFormFromStream (_aaaae );if _cgcfb !=nil {return nil ,_cgcfb ;};return _aadcg ,nil ;};func (_ddfc *PdfReader )newPdfAnnotationSquigglyFromDict (_fad *_fd .PdfObjectDictionary )(*PdfAnnotationSquiggly ,error ){_fabc :=PdfAnnotationSquiggly {};
|
||
_ebaa ,_eaad :=_ddfc .newPdfAnnotationMarkupFromDict (_fad );if _eaad !=nil {return nil ,_eaad ;};_fabc .PdfAnnotationMarkup =_ebaa ;_fabc .QuadPoints =_fad .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_fabc ,nil ;};func (_fec *PdfColorspaceLab )String ()string {return "\u004c\u0061\u0062"};
|
||
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a CalRGB device.
|
||
func (_fdgc *PdfColorspaceCalRGB )GetNumComponents ()int {return 3};
|
||
|
||
// NewPdfAnnotationSquare returns a new square annotation.
|
||
func NewPdfAnnotationSquare ()*PdfAnnotationSquare {_ecb :=NewPdfAnnotation ();_eadf :=&PdfAnnotationSquare {};_eadf .PdfAnnotation =_ecb ;_eadf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ecb .SetContext (_eadf );return _eadf ;};
|
||
|
||
// BaseFont returns the font's "BaseFont" field.
|
||
func (_cfeed *PdfFont )BaseFont ()string {return _cfeed .baseFields ()._ffedb };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gec *PdfAnnotationFileAttachment )ToPdfObject ()_fd .PdfObject {_gec .PdfAnnotation .ToPdfObject ();_adac :=_gec ._aeb ;_gbab :=_adac .PdfObject .(*_fd .PdfObjectDictionary );_gec .PdfAnnotationMarkup .appendToPdfDictionary (_gbab );_gbab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074"));
|
||
_gbab .SetIfNotNil ("\u0046\u0053",_gec .FS );_gbab .SetIfNotNil ("\u004e\u0061\u006d\u0065",_gec .Name );return _adac ;};func (_ecdce *PdfAcroForm )filteredFields (_dgbaa FieldFilterFunc ,_ecffb bool )[]*PdfField {if _ecdce ==nil {return nil ;};return _ddgd (_ecdce .Fields ,_dgbaa ,_ecffb );
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_dgcb *PdfFunctionType3 )ToPdfObject ()_fd .PdfObject {_fcbd :=_fd .MakeDict ();_fcbd .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (3));_dbeaf :=&_fd .PdfObjectArray {};for _ ,_acaagb :=range _dgcb .Domain {_dbeaf .Append (_fd .MakeFloat (_acaagb ));
|
||
};_fcbd .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dbeaf );if _dgcb .Range !=nil {_cdacf :=&_fd .PdfObjectArray {};for _ ,_dbbb :=range _dgcb .Range {_cdacf .Append (_fd .MakeFloat (_dbbb ));};_fcbd .Set ("\u0052\u0061\u006eg\u0065",_cdacf );};if _dgcb .Functions !=nil {_agcca :=&_fd .PdfObjectArray {};
|
||
for _ ,_edgc :=range _dgcb .Functions {_agcca .Append (_edgc .ToPdfObject ());};_fcbd .Set ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es",_agcca );};if _dgcb .Bounds !=nil {_ceagd :=&_fd .PdfObjectArray {};for _ ,_fbege :=range _dgcb .Bounds {_ceagd .Append (_fd .MakeFloat (_fbege ));
|
||
};_fcbd .Set ("\u0042\u006f\u0075\u006e\u0064\u0073",_ceagd );};if _dgcb .Encode !=nil {_eceba :=&_fd .PdfObjectArray {};for _ ,_agde :=range _dgcb .Encode {_eceba .Append (_fd .MakeFloat (_agde ));};_fcbd .Set ("\u0045\u006e\u0063\u006f\u0064\u0065",_eceba );
|
||
};if _dgcb ._dcaf !=nil {_dgcb ._dcaf .PdfObject =_fcbd ;return _dgcb ._dcaf ;};return _fcbd ;};type pdfCIDFontType0 struct{fontCommon ;_fdbba *_fd .PdfIndirectObject ;_ffabe _ee .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// (Required) Dictionary that defines the character collection of the CIDFont.
|
||
// See Table 116.
|
||
CIDSystemInfo *_fd .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _fd .PdfObject ;W _fd .PdfObject ;DW2 _fd .PdfObject ;W2 _fd .PdfObject ;_ccca map[_ee .CharCode ]float64 ;_aaeef 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 []*_fd .PdfObjectStream ;OCSP []*_fd .PdfObjectStream ;CRL []*_fd .PdfObjectStream ;TU *_fd .PdfObjectString ;TS *_fd .PdfObjectString ;};
|
||
|
||
// 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 ;
|
||
|
||
// PdfAnnotationWatermark represents Watermark annotations.
|
||
// (Section 12.5.6.22).
|
||
type PdfAnnotationWatermark struct{*PdfAnnotation ;FixedPrint _fd .PdfObject ;};
|
||
|
||
// NewPermissions returns a new permissions object.
|
||
func NewPermissions (docMdp *PdfSignature )*Permissions {_ccbd :=Permissions {};_ccbd .DocMDP =docMdp ;_eegbb :=_fd .MakeDict ();_eegbb .Set ("\u0044\u006f\u0063\u004d\u0044\u0050",docMdp .ToPdfObject ());_ccbd ._ecebg =_eegbb ;return &_ccbd ;};
|
||
|
||
// ValidateSignatures validates digital signatures in the document.
|
||
func (_dedb *PdfReader )ValidateSignatures (handlers []SignatureHandler )([]SignatureValidationResult ,error ){if _dedb .AcroForm ==nil {return nil ,nil ;};if _dedb .AcroForm .Fields ==nil {return nil ,nil ;};type sigFieldPair struct{_ddceg *PdfSignature ;
|
||
_bbadf *PdfField ;_ffggce SignatureHandler ;};var _begcc []*sigFieldPair ;for _ ,_bedaf :=range _dedb .AcroForm .AllFields (){if _bedaf .V ==nil {continue ;};if _dedc ,_dacab :=_fd .GetDict (_bedaf .V );_dacab {if _fccbf ,_bgbgd :=_fd .GetNameVal (_dedc .Get ("\u0054\u0079\u0070\u0065"));
|
||
_bgbgd &&(_fccbf =="\u0053\u0069\u0067"||_fccbf =="\u0044\u006f\u0063T\u0069\u006d\u0065\u0053\u0074\u0061\u006d\u0070"){_ddfed ,_fceea :=_fd .GetIndirect (_bedaf .V );if !_fceea {_ag .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 ;};_aecf ,_bfag :=_dedb .newPdfSignatureFromIndirect (_ddfed );if _bfag !=nil {return nil ,_bfag ;};var _gcdeg SignatureHandler ;for _ ,_bafab :=range handlers {if _bafab .IsApplicable (_aecf ){_gcdeg =_bafab ;break ;};};_begcc =append (_begcc ,&sigFieldPair {_ddceg :_aecf ,_bbadf :_bedaf ,_ffggce :_gcdeg });
|
||
};};};var _gedde []SignatureValidationResult ;for _ ,_dggfd :=range _begcc {_bcafd :=SignatureValidationResult {IsSigned :true ,Fields :[]*PdfField {_dggfd ._bbadf }};if _dggfd ._ffggce ==nil {_bcafd .Errors =append (_bcafd .Errors ,"\u0068a\u006ed\u006c\u0065\u0072\u0020\u006e\u006f\u0074\u0020\u0073\u0065\u0074");
|
||
_gedde =append (_gedde ,_bcafd );continue ;};_gcdde ,_bddega :=_dggfd ._ffggce .NewDigest (_dggfd ._ddceg );if _bddega !=nil {_bcafd .Errors =append (_bcafd .Errors ,"\u0064\u0069\u0067e\u0073\u0074\u0020\u0065\u0072\u0072\u006f\u0072",_bddega .Error ());
|
||
_gedde =append (_gedde ,_bcafd );continue ;};_ddfbf :=_dggfd ._ddceg .ByteRange ;if _ddfbf ==nil {_bcafd .Errors =append (_bcafd .Errors ,"\u0042\u0079\u0074\u0065\u0052\u0061\u006e\u0067\u0065\u0020\u006e\u006ft\u0020\u0073\u0065\u0074");_gedde =append (_gedde ,_bcafd );
|
||
continue ;};for _cdbae :=0;_cdbae < _ddfbf .Len ();_cdbae =_cdbae +2{_baeaf ,_ :=_fd .GetNumberAsInt64 (_ddfbf .Get (_cdbae ));_baged ,_ :=_fd .GetIntVal (_ddfbf .Get (_cdbae +1));if _ ,_bfgde :=_dedb ._gcafg .Seek (_baeaf ,_bc .SeekStart );_bfgde !=nil {return nil ,_bfgde ;
|
||
};_dfdc :=make ([]byte ,_baged );if _ ,_fgda :=_dedb ._gcafg .Read (_dfdc );_fgda !=nil {return nil ,_fgda ;};_gcdde .Write (_dfdc );};var _gdge SignatureValidationResult ;if _bcgb ,_dgafg :=_dggfd ._ffggce .(SignatureHandlerDocMDP );_dgafg {_gdge ,_bddega =_bcgb .ValidateWithOpts (_dggfd ._ddceg ,_gcdde ,SignatureHandlerDocMDPParams {Parser :_dedb ._faaf });
|
||
}else {_gdge ,_bddega =_dggfd ._ffggce .Validate (_dggfd ._ddceg ,_gcdde );};if _bddega !=nil {_ag .Log .Debug ("E\u0052\u0052\u004f\u0052: \u0025v\u0020\u0028\u0025\u0054\u0029 \u002d\u0020\u0073\u006b\u0069\u0070",_bddega ,_dggfd ._ffggce );_gdge .Errors =append (_gdge .Errors ,_bddega .Error ());
|
||
};_gdge .Name =_dggfd ._ddceg .Name .Decoded ();_gdge .Reason =_dggfd ._ddceg .Reason .Decoded ();if _dggfd ._ddceg .M !=nil {_gfabc ,_acade :=NewPdfDate (_dggfd ._ddceg .M .String ());if _acade !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_acade );
|
||
_gdge .Errors =append (_gdge .Errors ,_acade .Error ());continue ;};_gdge .Date =_gfabc ;};_gdge .ContactInfo =_dggfd ._ddceg .ContactInfo .Decoded ();_gdge .Location =_dggfd ._ddceg .Location .Decoded ();_gdge .Fields =_bcafd .Fields ;_gedde =append (_gedde ,_gdge );
|
||
};return _gedde ,nil ;};func (_febc *PdfReader )newPdfAnnotationScreenFromDict (_abbc *_fd .PdfObjectDictionary )(*PdfAnnotationScreen ,error ){_cgbb :=PdfAnnotationScreen {};_cgbb .T =_abbc .Get ("\u0054");_cgbb .MK =_abbc .Get ("\u004d\u004b");_cgbb .A =_abbc .Get ("\u0041");
|
||
_cgbb .AA =_abbc .Get ("\u0041\u0041");return &_cgbb ,nil ;};
|
||
|
||
// IsTerminal returns true for terminal fields, false otherwise.
|
||
// Terminal fields are fields whose descendants are only widget annotations.
|
||
func (_ccfg *PdfField )IsTerminal ()bool {return len (_ccfg .Kids )==0};
|
||
|
||
// 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 (_gcfc *PdfPage )SetContentStreams (cStreams []string ,encoder _fd .StreamEncoder )error {if len (cStreams )==0{_gcfc .Contents =nil ;return nil ;};if encoder ==nil {encoder =_fd .NewRawEncoder ();};var _fefaf []*_fd .PdfObjectStream ;for _ ,_efaeg :=range cStreams {_gedcd :=&_fd .PdfObjectStream {};
|
||
_cedge :=encoder .MakeStreamDict ();_bdgce ,_dfgff :=encoder .EncodeBytes ([]byte (_efaeg ));if _dfgff !=nil {return _dfgff ;};_cedge .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_bdgce ))));_gedcd .PdfObjectDictionary =_cedge ;
|
||
_gedcd .Stream =_bdgce ;_fefaf =append (_fefaf ,_gedcd );};if len (_fefaf )==1{_gcfc .Contents =_fefaf [0];}else {_dcecac :=_fd .MakeArray ();for _ ,_accgde :=range _fefaf {_dcecac .Append (_accgde );};_gcfc .Contents =_dcecac ;};return nil ;};
|
||
|
||
// NewPdfColorspaceSpecialSeparation returns a new separation color.
|
||
func NewPdfColorspaceSpecialSeparation ()*PdfColorspaceSpecialSeparation {_dgfe :=&PdfColorspaceSpecialSeparation {};return _dgfe ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eff *PdfAnnotationHighlight )ToPdfObject ()_fd .PdfObject {_eff .PdfAnnotation .ToPdfObject ();_gbfc :=_eff ._aeb ;_ebge :=_gbfc .PdfObject .(*_fd .PdfObjectDictionary );_eff .PdfAnnotationMarkup .appendToPdfDictionary (_ebge );_ebge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t"));
|
||
_ebge .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_eff .QuadPoints );return _gbfc ;};
|
||
|
||
// PdfAnnotationFileAttachment represents FileAttachment annotations.
|
||
// (Section 12.5.6.15).
|
||
type PdfAnnotationFileAttachment struct{*PdfAnnotation ;*PdfAnnotationMarkup ;FS _fd .PdfObject ;Name _fd .PdfObject ;};
|
||
|
||
// PdfActionThread represents a thread action.
|
||
type PdfActionThread struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;B _fd .PdfObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cfdd *PdfAnnotationText )ToPdfObject ()_fd .PdfObject {_cfdd .PdfAnnotation .ToPdfObject ();_cdgg :=_cfdd ._aeb ;_gbcf :=_cdgg .PdfObject .(*_fd .PdfObjectDictionary );if _cfdd .PdfAnnotationMarkup !=nil {_cfdd .PdfAnnotationMarkup .appendToPdfDictionary (_gbcf );
|
||
};_gbcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0054\u0065\u0078\u0074"));_gbcf .SetIfNotNil ("\u004f\u0070\u0065\u006e",_cfdd .Open );_gbcf .SetIfNotNil ("\u004e\u0061\u006d\u0065",_cfdd .Name );_gbcf .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_cfdd .State );
|
||
_gbcf .SetIfNotNil ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c",_cfdd .StateModel );return _cdgg ;};
|
||
|
||
// 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 ,_fbbec :_fd .MakeDict ()};
|
||
};func _edbab (_dcbb *PdfAnnotation )(*XObjectForm ,*PdfRectangle ,error ){_dceg ,_baec :=_fd .GetDict (_dcbb .AP );if !_baec {return nil ,nil ,_ad .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 _dceg ==nil {return nil ,nil ,nil ;};_agga ,_baec :=_fd .GetArray (_dcbb .Rect );if !_baec ||_agga .Len ()!=4{return nil ,nil ,_ad .New ("\u0072\u0065\u0063t\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_dfcace ,_gebce :=NewPdfRectangle (*_agga );
|
||
if _gebce !=nil {return nil ,nil ,_gebce ;};_gage :=_fd .TraceToDirectObject (_dceg .Get ("\u004e"));switch _gecbbg :=_gage .(type ){case *_fd .PdfObjectStream :_ccegcg :=_gecbbg ;_ecea ,_cgbf :=NewXObjectFormFromStream (_ccegcg );return _ecea ,_dfcace ,_cgbf ;
|
||
case *_fd .PdfObjectDictionary :_gafc :=_gecbbg ;if _gafc ==nil {_ag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u0067e\u0074\u0020\u0061\u0070\u0070\u0065\u0061r\u0061\u006e\u0063\u0065\u002e\u0020\u0044\u0069\u0063\u0074\u0069o\u006e\u0061\u0072\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
return nil ,nil ,nil ;};var _dagab _fd .PdfObject ;_fffe ,_fcedd :=_fd .GetName (_dcbb .AS );if _fcedd {_dagab =_gafc .Get (*_fffe );}else {_eeaac :=_dcbb ._aeb .PdfObject .(*_fd .PdfObjectDictionary );if _eeaac ==nil {_ag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020F\u0061\u0069\u006ce\u0064\u0020\u0074\u006f \u0067\u0065\u0074\u0020\u0061\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0020\u0066\u0072\u006f\u006d\u0020\u0076\u0061\u006c\u0075\u0065\u002e");
|
||
return nil ,nil ,nil ;};if _agadc :=_eeaac .Get ("\u0056");_agadc !=nil {_dagab =_gafc .Get (_fd .PdfObjectName (_agadc .String ()));};};if _dagab ==nil {_ag .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 ;};_cgbc ,_fcedd :=_fd .GetStream (_dagab );if !_fcedd {_ag .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",_fffe );
|
||
return nil ,nil ,_ad .New ("\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};_gbaef ,_acba :=NewXObjectFormFromStream (_cgbc );return _gbaef ,_dfcace ,_acba ;};_ag .Log .Debug ("\u0049\u006e\u0076\u0061li\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0066\u006f\u0072\u0020\u004e\u003a\u0020%\u0054",_gage );
|
||
return nil ,nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};
|
||
|
||
// PdfFieldButton represents a button field which includes push buttons, checkboxes, and radio buttons.
|
||
type PdfFieldButton struct{*PdfField ;Opt *_fd .PdfObjectArray ;_daeaa *Image ;};
|
||
|
||
// 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 (_agdb int ,_bffa *PdfPage )error ;
|
||
|
||
// PdfBorderStyle represents a border style dictionary (12.5.4 Border Styles p. 394).
|
||
type PdfBorderStyle struct{W *float64 ;S *BorderStyle ;D *[]int ;_cdd _fd .PdfObject ;};
|
||
|
||
// ToPdfObject returns an indirect object containing the signature field dictionary.
|
||
func (_dffbf *PdfFieldSignature )ToPdfObject ()_fd .PdfObject {if _dffbf .PdfAnnotationWidget !=nil {_dffbf .PdfAnnotationWidget .ToPdfObject ();};_dffbf .PdfField .ToPdfObject ();_agff :=_dffbf ._dffeb ;_dggd :=_agff .PdfObject .(*_fd .PdfObjectDictionary );
|
||
_dggd .SetIfNotNil ("\u0046\u0054",_fd .MakeName ("\u0053\u0069\u0067"));_dggd .SetIfNotNil ("\u004c\u006f\u0063\u006b",_dffbf .Lock );_dggd .SetIfNotNil ("\u0053\u0056",_dffbf .SV );if _dffbf .V !=nil {_dggd .SetIfNotNil ("\u0056",_dffbf .V .ToPdfObject ());
|
||
};return _agff ;};
|
||
|
||
// NewPdfActionSetOCGState returns a new "named" action.
|
||
func NewPdfActionSetOCGState ()*PdfActionSetOCGState {_dbb :=NewPdfAction ();_bce :=&PdfActionSetOCGState {};_bce .PdfAction =_dbb ;_dbb .SetContext (_bce );return _bce ;};func (_aegda fontCommon )fontFlags ()int {if _aegda ._babe ==nil {return 0;};return _aegda ._babe ._egced ;
|
||
};
|
||
|
||
// DecodeArray returns the component range values for the DeviceN colorspace.
|
||
// [0 1.0 0 1.0 ...] for each color component.
|
||
func (_beea *PdfColorspaceDeviceN )DecodeArray ()[]float64 {var _fdda []float64 ;for _edbgc :=0;_edbgc < _beea .GetNumComponents ();_edbgc ++{_fdda =append (_fdda ,0.0,1.0);};return _fdda ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ccba *PdfAnnotationFreeText )ToPdfObject ()_fd .PdfObject {_ccba .PdfAnnotation .ToPdfObject ();_ddb :=_ccba ._aeb ;_bebd :=_ddb .PdfObject .(*_fd .PdfObjectDictionary );_ccba .PdfAnnotationMarkup .appendToPdfDictionary (_bebd );_bebd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074"));
|
||
_bebd .SetIfNotNil ("\u0044\u0041",_ccba .DA );_bebd .SetIfNotNil ("\u0051",_ccba .Q );_bebd .SetIfNotNil ("\u0052\u0043",_ccba .RC );_bebd .SetIfNotNil ("\u0044\u0053",_ccba .DS );_bebd .SetIfNotNil ("\u0043\u004c",_ccba .CL );_bebd .SetIfNotNil ("\u0049\u0054",_ccba .IT );
|
||
_bebd .SetIfNotNil ("\u0042\u0045",_ccba .BE );_bebd .SetIfNotNil ("\u0052\u0044",_ccba .RD );_bebd .SetIfNotNil ("\u0042\u0053",_ccba .BS );_bebd .SetIfNotNil ("\u004c\u0045",_ccba .LE );return _ddb ;};func (_geff Image )getBase ()_gbed .ImageBase {return _gbed .NewImageBase (int (_geff .Width ),int (_geff .Height ),int (_geff .BitsPerComponent ),_geff .ColorComponents ,_geff .Data ,_geff ._gfffd ,_geff ._cdbdc );
|
||
};
|
||
|
||
// GetPageDict converts the Page to a PDF object dictionary.
|
||
func (_gddb *PdfPage )GetPageDict ()*_fd .PdfObjectDictionary {_dgccd :=_gddb ._gaec ;_dgccd .Clear ();_dgccd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067\u0065"));_dgccd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddb .Parent );
|
||
if _gddb .LastModified !=nil {_dgccd .Set ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_gddb .LastModified .ToPdfObject ());};if _gddb .Resources !=nil {_dgccd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_gddb .Resources .ToPdfObject ());
|
||
};if _gddb .CropBox !=nil {_dgccd .Set ("\u0043r\u006f\u0070\u0042\u006f\u0078",_gddb .CropBox .ToPdfObject ());};if _gddb .MediaBox !=nil {_dgccd .Set ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078",_gddb .MediaBox .ToPdfObject ());};if _gddb .BleedBox !=nil {_dgccd .Set ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078",_gddb .BleedBox .ToPdfObject ());
|
||
};if _gddb .TrimBox !=nil {_dgccd .Set ("\u0054r\u0069\u006d\u0042\u006f\u0078",_gddb .TrimBox .ToPdfObject ());};if _gddb .ArtBox !=nil {_dgccd .Set ("\u0041\u0072\u0074\u0042\u006f\u0078",_gddb .ArtBox .ToPdfObject ());};_dgccd .SetIfNotNil ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f",_gddb .BoxColorInfo );
|
||
_dgccd .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_gddb .Contents );if _gddb .Rotate !=nil {_dgccd .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_fd .MakeInteger (*_gddb .Rotate ));};_dgccd .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_gddb .Group );
|
||
_dgccd .SetIfNotNil ("\u0054\u0068\u0075m\u0062",_gddb .Thumb );_dgccd .SetIfNotNil ("\u0042",_gddb .B );_dgccd .SetIfNotNil ("\u0044\u0075\u0072",_gddb .Dur );_dgccd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_gddb .Trans );_dgccd .SetIfNotNil ("\u0041\u0041",_gddb .AA );
|
||
_dgccd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gddb .Metadata );_dgccd .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_gddb .PieceInfo );_dgccd .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_gddb .StructParents );
|
||
_dgccd .SetIfNotNil ("\u0049\u0044",_gddb .ID );_dgccd .SetIfNotNil ("\u0050\u005a",_gddb .PZ );_dgccd .SetIfNotNil ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f",_gddb .SeparationInfo );_dgccd .SetIfNotNil ("\u0054\u0061\u0062\u0073",_gddb .Tabs );
|
||
_dgccd .SetIfNotNil ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064",_gddb .TemplateInstantiated );_dgccd .SetIfNotNil ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s",_gddb .PresSteps );_dgccd .SetIfNotNil ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074",_gddb .UserUnit );
|
||
_dgccd .SetIfNotNil ("\u0056\u0050",_gddb .VP );if _gddb ._gbaf !=nil {_fcdg :=_fd .MakeArray ();for _ ,_dbbbb :=range _gddb ._gbaf {if _ffged :=_dbbbb .GetContext ();_ffged !=nil {_fcdg .Append (_ffged .ToPdfObject ());}else {_fcdg .Append (_dbbbb .ToPdfObject ());
|
||
};};if _fcdg .Len ()> 0{_dgccd .Set ("\u0041\u006e\u006e\u006f\u0074\u0073",_fcdg );};}else if _gddb .Annots !=nil {_dgccd .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0073",_gddb .Annots );};return _dgccd ;};
|
||
|
||
// NewPdfActionResetForm returns a new "reset form" action.
|
||
func NewPdfActionResetForm ()*PdfActionResetForm {_bcf :=NewPdfAction ();_bgc :=&PdfActionResetForm {};_bgc .PdfAction =_bcf ;_bcf .SetContext (_bgc );return _bgc ;};func (_beg *PdfReader )newPdfAnnotationFromIndirectObject (_bcd *_fd .PdfIndirectObject )(*PdfAnnotation ,error ){_gdg ,_gcg :=_bcd .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_gcg {return nil ,_dc .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 :=_beg ._fbabb .GetModelFromPrimitive (_gdg );model !=nil {_gfd ,_abg :=model .(*PdfAnnotation );if !_abg {return nil ,_dc .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 _gfd ,nil ;};_acc :=&PdfAnnotation {};_acc ._aeb =_bcd ;_beg ._fbabb .Register (_gdg ,_acc );if _fdcg :=_gdg .Get ("\u0054\u0079\u0070\u0065");_fdcg !=nil {_ggd ,_abe :=_fdcg .(*_fd .PdfObjectName );if !_abe {_ag .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",_fdcg );
|
||
}else {if *_ggd !="\u0041\u006e\u006eo\u0074"{_ag .Log .Trace ("\u0055\u006e\u0073\u0075\u0073\u0070\u0065\u0063\u0074\u0065d\u0020\u0054\u0079\u0070\u0065\u0020\u0021=\u0020\u0041\u006e\u006e\u006f\u0074\u0020\u0028\u0025\u0073\u0029",*_ggd );};};};if _aeba :=_gdg .Get ("\u0052\u0065\u0063\u0074");
|
||
_aeba !=nil {_acc .Rect =_aeba ;};if _deeb :=_gdg .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");_deeb !=nil {_acc .Contents =_deeb ;};if _fab :=_gdg .Get ("\u0050");_fab !=nil {_acc .P =_fab ;};if _befe :=_gdg .Get ("\u004e\u004d");_befe !=nil {_acc .NM =_befe ;
|
||
};if _bge :=_gdg .Get ("\u004d");_bge !=nil {_acc .M =_bge ;};if _bfge :=_gdg .Get ("\u0046");_bfge !=nil {_acc .F =_bfge ;};if _cgc :=_gdg .Get ("\u0041\u0050");_cgc !=nil {_acc .AP =_cgc ;};if _gcbg :=_gdg .Get ("\u0041\u0053");_gcbg !=nil {_acc .AS =_gcbg ;
|
||
};if _ffcc :=_gdg .Get ("\u0042\u006f\u0072\u0064\u0065\u0072");_ffcc !=nil {_acc .Border =_ffcc ;};if _fdb :=_gdg .Get ("\u0043");_fdb !=nil {_acc .C =_fdb ;};if _bfa :=_gdg .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_bfa !=nil {_acc .StructParent =_bfa ;};if _ccfb :=_gdg .Get ("\u004f\u0043");_ccfb !=nil {_acc .OC =_ccfb ;};_cbfb :=_gdg .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");if _cbfb ==nil {_ag .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");
|
||
_acc ._cfda =nil ;return _acc ,nil ;};_bded ,_gdcc :=_cbfb .(*_fd .PdfObjectName );if !_gdcc {_ag .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",_cbfb );
|
||
return nil ,_dc .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",_cbfb );};switch *_bded {case "\u0054\u0065\u0078\u0074":_bbee ,_egg :=_beg .newPdfAnnotationTextFromDict (_gdg );
|
||
if _egg !=nil {return nil ,_egg ;};_bbee .PdfAnnotation =_acc ;_acc ._cfda =_bbee ;return _acc ,nil ;case "\u004c\u0069\u006e\u006b":_aae ,_bdbb :=_beg .newPdfAnnotationLinkFromDict (_gdg );if _bdbb !=nil {return nil ,_bdbb ;};_aae .PdfAnnotation =_acc ;
|
||
_acc ._cfda =_aae ;return _acc ,nil ;case "\u0046\u0072\u0065\u0065\u0054\u0065\u0078\u0074":_ccc ,_bbfa :=_beg .newPdfAnnotationFreeTextFromDict (_gdg );if _bbfa !=nil {return nil ,_bbfa ;};_ccc .PdfAnnotation =_acc ;_acc ._cfda =_ccc ;return _acc ,nil ;
|
||
case "\u004c\u0069\u006e\u0065":_gac ,_cfb :=_beg .newPdfAnnotationLineFromDict (_gdg );if _cfb !=nil {return nil ,_cfb ;};_gac .PdfAnnotation =_acc ;_acc ._cfda =_gac ;_ag .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",_acc ,_acc );
|
||
_ag .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",_gac ,_gac );_ag .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",_gac .PdfAnnotationMarkup ,_gac .PdfAnnotationMarkup );
|
||
return _acc ,nil ;case "\u0053\u0071\u0075\u0061\u0072\u0065":_ebgd ,_cdb :=_beg .newPdfAnnotationSquareFromDict (_gdg );if _cdb !=nil {return nil ,_cdb ;};_ebgd .PdfAnnotation =_acc ;_acc ._cfda =_ebgd ;return _acc ,nil ;case "\u0043\u0069\u0072\u0063\u006c\u0065":_eabb ,_gged :=_beg .newPdfAnnotationCircleFromDict (_gdg );
|
||
if _gged !=nil {return nil ,_gged ;};_eabb .PdfAnnotation =_acc ;_acc ._cfda =_eabb ;return _acc ,nil ;case "\u0050o\u006c\u0079\u0067\u006f\u006e":_eba ,_bcg :=_beg .newPdfAnnotationPolygonFromDict (_gdg );if _bcg !=nil {return nil ,_bcg ;};_eba .PdfAnnotation =_acc ;
|
||
_acc ._cfda =_eba ;return _acc ,nil ;case "\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065":_eabca ,_agef :=_beg .newPdfAnnotationPolyLineFromDict (_gdg );if _agef !=nil {return nil ,_agef ;};_eabca .PdfAnnotation =_acc ;_acc ._cfda =_eabca ;return _acc ,nil ;
|
||
case "\u0048i\u0067\u0068\u006c\u0069\u0067\u0068t":_ggc ,_gbbc :=_beg .newPdfAnnotationHighlightFromDict (_gdg );if _gbbc !=nil {return nil ,_gbbc ;};_ggc .PdfAnnotation =_acc ;_acc ._cfda =_ggc ;return _acc ,nil ;case "\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee":_feb ,_dace :=_beg .newPdfAnnotationUnderlineFromDict (_gdg );
|
||
if _dace !=nil {return nil ,_dace ;};_feb .PdfAnnotation =_acc ;_acc ._cfda =_feb ;return _acc ,nil ;case "\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079":_bgbe ,_adfe :=_beg .newPdfAnnotationSquigglyFromDict (_gdg );if _adfe !=nil {return nil ,_adfe ;
|
||
};_bgbe .PdfAnnotation =_acc ;_acc ._cfda =_bgbe ;return _acc ,nil ;case "\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t":_fcga ,_abcf :=_beg .newPdfAnnotationStrikeOut (_gdg );if _abcf !=nil {return nil ,_abcf ;};_fcga .PdfAnnotation =_acc ;_acc ._cfda =_fcga ;
|
||
return _acc ,nil ;case "\u0043\u0061\u0072e\u0074":_dgf ,_fcc :=_beg .newPdfAnnotationCaretFromDict (_gdg );if _fcc !=nil {return nil ,_fcc ;};_dgf .PdfAnnotation =_acc ;_acc ._cfda =_dgf ;return _acc ,nil ;case "\u0053\u0074\u0061m\u0070":_eecd ,_ccbb :=_beg .newPdfAnnotationStampFromDict (_gdg );
|
||
if _ccbb !=nil {return nil ,_ccbb ;};_eecd .PdfAnnotation =_acc ;_acc ._cfda =_eecd ;return _acc ,nil ;case "\u0049\u006e\u006b":_eef ,_dgd :=_beg .newPdfAnnotationInkFromDict (_gdg );if _dgd !=nil {return nil ,_dgd ;};_eef .PdfAnnotation =_acc ;_acc ._cfda =_eef ;
|
||
return _acc ,nil ;case "\u0050\u006f\u0070u\u0070":_gebg ,_adaf :=_beg .newPdfAnnotationPopupFromDict (_gdg );if _adaf !=nil {return nil ,_adaf ;};_gebg .PdfAnnotation =_acc ;_acc ._cfda =_gebg ;return _acc ,nil ;case "\u0046\u0069\u006c\u0065\u0041\u0074\u0074\u0061\u0063h\u006d\u0065\u006e\u0074":_ecbg ,_fddfe :=_beg .newPdfAnnotationFileAttachmentFromDict (_gdg );
|
||
if _fddfe !=nil {return nil ,_fddfe ;};_ecbg .PdfAnnotation =_acc ;_acc ._cfda =_ecbg ;return _acc ,nil ;case "\u0053\u006f\u0075n\u0064":_accb ,_dbc :=_beg .newPdfAnnotationSoundFromDict (_gdg );if _dbc !=nil {return nil ,_dbc ;};_accb .PdfAnnotation =_acc ;
|
||
_acc ._cfda =_accb ;return _acc ,nil ;case "\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a":_gag ,_ffa :=_beg .newPdfAnnotationRichMediaFromDict (_gdg );if _ffa !=nil {return nil ,_ffa ;};_gag .PdfAnnotation =_acc ;_acc ._cfda =_gag ;return _acc ,nil ;case "\u004d\u006f\u0076i\u0065":_dfc ,_ccbc :=_beg .newPdfAnnotationMovieFromDict (_gdg );
|
||
if _ccbc !=nil {return nil ,_ccbc ;};_dfc .PdfAnnotation =_acc ;_acc ._cfda =_dfc ;return _acc ,nil ;case "\u0053\u0063\u0072\u0065\u0065\u006e":_daddf ,_ccef :=_beg .newPdfAnnotationScreenFromDict (_gdg );if _ccef !=nil {return nil ,_ccef ;};_daddf .PdfAnnotation =_acc ;
|
||
_acc ._cfda =_daddf ;return _acc ,nil ;case "\u0057\u0069\u0064\u0067\u0065\u0074":_geg ,_adb :=_beg .newPdfAnnotationWidgetFromDict (_gdg );if _adb !=nil {return nil ,_adb ;};_geg .PdfAnnotation =_acc ;_acc ._cfda =_geg ;return _acc ,nil ;case "P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b":_ceg ,_fccg :=_beg .newPdfAnnotationPrinterMarkFromDict (_gdg );
|
||
if _fccg !=nil {return nil ,_fccg ;};_ceg .PdfAnnotation =_acc ;_acc ._cfda =_ceg ;return _acc ,nil ;case "\u0054r\u0061\u0070\u004e\u0065\u0074":_fbcf ,_ffg :=_beg .newPdfAnnotationTrapNetFromDict (_gdg );if _ffg !=nil {return nil ,_ffg ;};_fbcf .PdfAnnotation =_acc ;
|
||
_acc ._cfda =_fbcf ;return _acc ,nil ;case "\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k":_bbg ,_edgb :=_beg .newPdfAnnotationWatermarkFromDict (_gdg );if _edgb !=nil {return nil ,_edgb ;};_bbg .PdfAnnotation =_acc ;_acc ._cfda =_bbg ;return _acc ,nil ;
|
||
case "\u0033\u0044":_fcd ,_faa :=_beg .newPdfAnnotation3DFromDict (_gdg );if _faa !=nil {return nil ,_faa ;};_fcd .PdfAnnotation =_acc ;_acc ._cfda =_fcd ;return _acc ,nil ;case "\u0050\u0072\u006f\u006a\u0065\u0063\u0074\u0069\u006f\u006e":_dddb ,_dbd :=_beg .newPdfAnnotationProjectionFromDict (_gdg );
|
||
if _dbd !=nil {return nil ,_dbd ;};_dddb .PdfAnnotation =_acc ;_acc ._cfda =_dddb ;return _acc ,nil ;case "\u0052\u0065\u0064\u0061\u0063\u0074":_deaf ,_fde :=_beg .newPdfAnnotationRedactFromDict (_gdg );if _fde !=nil {return nil ,_fde ;};_deaf .PdfAnnotation =_acc ;
|
||
_acc ._cfda =_deaf ;return _acc ,nil ;};_ag .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",*_bded );
|
||
return nil ,nil ;};
|
||
|
||
// 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 ;_ecebg *_fd .PdfObjectDictionary ;};func (_ecedf *PdfReader )newPdfSignatureReferenceFromDict (_fedca *_fd .PdfObjectDictionary )(*PdfSignatureReference ,error ){if _bfaf ,_aabca :=_ecedf ._fbabb .GetModelFromPrimitive (_fedca ).(*PdfSignatureReference );
|
||
_aabca {return _bfaf ,nil ;};_gfdcg :=&PdfSignatureReference {_acdd :_fedca ,Data :_fedca .Get ("\u0044\u0061\u0074\u0061")};var _ccfeg bool ;_gfdcg .Type ,_ =_fd .GetName (_fedca .Get ("\u0054\u0079\u0070\u0065"));_gfdcg .TransformMethod ,_ccfeg =_fd .GetName (_fedca .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
if !_ccfeg {_ag .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 ;};_gfdcg .TransformParams ,_ =_fd .GetDict (_fedca .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_gfdcg .DigestMethod ,_ =_fd .GetName (_fedca .Get ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
return _gfdcg ,nil ;};
|
||
|
||
// K returns the value of the key component of the color.
|
||
func (_ggda *PdfColorDeviceCMYK )K ()float64 {return _ggda [3]};
|
||
|
||
// GetRevision returns the specific version of the PdfReader for the current Pdf document
|
||
func (_dafbe *PdfReader )GetRevision (revisionNumber int )(*PdfReader ,error ){_aabgg :=_dafbe ._faaf .GetRevisionNumber ();if revisionNumber < 0||revisionNumber > _aabgg {return nil ,_ad .New ("w\u0072\u006f\u006e\u0067 r\u0065v\u0069\u0073\u0069\u006f\u006e \u006e\u0075\u006d\u0062\u0065\u0072");
|
||
};if revisionNumber ==_aabgg {return _dafbe ,nil ;};if _dafbe ._afcee [revisionNumber ]!=nil {return _dafbe ._afcee [revisionNumber ],nil ;};_fadc :=_dafbe ;for _egffbd :=_aabgg -1;_egffbd >=revisionNumber ;_egffbd --{_gccgf ,_bbdddf :=_fadc .GetPreviousRevision ();
|
||
if _bbdddf !=nil {return nil ,_bbdddf ;};_dafbe ._afcee [_egffbd ]=_gccgf ;_fadc =_gccgf ;};return _fadc ,nil ;};
|
||
|
||
// FillWithAppearance populates `form` with values provided by `provider`.
|
||
// If not nil, `appGen` is used to generate appearance dictionaries for the
|
||
// field annotations, based on the specified settings. Otherwise, appearance
|
||
// generation is skipped.
|
||
// e.g.: appGen := annotator.FieldAppearance{OnlyIfMissing: true, RegenerateTextFields: true}
|
||
// NOTE: In next major version this functionality will be part of Fill. (v4)
|
||
func (_dfgab *PdfAcroForm )FillWithAppearance (provider FieldValueProvider ,appGen FieldAppearanceGenerator )error {_gdgce :=_dfgab .fill (provider ,appGen );if _gdgce !=nil {return _gdgce ;};if _ ,_egga :=provider .(FieldImageProvider );_egga {_gdgce =_dfgab .fillImageWithAppearance (provider .(FieldImageProvider ),appGen );
|
||
};return _gdgce ;};
|
||
|
||
// 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 (_agaa *PdfColorspaceCalRGB )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_febcg ,_cddg :=_fd .GetNumbersAsFloat (objects );
|
||
if _cddg !=nil {return nil ,_cddg ;};return _agaa .ColorFromFloats (_febcg );};func (_fac *PdfAnnotation )String ()string {_adab :="";_agfg ,_fdg :=_fac .ToPdfObject ().(*_fd .PdfIndirectObject );if _fdg {_adab =_dc .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_fac ._cfda ,_agfg .PdfObject .String ());
|
||
};return _adab ;};func (_ccfca *LTV )buildCertChain (_cdfgbc ,_egcce []*_gff .Certificate )([]*_gff .Certificate ,map[string ]*_gff .Certificate ,error ){_dfdfb :=map[string ]*_gff .Certificate {};for _ ,_fcgcg :=range _cdfgbc {_dfdfb [_fcgcg .Subject .CommonName ]=_fcgcg ;
|
||
};_fdbfd :=_cdfgbc ;for _ ,_fcbb :=range _egcce {_ffga :=_fcbb .Subject .CommonName ;if _ ,_gbaee :=_dfdfb [_ffga ];_gbaee {continue ;};_dfdfb [_ffga ]=_fcbb ;_fdbfd =append (_fdbfd ,_fcbb );};if len (_fdbfd )==0{return nil ,nil ,ErrSignNoCertificates ;
|
||
};var _fggb error ;for _dbbdb :=_fdbfd [0];_dbbdb !=nil &&!_ccfca .CertClient .IsCA (_dbbdb );{_agffg ,_adbf :=_dfdfb [_dbbdb .Issuer .CommonName ];if !_adbf {if _agffg ,_fggb =_ccfca .CertClient .GetIssuer (_dbbdb );_fggb !=nil {_ag .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",_fggb );
|
||
break ;};_dfdfb [_dbbdb .Issuer .CommonName ]=_agffg ;_fdbfd =append (_fdbfd ,_agffg );};_dbbdb =_agffg ;};return _fdbfd ,_dfdfb ,nil ;};const (FieldFlagClear FieldFlag =0;FieldFlagReadOnly FieldFlag =1;FieldFlagRequired FieldFlag =(1<<1);FieldFlagNoExport FieldFlag =(2<<1);
|
||
FieldFlagNoToggleToOff FieldFlag =(1<<14);FieldFlagRadio FieldFlag =(1<<15);FieldFlagPushbutton FieldFlag =(1<<16);FieldFlagRadiosInUnision FieldFlag =(1<<25);FieldFlagMultiline FieldFlag =(1<<12);FieldFlagPassword FieldFlag =(1<<13);FieldFlagFileSelect FieldFlag =(1<<20);
|
||
FieldFlagDoNotScroll FieldFlag =(1<<23);FieldFlagComb FieldFlag =(1<<24);FieldFlagRichText FieldFlag =(1<<26);FieldFlagDoNotSpellCheck FieldFlag =(1<<22);FieldFlagCombo FieldFlag =(1<<17);FieldFlagEdit FieldFlag =(1<<18);FieldFlagSort FieldFlag =(1<<19);
|
||
FieldFlagMultiSelect FieldFlag =(1<<21);FieldFlagCommitOnSelChange FieldFlag =(1<<27););func _cgdbg (_abceg *_fd .PdfObjectDictionary )(*PdfTilingPattern ,error ){_gcbgd :=&PdfTilingPattern {};_dfba :=_abceg .Get ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e");
|
||
if _dfba ==nil {_ag .Log .Debug ("\u0050\u0061\u0069\u006e\u0074\u0054\u0079\u0070\u0065\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_eeaae ,_fcbcc :=_dfba .(*_fd .PdfObjectInteger );if !_fcbcc {_ag .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",_dfba );
|
||
return nil ,_fd .ErrTypeError ;};_gcbgd .PaintType =_eeaae ;_dfba =_abceg .Get ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _dfba ==nil {_ag .Log .Debug ("\u0054i\u006ci\u006e\u0067\u0054\u0079\u0070e\u0020\u006di\u0073\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_affea ,_fcbcc :=_dfba .(*_fd .PdfObjectInteger );if !_fcbcc {_ag .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",_dfba );
|
||
return nil ,_fd .ErrTypeError ;};_gcbgd .TilingType =_affea ;_dfba =_abceg .Get ("\u0042\u0042\u006f\u0078");if _dfba ==nil {_ag .Log .Debug ("\u0042\u0042\u006fx\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_dfba =_fd .TraceToDirectObject (_dfba );_gfcaf ,_fcbcc :=_dfba .(*_fd .PdfObjectArray );if !_fcbcc {_ag .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",_dfba );
|
||
return nil ,_fd .ErrTypeError ;};_bdafc ,_abba :=NewPdfRectangle (*_gfcaf );if _abba !=nil {_ag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_abba );return nil ,_abba ;};_gcbgd .BBox =_bdafc ;_dfba =_abceg .Get ("\u0058\u0053\u0074e\u0070");
|
||
if _dfba ==nil {_ag .Log .Debug ("\u0058\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_dddedb ,_abba :=_fd .GetNumberAsFloat (_dfba );if _abba !=nil {_ag .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",_dddedb );
|
||
return nil ,_abba ;};_gcbgd .XStep =_fd .MakeFloat (_dddedb );_dfba =_abceg .Get ("\u0059\u0053\u0074e\u0070");if _dfba ==nil {_ag .Log .Debug ("\u0059\u0053\u0074\u0065\u0070\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;
|
||
};_eddac ,_abba :=_fd .GetNumberAsFloat (_dfba );if _abba !=nil {_ag .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",_eddac );
|
||
return nil ,_abba ;};_gcbgd .YStep =_fd .MakeFloat (_eddac );_dfba =_abceg .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _dfba ==nil {_ag .Log .Debug ("\u0052\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u0073\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");
|
||
return nil ,ErrRequiredAttributeMissing ;};_abceg ,_fcbcc =_fd .TraceToDirectObject (_dfba ).(*_fd .PdfObjectDictionary );if !_fcbcc {return nil ,_dc .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",_dfba );
|
||
};_bgbebg ,_abba :=NewPdfPageResourcesFromDict (_abceg );if _abba !=nil {return nil ,_abba ;};_gcbgd .Resources =_bgbebg ;if _fdacd :=_abceg .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_fdacd !=nil {_daggd ,_bgbf :=_fdacd .(*_fd .PdfObjectArray );if !_bgbf {_ag .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",_fdacd );
|
||
return nil ,_fd .ErrTypeError ;};_gcbgd .Matrix =_daggd ;};return _gcbgd ,nil ;};
|
||
|
||
// PdfActionGoTo represents a GoTo action.
|
||
type PdfActionGoTo struct{*PdfAction ;D _fd .PdfObject ;};
|
||
|
||
// NewPdfOutlineItem returns an initialized PdfOutlineItem.
|
||
func NewPdfOutlineItem ()*PdfOutlineItem {_cdeba :=&PdfOutlineItem {_ecga :_fd .MakeIndirectObject (_fd .MakeDict ())};_cdeba ._gcgcg =_cdeba ;return _cdeba ;};
|
||
|
||
// NewOutline returns a new outline instance.
|
||
func NewOutline ()*Outline {return &Outline {}};
|
||
|
||
// NewReaderOpts generates a default `ReaderOpts` instance.
|
||
func NewReaderOpts ()*ReaderOpts {return &ReaderOpts {Password :"",LazyLoad :true }};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bgcd *PdfActionSubmitForm )ToPdfObject ()_fd .PdfObject {_bgcd .PdfAction .ToPdfObject ();_edaf :=_bgcd ._bfb ;_bgf :=_edaf .PdfObject .(*_fd .PdfObjectDictionary );_bgf .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSubmitForm )));if _bgcd .F !=nil {_bgf .Set ("\u0046",_bgcd .F .ToPdfObject ());
|
||
};_bgf .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_bgcd .Fields );_bgf .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_bgcd .Flags );return _edaf ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_bgda *PdfColorspaceSpecialIndexed )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_abgge ,_bcgg :=_fd .GetNumbersAsFloat (objects );
|
||
if _bcgg !=nil {return nil ,_bcgg ;};return _bgda .ColorFromFloats (_abgge );};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_bgbeb *PdfFont )Encoder ()_ee .TextEncoder {_dcac :=_bgbeb .actualFont ();if _dcac ==nil {_ag .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",_bgbeb ._gbaac );
|
||
return nil ;};return _dcac .Encoder ();};func (_gcda *PdfReader )newPdfActionJavaScriptFromDict (_fba *_fd .PdfObjectDictionary )(*PdfActionJavaScript ,error ){return &PdfActionJavaScript {JS :_fba .Get ("\u004a\u0053")},nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_bffc *PdfColorDeviceGray )ToInteger (bits int )uint32 {_gffbd :=_af .Pow (2,float64 (bits ))-1;return uint32 (_gffbd *_bffc .Val ());};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_caae *PdfAnnotationLink )ToPdfObject ()_fd .PdfObject {_caae .PdfAnnotation .ToPdfObject ();_ffdb :=_caae ._aeb ;_cfcf :=_ffdb .PdfObject .(*_fd .PdfObjectDictionary );_cfcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004c\u0069\u006e\u006b"));
|
||
if _caae ._abb !=nil &&_caae ._abb ._ga !=nil {_cfcf .Set ("\u0041",_caae ._abb ._ga .ToPdfObject ());}else if _caae .A !=nil {_cfcf .Set ("\u0041",_caae .A );};_cfcf .SetIfNotNil ("\u0044\u0065\u0073\u0074",_caae .Dest );_cfcf .SetIfNotNil ("\u0048",_caae .H );
|
||
_cfcf .SetIfNotNil ("\u0050\u0041",_caae .PA );_cfcf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_caae .QuadPoints );_cfcf .SetIfNotNil ("\u0042\u0053",_caae .BS );return _ffdb ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_ffdge *PdfShadingPatternType3 )ToPdfObject ()_fd .PdfObject {_ffdge .PdfPattern .ToPdfObject ();_eccce :=_ffdge .getDict ();if _ffdge .Shading !=nil {_eccce .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_ffdge .Shading .ToPdfObject ());};if _ffdge .Matrix !=nil {_eccce .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_ffdge .Matrix );
|
||
};if _ffdge .ExtGState !=nil {_eccce .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_ffdge .ExtGState );};return _ffdge ._gcgba ;};
|
||
|
||
// Insert adds an outline item as a child of the current outline item,
|
||
// at the specified index.
|
||
func (_daaeg *OutlineItem )Insert (index uint ,item *OutlineItem ){_gcea :=uint (len (_daaeg .Entries ));if index > _gcea {index =_gcea ;};_daaeg .Entries =append (_daaeg .Entries [:index ],append ([]*OutlineItem {item },_daaeg .Entries [index :]...)...);
|
||
};func (_dfac *PdfReader )loadOutlines ()(*PdfOutlineTreeNode ,error ){if _dfac ._faaf .GetCrypter ()!=nil &&!_dfac ._faaf .IsAuthenticated (){return nil ,_dc .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");
|
||
};_ddaa :=_dfac ._gabca ;_ccfbcb :=_ddaa .Get ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");if _ccfbcb ==nil {return nil ,nil ;};_ag .Log .Trace ("\u002d\u0048\u0061\u0073\u0020\u006f\u0075\u0074\u006c\u0069\u006e\u0065\u0073");_ffcdg :=_fd .ResolveReference (_ccfbcb );
|
||
_ag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0020\u0072\u006f\u006f\u0074\u003a\u0020\u0025\u0076",_ffcdg );if _aedf :=_fd .IsNullObject (_ffcdg );_aedf {_ag .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 ;};_cdgge ,_bcdff :=_ffcdg .(*_fd .PdfIndirectObject );if !_bcdff {if _ ,_gbgdb :=_fd .GetDict (_ffcdg );!_gbgdb {_ag .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 ;};_ag .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");
|
||
_cdgge =_fd .MakeIndirectObject (_ffcdg );};_gecff ,_bcdff :=_cdgge .PdfObject .(*_fd .PdfObjectDictionary );if !_bcdff {return nil ,_ad .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");
|
||
};_ag .Log .Trace ("O\u0075\u0074\u006c\u0069ne\u0020r\u006f\u006f\u0074\u0020\u0064i\u0063\u0074\u003a\u0020\u0025\u0076",_gecff );_fcbg ,_ ,_dbcgd :=_dfac .buildOutlineTree (_cdgge ,nil ,nil ,nil );if _dbcgd !=nil {return nil ,_dbcgd ;};_ag .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",_fcbg );
|
||
return _fcbg ,nil ;};
|
||
|
||
// Add appends a top level outline item to the outline.
|
||
func (_cgabf *Outline )Add (item *OutlineItem ){_cgabf .Entries =append (_cgabf .Entries ,item )};
|
||
|
||
// SetLocation sets the `Location` field of the signature.
|
||
func (_aggfb *PdfSignature )SetLocation (location string ){_aggfb .Location =_fd .MakeString (location )};
|
||
|
||
// GetModelFromPrimitive returns the model corresponding to the `primitive` PdfObject.
|
||
func (_acee *modelManager )GetModelFromPrimitive (primitive _fd .PdfObject )PdfModel {model ,_ffgac :=_acee ._aabd [primitive ];if !_ffgac {return nil ;};return model ;};func (_daa *PdfReader )newPdfAnnotationRedactFromDict (_dda *_fd .PdfObjectDictionary )(*PdfAnnotationRedact ,error ){_daec :=PdfAnnotationRedact {};
|
||
_abgg ,_bfgg :=_daa .newPdfAnnotationMarkupFromDict (_dda );if _bfgg !=nil {return nil ,_bfgg ;};_daec .PdfAnnotationMarkup =_abgg ;_daec .QuadPoints =_dda .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_daec .IC =_dda .Get ("\u0049\u0043");
|
||
_daec .RO =_dda .Get ("\u0052\u004f");_daec .OverlayText =_dda .Get ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074");_daec .Repeat =_dda .Get ("\u0052\u0065\u0070\u0065\u0061\u0074");_daec .DA =_dda .Get ("\u0044\u0041");_daec .Q =_dda .Get ("\u0051");
|
||
return &_daec ,nil ;};
|
||
|
||
// ImageToRGB convert an indexed image to RGB.
|
||
func (_ccegc *PdfColorspaceSpecialIndexed )ImageToRGB (img Image )(Image ,error ){N :=_ccegc .Base .GetNumComponents ();if N < 1{return Image {},_dc .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 );
|
||
};_ffca :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),8,N ,nil ,img ._gfffd ,img ._cdbdc );_aefcc :=_bg .NewReader (img .getBase ());_acdb :=_bg .NewWriter (_ffca );var (_aaca uint32 ;_bafc int ;_cafcg error ;);for {_aaca ,_cafcg =_aefcc .ReadSample ();
|
||
if _cafcg ==_bc .EOF {break ;}else if _cafcg !=nil {return img ,_cafcg ;};_bafc =int (_aaca );_ag .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",_bafc ,N ,len (_ccegc ._fdac ));
|
||
if (_bafc +1)*N > len (_ccegc ._fdac ){_bafc =len (_ccegc ._fdac )/N -1;_ag .Log .Trace ("C\u006c\u0069\u0070\u0070in\u0067 \u0074\u006f\u0020\u0069\u006ed\u0065\u0078\u003a\u0020\u0025\u0064",_bafc );if _bafc < 0{_ag .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 _bcbda :=_bafc *N ;_bcbda < (_bafc +1)*N ;_bcbda ++{if _cafcg =_acdb .WriteSample (uint32 (_ccegc ._fdac [_bcbda ]));_cafcg !=nil {return img ,_cafcg ;};};};return _ccegc .Base .ImageToRGB (_eeafa (&_ffca ));};
|
||
|
||
// 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 (_ecdgd *PdfFont )CharcodesToStrings (charcodes []_ee .CharCode ,replacementText string )([]string ,int ,int ){_bdbcfc :=_ecdgd .baseFields ();_bbadc :=make ([]string ,0,len (charcodes ));_defgf :=0;_ceade :=_ecdgd .Encoder ();_aagfc :=_bdbcfc ._dgdg !=nil &&_ecdgd .IsSimple ()&&_ecdgd .Subtype ()=="\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"&&!_gg .Contains (_bdbcfc ._dgdg .Name (),"\u0049d\u0065\u006e\u0074\u0069\u0074\u0079-");
|
||
if !_aagfc &&_ceade !=nil {switch _bbdaa :=_ceade .(type ){case _ee .SimpleEncoder :_fbdfe :=_bbdaa .BaseName ();if _ ,_fdfec :=_geafg [_fbdfe ];_fdfec {for _ ,_dcab :=range charcodes {if _bdda ,_gaeb :=_ceade .CharcodeToRune (_dcab );_gaeb {_bbadc =append (_bbadc ,string (_bdda ));
|
||
}else {_ag .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",_dcab ,charcodes ,_bdbcfc .isCIDFont (),_ecdgd ,_ceade );
|
||
_defgf ++;_bbadc =append (_bbadc ,_gd .MissingCodeString );};};return _bbadc ,len (_bbadc ),_defgf ;};};};for _ ,_dffbfc :=range charcodes {if _bdbcfc ._dgdg !=nil {if _egae ,_bdbeb :=_bdbcfc ._dgdg .CharcodeToUnicode (_gd .CharCode (_dffbfc ));_bdbeb {_afgf ,_ :=_eb .DecodeLastRuneInString (_egae );
|
||
_bgggc :=_bgaef (_afgf );if !(_bgggc =="\u0043\u006f"){_bbadc =append (_bbadc ,_egae );continue ;};_ag .Log .Debug ("E\u0052\u0052\u004fR\u003a\u0020\u0054\u006f\u0055\u006e\u0069\u0063\u006f\u0064\u0065\u0020\u0043\u006d\u0061p\u0020\u0068\u0061\u0073\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063t\u0020\u006d\u0061\u0070\u0070\u0069\u006e\u0067.\u0020\u0063\u006f\u0064\u0065\u003d\u0030\u0078\u0025\u0030\u0034\u0078\u0020\u0069\u0073\u0020m\u0061\u0070\u0070\u0065\u0064 \u0074\u006f\u0020\u0061\u006e\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064 \u0063\u006f\u0064\u0065 \u0070\u006f\u0069\u006e\u0074\u0020\u0025\u0073",_dffbfc ,_egae );
|
||
};};if _ceade !=nil {if _abbcec ,_dcad :=_ceade .CharcodeToRune (_dffbfc );_dcad {_ecbcg :=_bgaef (_abbcec );if !(_ecbcg =="\u0043\u006f"){_bbadc =append (_bbadc ,string (_abbcec ));continue ;};_ag .Log .Debug ("\u0045\u0052R\u004f\u0052\u003a\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u0061\u0069\u006c\u0065\u0064\u002e \u0063\u006f\u0064\u0065\u003d\u0030x\u0025\u0030\u0034\u0078\u0020\u0069\u0073\u0020\u0064\u0065\u0063\u006f\u0064\u0065d\u0020\u0074o\u0020\u0061\u006e\u0020i\u006e\u0076\u0061\u006c\u0069d\u0020\u0072\u0075\u006e\u0020\u0025\u0073",_dffbfc ,string (_abbcec ));
|
||
};};if replacementText !=""{_bbadc =append (_bbadc ,replacementText );}else {_ag .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",_dffbfc ,charcodes ,_bdbcfc .isCIDFont (),_ecdgd ,_ceade );
|
||
_defgf ++;_bbadc =append (_bbadc ,_gd .MissingCodeString );};};if _defgf !=0{_ag .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 ),_defgf ,_ecdgd );
|
||
};return _bbadc ,len (_bbadc ),_defgf ;};func (_fag *PdfReader )newPdfAnnotationPolygonFromDict (_agbb *_fd .PdfObjectDictionary )(*PdfAnnotationPolygon ,error ){_dacce :=PdfAnnotationPolygon {};_adfgb ,_aga :=_fag .newPdfAnnotationMarkupFromDict (_agbb );
|
||
if _aga !=nil {return nil ,_aga ;};_dacce .PdfAnnotationMarkup =_adfgb ;_dacce .Vertices =_agbb .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_dacce .LE =_agbb .Get ("\u004c\u0045");_dacce .BS =_agbb .Get ("\u0042\u0053");_dacce .IC =_agbb .Get ("\u0049\u0043");
|
||
_dacce .BE =_agbb .Get ("\u0042\u0045");_dacce .IT =_agbb .Get ("\u0049\u0054");_dacce .Measure =_agbb .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_dacce ,nil ;};
|
||
|
||
// WatermarkImageOptions contains options for configuring the watermark process.
|
||
type WatermarkImageOptions struct{Alpha float64 ;FitToWidth bool ;PreserveAspectRatio bool ;};
|
||
|
||
// NewPdfFontFromPdfObject loads a PdfFont from the dictionary `fontObj`. If there is a problem an
|
||
// error is returned.
|
||
func NewPdfFontFromPdfObject (fontObj _fd .PdfObject )(*PdfFont ,error ){return _gabge (fontObj ,true )};
|
||
|
||
// NewPdfActionGoTo returns a new "go to" action.
|
||
func NewPdfActionGoTo ()*PdfActionGoTo {_dfe :=NewPdfAction ();_ab :=&PdfActionGoTo {};_ab .PdfAction =_dfe ;_dfe .SetContext (_ab );return _ab ;};
|
||
|
||
// 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 (_ebgc *PdfColorspaceLab )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbacc :=vals [0];if _gbacc < 0.0||_gbacc > 100.0{_ag .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",_gbacc );
|
||
return nil ,ErrColorOutOfRange ;};_aage :=vals [1];_bgged :=float64 (-100);_efdcg :=float64 (100);if len (_ebgc .Range )> 1{_bgged =_ebgc .Range [0];_efdcg =_ebgc .Range [1];};if _aage < _bgged ||_aage > _efdcg {_ag .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",_aage ,_bgged ,_efdcg );
|
||
return nil ,ErrColorOutOfRange ;};_bbde :=vals [2];_ecag :=float64 (-100);_acgg :=float64 (100);if len (_ebgc .Range )> 3{_ecag =_ebgc .Range [2];_acgg =_ebgc .Range [3];};if _bbde < _ecag ||_bbde > _acgg {_ag .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",_bbde ,_ecag ,_acgg );
|
||
return nil ,ErrColorOutOfRange ;};_geag :=NewPdfColorLab (_gbacc ,_aage ,_bbde );return _geag ,nil ;};
|
||
|
||
// NewPdfAppenderWithOpts creates a new Pdf appender from a Pdf reader with options.
|
||
func NewPdfAppenderWithOpts (reader *PdfReader ,opts *ReaderOpts ,encryptOptions *EncryptOptions )(*PdfAppender ,error ){_acag :=&PdfAppender {_cgae :reader ._gcafg ,Reader :reader ,_fcec :reader ._faaf ,_bade :reader ._cedebc };_edfe ,_badec :=_acag ._cgae .Seek (0,_bc .SeekEnd );
|
||
if _badec !=nil {return nil ,_badec ;};_acag ._cdfg =_edfe ;if _ ,_badec =_acag ._cgae .Seek (0,_bc .SeekStart );_badec !=nil {return nil ,_badec ;};_acag ._efec ,_badec =NewPdfReaderWithOpts (_acag ._cgae ,opts );if _badec !=nil {return nil ,_badec ;};
|
||
for _ ,_daca :=range _acag .Reader .GetObjectNums (){if _acag ._bgfg < _daca {_acag ._bgfg =_daca ;};};_acag ._ccfe =_acag ._fcec .GetXrefTable ();_acag ._fda =_acag ._fcec .GetXrefOffset ();_acag ._gbca =append (_acag ._gbca ,_acag ._efec .PageList ...);
|
||
_acag ._dbdc =make (map[_fd .PdfObject ]struct{});_acag ._aceb =make (map[_fd .PdfObject ]int64 );_acag ._cfa =make (map[_fd .PdfObject ]struct{});_acag ._agfb =_acag ._efec .AcroForm ;_acag ._bgge =_acag ._efec .DSS ;if opts !=nil {_acag ._gffb =opts .Password ;
|
||
};if encryptOptions !=nil {_acag ._gdef =encryptOptions ;};return _acag ,nil ;};
|
||
|
||
// NewPdfColorLab returns a new Lab color.
|
||
func NewPdfColorLab (l ,a ,b float64 )*PdfColorLab {_dcbec :=PdfColorLab {l ,a ,b };return &_dcbec };
|
||
|
||
// ToPdfObject generates a PdfObject representation of the Names struct.
|
||
func (_beae *Names )ToPdfObject ()_fd .PdfObject {_bdfbf :=_beae ._acbf ;_fcffe ,_cggdd :=_bdfbf .PdfObject .(*_fd .PdfObjectDictionary );if !_cggdd {_ag .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006fb\u006a\u0065\u0063\u0074");return _bdfbf ;
|
||
};if _beae .EmbeddedFiles !=nil {_fcffe .Set ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065\u0073",_fd .MakeIndirectObject (_beae .EmbeddedFiles ));};return _bdfbf ;};func (_cfgdg *Image )getSuitableEncoder ()(_fd .StreamEncoder ,error ){var (_bagg ,_fbdfd =int (_cfgdg .Width ),int (_cfgdg .Height );
|
||
_cdfcf =make (map[string ]bool );_gbdg =true ;_beac =false ;_bcde =func ()*_fd .DCTEncoder {return _fd .NewDCTEncoder ()};_ebaed =func ()*_fd .DCTEncoder {_gbbef :=_fd .NewDCTEncoder ();_gbbef .BitsPerComponent =16;return _gbbef };);for _ceefe :=0;_ceefe < _fbdfd ;
|
||
_ceefe ++{for _acfbd :=0;_acfbd < _bagg ;_acfbd ++{_gabb ,_faddd :=_cfgdg .ColorAt (_acfbd ,_ceefe );if _faddd !=nil {return nil ,_faddd ;};_aaebd ,_efbad ,_ccfef ,_gbccc :=_gabb .RGBA ();if _gbdg &&(_aaebd !=_efbad ||_aaebd !=_ccfef ||_efbad !=_ccfef ){_gbdg =false ;
|
||
};if !_beac {switch _gabb .(type ){case _gc .NRGBA :_beac =_gbccc > 0;};};_cdfcf [_dc .Sprintf ("\u0025\u0064\u002c\u0025\u0064\u002c\u0025\u0064",_aaebd ,_efbad ,_ccfef )]=true ;if len (_cdfcf )> 2&&_beac {return _ebaed (),nil ;};};};if _beac ||len (_cfgdg ._gfffd )> 0{return _fd .NewFlateEncoder (),nil ;
|
||
};if len (_cdfcf )<=2{_fdeac :=_cfgdg .ConvertToBinary ();if _fdeac !=nil {return nil ,_fdeac ;};return _fd .NewJBIG2Encoder (),nil ;};if _gbdg {return _bcde (),nil ;};if _cfgdg .ColorComponents ==1{if _cfgdg .BitsPerComponent ==1{return _fd .NewJBIG2Encoder (),nil ;
|
||
}else if _cfgdg .BitsPerComponent ==8{_ebagf :=_fd .NewDCTEncoder ();_ebagf .ColorComponents =1;return _ebagf ,nil ;};}else if _cfgdg .ColorComponents ==3{if _cfgdg .BitsPerComponent ==8{return _bcde (),nil ;}else if _cfgdg .BitsPerComponent ==16{return _ebaed (),nil ;
|
||
};}else if _cfgdg .ColorComponents ==4{_cbfgf :=_ebaed ();_cbfgf .ColorComponents =4;return _cbfgf ,nil ;};return _ebaed (),nil ;};func (_gdgg *PdfReader )loadAction (_ffb _fd .PdfObject )(*PdfAction ,error ){if _cccg ,_agb :=_fd .GetIndirect (_ffb );_agb {_cfeb ,_cgcc :=_gdgg .newPdfActionFromIndirectObject (_cccg );
|
||
if _cgcc !=nil {return nil ,_cgcc ;};return _cfeb ,nil ;}else if !_fd .IsNullObject (_ffb ){return nil ,_ad .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 _egdga ()string {_feadd .Lock ();defer _feadd .Unlock ();return _cfgbe };func (_bfeg *PdfReader )newPdfAnnotationTrapNetFromDict (_gfed *_fd .PdfObjectDictionary )(*PdfAnnotationTrapNet ,error ){_faeg :=PdfAnnotationTrapNet {};
|
||
return &_faeg ,nil ;};var ImageHandling ImageHandler =DefaultImageHandler {};
|
||
|
||
// NewPdfActionSound returns a new "sound" action.
|
||
func NewPdfActionSound ()*PdfActionSound {_ba :=NewPdfAction ();_efc :=&PdfActionSound {};_efc .PdfAction =_ba ;_ba .SetContext (_efc );return _efc ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bdg *PdfAnnotationUnderline )ToPdfObject ()_fd .PdfObject {_bdg .PdfAnnotation .ToPdfObject ();_ebga :=_bdg ._aeb ;_cgf :=_ebga .PdfObject .(*_fd .PdfObjectDictionary );_bdg .PdfAnnotationMarkup .appendToPdfDictionary (_cgf );_cgf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0055n\u0064\u0065\u0072\u006c\u0069\u006ee"));
|
||
_cgf .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_bdg .QuadPoints );return _ebga ;};func _abbdf (_ccda string )(string ,error ){var _dgcg _bf .Buffer ;_dgcg .WriteString (_ccda );_cbcd :=make ([]byte ,8+16);_edgcdc :=_cd .Now ().UTC ().UnixNano ();
|
||
_ff .BigEndian .PutUint64 (_cbcd ,uint64 (_edgcdc ));_ ,_effdf :=_fc .Read (_cbcd [8:]);if _effdf !=nil {return "",_effdf ;};_dgcg .WriteString (_f .EncodeToString (_cbcd ));return _dgcg .String (),nil ;};
|
||
|
||
// NewDSS returns a new DSS dictionary.
|
||
func NewDSS ()*DSS {return &DSS {_bdcdg :_fd .MakeIndirectObject (_fd .MakeDict ()),VRI :map[string ]*VRI {}};};
|
||
|
||
// GetContainingPdfObject returns the containing object for the PdfField, i.e. an indirect object
|
||
// containing the field dictionary.
|
||
func (_bbdd *PdfField )GetContainingPdfObject ()_fd .PdfObject {return _bbdd ._dffeb };
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_daaa *PdfColorspaceDeviceRGB )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B");};func _ggfe (_eaddg _fd .PdfObject )(*PdfPattern ,error ){_efbbc :=&PdfPattern {};var _eddfc *_fd .PdfObjectDictionary ;
|
||
if _egcgc ,_gabdb :=_fd .GetIndirect (_eaddg );_gabdb {_efbbc ._gcgba =_egcgc ;_ffae ,_ddef :=_egcgc .PdfObject .(*_fd .PdfObjectDictionary );if !_ddef {_ag .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",_egcgc .PdfObject );
|
||
return nil ,_fd .ErrTypeError ;};_eddfc =_ffae ;}else if _egcea ,_gcdcfe :=_fd .GetStream (_eaddg );_gcdcfe {_efbbc ._gcgba =_egcea ;_eddfc =_egcea .PdfObjectDictionary ;}else {_ag .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",_eaddg );
|
||
return nil ,_fd .ErrTypeError ;};_gagcd :=_eddfc .Get ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065");if _gagcd ==nil {_ag .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 ;};_dcfacb ,_dcfec :=_gagcd .(*_fd .PdfObjectInteger );if !_dcfec {_ag .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",_gagcd );
|
||
return nil ,_fd .ErrTypeError ;};if *_dcfacb !=1&&*_dcfacb !=2{_ag .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",*_dcfacb );return nil ,_fd .ErrRangeError ;
|
||
};_efbbc .PatternType =int64 (*_dcfacb );switch *_dcfacb {case 1:_eabff ,_bbeg :=_cgdbg (_eddfc );if _bbeg !=nil {return nil ,_bbeg ;};_eabff .PdfPattern =_efbbc ;_efbbc ._dccfd =_eabff ;return _efbbc ,nil ;case 2:_gbaccf ,_edcff :=_dcaab (_eddfc );if _edcff !=nil {return nil ,_edcff ;
|
||
};_gbaccf .PdfPattern =_efbbc ;_efbbc ._dccfd =_gbaccf ;return _efbbc ,nil ;};return nil ,_ad .New ("\u0075n\u006bn\u006f\u0077\u006e\u0020\u0070\u0061\u0074\u0074\u0065\u0072\u006e");};
|
||
|
||
// SetPdfTitle sets the Title attribute of the output PDF.
|
||
func SetPdfTitle (title string ){_feadd .Lock ();defer _feadd .Unlock ();_geacc =title };func _eedg (_fecf *XObjectForm )(*PdfRectangle ,bool ,error ){if _eedf ,_dcfac :=_fecf .BBox .(*_fd .PdfObjectArray );_dcfac {_dedab ,_bcaac :=NewPdfRectangle (*_eedf );
|
||
if _bcaac !=nil {return nil ,false ,_bcaac ;};if _gaee ,_bebb :=_fecf .Matrix .(*_fd .PdfObjectArray );_bebb {_edecb ,_ggdbf :=_gaee .ToFloat64Array ();if _ggdbf !=nil {return nil ,false ,_ggdbf ;};_gfaf :=_gdd .IdentityMatrix ();if len (_edecb )==6{_gfaf =_gdd .NewMatrix (_edecb [0],_edecb [1],_edecb [2],_edecb [3],_edecb [4],_edecb [5]);
|
||
};_dedab .Transform (_gfaf );return _dedab ,true ,nil ;};return _dedab ,false ,nil ;};return nil ,false ,_ad .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");
|
||
};
|
||
|
||
// Set sets the colorspace corresponding to key. Add to Names if not set.
|
||
func (_aefd *PdfPageResourcesColorspaces )Set (key _fd .PdfObjectName ,val PdfColorspace ){if _ ,_gggge :=_aefd .Colorspaces [string (key )];!_gggge {_aefd .Names =append (_aefd .Names ,string (key ));};_aefd .Colorspaces [string (key )]=val ;};func _gadd (_ffad *_fd .PdfObjectDictionary ,_gbcaa *fontCommon )(*pdfCIDFontType2 ,error ){if _gbcaa ._eded !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_ag .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",_gbcaa );
|
||
return nil ,_fd .ErrRangeError ;};_cffd :=_bcbga (_gbcaa );_eeae ,_aadd :=_fd .GetDict (_ffad .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_aadd {_ag .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",_gbcaa );
|
||
return nil ,ErrRequiredAttributeMissing ;};_cffd .CIDSystemInfo =_eeae ;_cffd .DW =_ffad .Get ("\u0044\u0057");_cffd .W =_ffad .Get ("\u0057");_cffd .DW2 =_ffad .Get ("\u0044\u0057\u0032");_cffd .W2 =_ffad .Get ("\u0057\u0032");_cffd .CIDToGIDMap =_ffad .Get ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070");
|
||
_cffd ._ebbc =1000.0;if _dbgcg ,_dbabf :=_fd .GetNumberAsFloat (_cffd .DW );_dbabf ==nil {_cffd ._ebbc =_dbgcg ;};_abfac ,_gebgeb :=_gecgg (_cffd .W );if _gebgeb !=nil {return nil ,_gebgeb ;};if _abfac ==nil {_abfac =map[_ee .CharCode ]float64 {};};_cffd ._defb =_abfac ;
|
||
return _cffd ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for an RGB device.
|
||
func (_fccgb *PdfColorspaceDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceCMYK colorspace.
|
||
func (_ebeb *PdfColorspaceDeviceCMYK )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// NewPdfColorCalGray returns a new CalGray color.
|
||
func NewPdfColorCalGray (grayVal float64 )*PdfColorCalGray {_bbdg :=PdfColorCalGray (grayVal );return &_bbdg ;};func (_dfeg *PdfReader )newPdfAnnotationTextFromDict (_egb *_fd .PdfObjectDictionary )(*PdfAnnotationText ,error ){_dbccd :=PdfAnnotationText {};
|
||
_ffab ,_bdc :=_dfeg .newPdfAnnotationMarkupFromDict (_egb );if _bdc !=nil {return nil ,_bdc ;};_dbccd .PdfAnnotationMarkup =_ffab ;_dbccd .Open =_egb .Get ("\u004f\u0070\u0065\u006e");_dbccd .Name =_egb .Get ("\u004e\u0061\u006d\u0065");_dbccd .State =_egb .Get ("\u0053\u0074\u0061t\u0065");
|
||
_dbccd .StateModel =_egb .Get ("\u0053\u0074\u0061\u0074\u0065\u004d\u006f\u0064\u0065\u006c");return &_dbccd ,nil ;};
|
||
|
||
// SetColorspaceByName adds the provided colorspace to the page resources.
|
||
func (_gacef *PdfPageResources )SetColorspaceByName (keyName _fd .PdfObjectName ,cs PdfColorspace )error {_babad ,_cbfcc :=_gacef .GetColorspaces ();if _cbfcc !=nil {_ag .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",_cbfcc );
|
||
return _cbfcc ;};if _babad ==nil {_babad =NewPdfPageResourcesColorspaces ();_gacef .SetColorSpace (_babad );};_babad .Set (keyName ,cs );return nil ;};
|
||
|
||
// FlattenFields flattens the form fields and annotations for the PDF loaded in `pdf` and makes
|
||
// non-editable.
|
||
// Looks up all widget annotations corresponding to form fields and flattens them by drawing the content
|
||
// through the content stream rather than annotations.
|
||
// References to flattened annotations will be removed from Page Annots array. For fields the AcroForm entry
|
||
// will be emptied.
|
||
// When `allannots` is true, all annotations will be flattened. Keep false if want to keep non-form related
|
||
// annotations intact.
|
||
// When `appgen` is not nil, it will be used to generate appearance streams for the field annotations.
|
||
func (_dcdgd *PdfReader )FlattenFields (allannots bool ,appgen FieldAppearanceGenerator )error {return _dcdgd .flattenFieldsWithOpts (allannots ,appgen ,nil );};
|
||
|
||
// NewPdfFilespecFromObj creates and returns a new PdfFilespec object.
|
||
func NewPdfFilespecFromObj (obj _fd .PdfObject )(*PdfFilespec ,error ){_abae :=&PdfFilespec {};var _geec *_fd .PdfObjectDictionary ;if _ecbf ,_bddb :=_fd .GetIndirect (obj );_bddb {_abae ._cbfc =_ecbf ;_afga ,_cade :=_fd .GetDict (_ecbf .PdfObject );if !_cade {_ag .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 ,_fd .ErrTypeError ;};_geec =_afga ;}else if _aeff ,_abdf :=_fd .GetDict (obj );_abdf {_abae ._cbfc =_aeff ;_geec =_aeff ;}else {_ag .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 ,_fd .ErrTypeError ;};if _geec ==nil {_ag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ad .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};
|
||
if _cgfad :=_geec .Get ("\u0054\u0079\u0070\u0065");_cgfad !=nil {_aafed ,_dccga :=_cgfad .(*_fd .PdfObjectName );if !_dccga {_ag .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",_cgfad );
|
||
}else {if *_aafed !="\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"{_ag .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",*_aafed );
|
||
};};};if _ceae :=_geec .Get ("\u0046\u0053");_ceae !=nil {_abae .FS =_ceae ;};if _fbaef :=_geec .Get ("\u0046");_fbaef !=nil {_abae .F =_fbaef ;};if _fbgfd :=_geec .Get ("\u0055\u0046");_fbgfd !=nil {_abae .UF =_fbgfd ;};if _becd :=_geec .Get ("\u0044\u004f\u0053");
|
||
_becd !=nil {_abae .DOS =_becd ;};if _bbgbd :=_geec .Get ("\u004d\u0061\u0063");_bbgbd !=nil {_abae .Mac =_bbgbd ;};if _ebfe :=_geec .Get ("\u0055\u006e\u0069\u0078");_ebfe !=nil {_abae .Unix =_ebfe ;};if _feff :=_geec .Get ("\u0049\u0044");_feff !=nil {_abae .ID =_feff ;
|
||
};if _ebec :=_geec .Get ("\u0056");_ebec !=nil {_abae .V =_ebec ;};if _gdbed :=_geec .Get ("\u0045\u0046");_gdbed !=nil {_abae .EF =_gdbed ;};if _daed :=_geec .Get ("\u0052\u0046");_daed !=nil {_abae .RF =_daed ;};if _cbeee :=_geec .Get ("\u0044\u0065\u0073\u0063");
|
||
_cbeee !=nil {_abae .Desc =_cbeee ;};if _gega :=_geec .Get ("\u0043\u0049");_gega !=nil {_abae .CI =_gega ;};if _dfafb :=_geec .Get ("\u0041\u0046\u0052\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070");_dfafb !=nil {_abae .AFRelationship =_dfafb ;
|
||
};return _abae ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aeae *PdfAnnotationInk )ToPdfObject ()_fd .PdfObject {_aeae .PdfAnnotation .ToPdfObject ();_ffgf :=_aeae ._aeb ;_ffgg :=_ffgf .PdfObject .(*_fd .PdfObjectDictionary );_aeae .PdfAnnotationMarkup .appendToPdfDictionary (_ffgg );_ffgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0049\u006e\u006b"));
|
||
_ffgg .SetIfNotNil ("\u0049n\u006b\u004c\u0069\u0073\u0074",_aeae .InkList );_ffgg .SetIfNotNil ("\u0042\u0053",_aeae .BS );return _ffgf ;};
|
||
|
||
// ToGray returns a PdfColorDeviceGray color based on the current RGB color.
|
||
func (_gagfbb *PdfColorDeviceRGB )ToGray ()*PdfColorDeviceGray {_fcfb :=0.3*_gagfbb .R ()+0.59*_gagfbb .G ()+0.11*_gagfbb .B ();_fcfb =_af .Min (_af .Max (_fcfb ,0.0),1.0);return NewPdfColorDeviceGray (_fcfb );};
|
||
|
||
// 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 ;_fbbec *_fd .PdfObjectDictionary ;};
|
||
|
||
// 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 (_efafb *PdfColorspaceCalGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cdec :=vals [0];if _cdec < 0.0||_cdec > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cdec );
|
||
return nil ,ErrColorOutOfRange ;};_gdfeb :=NewPdfColorCalGray (_cdec );return _gdfeb ,nil ;};func (_bedgf *PdfWriter )addObject (_dbcbgd _fd .PdfObject )bool {_ecgd :=_bedgf .hasObject (_dbcbgd );if !_ecgd {_ggbcf :=_fd .ResolveReferencesDeep (_dbcbgd ,_bedgf ._bagca );
|
||
if _ggbcf !=nil {_ag .Log .Debug ("E\u0052R\u004f\u0052\u003a\u0020\u0025\u0076\u0020\u002d \u0073\u006b\u0069\u0070pi\u006e\u0067",_ggbcf );};_bedgf ._agfbf =append (_bedgf ._agfbf ,_dbcbgd );_bedgf ._agfaff [_dbcbgd ]=struct{}{};return true ;};return false ;
|
||
};func (_ccad *DSS )generateHashMap (_gabd []*_fd .PdfObjectStream )(map[string ]*_fd .PdfObjectStream ,error ){_fabaf :=map[string ]*_fd .PdfObjectStream {};for _ ,_gaaf :=range _gabd {_dgbc ,_agdaf :=_fd .DecodeStream (_gaaf );if _agdaf !=nil {return nil ,_agdaf ;
|
||
};_agfa ,_agdaf :=_eagg (_dgbc );if _agdaf !=nil {return nil ,_agdaf ;};_fabaf [string (_agfa )]=_gaaf ;};return _fabaf ,nil ;};
|
||
|
||
// ColorToRGB converts gray -> rgb for a single color component.
|
||
func (_fef *PdfColorspaceDeviceGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_fbgfc ,_egfa :=color .(*PdfColorDeviceGray );if !_egfa {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return NewPdfColorDeviceRGB (float64 (*_fbgfc ),float64 (*_fbgfc ),float64 (*_fbgfc )),nil ;};
|
||
|
||
// NewPdfField returns an initialized PdfField.
|
||
func NewPdfField ()*PdfField {return &PdfField {_dffeb :_fd .MakeIndirectObject (_fd .MakeDict ())}};func (_cgced *PdfReader )loadDSS ()(*DSS ,error ){if _cgced ._faaf .GetCrypter ()!=nil &&!_cgced ._faaf .IsAuthenticated (){return nil ,_dc .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");
|
||
};_dbfce :=_cgced ._gabca .Get ("\u0044\u0053\u0053");if _dbfce ==nil {return nil ,nil ;};_egdca ,_ :=_fd .GetIndirect (_dbfce );_dbfce =_fd .TraceToDirectObject (_dbfce );switch _egafg :=_dbfce .(type ){case *_fd .PdfObjectNull :return nil ,nil ;case *_fd .PdfObjectDictionary :return _ggdg (_egdca ,_egafg );
|
||
};return nil ,_dc .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u0053\u0053 \u0065\u006e\u0074\u0072y \u0025\u0054",_dbfce );};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_ecfda *PdfColorDeviceRGB )ToInteger (bits int )[3]uint32 {_cebae :=_af .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cebae *_ecfda .R ()),uint32 (_cebae *_ecfda .G ()),uint32 (_cebae *_ecfda .B ())};};func (_fffce *PdfReader )newPdfAcroFormFromDict (_cgdb *_fd .PdfIndirectObject ,_ebcg *_fd .PdfObjectDictionary )(*PdfAcroForm ,error ){_gggc :=NewPdfAcroForm ();
|
||
if _cgdb !=nil {_gggc ._fefdb =_cgdb ;_cgdb .PdfObject =_fd .MakeDict ();};if _aebga :=_ebcg .Get ("\u0046\u0069\u0065\u006c\u0064\u0073");_aebga !=nil &&!_fd .IsNullObject (_aebga ){_geebd ,_bfcg :=_fd .GetArray (_aebga );if !_bfcg {return nil ,_dc .Errorf ("\u0066i\u0065\u006c\u0064\u0073\u0020\u006e\u006f\u0074\u0020\u0061\u006e \u0061\u0072\u0072\u0061\u0079\u0020\u0028\u0025\u0054\u0029",_aebga );
|
||
};var _ceea []*PdfField ;for _ ,_dgfbd :=range _geebd .Elements (){_cgdag ,_gcddf :=_fd .GetIndirect (_dgfbd );if !_gcddf {if _ ,_ccae :=_dgfbd .(*_fd .PdfObjectNull );_ccae {_ag .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 ;};_ag .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",_dgfbd );
|
||
return nil ,_dc .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");};_gdagf ,_dceb :=_fffce .newPdfFieldFromIndirectObject (_cgdag ,nil );
|
||
if _dceb !=nil {return nil ,_dceb ;};_ag .Log .Trace ("\u0041\u0063\u0072\u006fFo\u0072\u006d\u0020\u0046\u0069\u0065\u006c\u0064\u003a\u0020\u0025\u002b\u0076",*_gdagf );_ceea =append (_ceea ,_gdagf );};_gggc .Fields =&_ceea ;};if _cafef :=_ebcg .Get ("\u004ee\u0065d\u0041\u0070\u0070\u0065\u0061\u0072\u0061\u006e\u0063\u0065\u0073");
|
||
_cafef !=nil {_cecbd ,_aabaa :=_fd .GetBool (_cafef );if _aabaa {_gggc .NeedAppearances =_cecbd ;}else {_ag .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",_cafef );
|
||
};};if _gagd :=_ebcg .Get ("\u0053\u0069\u0067\u0046\u006c\u0061\u0067\u0073");_gagd !=nil {_cfcba ,_acbbd :=_fd .GetInt (_gagd );if _acbbd {_gggc .SigFlags =_cfcba ;}else {_ag .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",_gagd );
|
||
};};if _cegg :=_ebcg .Get ("\u0043\u004f");_cegg !=nil {_dbfca ,_ecgce :=_fd .GetArray (_cegg );if _ecgce {_gggc .CO =_dbfca ;}else {_ag .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",_cegg );
|
||
};};if _fbaf :=_ebcg .Get ("\u0044\u0052");_fbaf !=nil {if _cadda ,_gffe :=_fd .GetDict (_fbaf );_gffe {_cebfb ,_geegb :=NewPdfPageResourcesFromDict (_cadda );if _geegb !=nil {_ag .Log .Error ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0044R\u003a\u0020\u0025\u0076",_geegb );
|
||
return nil ,_geegb ;};_gggc .DR =_cebfb ;}else {_ag .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",_fbaf );};};if _afgad :=_ebcg .Get ("\u0044\u0041");
|
||
_afgad !=nil {_fbbdf ,_aacab :=_fd .GetString (_afgad );if _aacab {_gggc .DA =_fbbdf ;}else {_ag .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",_afgad );
|
||
};};if _dfag :=_ebcg .Get ("\u0051");_dfag !=nil {_gcddg ,_daada :=_fd .GetInt (_dfag );if _daada {_gggc .Q =_gcddg ;}else {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0051\u0020\u0069\u006e\u0076a\u006ci\u0064 \u0028\u0067\u006f\u0074\u0020\u0025\u0054)",_dfag );
|
||
};};if _baafc :=_ebcg .Get ("\u0058\u0046\u0041");_baafc !=nil {_gggc .XFA =_baafc ;};if _ededc :=_ebcg .Get ("\u0041\u0044\u0042\u0045\u005f\u0045\u0063\u0068\u006f\u0053\u0069\u0067\u006e");_ededc !=nil {_gggc .ADBEEchoSign =_ededc ;};_gggc .ToPdfObject ();
|
||
return _gggc ,nil ;};func (_ffefc *PdfWriter )updateObjectNumbers (){_bbecb :=_ffefc .ObjNumOffset ;_eaedb :=0;for _ ,_dbcba :=range _ffefc ._agfbf {_cgaef :=int64 (_eaedb +1+_bbecb );_gfecf :=true ;if _ffefc ._fbgg {if _fefbg ,_deafd :=_ffefc ._ddgad [_dbcba ];
|
||
_deafd {_cgaef =_fefbg ;_gfecf =false ;};};switch _gbbgc :=_dbcba .(type ){case *_fd .PdfIndirectObject :_gbbgc .ObjectNumber =_cgaef ;_gbbgc .GenerationNumber =0;case *_fd .PdfObjectStream :_gbbgc .ObjectNumber =_cgaef ;_gbbgc .GenerationNumber =0;case *_fd .PdfObjectStreams :_gbbgc .ObjectNumber =_cgaef ;
|
||
_gbbgc .GenerationNumber =0;default:_ag .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",_gbbgc );continue ;
|
||
};if _gfecf {_eaedb ++;};};_dfabd :=func (_eccb _fd .PdfObject )int64 {switch _fcfcb :=_eccb .(type ){case *_fd .PdfIndirectObject :return _fcfcb .ObjectNumber ;case *_fd .PdfObjectStream :return _fcfcb .ObjectNumber ;case *_fd .PdfObjectStreams :return _fcfcb .ObjectNumber ;
|
||
};return 0;};_da .SliceStable (_ffefc ._agfbf ,func (_ecgbfe ,_dfbbc int )bool {return _dfabd (_ffefc ._agfbf [_ecgbfe ])< _dfabd (_ffefc ._agfbf [_dfbbc ])});};
|
||
|
||
// DecodeArray returns the range of color component values in the ICCBased colorspace.
|
||
func (_edae *PdfColorspaceICCBased )DecodeArray ()[]float64 {return _edae .Range };
|
||
|
||
// NewPdfActionLaunch returns a new "launch" action.
|
||
func NewPdfActionLaunch ()*PdfActionLaunch {_ffc :=NewPdfAction ();_be :=&PdfActionLaunch {};_be .PdfAction =_ffc ;_ffc .SetContext (_be );return _be ;};
|
||
|
||
// BorderEffect represents a border effect (Table 167 p. 395).
|
||
type BorderEffect int ;
|
||
|
||
// GetCustomInfo returns a custom info value for the specified name.
|
||
func (_eeaaf *PdfInfo )GetCustomInfo (name string )*_fd .PdfObjectString {var _bgdd *_fd .PdfObjectString ;if _eeaaf ._defeg ==nil {return _bgdd ;};if _fedf ,_aafe :=_eeaaf ._defeg .Get (*_fd .MakeName (name )).(*_fd .PdfObjectString );_aafe {_bgdd =_fedf ;
|
||
};return _bgdd ;};func _eadc (_deba *_fd .PdfObjectDictionary )(*PdfFieldButton ,error ){_cbda :=&PdfFieldButton {};_cbda .PdfField =NewPdfField ();_cbda .PdfField .SetContext (_cbda );_cbda .Opt ,_ =_fd .GetArray (_deba .Get ("\u004f\u0070\u0074"));_dgbg :=NewPdfAnnotationWidget ();
|
||
_dgbg .A ,_ =_fd .GetDict (_deba .Get ("\u0041"));_dgbg .AP ,_ =_fd .GetDict (_deba .Get ("\u0041\u0050"));_dgbg .SetContext (_cbda );_cbda .PdfField .Annotations =append (_cbda .PdfField .Annotations ,_dgbg );return _cbda ,nil ;};
|
||
|
||
// NewPdfSignatureReferenceDocMDP returns PdfSignatureReference for the transformParams.
|
||
func NewPdfSignatureReferenceDocMDP (transformParams *PdfTransformParamsDocMDP )*PdfSignatureReference {return &PdfSignatureReference {Type :_fd .MakeName ("\u0053\u0069\u0067\u0052\u0065\u0066"),TransformMethod :_fd .MakeName ("\u0044\u006f\u0063\u004d\u0044\u0050"),TransformParams :transformParams .ToPdfObject ()};
|
||
};type pdfFont interface{_cf .Font ;
|
||
|
||
// ToPdfObject returns a PDF representation of the font and implements interface Model.
|
||
ToPdfObject ()_fd .PdfObject ;getFontDescriptor ()*PdfFontDescriptor ;baseFields ()*fontCommon ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for grayscale).
|
||
func (_ccee *PdfColorDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// NewPdfFieldSignature returns an initialized signature field.
|
||
func NewPdfFieldSignature (signature *PdfSignature )*PdfFieldSignature {_debba :=&PdfFieldSignature {};_debba .PdfField =NewPdfField ();_debba .PdfField .SetContext (_debba );_debba .PdfAnnotationWidget =NewPdfAnnotationWidget ();_debba .PdfAnnotationWidget .SetContext (_debba );
|
||
_debba .PdfAnnotationWidget ._aeb =_debba .PdfField ._dffeb ;_debba .T =_fd .MakeString ("");_debba .F =_fd .MakeInteger (132);_debba .V =signature ;return _debba ;};
|
||
|
||
// NewPdfColorspaceFromPdfObject loads a PdfColorspace from a PdfObject. Returns an error if there is
|
||
// a failure in loading.
|
||
func NewPdfColorspaceFromPdfObject (obj _fd .PdfObject )(PdfColorspace ,error ){if obj ==nil {return nil ,nil ;};var _edaa *_fd .PdfIndirectObject ;var _ffge *_fd .PdfObjectName ;var _fffa *_fd .PdfObjectArray ;if _ggfg ,_degd :=obj .(*_fd .PdfIndirectObject );
|
||
_degd {_edaa =_ggfg ;};obj =_fd .TraceToDirectObject (obj );switch _edba :=obj .(type ){case *_fd .PdfObjectArray :_fffa =_edba ;case *_fd .PdfObjectName :_ffge =_edba ;};if _ffge !=nil {switch *_ffge {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:_ag .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",*_ffge );return nil ,_fbeg ;};};if _fffa !=nil &&_fffa .Len ()> 0{var _dfgg _fd .PdfObject =_edaa ;
|
||
if _edaa ==nil {_dfgg =_fffa ;};if _dada ,_bcda :=_fd .GetName (_fffa .Get (0));_bcda {switch _dada .String (){case "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079":if _fffa .Len ()==1{return NewPdfColorspaceDeviceGray (),nil ;};case "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B":if _fffa .Len ()==1{return NewPdfColorspaceDeviceRGB (),nil ;
|
||
};case "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b":if _fffa .Len ()==1{return NewPdfColorspaceDeviceCMYK (),nil ;};case "\u0043a\u006c\u0047\u0072\u0061\u0079":return _ecbe (_dfgg );case "\u0043\u0061\u006c\u0052\u0047\u0042":return _ebdg (_dfgg );
|
||
case "\u004c\u0061\u0062":return _geaf (_dfgg );case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064":return _bbdf (_dfgg );case "\u0050a\u0074\u0074\u0065\u0072\u006e":return _acea (_dfgg );case "\u0049n\u0064\u0065\u0078\u0065\u0064":return _dbeea (_dfgg );
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e":return _fafdc (_dfgg );case "\u0044e\u0076\u0069\u0063\u0065\u004e":return _ggacg (_dfgg );default:_ag .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",*_dada );
|
||
};};};_ag .Log .Debug ("\u0050\u0044\u0046\u0020\u0046i\u006c\u0065\u0020\u0045\u0072\u0072\u006f\u0072\u003a\u0020\u0043\u006f\u006co\u0072\u0073\u0070\u0061\u0063\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",obj .String ());
|
||
return nil ,ErrTypeCheck ;};func _gfac (_gfba _fd .PdfObject )*Names {_eegec :=_dfgfd ();_gbgbc :=_fd .TraceToDirectObject (_gfba ).(*_fd .PdfObjectDictionary );if _bdbab :=_gbgbc .Get ("\u0044\u0065\u0073t\u0073");_bdbab !=nil {_eegec .Dests =_fd .TraceToDirectObject (_bdbab ).(*_fd .PdfObjectDictionary );
|
||
};if _bgaf :=_gbgbc .Get ("\u0041\u0050");_bgaf !=nil {_eegec .AP =_fd .TraceToDirectObject (_bgaf ).(*_fd .PdfObjectDictionary );};if _bbdcg :=_gbgbc .Get ("\u004a\u0061\u0076\u0061\u0053\u0063\u0072\u0069\u0070\u0074");_bbdcg !=nil {_eegec .JavaScript =_fd .TraceToDirectObject (_bbdcg ).(*_fd .PdfObjectDictionary );
|
||
};if _egea :=_gbgbc .Get ("\u0050\u0061\u0067e\u0073");_egea !=nil {_eegec .Pages =_fd .TraceToDirectObject (_egea ).(*_fd .PdfObjectDictionary );};if _gffdd :=_gbgbc .Get ("\u0054e\u006d\u0070\u006c\u0061\u0074\u0065s");_gffdd !=nil {_eegec .Templates =_fd .TraceToDirectObject (_gffdd ).(*_fd .PdfObjectDictionary );
|
||
};if _ffcaa :=_gbgbc .Get ("\u0049\u0044\u0053");_ffcaa !=nil {_eegec .IDS =_fd .TraceToDirectObject (_ffcaa ).(*_fd .PdfObjectDictionary );};if _acfc :=_gbgbc .Get ("\u0055\u0052\u004c\u0053");_acfc !=nil {_eegec .URLS =_fd .TraceToDirectObject (_acfc ).(*_fd .PdfObjectDictionary );
|
||
};if _fcccb :=_gbgbc .Get ("\u0045\u006d\u0062\u0065\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065\u0073");_fcccb !=nil {_eegec .EmbeddedFiles =_fd .TraceToDirectObject (_fcccb ).(*_fd .PdfObjectDictionary );};if _baad :=_gbgbc .Get ("\u0041\u006c\u0074\u0065rn\u0061\u0074\u0065\u0050\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006fn\u0073");
|
||
_baad !=nil {_eegec .AlternatePresentations =_fd .TraceToDirectObject (_baad ).(*_fd .PdfObjectDictionary );};if _cdgc :=_gbgbc .Get ("\u0052\u0065\u006e\u0064\u0069\u0074\u0069\u006f\u006e\u0073");_cdgc !=nil {_eegec .Renditions =_fd .TraceToDirectObject (_cdgc ).(*_fd .PdfObjectDictionary );
|
||
};return _eegec ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_dgfd *PdfColorspaceSpecialIndexed )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};N :=_dgfd .Base .GetNumComponents ();_gedff :=int (vals [0])*N ;
|
||
if _gedff < 0||(_gedff +N -1)>=len (_dgfd ._fdac ){_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gedff );return nil ,ErrColorOutOfRange ;};_agda :=_dgfd ._fdac [_gedff :_gedff +N ];
|
||
var _abce []float64 ;for _ ,_edca :=range _agda {_abce =append (_abce ,float64 (_edca )/255.0);};_geaa ,_dece :=_dgfd .Base .ColorFromFloats (_abce );if _dece !=nil {return nil ,_dece ;};return _geaa ,nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_acbb *PdfAnnotation )GetContainingPdfObject ()_fd .PdfObject {return _acbb ._aeb };
|
||
|
||
// DefaultImageHandler is the default implementation of the ImageHandler using the standard go library.
|
||
type DefaultImageHandler struct{};
|
||
|
||
// PdfOutlineItem represents an outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type PdfOutlineItem struct{PdfOutlineTreeNode ;Title *_fd .PdfObjectString ;Parent *PdfOutlineTreeNode ;Prev *PdfOutlineTreeNode ;Next *PdfOutlineTreeNode ;Count *int64 ;Dest _fd .PdfObject ;A _fd .PdfObject ;SE _fd .PdfObject ;C _fd .PdfObject ;F _fd .PdfObject ;
|
||
_ecga *_fd .PdfIndirectObject ;};
|
||
|
||
// NewPdfOutline returns an initialized PdfOutline.
|
||
func NewPdfOutline ()*PdfOutline {_aabcg :=&PdfOutline {_fcef :_fd .MakeIndirectObject (_fd .MakeDict ())};_aabcg ._gcgcg =_aabcg ;return _aabcg ;};
|
||
|
||
// NewPdfAnnotationProjection returns a new projection annotation.
|
||
func NewPdfAnnotationProjection ()*PdfAnnotationProjection {_ffdd :=NewPdfAnnotation ();_bfe :=&PdfAnnotationProjection {};_bfe .PdfAnnotation =_ffdd ;_bfe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ffdd .SetContext (_bfe );return _bfe ;};
|
||
|
||
// NewPdfTransformParamsDocMDP create a PdfTransformParamsDocMDP with the specific permissions.
|
||
func NewPdfTransformParamsDocMDP (permission _gfg .DocMDPPermission )*PdfTransformParamsDocMDP {return &PdfTransformParamsDocMDP {Type :_fd .MakeName ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"),P :_fd .MakeInteger (int64 (permission )),V :_fd .MakeName ("\u0031\u002e\u0032")};
|
||
};
|
||
|
||
// NewPdfAnnotationLine returns a new line annotation.
|
||
func NewPdfAnnotationLine ()*PdfAnnotationLine {_gba :=NewPdfAnnotation ();_gfgf :=&PdfAnnotationLine {};_gfgf .PdfAnnotation =_gba ;_gfgf .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gba .SetContext (_gfgf );return _gfgf ;};
|
||
|
||
// NewOutlineBookmark returns an initialized PdfOutlineItem for a given bookmark title and page.
|
||
func NewOutlineBookmark (title string ,page *_fd .PdfIndirectObject )*PdfOutlineItem {_dabde :=PdfOutlineItem {};_dabde ._gcgcg =&_dabde ;_dabde .Title =_fd .MakeString (title );_bdad :=_fd .MakeArray ();_bdad .Append (page );_bdad .Append (_fd .MakeName ("\u0046\u0069\u0074"));
|
||
_dabde .Dest =_bdad ;return &_dabde ;};
|
||
|
||
// IsTiling specifies if the pattern is a tiling pattern.
|
||
func (_cdad *PdfPattern )IsTiling ()bool {return _cdad .PatternType ==1};
|
||
|
||
// Val returns the color value.
|
||
func (_bccg *PdfColorDeviceGray )Val ()float64 {return float64 (*_bccg )};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dgc *PdfBorderStyle )ToPdfObject ()_fd .PdfObject {_bdabe :=_fd .MakeDict ();if _dgc ._cdd !=nil {if _eegd ,_adbdc :=_dgc ._cdd .(*_fd .PdfIndirectObject );_adbdc {_eegd .PdfObject =_bdabe ;};};_bdabe .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0042\u006f\u0072\u0064\u0065\u0072"));
|
||
if _dgc .W !=nil {_bdabe .Set ("\u0057",_fd .MakeFloat (*_dgc .W ));};if _dgc .S !=nil {_bdabe .Set ("\u0053",_fd .MakeName (_dgc .S .GetPdfName ()));};if _dgc .D !=nil {_bdabe .Set ("\u0044",_fd .MakeArrayFromIntegers (*_dgc .D ));};if _dgc ._cdd !=nil {return _dgc ._cdd ;
|
||
};return _bdabe ;};func _ebdg (_fbfdf _fd .PdfObject )(*PdfColorspaceCalRGB ,error ){_edab :=NewPdfColorspaceCalRGB ();if _abdc ,_aeab :=_fbfdf .(*_fd .PdfIndirectObject );_aeab {_edab ._gadad =_abdc ;};_fbfdf =_fd .TraceToDirectObject (_fbfdf );_dagee ,_aaegc :=_fbfdf .(*_fd .PdfObjectArray );
|
||
if !_aaegc {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dagee .Len ()!=2{return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");
|
||
};_fbfdf =_fd .TraceToDirectObject (_dagee .Get (0));_dddg ,_aaegc :=_fbfdf .(*_fd .PdfObjectName );if !_aaegc {return nil ,_dc .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 *_dddg !="\u0043\u0061\u006c\u0052\u0047\u0042"{return nil ,_dc .Errorf ("\u006e\u006f\u0074 a\u0020\u0043\u0061\u006c\u0052\u0047\u0042\u0020\u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_fbfdf =_fd .TraceToDirectObject (_dagee .Get (1));
|
||
_ddad ,_aaegc :=_fbfdf .(*_fd .PdfObjectDictionary );if !_aaegc {return nil ,_dc .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");
|
||
};_fbfdf =_ddad .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_fbfdf =_fd .TraceToDirectObject (_fbfdf );_cbad ,_aaegc :=_fbfdf .(*_fd .PdfObjectArray );if !_aaegc {return nil ,_dc .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 _cbad .Len ()!=3{return nil ,_dc .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");};_efdfa ,_facbe :=_cbad .GetAsFloat64Slice ();
|
||
if _facbe !=nil {return nil ,_facbe ;};_edab .WhitePoint =_efdfa ;_fbfdf =_ddad .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _fbfdf !=nil {_fbfdf =_fd .TraceToDirectObject (_fbfdf );_fgbd ,_gaab :=_fbfdf .(*_fd .PdfObjectArray );
|
||
if !_gaab {return nil ,_dc .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 _fgbd .Len ()!=3{return nil ,_dc .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");
|
||
};_gfdd ,_gced :=_fgbd .GetAsFloat64Slice ();if _gced !=nil {return nil ,_gced ;};_edab .BlackPoint =_gfdd ;};_fbfdf =_ddad .Get ("\u0047\u0061\u006dm\u0061");if _fbfdf !=nil {_fbfdf =_fd .TraceToDirectObject (_fbfdf );_gcdcf ,_affad :=_fbfdf .(*_fd .PdfObjectArray );
|
||
if !_affad {return nil ,_dc .Errorf ("C\u0061\u006c\u0052\u0047B:\u0020I\u006e\u0076\u0061\u006c\u0069d\u0020\u0047\u0061\u006d\u006d\u0061");};if _gcdcf .Len ()!=3{return nil ,_dc .Errorf ("C\u0061\u006c\u0052\u0047\u0042\u003a \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0047a\u006d\u006d\u0061 \u0061r\u0072\u0061\u0079");
|
||
};_gfgfe ,_eccf :=_gcdcf .GetAsFloat64Slice ();if _eccf !=nil {return nil ,_eccf ;};_edab .Gamma =_gfgfe ;};_fbfdf =_ddad .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");if _fbfdf !=nil {_fbfdf =_fd .TraceToDirectObject (_fbfdf );_fbe ,_dbcb :=_fbfdf .(*_fd .PdfObjectArray );
|
||
if !_dbcb {return nil ,_dc .Errorf ("\u0043\u0061\u006c\u0052GB\u003a\u0020\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004d\u0061\u0074\u0072i\u0078");};if _fbe .Len ()!=9{_ag .Log .Error ("\u004d\u0061t\u0072\u0069\u0078 \u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u0073",_fbe .String ());
|
||
return nil ,_dc .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");};_gcedc ,_dceed :=_fbe .GetAsFloat64Slice ();if _dceed !=nil {return nil ,_dceed ;
|
||
};_edab .Matrix =_gcedc ;};return _edab ,nil ;};func (_cdf *PdfReader )newPdfActionFromIndirectObject (_gafe *_fd .PdfIndirectObject )(*PdfAction ,error ){_gcf ,_eg :=_gafe .PdfObject .(*_fd .PdfObjectDictionary );if !_eg {return nil ,_dc .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 :=_cdf ._fbabb .GetModelFromPrimitive (_gcf );model !=nil {_beb ,_dead :=model .(*PdfAction );if !_dead {return nil ,_dc .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 _beb ,nil ;};_bga :=&PdfAction {};_bga ._bfb =_gafe ;_cdf ._fbabb .Register (_gcf ,_bga );if _afb :=_gcf .Get ("\u0054\u0079\u0070\u0065");_afb !=nil {_fce ,_gge :=_afb .(*_fd .PdfObjectName );if !_gge {_ag .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",_afb );
|
||
}else {if *_fce !="\u0041\u0063\u0074\u0069\u006f\u006e"{_ag .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",*_fce );
|
||
};_bga .Type =_fce ;};};if _ce :=_gcf .Get ("\u004e\u0065\u0078\u0074");_ce !=nil {_bga .Next =_ce ;};if _gdce :=_gcf .Get ("\u0053");_gdce !=nil {_bga .S =_gdce ;};_bbf ,_cdg :=_bga .S .(*_fd .PdfObjectName );if !_cdg {_ag .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",_bga .S );
|
||
return nil ,_dc .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",_bga .S );};_bgg :=PdfActionType (_bbf .String ());
|
||
switch _bgg {case ActionTypeGoTo :_cg ,_dccg :=_cdf .newPdfActionGotoFromDict (_gcf );if _dccg !=nil {return nil ,_dccg ;};_cg .PdfAction =_bga ;_bga ._ga =_cg ;return _bga ,nil ;case ActionTypeGoToR :_ddg ,_eddf :=_cdf .newPdfActionGotoRFromDict (_gcf );
|
||
if _eddf !=nil {return nil ,_eddf ;};_ddg .PdfAction =_bga ;_bga ._ga =_ddg ;return _bga ,nil ;case ActionTypeGoToE :_cee ,_bfg :=_cdf .newPdfActionGotoEFromDict (_gcf );if _bfg !=nil {return nil ,_bfg ;};_cee .PdfAction =_bga ;_bga ._ga =_cee ;return _bga ,nil ;
|
||
case ActionTypeLaunch :_fdf ,_aegd :=_cdf .newPdfActionLaunchFromDict (_gcf );if _aegd !=nil {return nil ,_aegd ;};_fdf .PdfAction =_bga ;_bga ._ga =_fdf ;return _bga ,nil ;case ActionTypeThread :_fgb ,_eec :=_cdf .newPdfActionThreadFromDict (_gcf );if _eec !=nil {return nil ,_eec ;
|
||
};_fgb .PdfAction =_bga ;_bga ._ga =_fgb ;return _bga ,nil ;case ActionTypeURI :_bae ,_cba :=_cdf .newPdfActionURIFromDict (_gcf );if _cba !=nil {return nil ,_cba ;};_bae .PdfAction =_bga ;_bga ._ga =_bae ;return _bga ,nil ;case ActionTypeSound :_aba ,_adc :=_cdf .newPdfActionSoundFromDict (_gcf );
|
||
if _adc !=nil {return nil ,_adc ;};_aba .PdfAction =_bga ;_bga ._ga =_aba ;return _bga ,nil ;case ActionTypeMovie :_ebd ,_ecd :=_cdf .newPdfActionMovieFromDict (_gcf );if _ecd !=nil {return nil ,_ecd ;};_ebd .PdfAction =_bga ;_bga ._ga =_ebd ;return _bga ,nil ;
|
||
case ActionTypeHide :_ecc ,_bggf :=_cdf .newPdfActionHideFromDict (_gcf );if _bggf !=nil {return nil ,_bggf ;};_ecc .PdfAction =_bga ;_bga ._ga =_ecc ;return _bga ,nil ;case ActionTypeNamed :_eadb ,_gcd :=_cdf .newPdfActionNamedFromDict (_gcf );if _gcd !=nil {return nil ,_gcd ;
|
||
};_eadb .PdfAction =_bga ;_bga ._ga =_eadb ;return _bga ,nil ;case ActionTypeSubmitForm :_gbef ,_cfc :=_cdf .newPdfActionSubmitFormFromDict (_gcf );if _cfc !=nil {return nil ,_cfc ;};_gbef .PdfAction =_bga ;_bga ._ga =_gbef ;return _bga ,nil ;case ActionTypeResetForm :_baf ,_aab :=_cdf .newPdfActionResetFormFromDict (_gcf );
|
||
if _aab !=nil {return nil ,_aab ;};_baf .PdfAction =_bga ;_bga ._ga =_baf ;return _bga ,nil ;case ActionTypeImportData :_bdag ,_dga :=_cdf .newPdfActionImportDataFromDict (_gcf );if _dga !=nil {return nil ,_dga ;};_bdag .PdfAction =_bga ;_bga ._ga =_bdag ;
|
||
return _bga ,nil ;case ActionTypeSetOCGState :_fcf ,_defg :=_cdf .newPdfActionSetOCGStateFromDict (_gcf );if _defg !=nil {return nil ,_defg ;};_fcf .PdfAction =_bga ;_bga ._ga =_fcf ;return _bga ,nil ;case ActionTypeRendition :_cbf ,_bcc :=_cdf .newPdfActionRenditionFromDict (_gcf );
|
||
if _bcc !=nil {return nil ,_bcc ;};_cbf .PdfAction =_bga ;_bga ._ga =_cbf ;return _bga ,nil ;case ActionTypeTrans :_gfe ,_aca :=_cdf .newPdfActionTransFromDict (_gcf );if _aca !=nil {return nil ,_aca ;};_gfe .PdfAction =_bga ;_bga ._ga =_gfe ;return _bga ,nil ;
|
||
case ActionTypeGoTo3DView :_bcff ,_dge :=_cdf .newPdfActionGoTo3DViewFromDict (_gcf );if _dge !=nil {return nil ,_dge ;};_bcff .PdfAction =_bga ;_bga ._ga =_bcff ;return _bga ,nil ;case ActionTypeJavaScript :_bef ,_aag :=_cdf .newPdfActionJavaScriptFromDict (_gcf );
|
||
if _aag !=nil {return nil ,_aag ;};_bef .PdfAction =_bga ;_bga ._ga =_bef ;return _bga ,nil ;};_ag .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",_bgg );
|
||
return nil ,nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_dgabb pdfFontType0 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){if _dgabb .DescendantFont ==nil {_ag .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",_dgabb );
|
||
return _cf .CharMetrics {},false ;};return _dgabb .DescendantFont .GetRuneMetrics (r );};func (_ecde *PdfReader )newPdfActionGotoRFromDict (_abc *_fd .PdfObjectDictionary )(*PdfActionGoToR ,error ){_agg ,_gda :=_ece (_abc .Get ("\u0046"));if _gda !=nil {return nil ,_gda ;
|
||
};return &PdfActionGoToR {D :_abc .Get ("\u0044"),NewWindow :_abc .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_agg },nil ;};
|
||
|
||
// NewCompliancePdfReader creates a PdfReader or an input io.ReadSeeker that during reading will scan the files for the
|
||
// metadata details. It could be used for the PDF standard implementations like PDF/A or PDF/X.
|
||
// NOTE: This implementation is in experimental development state.
|
||
//
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
func NewCompliancePdfReader (rs _bc .ReadSeeker )(*CompliancePdfReader ,error ){const _decda ="\u006d\u006f\u0064\u0065l\u003a\u004e\u0065\u0077\u0043\u006f\u006d\u0070\u006c\u0069a\u006ec\u0065\u0050\u0064\u0066\u0052\u0065\u0061d\u0065\u0072";_ececf ,_dcec :=_daab (rs ,&ReaderOpts {ComplianceMode :true },false ,_decda );
|
||
if _dcec !=nil {return nil ,_dcec ;};return &CompliancePdfReader {PdfReader :_ececf },nil ;};func _fdea (_cdfb _cf .StdFont )pdfFontSimple {_cbgee :=_cdfb .Descriptor ();return pdfFontSimple {fontCommon :fontCommon {_eded :"\u0054\u0079\u0070e\u0031",_ffedb :_cdfb .Name ()},_dcgdd :_cdfb .GetMetricsTable (),_cbffb :&PdfFontDescriptor {FontName :_fd .MakeName (string (_cbgee .Name )),FontFamily :_fd .MakeName (_cbgee .Family ),FontWeight :_fd .MakeFloat (float64 (_cbgee .Weight )),Flags :_fd .MakeInteger (int64 (_cbgee .Flags )),FontBBox :_fd .MakeArrayFromFloats (_cbgee .BBox [:]),ItalicAngle :_fd .MakeFloat (_cbgee .ItalicAngle ),Ascent :_fd .MakeFloat (_cbgee .Ascent ),Descent :_fd .MakeFloat (_cbgee .Descent ),CapHeight :_fd .MakeFloat (_cbgee .CapHeight ),XHeight :_fd .MakeFloat (_cbgee .XHeight ),StemV :_fd .MakeFloat (_cbgee .StemV ),StemH :_fd .MakeFloat (_cbgee .StemH )},_gadae :_cdfb .Encoder ()};
|
||
};func _fadbb (_afccf *_fd .PdfObjectDictionary )(*PdfFieldChoice ,error ){_dafb :=&PdfFieldChoice {};_dafb .Opt ,_ =_fd .GetArray (_afccf .Get ("\u004f\u0070\u0074"));_dafb .TI ,_ =_fd .GetInt (_afccf .Get ("\u0054\u0049"));_dafb .I ,_ =_fd .GetArray (_afccf .Get ("\u0049"));
|
||
return _dafb ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abcfb *PdfAnnotationPolygon )ToPdfObject ()_fd .PdfObject {_abcfb .PdfAnnotation .ToPdfObject ();_egda :=_abcfb ._aeb ;_daga :=_egda .PdfObject .(*_fd .PdfObjectDictionary );_abcfb .PdfAnnotationMarkup .appendToPdfDictionary (_daga );_daga .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050o\u006c\u0079\u0067\u006f\u006e"));
|
||
_daga .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_abcfb .Vertices );_daga .SetIfNotNil ("\u004c\u0045",_abcfb .LE );_daga .SetIfNotNil ("\u0042\u0053",_abcfb .BS );_daga .SetIfNotNil ("\u0049\u0043",_abcfb .IC );_daga .SetIfNotNil ("\u0042\u0045",_abcfb .BE );
|
||
_daga .SetIfNotNil ("\u0049\u0054",_abcfb .IT );_daga .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_abcfb .Measure );return _egda ;};
|
||
|
||
// DefaultFont returns the default font, which is currently the built in Helvetica.
|
||
func DefaultFont ()*PdfFont {_dgcf ,_dceca :=_cf .NewStdFontByName (HelveticaName );if !_dceca {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");
|
||
};_dfgd :=_fdea (_dgcf );return &PdfFont {_gbaac :&_dfgd };};
|
||
|
||
// SetShadingByName sets a shading resource specified by keyName.
|
||
func (_fbac *PdfPageResources )SetShadingByName (keyName _fd .PdfObjectName ,shadingObj _fd .PdfObject )error {if _fbac .Shading ==nil {_fbac .Shading =_fd .MakeDict ();};_caec ,_aabgd :=_fd .GetDict (_fbac .Shading );if !_aabgd {return _fd .ErrTypeError ;
|
||
};_caec .Set (keyName ,shadingObj );return nil ;};
|
||
|
||
// NewPdfAppender creates a new Pdf appender from a Pdf reader.
|
||
func NewPdfAppender (reader *PdfReader )(*PdfAppender ,error ){_bdcb :=&PdfAppender {_cgae :reader ._gcafg ,Reader :reader ,_fcec :reader ._faaf ,_bade :reader ._cedebc };_faec ,_cfbd :=_bdcb ._cgae .Seek (0,_bc .SeekEnd );if _cfbd !=nil {return nil ,_cfbd ;
|
||
};_bdcb ._cdfg =_faec ;if _ ,_cfbd =_bdcb ._cgae .Seek (0,_bc .SeekStart );_cfbd !=nil {return nil ,_cfbd ;};_bdcb ._efec ,_cfbd =NewPdfReader (_bdcb ._cgae );if _cfbd !=nil {return nil ,_cfbd ;};for _ ,_bfad :=range _bdcb .Reader .GetObjectNums (){if _bdcb ._bgfg < _bfad {_bdcb ._bgfg =_bfad ;
|
||
};};_bdcb ._ccfe =_bdcb ._fcec .GetXrefTable ();_bdcb ._fda =_bdcb ._fcec .GetXrefOffset ();_bdcb ._gbca =append (_bdcb ._gbca ,_bdcb ._efec .PageList ...);_bdcb ._dbdc =make (map[_fd .PdfObject ]struct{});_bdcb ._aceb =make (map[_fd .PdfObject ]int64 );
|
||
_bdcb ._cfa =make (map[_fd .PdfObject ]struct{});_bdcb ._agfb =_bdcb ._efec .AcroForm ;_bdcb ._bgge =_bdcb ._efec .DSS ;return _bdcb ,nil ;};
|
||
|
||
// GetNumComponents returns the number of input color components, i.e. that are input to the tint transform.
|
||
func (_ceca *PdfColorspaceDeviceN )GetNumComponents ()int {return _ceca .ColorantNames .Len ()};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceGray colorspace.
|
||
func (_bdgd *PdfColorspaceDeviceGray )DecodeArray ()[]float64 {return []float64 {0,1.0}};
|
||
|
||
// BorderStyle defines border type, typically used for annotations.
|
||
type BorderStyle int ;
|
||
|
||
// HasFontByName checks if has font resource by name.
|
||
func (_ggcag *PdfPage )HasFontByName (name _fd .PdfObjectName )bool {_daag ,_gbegg :=_ggcag .Resources .Font .(*_fd .PdfObjectDictionary );if !_gbegg {return false ;};if _fgfda :=_daag .Get (name );_fgfda !=nil {return true ;};return false ;};
|
||
|
||
// 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 (_gebgea *PdfColorspaceDeviceGray )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_edfgf ,_febe :=_fd .GetNumbersAsFloat (objects );
|
||
if _febe !=nil {return nil ,_febe ;};return _gebgea .ColorFromFloats (_edfgf );};
|
||
|
||
// FieldValueProvider provides field values from a data source such as FDF, JSON or any other.
|
||
type FieldValueProvider interface{FieldValues ()(map[string ]_fd .PdfObject ,error );};func (_dded *PdfWriter )optimizeDocument ()error {if _dded ._fagbg ==nil {return nil ;};_acccg ,_ggddg :=_fd .GetDict (_dded ._ggdfa );if !_ggddg {return _ad .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");
|
||
};_cdggc :=_ca .Document {ID :[2]string {_dded ._gaeaa ,_dded ._cgaga },Version :_dded ._ggaddg ,Objects :_dded ._agfbf ,Info :_acccg ,Crypt :_dded ._egadf ,UseHashBasedID :_dded ._cgde };if _bfabb :=_dded ._fagbg .ApplyStandard (&_cdggc );_bfabb !=nil {return _bfabb ;
|
||
};_dded ._gaeaa ,_dded ._cgaga =_cdggc .ID [0],_cdggc .ID [1];_dded ._ggaddg =_cdggc .Version ;_dded ._agfbf =_cdggc .Objects ;_dded ._ggdfa .PdfObject =_cdggc .Info ;_dded ._cgde =_cdggc .UseHashBasedID ;_dded ._egadf =_cdggc .Crypt ;_fdbdd :=make (map[_fd .PdfObject ]struct{},len (_dded ._agfbf ));
|
||
for _ ,_fbcd :=range _dded ._agfbf {_fdbdd [_fbcd ]=struct{}{};};_dded ._agfaff =_fdbdd ;return nil ;};
|
||
|
||
// ColorToRGB converts a Lab color to an RGB color.
|
||
func (_bdcde *PdfColorspaceLab )ColorToRGB (color PdfColor )(PdfColor ,error ){_dgde :=func (_efce float64 )float64 {if _efce >=6.0/29{return _efce *_efce *_efce ;};return 108.0/841*(_efce -4.0/29.0);};_efbb ,_fgab :=color .(*PdfColorLab );if !_fgab {_ag .Log .Debug ("\u0069\u006e\u0070\u0075t \u0063\u006f\u006c\u006f\u0072\u0020\u006e\u006f\u0074\u0020\u006c\u0061\u0062");
|
||
return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};LStar :=_efbb .L ();AStar :=_efbb .A ();BStar :=_efbb .B ();L :=(LStar +16)/116+AStar /500;M :=(LStar +16)/116;N :=(LStar +16)/116-BStar /200;
|
||
X :=_bdcde .WhitePoint [0]*_dgde (L );Y :=_bdcde .WhitePoint [1]*_dgde (M );Z :=_bdcde .WhitePoint [2]*_dgde (N );_cbcg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_gdgb :=-0.969256*X +1.875992*Y +0.041556*Z ;_dcdc :=0.055648*X +-0.204043*Y +1.057311*Z ;_cbcg =_af .Min (_af .Max (_cbcg ,0),1.0);
|
||
_gdgb =_af .Min (_af .Max (_gdgb ,0),1.0);_dcdc =_af .Min (_af .Max (_dcdc ,0),1.0);return NewPdfColorDeviceRGB (_cbcg ,_gdgb ,_dcdc ),nil ;};
|
||
|
||
// IsEncrypted returns true if the PDF file is encrypted.
|
||
func (_aaaff *PdfReader )IsEncrypted ()(bool ,error ){return _aaaff ._faaf .IsEncrypted ()};
|
||
|
||
// SetDocInfo set document info.
|
||
// This will overwrite any globally declared document info.
|
||
func (_cagad *PdfWriter )SetDocInfo (info *PdfInfo ){_cagad .setDocInfo (info .ToPdfObject ())};func _abbbc (_ffdgd _fd .PdfObject )[]*_fd .PdfObjectStream {if _ffdgd ==nil {return nil ;};_ebdcb ,_bcggc :=_fd .GetArray (_ffdgd );if !_bcggc ||_ebdcb .Len ()==0{return nil ;
|
||
};_eadea :=make ([]*_fd .PdfObjectStream ,0,_ebdcb .Len ());for _ ,_ccebd :=range _ebdcb .Elements (){if _ggfcc ,_bgbeg :=_fd .GetStream (_ccebd );_bgbeg {_eadea =append (_eadea ,_ggfcc );};};return _eadea ;};
|
||
|
||
// Subtype returns the font's "Subtype" field.
|
||
func (_ccfba *PdfFont )Subtype ()string {_fbbef :=_ccfba .baseFields ()._eded ;if _dbgc ,_abcab :=_ccfba ._gbaac .(*pdfFontType0 );_abcab {_fbbef =_fbbef +"\u003a"+_dbgc .DescendantFont .Subtype ();};return _fbbef ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_bdfa *PdfColorspaceCalRGB )ToPdfObject ()_fd .PdfObject {_afaa :=&_fd .PdfObjectArray {};_afaa .Append (_fd .MakeName ("\u0043\u0061\u006c\u0052\u0047\u0042"));_ffed :=_fd .MakeDict ();if _bdfa .WhitePoint !=nil {_gfda :=_fd .MakeArray (_fd .MakeFloat (_bdfa .WhitePoint [0]),_fd .MakeFloat (_bdfa .WhitePoint [1]),_fd .MakeFloat (_bdfa .WhitePoint [2]));
|
||
_ffed .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_gfda );}else {_ag .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 _bdfa .BlackPoint !=nil {_cgfd :=_fd .MakeArray (_fd .MakeFloat (_bdfa .BlackPoint [0]),_fd .MakeFloat (_bdfa .BlackPoint [1]),_fd .MakeFloat (_bdfa .BlackPoint [2]));_ffed .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cgfd );
|
||
};if _bdfa .Gamma !=nil {_fddc :=_fd .MakeArray (_fd .MakeFloat (_bdfa .Gamma [0]),_fd .MakeFloat (_bdfa .Gamma [1]),_fd .MakeFloat (_bdfa .Gamma [2]));_ffed .Set ("\u0047\u0061\u006dm\u0061",_fddc );};if _bdfa .Matrix !=nil {_fdag :=_fd .MakeArray (_fd .MakeFloat (_bdfa .Matrix [0]),_fd .MakeFloat (_bdfa .Matrix [1]),_fd .MakeFloat (_bdfa .Matrix [2]),_fd .MakeFloat (_bdfa .Matrix [3]),_fd .MakeFloat (_bdfa .Matrix [4]),_fd .MakeFloat (_bdfa .Matrix [5]),_fd .MakeFloat (_bdfa .Matrix [6]),_fd .MakeFloat (_bdfa .Matrix [7]),_fd .MakeFloat (_bdfa .Matrix [8]));
|
||
_ffed .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_fdag );};_afaa .Append (_ffed );if _bdfa ._gadad !=nil {_bdfa ._gadad .PdfObject =_afaa ;return _bdfa ._gadad ;};return _afaa ;};
|
||
|
||
// ToPdfObject sets the common field elements.
|
||
// Note: Call the more field context's ToPdfObject to set both the generic and
|
||
// non-generic information.
|
||
func (_bcgdb *PdfField )ToPdfObject ()_fd .PdfObject {_ffeaa :=_bcgdb ._dffeb ;_fced :=_ffeaa .PdfObject .(*_fd .PdfObjectDictionary );_fcea :=_fd .MakeArray ();for _ ,_gcad :=range _bcgdb .Kids {_fcea .Append (_gcad .ToPdfObject ());};for _ ,_gfdde :=range _bcgdb .Annotations {if _gfdde ._aeb !=_bcgdb ._dffeb {_fcea .Append (_gfdde .GetContext ().ToPdfObject ());
|
||
};};if _bcgdb .Parent !=nil {_fced .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_bcgdb .Parent .GetContainingPdfObject ());};if _fcea .Len ()> 0{_fced .Set ("\u004b\u0069\u0064\u0073",_fcea );};_fced .SetIfNotNil ("\u0046\u0054",_bcgdb .FT );_fced .SetIfNotNil ("\u0054",_bcgdb .T );
|
||
_fced .SetIfNotNil ("\u0054\u0055",_bcgdb .TU );_fced .SetIfNotNil ("\u0054\u004d",_bcgdb .TM );_fced .SetIfNotNil ("\u0046\u0066",_bcgdb .Ff );_fced .SetIfNotNil ("\u0056",_bcgdb .V );_fced .SetIfNotNil ("\u0044\u0056",_bcgdb .DV );_fced .SetIfNotNil ("\u0041\u0041",_bcgdb .AA );
|
||
if _bcgdb .VariableText !=nil {_fced .SetIfNotNil ("\u0044\u0041",_bcgdb .VariableText .DA );_fced .SetIfNotNil ("\u0051",_bcgdb .VariableText .Q );_fced .SetIfNotNil ("\u0044\u0053",_bcgdb .VariableText .DS );_fced .SetIfNotNil ("\u0052\u0056",_bcgdb .VariableText .RV );
|
||
};return _ffeaa ;};
|
||
|
||
// CharMetrics represents width and height metrics of a glyph.
|
||
type CharMetrics =_cf .CharMetrics ;func _cdgfdg (_eddcbb *_fd .PdfObjectDictionary )(*PdfShadingType1 ,error ){_fecfb :=PdfShadingType1 {};if _cegdc :=_eddcbb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_cegdc !=nil {_cegdc =_fd .TraceToDirectObject (_cegdc );
|
||
_ffdga ,_gfdaeg :=_cegdc .(*_fd .PdfObjectArray );if !_gfdaeg {_ag .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",_cegdc );return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_fecfb .Domain =_ffdga ;};if _cbdg :=_eddcbb .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");_cbdg !=nil {_cbdg =_fd .TraceToDirectObject (_cbdg );_aadad ,_aeecf :=_cbdg .(*_fd .PdfObjectArray );if !_aeecf {_ag .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",_cbdg );
|
||
return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_fecfb .Matrix =_aadad ;};_caebb :=_eddcbb .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _caebb ==nil {_ag .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 ;};_fecfb .Function =[]PdfFunction {};if _fgcfd ,_edcb :=_caebb .(*_fd .PdfObjectArray );_edcb {for _ ,_agege :=range _fgcfd .Elements (){_cdagdc ,_ceeaab :=_badad (_agege );if _ceeaab !=nil {_ag .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",_ceeaab );
|
||
return nil ,_ceeaab ;};_fecfb .Function =append (_fecfb .Function ,_cdagdc );};}else {_aagfb ,_adbgf :=_badad (_caebb );if _adbgf !=nil {_ag .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",_adbgf );
|
||
return nil ,_adbgf ;};_fecfb .Function =append (_fecfb .Function ,_aagfb );};return &_fecfb ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Separation).
|
||
func (_bafd *PdfColorspaceSpecialSeparation )GetNumComponents ()int {return 1};func _dcfae (_abbb _fd .PdfObject )(*PdfPageResourcesColorspaces ,error ){_eedag :=&PdfPageResourcesColorspaces {};if _befae ,_abgba :=_abbb .(*_fd .PdfIndirectObject );_abgba {_eedag ._abdg =_befae ;
|
||
_abbb =_befae .PdfObject ;};_gffec ,_fbadf :=_fd .GetDict (_abbb );if !_fbadf {return nil ,_ad .New ("\u0043\u0053\u0020at\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_eedag .Names =[]string {};
|
||
_eedag .Colorspaces =map[string ]PdfColorspace {};for _ ,_edbabf :=range _gffec .Keys (){_bgbcc :=_gffec .Get (_edbabf );_eedag .Names =append (_eedag .Names ,string (_edbabf ));_bbgbf ,_cccgdc :=NewPdfColorspaceFromPdfObject (_bgbcc );if _cccgdc !=nil {return nil ,_cccgdc ;
|
||
};_eedag .Colorspaces [string (_edbabf )]=_bbgbf ;};return _eedag ,nil ;};
|
||
|
||
// PdfShadingType1 is a Function-based shading.
|
||
type PdfShadingType1 struct{*PdfShading ;Domain *_fd .PdfObjectArray ;Matrix *_fd .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// String returns a human readable description of `fontfile`.
|
||
func (_befb *fontFile )String ()string {_gaba :="\u005b\u004e\u006f\u006e\u0065\u005d";if _befb ._cecab !=nil {_gaba =_befb ._cecab .String ();};return _dc .Sprintf ("\u0046O\u004e\u0054\u0046\u0049\u004c\u0045\u007b\u0025\u0023\u0071\u0020e\u006e\u0063\u006f\u0064\u0065\u0072\u003d\u0025\u0073\u007d",_befb ._cbfca ,_gaba );
|
||
};func (_fcfc *PdfReader )newPdfAnnotationSoundFromDict (_fed *_fd .PdfObjectDictionary )(*PdfAnnotationSound ,error ){_gbf :=PdfAnnotationSound {};_aff ,_aabe :=_fcfc .newPdfAnnotationMarkupFromDict (_fed );if _aabe !=nil {return nil ,_aabe ;};_gbf .PdfAnnotationMarkup =_aff ;
|
||
_gbf .Name =_fed .Get ("\u004e\u0061\u006d\u0065");_gbf .Sound =_fed .Get ("\u0053\u006f\u0075n\u0064");return &_gbf ,nil ;};
|
||
|
||
// PageFromIndirectObject returns the PdfPage and page number for a given indirect object.
|
||
func (_acefg *PdfReader )PageFromIndirectObject (ind *_fd .PdfIndirectObject )(*PdfPage ,int ,error ){if len (_acefg .PageList )!=len (_acefg ._bbfca ){return nil ,0,_ad .New ("\u0070\u0061\u0067\u0065\u0020\u006c\u0069\u0073\u0074\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");
|
||
};for _cfggdf ,_eaddd :=range _acefg ._bbfca {if _eaddd ==ind {return _acefg .PageList [_cfggdf ],_cfggdf +1,nil ;};};return nil ,0,_ad .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};
|
||
|
||
// GetStructRoot gets the StructTreeRoot object
|
||
func (_cgfdg *PdfPage )GetStructTreeRoot ()(*_fd .PdfObject ,bool ){_bacgg ,_cgfb :=_cgfdg ._dfaff .GetCatalogStructTreeRoot ();return &_bacgg ,_cgfb ;};
|
||
|
||
// DecodeArray returns the range of color component values in CalRGB colorspace.
|
||
func (_fggd *PdfColorspaceCalRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};func (_cadf *PdfReader )newPdfAnnotationStampFromDict (_edag *_fd .PdfObjectDictionary )(*PdfAnnotationStamp ,error ){_gcc :=PdfAnnotationStamp {};_ebfb ,_fgg :=_cadf .newPdfAnnotationMarkupFromDict (_edag );
|
||
if _fgg !=nil {return nil ,_fgg ;};_gcc .PdfAnnotationMarkup =_ebfb ;_gcc .Name =_edag .Get ("\u004e\u0061\u006d\u0065");return &_gcc ,nil ;};
|
||
|
||
// NewPdfAnnotationFreeText returns a new free text annotation.
|
||
func NewPdfAnnotationFreeText ()*PdfAnnotationFreeText {_ebf :=NewPdfAnnotation ();_dba :=&PdfAnnotationFreeText {};_dba .PdfAnnotation =_ebf ;_dba .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebf .SetContext (_dba );return _dba ;};
|
||
|
||
// DecodeArray returns the range of color component values in DeviceRGB colorspace.
|
||
func (_gggg *PdfColorspaceDeviceRGB )DecodeArray ()[]float64 {return []float64 {0.0,1.0,0.0,1.0,0.0,1.0};};
|
||
|
||
// HasXObjectByName checks if an XObject with a specified keyName is defined.
|
||
func (_bdabeb *PdfPageResources )HasXObjectByName (keyName _fd .PdfObjectName )bool {_aged ,_ :=_bdabeb .GetXObjectByName (keyName );return _aged !=nil ;};
|
||
|
||
// NewPdfFilespec returns an initialized generic PDF filespec model.
|
||
func NewPdfFilespec ()*PdfFilespec {_bcag :=&PdfFilespec {};_bcag ._cbfc =_fd .MakeIndirectObject (_fd .MakeDict ());return _bcag ;};
|
||
|
||
// 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 ;func (_fcfda *PdfPage )getParentResources ()(*PdfPageResources ,error ){_gdfbgf :=_fcfda .Parent ;for _gdfbgf !=nil {_eafd ,_beebb :=_fd .GetDict (_gdfbgf );if !_beebb {_ag .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 ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020p\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};if _eegca :=_eafd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_eegca !=nil {_dcfc ,_cdgfb :=_fd .GetDict (_eegca );
|
||
if !_cdgfb {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020r\u0065\u0073\u006f\u0075\u0072c\u0065\u0020\u0064\u0069\u0063\u0074");};_babc ,_fbbbc :=NewPdfPageResourcesFromDict (_dcfc );if _fbbbc !=nil {return nil ,_fbbbc ;};return _babc ,nil ;
|
||
};_gdfbgf =_eafd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,nil ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_edec *PdfColorDeviceCMYK )ToInteger (bits int )[4]uint32 {_eccc :=_af .Pow (2,float64 (bits ))-1;return [4]uint32 {uint32 (_eccc *_edec .C ()),uint32 (_eccc *_edec .M ()),uint32 (_eccc *_edec .Y ()),uint32 (_eccc *_edec .K ())};};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bca *PdfAction )GetContainingPdfObject ()_fd .PdfObject {return _bca ._bfb };func _acea (_bfef _fd .PdfObject )(*PdfColorspaceSpecialPattern ,error ){_ag .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",_bfef .String (),_bfef );
|
||
_ffcdb :=NewPdfColorspaceSpecialPattern ();if _efcf ,_deff :=_bfef .(*_fd .PdfIndirectObject );_deff {_ffcdb ._gcgab =_efcf ;};_bfef =_fd .TraceToDirectObject (_bfef );if _bbag ,_eecg :=_bfef .(*_fd .PdfObjectName );_eecg {if *_bbag !="\u0050a\u0074\u0074\u0065\u0072\u006e"{return nil ,_dc .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");
|
||
};return _ffcdb ,nil ;};_agcc ,_becg :=_bfef .(*_fd .PdfObjectArray );if !_becg {_ag .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",_bfef );
|
||
return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0050\u0061\u0074\u0074e\u0072n\u0020C\u0053\u0020\u006f\u0062\u006a\u0065\u0063t");};if _agcc .Len ()!=1&&_agcc .Len ()!=2{_ag .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",_agcc );
|
||
return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u0050\u0061\u0074\u0074\u0065r\u006e\u0020\u0043\u0053\u0020\u0061\u0072\u0072\u0061\u0079");};_bfef =_agcc .Get (0);if _deebc ,_cgcbd :=_bfef .(*_fd .PdfObjectName );_cgcbd {if *_deebc !="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ag .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",_deebc );
|
||
return nil ,_dc .Errorf ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};};if _agcc .Len ()> 1{_bfef =_agcc .Get (1);_bfef =_fd .TraceToDirectObject (_bfef );_bfaag ,_efefc :=NewPdfColorspaceFromPdfObject (_bfef );if _efefc !=nil {return nil ,_efefc ;
|
||
};_ffcdb .UnderlyingCS =_bfaag ;};_ag .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",_ffcdb .UnderlyingCS );
|
||
return _ffcdb ,nil ;};
|
||
|
||
// OutlineDest represents the destination of an outline item.
|
||
// It holds the page and the position on the page an outline item points to.
|
||
type OutlineDest struct{PageObj *_fd .PdfIndirectObject `json:"-"`;Page int64 `json:"page"`;Mode string `json:"mode"`;X float64 `json:"x"`;Y float64 `json:"y"`;Zoom float64 `json:"zoom"`;};
|
||
|
||
// 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 (_ggcf *PdfWriter )SetRotation (rotate int64 )error {_eaaeb ,_adbeb :=_fd .GetDict (_ggcf ._eecde );if !_adbeb {return ErrTypeCheck ;};_eaaeb .Set ("\u0052\u006f\u0074\u0061\u0074\u0065",_fd .MakeInteger (rotate ));return nil ;};
|
||
|
||
// String implements interface PdfObject.
|
||
func (_ede *PdfAction )String ()string {_adg ,_fg :=_ede .ToPdfObject ().(*_fd .PdfIndirectObject );if _fg {return _dc .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_ede ._ga ,_adg .PdfObject .String ());};return "";};
|
||
|
||
// PdfAnnotationPopup represents Popup annotations.
|
||
// (Section 12.5.6.14).
|
||
type PdfAnnotationPopup struct{*PdfAnnotation ;Parent _fd .PdfObject ;Open _fd .PdfObject ;};func (_bagedf *PdfWriter )writeObject (_fbddf int ,_ffaed _fd .PdfObject ){_ag .Log .Trace ("\u0057\u0072\u0069\u0074\u0065\u0020\u006f\u0062\u006a \u0023\u0025\u0064\u000a",_fbddf );
|
||
if _cfdfg ,_ebaef :=_ffaed .(*_fd .PdfIndirectObject );_ebaef {_bagedf ._bccbb [_fbddf ]=crossReference {Type :1,Offset :_bagedf ._bbcab ,Generation :_cfdfg .GenerationNumber };_facaa :=_dc .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbddf );
|
||
if _dfda ,_dedag :=_cfdfg .PdfObject .(*pdfSignDictionary );_dedag {_dfda ._gedfg =_bagedf ._bbcab +int64 (len (_facaa ));};if _cfdfg .PdfObject ==nil {_ag .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");
|
||
_cfdfg .PdfObject =_fd .MakeNull ();};_facaa +=_cfdfg .PdfObject .WriteString ();_facaa +="\u000a\u0065\u006e\u0064\u006f\u0062\u006a\u000a";_bagedf .writeString (_facaa );return ;};if _befbd ,_eadbd :=_ffaed .(*_fd .PdfObjectStream );_eadbd {_bagedf ._bccbb [_fbddf ]=crossReference {Type :1,Offset :_bagedf ._bbcab ,Generation :_befbd .GenerationNumber };
|
||
_accd :=_dc .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbddf );_accd +=_befbd .PdfObjectDictionary .WriteString ();_accd +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_bagedf .writeString (_accd );if _befbd .Lazy {_fcgbd ,_baeea :=_gbe .ReadFile (_befbd .TempFile );
|
||
if _baeea !=nil {_ag .Log .Info ("\u0045\u0072\u0072\u006f\u0072\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u006ca\u007ay\u0020\u0074\u0065\u006d\u0070\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0073",_befbd .TempFile );return ;};_bagedf .writeBytes (_fcgbd );
|
||
_gbe .Remove (_befbd .TempFile );}else {_bagedf .writeBytes (_befbd .Stream );};_bagedf .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};if _dageeg ,_bdcdea :=_ffaed .(*_fd .PdfObjectStreams );
|
||
_bdcdea {_bagedf ._bccbb [_fbddf ]=crossReference {Type :1,Offset :_bagedf ._bbcab ,Generation :_dageeg .GenerationNumber };_cffed :=_dc .Sprintf ("\u0025d\u0020\u0030\u0020\u006f\u0062\u006a\n",_fbddf );var _dedgg []string ;var _deeba string ;var _becabg int64 ;
|
||
for _dffce ,_aefdg :=range _dageeg .Elements (){_cbabf ,_gbcfc :=_aefdg .(*_fd .PdfIndirectObject );if !_gbcfc {_ag .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",_fbddf ,_aefdg );
|
||
continue ;};_afadc :=_cbabf .PdfObject .WriteString ()+"\u0020";_deeba =_deeba +_afadc ;_dedgg =append (_dedgg ,_dc .Sprintf ("\u0025\u0064\u0020%\u0064",_cbabf .ObjectNumber ,_becabg ));_bagedf ._bccbb [int (_cbabf .ObjectNumber )]=crossReference {Type :2,ObjectNumber :_fbddf ,Index :_dffce };
|
||
_becabg =_becabg +int64 (len ([]byte (_afadc )));};_cfebf :=_gg .Join (_dedgg ,"\u0020")+"\u0020";_fddcd :=_fd .NewFlateEncoder ();_fbgcc :=_fddcd .MakeStreamDict ();_fbgcc .Set (_fd .PdfObjectName ("\u0054\u0079\u0070\u0065"),_fd .MakeName ("\u004f\u0062\u006a\u0053\u0074\u006d"));
|
||
_eabcc :=int64 (_dageeg .Len ());_fbgcc .Set (_fd .PdfObjectName ("\u004e"),_fd .MakeInteger (_eabcc ));_bafcg :=int64 (len (_cfebf ));_fbgcc .Set (_fd .PdfObjectName ("\u0046\u0069\u0072s\u0074"),_fd .MakeInteger (_bafcg ));_cfbfb ,_ :=_fddcd .EncodeBytes ([]byte (_cfebf +_deeba ));
|
||
_gcace :=int64 (len (_cfbfb ));_fbgcc .Set (_fd .PdfObjectName ("\u004c\u0065\u006e\u0067\u0074\u0068"),_fd .MakeInteger (_gcace ));_cffed +=_fbgcc .WriteString ();_cffed +="\u000a\u0073\u0074\u0072\u0065\u0061\u006d\u000a";_bagedf .writeString (_cffed );
|
||
_bagedf .writeBytes (_cfbfb );_bagedf .writeString ("\u000ae\u006ed\u0073\u0074\u0072\u0065\u0061m\u000a\u0065n\u0064\u006f\u0062\u006a\u000a");return ;};_bagedf .writeString (_ffaed .WriteString ());};
|
||
|
||
// IsShading specifies if the pattern is a shading pattern.
|
||
func (_edgg *PdfPattern )IsShading ()bool {return _edgg .PatternType ==2};
|
||
|
||
// NewPdfInfoFromObject creates a new PdfInfo from the input core.PdfObject.
|
||
func NewPdfInfoFromObject (obj _fd .PdfObject )(*PdfInfo ,error ){var _aaee PdfInfo ;_edgf ,_dffba :=obj .(*_fd .PdfObjectDictionary );if !_dffba {return nil ,_dc .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 _ ,_beecb :=range _edgf .Keys (){switch _beecb {case "\u0054\u0069\u0074l\u0065":_aaee .Title ,_ =_fd .GetString (_edgf .Get ("\u0054\u0069\u0074l\u0065"));case "\u0041\u0075\u0074\u0068\u006f\u0072":_aaee .Author ,_ =_fd .GetString (_edgf .Get ("\u0041\u0075\u0074\u0068\u006f\u0072"));
|
||
case "\u0053u\u0062\u006a\u0065\u0063\u0074":_aaee .Subject ,_ =_fd .GetString (_edgf .Get ("\u0053u\u0062\u006a\u0065\u0063\u0074"));case "\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073":_aaee .Keywords ,_ =_fd .GetString (_edgf .Get ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073"));
|
||
case "\u0043r\u0065\u0061\u0074\u006f\u0072":_aaee .Creator ,_ =_fd .GetString (_edgf .Get ("\u0043r\u0065\u0061\u0074\u006f\u0072"));case "\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072":_aaee .Producer ,_ =_fd .GetString (_edgf .Get ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072"));
|
||
case "\u0054r\u0061\u0070\u0070\u0065\u0064":_aaee .Trapped ,_ =_fd .GetName (_edgf .Get ("\u0054r\u0061\u0070\u0070\u0065\u0064"));case "\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065":if _fadf ,_ggaa :=_fd .GetString (_edgf .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065"));
|
||
_ggaa &&_fadf .String ()!=""{_ebde ,_eade :=NewPdfDate (_fadf .String ());if _eade !=nil {return nil ,_dc .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",_eade );
|
||
};_aaee .CreationDate =&_ebde ;};case "\u004do\u0064\u0044\u0061\u0074\u0065":if _bdgc ,_gggde :=_fd .GetString (_edgf .Get ("\u004do\u0064\u0044\u0061\u0074\u0065"));_gggde &&_bdgc .String ()!=""{_gabf ,_fcecc :=NewPdfDate (_bdgc .String ());if _fcecc !=nil {return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u004d\u006f\u0064\u0044a\u0074e\u0020f\u0069\u0065\u006c\u0064\u003a\u0020\u0025w",_fcecc );
|
||
};_aaee .ModifiedDate =&_gabf ;};default:_dgag ,_ :=_fd .GetString (_edgf .Get (_beecb ));if _aaee ._defeg ==nil {_aaee ._defeg =_fd .MakeDict ();};_aaee ._defeg .Set (_beecb ,_dgag );};};return &_aaee ,nil ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_abfab *PdfFunctionType0 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=_abfab .NumInputs {_ag .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 ,_ad .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");};if _abfab ._ebgce ==nil {_fggg :=_abfab .processSamples ();if _fggg !=nil {return nil ,_fggg ;};};_edgadg :=_abfab .Encode ;if _edgadg ==nil {_edgadg =[]float64 {};
|
||
for _dbcbgc :=0;_dbcbgc < len (_abfab .Size );_dbcbgc ++{_edgadg =append (_edgadg ,0);_edgadg =append (_edgadg ,float64 (_abfab .Size [_dbcbgc ]-1));};};_cdce :=_abfab .Decode ;if _cdce ==nil {_cdce =_abfab .Range ;};_fdgfe :=make ([]int ,len (x ));for _ddcdc :=0;
|
||
_ddcdc < len (x );_ddcdc ++{_gfdcc :=x [_ddcdc ];_faecg :=_af .Min (_af .Max (_gfdcc ,_abfab .Domain [2*_ddcdc ]),_abfab .Domain [2*_ddcdc +1]);_efdag :=_gbed .LinearInterpolate (_faecg ,_abfab .Domain [2*_ddcdc ],_abfab .Domain [2*_ddcdc +1],_edgadg [2*_ddcdc ],_edgadg [2*_ddcdc +1]);
|
||
_cfacd :=_af .Min (_af .Max (_efdag ,0),float64 (_abfab .Size [_ddcdc ]-1));_geebb :=int (_af .Floor (_cfacd +0.5));if _geebb < 0{_geebb =0;}else if _geebb > _abfab .Size [_ddcdc ]{_geebb =_abfab .Size [_ddcdc ]-1;};_fdgfe [_ddcdc ]=_geebb ;};_edaff :=_fdgfe [0];
|
||
for _gddca :=1;_gddca < _abfab .NumInputs ;_gddca ++{_cgac :=_fdgfe [_gddca ];for _efdfdc :=0;_efdfdc < _gddca ;_efdfdc ++{_cgac *=_abfab .Size [_efdfdc ];};_edaff +=_cgac ;};_edaff *=_abfab .NumOutputs ;var _fccdg []float64 ;for _bgede :=0;_bgede < _abfab .NumOutputs ;
|
||
_bgede ++{_ggcdg :=_edaff +_bgede ;if _ggcdg >=len (_abfab ._ebgce ){_ag .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 ;};_geada :=_abfab ._ebgce [_ggcdg ];_bdba :=_gbed .LinearInterpolate (float64 (_geada ),0,_af .Pow (2,float64 (_abfab .BitsPerSample )),_cdce [2*_bgede ],_cdce [2*_bgede +1]);_eacb :=_af .Min (_af .Max (_bdba ,_abfab .Range [2*_bgede ]),_abfab .Range [2*_bgede +1]);
|
||
_fccdg =append (_fccdg ,_eacb );};return _fccdg ,nil ;};
|
||
|
||
// PdfAction represents an action in PDF (section 12.6 p. 412).
|
||
type PdfAction struct{_ga PdfModel ;Type _fd .PdfObject ;S _fd .PdfObject ;Next _fd .PdfObject ;_bfb *_fd .PdfIndirectObject ;};
|
||
|
||
// 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 ;_bgcc _fd .ParserMetadata ;};
|
||
|
||
// GetContentStreamWithEncoder returns the pattern cell's content stream and its encoder
|
||
func (_gdffg *PdfTilingPattern )GetContentStreamWithEncoder ()([]byte ,_fd .StreamEncoder ,error ){_fdbbb ,_beffe :=_gdffg ._gcgba .(*_fd .PdfObjectStream );if !_beffe {_ag .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",_gdffg ._gcgba );
|
||
return nil ,nil ,_fd .ErrTypeError ;};_fbffg ,_bgfcf :=_fd .DecodeStream (_fdbbb );if _bgfcf !=nil {_ag .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",_bgfcf );
|
||
return nil ,nil ,_bgfcf ;};_gbecd ,_bgfcf :=_fd .NewEncoderFromStream (_fdbbb );if _bgfcf !=nil {_ag .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",_bgfcf );
|
||
return nil ,nil ,_bgfcf ;};return _fbffg ,_gbecd ,nil ;};
|
||
|
||
// AddExtGState adds a graphics state to the XObject resources.
|
||
func (_gafda *PdfPage )AddExtGState (name _fd .PdfObjectName ,egs *_fd .PdfObjectDictionary )error {if _gafda .Resources ==nil {_gafda .Resources =NewPdfPageResources ();};if _gafda .Resources .ExtGState ==nil {_gafda .Resources .ExtGState =_fd .MakeDict ();
|
||
};_bbbd ,_abgbgf :=_fd .TraceToDirectObject (_gafda .Resources .ExtGState ).(*_fd .PdfObjectDictionary );if !_abgbgf {_ag .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",_fd .TraceToDirectObject (_gafda .Resources .ExtGState ));
|
||
return _ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_bbbd .Set (name ,egs );return nil ;};var (_feadd _g .Mutex ;_fbgc ="";_afgca _cd .Time ;_feebde ="";_cfgbe ="";_gbfgb _cd .Time ;_ecebc ="";_gcba ="";
|
||
_geacc ="";);
|
||
|
||
// String returns a string representation of the field.
|
||
func (_eceg *PdfField )String ()string {if _bgdfe ,_aefeb :=_eceg .ToPdfObject ().(*_fd .PdfIndirectObject );_aefeb {return _dc .Sprintf ("\u0025\u0054\u003a\u0020\u0025\u0073",_eceg ._becad ,_bgdfe .PdfObject .String ());};return "";};func (_eggcc *Image )resampleLowBits (_gbdga []uint32 ){_eafgd :=_gbed .BytesPerLine (int (_eggcc .Width ),int (_eggcc .BitsPerComponent ),_eggcc .ColorComponents );
|
||
_dadab :=make ([]byte ,_eggcc .ColorComponents *_eafgd *int (_eggcc .Height ));_afed :=int (_eggcc .BitsPerComponent )*_eggcc .ColorComponents *int (_eggcc .Width );_dbegf :=uint8 (8);var (_fggc ,_dffea int ;_gebab uint32 ;);for _agfdbg :=0;_agfdbg < int (_eggcc .Height );
|
||
_agfdbg ++{_dffea =_agfdbg *_eafgd ;for _gbcgc :=0;_gbcgc < _afed ;_gbcgc ++{_gebab =_gbdga [_fggc ];_dbegf -=uint8 (_eggcc .BitsPerComponent );_dadab [_dffea ]|=byte (_gebab )<<_dbegf ;if _dbegf ==0{_dbegf =8;_dffea ++;};_fggc ++;};};_eggcc .Data =_dadab ;
|
||
};func _bgae (_adbe []byte )(_efdbd ,_fdbc string ,_eeeeg error ){_ag .Log .Trace ("g\u0065\u0074\u0041\u0053CI\u0049S\u0065\u0063\u0074\u0069\u006fn\u0073\u003a\u0020\u0025\u0064\u0020",len (_adbe ));_gcbed :=_aeagf .FindIndex (_adbe );if _gcbed ==nil {_ag .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 "","",_fd .ErrTypeError ;};_effc :=_gcbed [1];_beaf :=_gg .Index (string (_adbe [_effc :]),_fedc );if _beaf < 0{_efdbd =string (_adbe [_effc :]);return _efdbd ,"",nil ;};_cdcf :=_effc +_beaf ;_efdbd =string (_adbe [_effc :_cdcf ]);_gcgf :=_cdcf ;
|
||
_beaf =_gg .Index (string (_adbe [_gcgf :]),_ddded );if _beaf < 0{_ag .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",_eeeeg );
|
||
return "","",_fd .ErrTypeError ;};_edcf :=_gcgf +_beaf ;_fdbc =string (_adbe [_gcgf :_edcf ]);return _efdbd ,_fdbc ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the DSS (indirect object).
|
||
func (_bbac *DSS )GetContainingPdfObject ()_fd .PdfObject {return _bbac ._bdcdg };
|
||
|
||
// NewPdfAction returns an initialized generic PDF action model.
|
||
func NewPdfAction ()*PdfAction {_cb :=&PdfAction {};_cb ._bfb =_fd .MakeIndirectObject (_fd .MakeDict ());return _cb ;};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_baaf *PdfColorCalRGB )B ()float64 {return _baaf [1]};func _cbec (_gffaf *PdfField ,_dagbb _fd .PdfObject )error {switch _gffaf .GetContext ().(type ){case *PdfFieldText :switch _adbae :=_dagbb .(type ){case *_fd .PdfObjectName :_edgbf :=_adbae ;
|
||
_ag .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",_edgbf .String ());
|
||
_gffaf .V =_fd .MakeEncodedString (_adbae .String (),true );case *_fd .PdfObjectString :_gffaf .V =_fd .MakeEncodedString (_adbae .String (),true );default:_ag .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",_adbae ,_adbae );
|
||
};case *PdfFieldButton :switch _dagbb .(type ){case *_fd .PdfObjectName :if len (_dagbb .String ())> 0{_gffaf .V =_dagbb ;_egffb (_gffaf ,_dagbb );};case *_fd .PdfObjectString :if len (_dagbb .String ())> 0{_gffaf .V =_fd .MakeName (_dagbb .String ());
|
||
_egffb (_gffaf ,_gffaf .V );};default:_ag .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",_gffaf .PartialName (),_dagbb );_gffaf .V =_dagbb ;
|
||
};case *PdfFieldChoice :switch _dagbb .(type ){case *_fd .PdfObjectName :if len (_dagbb .String ())> 0{_gffaf .V =_fd .MakeString (_dagbb .String ());_egffb (_gffaf ,_dagbb );};case *_fd .PdfObjectString :if len (_dagbb .String ())> 0{_gffaf .V =_dagbb ;
|
||
_egffb (_gffaf ,_fd .MakeName (_dagbb .String ()));};default:_ag .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",_gffaf .PartialName (),_dagbb );
|
||
_gffaf .V =_dagbb ;};case *PdfFieldSignature :_ag .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",_gffaf .PartialName (),_dagbb );
|
||
};return nil ;};
|
||
|
||
// PdfAnnotationMovie represents Movie annotations.
|
||
// (Section 12.5.6.17).
|
||
type PdfAnnotationMovie struct{*PdfAnnotation ;T _fd .PdfObject ;Movie _fd .PdfObject ;A _fd .PdfObject ;};func _bgaef (_dafbee rune )string {for _deea ,_baefg :=range _df .Categories {if len (_deea )==2&&_df .Is (_baefg ,_dafbee ){return _deea ;};};return "\u0043\u006e";
|
||
};
|
||
|
||
// EmbeddedFile represents an embedded file.
|
||
type EmbeddedFile struct{Name string ;Content []byte ;FileType string ;Description string ;Relationship FileRelationship ;Hash string ;CreationTime _cd .Time ;ModTime _cd .Time ;};
|
||
|
||
// 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 (_afgbb PdfOutputIntentType )String ()string {switch _afgbb {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";};};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_egcdc *pdfFontSimple )Encoder ()_ee .TextEncoder {if _egcdc ._dcfda !=nil {return _egcdc ._dcfda ;};if _egcdc ._gadae !=nil {return _egcdc ._gadae ;};_ffccg ,_ :=_ee .NewSimpleTextEncoder ("\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",nil );
|
||
return _ffccg ;};
|
||
|
||
// Fill populates `form` with values provided by `provider`.
|
||
func (_dbec *PdfAcroForm )Fill (provider FieldValueProvider )error {return _dbec .fill (provider ,nil )};func (_fgf *PdfReader )newPdfAnnotationPolyLineFromDict (_bgd *_fd .PdfObjectDictionary )(*PdfAnnotationPolyLine ,error ){_abga :=PdfAnnotationPolyLine {};
|
||
_bgbg ,_adgf :=_fgf .newPdfAnnotationMarkupFromDict (_bgd );if _adgf !=nil {return nil ,_adgf ;};_abga .PdfAnnotationMarkup =_bgbg ;_abga .Vertices =_bgd .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073");_abga .LE =_bgd .Get ("\u004c\u0045");_abga .BS =_bgd .Get ("\u0042\u0053");
|
||
_abga .IC =_bgd .Get ("\u0049\u0043");_abga .BE =_bgd .Get ("\u0042\u0045");_abga .IT =_bgd .Get ("\u0049\u0054");_abga .Measure =_bgd .Get ("\u004de\u0061\u0073\u0075\u0072\u0065");return &_abga ,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 _fd .PdfObject ;FontFamily _fd .PdfObject ;FontStretch _fd .PdfObject ;FontWeight _fd .PdfObject ;Flags _fd .PdfObject ;FontBBox _fd .PdfObject ;ItalicAngle _fd .PdfObject ;Ascent _fd .PdfObject ;Descent _fd .PdfObject ;
|
||
Leading _fd .PdfObject ;CapHeight _fd .PdfObject ;XHeight _fd .PdfObject ;StemV _fd .PdfObject ;StemH _fd .PdfObject ;AvgWidth _fd .PdfObject ;MaxWidth _fd .PdfObject ;MissingWidth _fd .PdfObject ;FontFile _fd .PdfObject ;FontFile2 _fd .PdfObject ;FontFile3 _fd .PdfObject ;
|
||
CharSet _fd .PdfObject ;_egced int ;_gfbd float64 ;*fontFile ;_dccc *_cf .TtfType ;
|
||
|
||
// Additional entries for CIDFonts
|
||
Style _fd .PdfObject ;Lang _fd .PdfObject ;FD _fd .PdfObject ;CIDSet _fd .PdfObject ;_aefcd *_fd .PdfIndirectObject ;};
|
||
|
||
// SetXObjectFormByName adds the provided XObjectForm to the page resources.
|
||
// The added XObjectForm is identified by the specified name.
|
||
func (_ecfe *PdfPageResources )SetXObjectFormByName (keyName _fd .PdfObjectName ,xform *XObjectForm )error {_abede :=xform .ToPdfObject ().(*_fd .PdfObjectStream );_cacga :=_ecfe .SetXObjectByName (keyName ,_abede );return _cacga ;};
|
||
|
||
// SetXObjectImageByNameLazy adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_aecef *PdfPageResources )SetXObjectImageByNameLazy (keyName _fd .PdfObjectName ,ximg *XObjectImage ,lazy bool )error {_ddcbg :=ximg .ToPdfObject ().(*_fd .PdfObjectStream );if lazy {_ddcbg .MakeLazy ();};_aafff :=_aecef .SetXObjectByName (keyName ,_ddcbg );
|
||
return _aafff ;};
|
||
|
||
// DecodeArray returns an empty slice as there are no components associated with pattern colorspace.
|
||
func (_gccc *PdfColorspaceSpecialPattern )DecodeArray ()[]float64 {return []float64 {}};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_aefeba *PdfTransformParamsDocMDP )ToPdfObject ()_fd .PdfObject {_gefgb :=_fd .MakeDict ();_gefgb .SetIfNotNil ("\u0054\u0079\u0070\u0065",_aefeba .Type );_gefgb .SetIfNotNil ("\u0056",_aefeba .V );_gefgb .SetIfNotNil ("\u0050",_aefeba .P );return _gefgb ;
|
||
};
|
||
|
||
// PdfActionSubmitForm represents a submitForm action.
|
||
type PdfActionSubmitForm struct{*PdfAction ;F *PdfFilespec ;Fields _fd .PdfObject ;Flags _fd .PdfObject ;};func (_aagd *PdfReader )newPdfOutlineItemFromIndirectObject (_fgage *_fd .PdfIndirectObject )(*PdfOutlineItem ,error ){_gceg ,_gddgb :=_fgage .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_gddgb {return nil ,_dc .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");};_bfedg :=NewPdfOutlineItem ();_dgebb :=_gceg .Get ("\u0054\u0069\u0074l\u0065");
|
||
if _dgebb ==nil {return nil ,_dc .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");
|
||
};_acbfb ,_fdcf :=_fd .GetString (_dgebb );if !_fdcf {return nil ,_dc .Errorf ("\u0074\u0069\u0074le\u0020\u006e\u006f\u0074\u0020\u0061\u0020\u0073\u0074\u0072\u0069\u006e\u0067\u0020\u0028\u0025\u0054\u0029",_dgebb );};_bfedg .Title =_acbfb ;if _edff :=_gceg .Get ("\u0043\u006f\u0075n\u0074");
|
||
_edff !=nil {_agfc ,_gecgf :=_edff .(*_fd .PdfObjectInteger );if !_gecgf {return nil ,_dc .Errorf ("\u0063o\u0075\u006e\u0074\u0020n\u006f\u0074\u0020\u0061\u006e \u0069n\u0074e\u0067\u0065\u0072\u0020\u0028\u0025\u0054)",_edff );};_dccbb :=int64 (*_agfc );
|
||
_bfedg .Count =&_dccbb ;};if _cdffd :=_gceg .Get ("\u0044\u0065\u0073\u0074");_cdffd !=nil {_bfedg .Dest =_fd .ResolveReference (_cdffd );if !_aagd ._gfdda {_egbbg :=_aagd .traverseObjectData (_bfedg .Dest );if _egbbg !=nil {return nil ,_egbbg ;};};};if _caedg :=_gceg .Get ("\u0041");
|
||
_caedg !=nil {_bfedg .A =_fd .ResolveReference (_caedg );if !_aagd ._gfdda {_ccbe :=_aagd .traverseObjectData (_bfedg .A );if _ccbe !=nil {return nil ,_ccbe ;};};};if _abcabe :=_gceg .Get ("\u0053\u0045");_abcabe !=nil {_bfedg .SE =nil ;};if _bgad :=_gceg .Get ("\u0043");
|
||
_bgad !=nil {_bfedg .C =_fd .ResolveReference (_bgad );};if _gecbe :=_gceg .Get ("\u0046");_gecbe !=nil {_bfedg .F =_fd .ResolveReference (_gecbe );};return _bfedg ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ebe *PdfAnnotationProjection )ToPdfObject ()_fd .PdfObject {_ebe .PdfAnnotation .ToPdfObject ();_aege :=_ebe ._aeb ;_gbcb :=_aege .PdfObject .(*_fd .PdfObjectDictionary );_ebe .PdfAnnotationMarkup .appendToPdfDictionary (_gbcb );return _aege ;};
|
||
|
||
|
||
// 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 (_dbbba *PdfReader )GetOutlinesFlattened ()([]*PdfOutlineTreeNode ,[]string ,error ){var _ceed []*PdfOutlineTreeNode ;var _cfdae []string ;var _dggcc func (*PdfOutlineTreeNode ,*[]*PdfOutlineTreeNode ,*[]string ,int );_dggcc =func (_acgba *PdfOutlineTreeNode ,_fggag *[]*PdfOutlineTreeNode ,_dbaec *[]string ,_bgfgd int ){if _acgba ==nil {return ;
|
||
};if _acgba ._gcgcg ==nil {_ag .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 ;};_aafb ,_bcagd :=_acgba ._gcgcg .(*PdfOutlineItem );if _bcagd {*_fggag =append (*_fggag ,&_aafb .PdfOutlineTreeNode );
|
||
_efdd :=_gg .Repeat ("\u0020",_bgfgd *2)+_aafb .Title .Decoded ();*_dbaec =append (*_dbaec ,_efdd );};if _acgba .First !=nil {_ffdae :=_gg .Repeat ("\u0020",_bgfgd *2)+"\u002b";*_dbaec =append (*_dbaec ,_ffdae );_dggcc (_acgba .First ,_fggag ,_dbaec ,_bgfgd +1);
|
||
};if _bcagd &&_aafb .Next !=nil {_dggcc (_aafb .Next ,_fggag ,_dbaec ,_bgfgd );};};_dggcc (_dbbba ._aceac ,&_ceed ,&_cfdae ,0);return _ceed ,_cfdae ,nil ;};
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single PdfObjectFloat element.
|
||
func (_decd *PdfColorspaceSpecialSeparation )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_deda ,_dgfgc :=_fd .GetNumbersAsFloat (objects );
|
||
if _dgfgc !=nil {return nil ,_dgfgc ;};return _decd .ColorFromFloats (_deda );};
|
||
|
||
// 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 (_ffea *PdfColorspaceDeviceRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcbf :=vals [0];if _gcbf < 0.0||_gcbf > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gcbf );
|
||
return nil ,ErrColorOutOfRange ;};_gdddg :=vals [1];if _gdddg < 0.0||_gdddg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gcbf );return nil ,ErrColorOutOfRange ;
|
||
};_aebg :=vals [2];if _aebg < 0.0||_aebg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gcbf );return nil ,ErrColorOutOfRange ;};_gecb :=NewPdfColorDeviceRGB (_gcbf ,_gdddg ,_aebg );
|
||
return _gecb ,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 (_ebdbf *PdfReader )Inspect ()(map[string ]int ,error ){return _ebdbf ._faaf .Inspect ()};
|
||
|
||
// Items returns all children outline items.
|
||
func (_eedb *OutlineItem )Items ()[]*OutlineItem {return _eedb .Entries };
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_abdgd *PdfShading )ToPdfObject ()_fd .PdfObject {_ffgcc :=_abdgd ._cdgfd ;_cebeg ,_bgbadc :=_abdgd .getShadingDict ();if _bgbadc !=nil {_ag .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 _abdgd .ShadingType !=nil {_cebeg .Set ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_abdgd .ShadingType );};if _abdgd .ColorSpace !=nil {_cebeg .Set ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_abdgd .ColorSpace .ToPdfObject ());
|
||
};if _abdgd .Background !=nil {_cebeg .Set ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064",_abdgd .Background );};if _abdgd .BBox !=nil {_cebeg .Set ("\u0042\u0042\u006f\u0078",_abdgd .BBox .ToPdfObject ());};if _abdgd .AntiAlias !=nil {_cebeg .Set ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s",_abdgd .AntiAlias );
|
||
};return _ffgcc ;};
|
||
|
||
// PdfActionImportData represents a importData action.
|
||
type PdfActionImportData struct{*PdfAction ;F *PdfFilespec ;};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name stream]
|
||
func (_gdbe *PdfColorspaceICCBased )ToPdfObject ()_fd .PdfObject {_afaee :=&_fd .PdfObjectArray {};_afaee .Append (_fd .MakeName ("\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"));var _ceag *_fd .PdfObjectStream ;if _gdbe ._fbad !=nil {_ceag =_gdbe ._fbad ;
|
||
}else {_ceag =&_fd .PdfObjectStream {};};_eaab :=_fd .MakeDict ();_eaab .Set ("\u004e",_fd .MakeInteger (int64 (_gdbe .N )));if _gdbe .Alternate !=nil {_eaab .Set ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e",_gdbe .Alternate .ToPdfObject ());};if _gdbe .Metadata !=nil {_eaab .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_gdbe .Metadata );
|
||
};if _gdbe .Range !=nil {var _cffc []_fd .PdfObject ;for _ ,_fbdb :=range _gdbe .Range {_cffc =append (_cffc ,_fd .MakeFloat (_fbdb ));};_eaab .Set ("\u0052\u0061\u006eg\u0065",_fd .MakeArray (_cffc ...));};_eaab .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_gdbe .Data ))));
|
||
_ceag .Stream =_gdbe .Data ;_ceag .PdfObjectDictionary =_eaab ;_afaee .Append (_ceag );if _gdbe ._gddfd !=nil {_gdbe ._gddfd .PdfObject =_afaee ;return _gdbe ._gddfd ;};return _afaee ;};func (_bdfe fontCommon )isCIDFont ()bool {if _bdfe ._eded ==""{_ag .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",_bdfe );
|
||
};_gbgb :=false ;switch _bdfe ._eded {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":_gbgb =true ;};_ag .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",_gbgb ,_bdfe );
|
||
return _gbgb ;};
|
||
|
||
// FieldImageProvider provides fields images for specified fields.
|
||
type FieldImageProvider interface{FieldImageValues ()(map[string ]*Image ,error );};
|
||
|
||
// NewPdfColorPatternType3 returns an empty color shading pattern type 3 (Radial).
|
||
func NewPdfColorPatternType3 ()*PdfColorPatternType3 {_afbb :=&PdfColorPatternType3 {};return _afbb };
|
||
|
||
// NewPdfPageResources returns a new PdfPageResources object.
|
||
func NewPdfPageResources ()*PdfPageResources {_eeabb :=&PdfPageResources {};_eeabb ._adegd =_fd .MakeDict ();return _eeabb ;};func _bcaa (_deb _fd .PdfObject )(*PdfColorspaceDeviceNAttributes ,error ){_fgbdc :=&PdfColorspaceDeviceNAttributes {};var _fecb *_fd .PdfObjectDictionary ;
|
||
switch _efbf :=_deb .(type ){case *_fd .PdfIndirectObject :_fgbdc ._cbd =_efbf ;var _cfff bool ;_fecb ,_cfff =_efbf .PdfObject .(*_fd .PdfObjectDictionary );if !_cfff {_ag .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 ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};case *_fd .PdfObjectDictionary :_fecb =_efbf ;case *_fd .PdfObjectReference :_bfgb :=_efbf .Resolve ();return _bcaa (_bfgb );default:_ag .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 ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dddec :=_fecb .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065");_dddec !=nil {_gdadcd ,_dagg :=_fd .TraceToDirectObject (_dddec ).(*_fd .PdfObjectName );if !_dagg {_ag .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 ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_fgbdc .Subtype =_gdadcd ;};if _aaecg :=_fecb .Get ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s");_aaecg !=nil {_fgbdc .Colorants =_aaecg ;};if _efdcb :=_fecb .Get ("\u0050r\u006f\u0063\u0065\u0073\u0073");
|
||
_efdcb !=nil {_fgbdc .Process =_efdcb ;};if _eafa :=_fecb .Get ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073");_eafa !=nil {_fgbdc .MixingHints =_eafa ;};return _fgbdc ,nil ;};
|
||
|
||
// NewStandard14FontMustCompile returns the standard 14 font named `basefont` as a *PdfFont.
|
||
// If `basefont` is one of the 14 Standard14Font values defined above then NewStandard14FontMustCompile
|
||
// is guaranteed to succeed.
|
||
func NewStandard14FontMustCompile (basefont StdFontName )*PdfFont {_gef ,_debae :=NewStandard14Font (basefont );if _debae !=nil {panic (_dc .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 _gef ;};const (_ PdfOutputIntentType =iota ;PdfOutputIntentTypeA1 ;PdfOutputIntentTypeA2 ;PdfOutputIntentTypeA3 ;PdfOutputIntentTypeA4 ;PdfOutputIntentTypeX ;);
|
||
|
||
// 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 (_adgfe *PdfReader )AcroFormNeedsRepair ()(bool ,error ){var _dfbcg []*PdfField ;if _adgfe .AcroForm !=nil {_dfbcg =_adgfe .AcroForm .AllFields ();};_bdccd :=make (map[*PdfField ]struct{},len (_dfbcg ));for _ ,_aefb :=range _dfbcg {_bdccd [_aefb ]=struct{}{};
|
||
};for _ ,_cddfg :=range _adgfe .PageList {_agdf ,_eegf :=_cddfg .GetAnnotations ();if _eegf !=nil {return false ,_eegf ;};for _ ,_baeef :=range _agdf {_feag ,_befad :=_baeef .GetContext ().(*PdfAnnotationWidget );if !_befad {continue ;};_ddec :=_feag .Field ();
|
||
if _ddec ==nil {return true ,nil ;};if _ ,_abgeg :=_bdccd [_ddec ];!_abgeg {return true ,nil ;};};};return false ,nil ;};
|
||
|
||
// SetOpenAction sets the OpenAction in the PDF catalog.
|
||
// The value shall be either an array defining a destination (12.3.2 "Destinations" PDF32000_2008),
|
||
// or an action dictionary representing an action (12.6 "Actions" PDF32000_2008).
|
||
func (_agddc *PdfWriter )SetOpenAction (dest _fd .PdfObject )error {if dest ==nil ||_fd .IsNullObject (dest ){return nil ;};_agddc ._fdaca .Set ("\u004f\u0070\u0065\u006e\u0041\u0063\u0074\u0069\u006f\u006e",dest );return _agddc .addObjects (dest );};func (_gfgff *PdfWriter )checkPendingObjects (){for _bffg ,_cebcd :=range _gfgff ._aaabd {if !_gfgff .hasObject (_bffg ){_ag .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",_bffg ,_bffg ,_bffg );
|
||
for _ ,_gfabda :=range _cebcd {for _ ,_dbgfe :=range _gfabda .Keys (){_gcbab :=_gfabda .Get (_dbgfe );if _gcbab ==_bffg {_ag .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");
|
||
_gfabda .Set (_dbgfe ,_fd .MakeNull ());break ;};};};};};};func _gcgad (_cedee *_fd .PdfObjectStream )(*PdfFunctionType0 ,error ){_eabgd :=&PdfFunctionType0 {};_eabgd ._efff =_cedee ;_fggdg :=_cedee .PdfObjectDictionary ;_ccfbc ,_bgeg :=_fd .TraceToDirectObject (_fggdg .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );
|
||
if !_bgeg {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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 _ccfbc .Len ()< 0||_ccfbc .Len ()%2!=0{_ag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");
|
||
};_eabgd .NumInputs =_ccfbc .Len ()/2;_bfbbf ,_bgccd :=_ccfbc .ToFloat64Array ();if _bgccd !=nil {return nil ,_bgccd ;};_eabgd .Domain =_bfbbf ;_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );
|
||
if !_bgeg {_ag .Log .Error ("\u0052\u0061\u006e\u0067e \u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064");return nil ,_ad .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 _ccfbc .Len ()< 0||_ccfbc .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_eabgd .NumOutputs =_ccfbc .Len ()/2;_bbdec ,_bgccd :=_ccfbc .ToFloat64Array ();if _bgccd !=nil {return nil ,_bgccd ;
|
||
};_eabgd .Range =_bbdec ;_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0053\u0069\u007a\u0065")).(*_fd .PdfObjectArray );if !_bgeg {_ag .Log .Error ("\u0053i\u007ae\u0020\u006e\u006f\u0074\u0020s\u0070\u0065c\u0069\u0066\u0069\u0065\u0064");
|
||
return nil ,_ad .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");};_eabab ,_bgccd :=_ccfbc .ToIntegerArray ();
|
||
if _bgccd !=nil {return nil ,_bgccd ;};if len (_eabab )!=_eabgd .NumInputs {_ag .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 ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eabgd .Size =_eabab ;_gggeg ,_bgeg :=_fd .TraceToDirectObject (_fggdg .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065")).(*_fd .PdfObjectInteger );
|
||
if !_bgeg {_ag .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 ,_ad .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 *_gggeg !=1&&*_gggeg !=2&&*_gggeg !=4&&*_gggeg !=8&&*_gggeg !=12&&*_gggeg !=16&&*_gggeg !=24&&*_gggeg !=32{_ag .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",*_gggeg );
|
||
return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eabgd .BitsPerSample =int (*_gggeg );_eabgd .Order =1;_ccafa ,_bgeg :=_fd .TraceToDirectObject (_fggdg .Get ("\u004f\u0072\u0064e\u0072")).(*_fd .PdfObjectInteger );
|
||
if _bgeg {if *_ccafa !=1&&*_ccafa !=3{_ag .Log .Error ("\u0049n\u0076a\u006c\u0069\u0064\u0020\u006fr\u0064\u0065r\u0020\u0028\u0025\u0064\u0029",*_ccafa );return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eabgd .Order =int (*_ccafa );
|
||
};_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );if _bgeg {_ecad ,_fgcgc :=_ccfbc .ToFloat64Array ();if _fgcgc !=nil {return nil ,_fgcgc ;};_eabgd .Encode =_ecad ;};_ccfbc ,_bgeg =_fd .TraceToDirectObject (_fggdg .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );
|
||
if _bgeg {_cfcfd ,_befdf :=_ccfbc .ToFloat64Array ();if _befdf !=nil {return nil ,_befdf ;};_eabgd .Decode =_cfcfd ;};_geggf ,_bgccd :=_fd .DecodeStream (_cedee );if _bgccd !=nil {return nil ,_bgccd ;};_eabgd ._facbf =_geggf ;return _eabgd ,nil ;};
|
||
|
||
// SetDocInfo sets the document /Info metadata.
|
||
// This will overwrite any globally declared document info.
|
||
func (_ebdc *PdfAppender )SetDocInfo (info *PdfInfo ){_ebdc ._edb =info };func (_aeee *PdfColorspaceSpecialSeparation )String ()string {return "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e";};
|
||
|
||
// 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 (_bebe *PdfAnnotationWidget )Field ()*PdfField {return _bebe ._eabc };
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_fafg *PdfColorspaceSpecialPattern )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _fafg .UnderlyingCS ==nil {return nil ,_ad .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 _fafg .UnderlyingCS .ColorFromFloats (vals );};
|
||
|
||
// ToPdfObject returns colorspace in a PDF object format [name dictionary]
|
||
func (_cgfe *PdfColorspaceLab )ToPdfObject ()_fd .PdfObject {_cega :=_fd .MakeArray ();_cega .Append (_fd .MakeName ("\u004c\u0061\u0062"));_bged :=_fd .MakeDict ();if _cgfe .WhitePoint !=nil {_eddb :=_fd .MakeArray (_fd .MakeFloat (_cgfe .WhitePoint [0]),_fd .MakeFloat (_cgfe .WhitePoint [1]),_fd .MakeFloat (_cgfe .WhitePoint [2]));
|
||
_bged .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_eddb );}else {_ag .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 _cgfe .BlackPoint !=nil {_cdegg :=_fd .MakeArray (_fd .MakeFloat (_cgfe .BlackPoint [0]),_fd .MakeFloat (_cgfe .BlackPoint [1]),_fd .MakeFloat (_cgfe .BlackPoint [2]));_bged .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_cdegg );
|
||
};if _cgfe .Range !=nil {_eebb :=_fd .MakeArray (_fd .MakeFloat (_cgfe .Range [0]),_fd .MakeFloat (_cgfe .Range [1]),_fd .MakeFloat (_cgfe .Range [2]),_fd .MakeFloat (_cgfe .Range [3]));_bged .Set ("\u0052\u0061\u006eg\u0065",_eebb );};_cega .Append (_bged );
|
||
if _cgfe ._ddfd !=nil {_cgfe ._ddfd .PdfObject =_cega ;return _cgfe ._ddfd ;};return _cega ;};func (_gbacb *PdfWriter )AttachFile (file *EmbeddedFile )error {_bfdf :=_gbacb ._gdabc ;if _bfdf ==nil {_bfdf =_dfgfd ();};_faefd :=_bfdf .addEmbeddedFile (file );
|
||
if _faefd !=nil {return _faefd ;};_gbacb ._gdabc =_bfdf ;return nil ;};
|
||
|
||
// NewPdfActionGoTo3DView returns a new "goTo3DView" action.
|
||
func NewPdfActionGoTo3DView ()*PdfActionGoTo3DView {_dg :=NewPdfAction ();_dadd :=&PdfActionGoTo3DView {};_dadd .PdfAction =_dg ;_dg .SetContext (_dadd );return _dadd ;};func (_ebffd *pdfFontType3 )getFontDescriptor ()*PdfFontDescriptor {return _ebffd ._babe };
|
||
|
||
|
||
// PdfActionJavaScript represents a javaScript action.
|
||
type PdfActionJavaScript struct{*PdfAction ;JS _fd .PdfObject ;};
|
||
|
||
// GetMediaBox gets the inheritable media box value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_dagdc *PdfPage )GetMediaBox ()(*PdfRectangle ,error ){if _dagdc .MediaBox !=nil {return _dagdc .MediaBox ,nil ;};_edbbg :=_dagdc .Parent ;for _edbbg !=nil {_dcece ,_eebad :=_fd .GetDict (_edbbg );if !_eebad {return nil ,_ad .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 _cdbgc :=_dcece .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");_cdbgc !=nil {_egdba ,_gbcaad :=_fd .GetArray (_cdbgc );if !_gbcaad {return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006d\u0065\u0064\u0069a\u0020\u0062\u006f\u0078");
|
||
};_eeede ,_aeeef :=NewPdfRectangle (*_egdba );if _aeeef !=nil {return nil ,_aeeef ;};return _eeede ,nil ;};_edbbg =_dcece .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return nil ,_ad .New ("m\u0065\u0064\u0069\u0061 b\u006fx\u0020\u006e\u006f\u0074\u0020d\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// PdfAnnotationStamp represents Stamp annotations.
|
||
// (Section 12.5.6.12).
|
||
type PdfAnnotationStamp struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Name _fd .PdfObject ;};
|
||
|
||
// NewPdfColorspaceLab returns a new Lab colorspace object.
|
||
func NewPdfColorspaceLab ()*PdfColorspaceLab {_bbeba :=&PdfColorspaceLab {};_bbeba .BlackPoint =[]float64 {0.0,0.0,0.0};_bbeba .Range =[]float64 {-100,100,-100,100};return _bbeba ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gbeb *PdfActionMovie )ToPdfObject ()_fd .PdfObject {_gbeb .PdfAction .ToPdfObject ();_aaa :=_gbeb ._bfb ;_ace :=_aaa .PdfObject .(*_fd .PdfObjectDictionary );_ace .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeMovie )));_ace .SetIfNotNil ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e",_gbeb .Annotation );
|
||
_ace .SetIfNotNil ("\u0054",_gbeb .T );_ace .SetIfNotNil ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn",_gbeb .Operation );return _aaa ;};
|
||
|
||
// NewPdfActionJavaScript returns a new "javaScript" action.
|
||
func NewPdfActionJavaScript ()*PdfActionJavaScript {_aa :=NewPdfAction ();_age :=&PdfActionJavaScript {};_age .PdfAction =_aa ;_aa .SetContext (_age );return _age ;};
|
||
|
||
// 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 (_bfc *PdfReader )newPdfAnnotationWatermarkFromDict (_fabcg *_fd .PdfObjectDictionary )(*PdfAnnotationWatermark ,error ){_cfga :=PdfAnnotationWatermark {};_cfga .FixedPrint =_fabcg .Get ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074");
|
||
return &_cfga ,nil ;};
|
||
|
||
// ImageToRGB converts Lab colorspace image to RGB and returns the result.
|
||
func (_cagb *PdfColorspaceLab )ImageToRGB (img Image )(Image ,error ){_geae :=func (_bgac float64 )float64 {if _bgac >=6.0/29{return _bgac *_bgac *_bgac ;};return 108.0/841*(_bgac -4.0/29.0);};_gbae :=img ._cdbdc ;if len (_gbae )!=6{_ag .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");
|
||
_gbae =_cagb .DecodeArray ();};_ggea :=_bg .NewReader (img .getBase ());_acggg :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,img ._gfffd ,img ._cdbdc );_bggg :=_bg .NewWriter (_acggg );_efef :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;
|
||
_dbfe :=make ([]uint32 ,3);var (_bage error ;Ls ,As ,Bs ,L ,M ,N ,X ,Y ,Z ,_cbg ,_bcgd ,_aebe float64 ;);for {_bage =_ggea .ReadSamples (_dbfe );if _bage ==_bc .EOF {break ;}else if _bage !=nil {return img ,_bage ;};Ls =float64 (_dbfe [0])/_efef ;As =float64 (_dbfe [1])/_efef ;
|
||
Bs =float64 (_dbfe [2])/_efef ;Ls =_gbed .LinearInterpolate (Ls ,0.0,1.0,_gbae [0],_gbae [1]);As =_gbed .LinearInterpolate (As ,0.0,1.0,_gbae [2],_gbae [3]);Bs =_gbed .LinearInterpolate (Bs ,0.0,1.0,_gbae [4],_gbae [5]);L =(Ls +16)/116+As /500;M =(Ls +16)/116;
|
||
N =(Ls +16)/116-Bs /200;X =_cagb .WhitePoint [0]*_geae (L );Y =_cagb .WhitePoint [1]*_geae (M );Z =_cagb .WhitePoint [2]*_geae (N );_cbg =3.240479*X +-1.537150*Y +-0.498535*Z ;_bcgd =-0.969256*X +1.875992*Y +0.041556*Z ;_aebe =0.055648*X +-0.204043*Y +1.057311*Z ;
|
||
_cbg =_af .Min (_af .Max (_cbg ,0),1.0);_bcgd =_af .Min (_af .Max (_bcgd ,0),1.0);_aebe =_af .Min (_af .Max (_aebe ,0),1.0);_dbfe [0]=uint32 (_cbg *_efef );_dbfe [1]=uint32 (_bcgd *_efef );_dbfe [2]=uint32 (_aebe *_efef );if _bage =_bggg .WriteSamples (_dbfe );
|
||
_bage !=nil {return img ,_bage ;};};return _eeafa (&_acggg ),nil ;};
|
||
|
||
// HasXObjectByName checks if has XObject resource by name.
|
||
func (_bageg *PdfPage )HasXObjectByName (name _fd .PdfObjectName )bool {_fcabe ,_gfgbd :=_bageg .Resources .XObject .(*_fd .PdfObjectDictionary );if !_gfgbd {return false ;};if _geacd :=_fcabe .Get (name );_geacd !=nil {return true ;};return false ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_ggdac *PdfFunctionType2 )ToPdfObject ()_fd .PdfObject {_baaea :=_fd .MakeDict ();_baaea .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (2));_fadbd :=&_fd .PdfObjectArray {};for _ ,_ecgcg :=range _ggdac .Domain {_fadbd .Append (_fd .MakeFloat (_ecgcg ));
|
||
};_baaea .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fadbd );if _ggdac .Range !=nil {_dabe :=&_fd .PdfObjectArray {};for _ ,_cagga :=range _ggdac .Range {_dabe .Append (_fd .MakeFloat (_cagga ));};_baaea .Set ("\u0052\u0061\u006eg\u0065",_dabe );};if _ggdac .C0 !=nil {_badac :=&_fd .PdfObjectArray {};
|
||
for _ ,_cbbga :=range _ggdac .C0 {_badac .Append (_fd .MakeFloat (_cbbga ));};_baaea .Set ("\u0043\u0030",_badac );};if _ggdac .C1 !=nil {_gdee :=&_fd .PdfObjectArray {};for _ ,_cecd :=range _ggdac .C1 {_gdee .Append (_fd .MakeFloat (_cecd ));};_baaea .Set ("\u0043\u0031",_gdee );
|
||
};_baaea .Set ("\u004e",_fd .MakeFloat (_ggdac .N ));if _ggdac ._babf !=nil {_ggdac ._babf .PdfObject =_baaea ;return _ggdac ._babf ;};return _baaea ;};
|
||
|
||
// NewPdfAnnotationStamp returns a new stamp annotation.
|
||
func NewPdfAnnotationStamp ()*PdfAnnotationStamp {_cgeg :=NewPdfAnnotation ();_befa :=&PdfAnnotationStamp {};_befa .PdfAnnotation =_cgeg ;_befa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cgeg .SetContext (_befa );return _befa ;};func _abgab (_cbgce *_fd .PdfIndirectObject )(*PdfOutline ,error ){_cafaa ,_aebefe :=_cbgce .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_aebefe {return nil ,_dc .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");};_fgfb :=NewPdfOutline ();if _ebbf :=_cafaa .Get ("\u0054\u0079\u0070\u0065");
|
||
_ebbf !=nil {_dfefb ,_ggdec :=_ebbf .(*_fd .PdfObjectName );if _ggdec {if *_dfefb !="\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"{_ag .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",*_dfefb );
|
||
};};};if _ggcb :=_cafaa .Get ("\u0043\u006f\u0075n\u0074");_ggcb !=nil {_bbfdg ,_bfdba :=_fd .GetNumberAsInt64 (_ggcb );if _bfdba !=nil {return nil ,_bfdba ;};_fgfb .Count =&_bbfdg ;};return _fgfb ,nil ;};type pdfFontType3 struct{fontCommon ;_fcac *_fd .PdfIndirectObject ;
|
||
|
||
|
||
// These fields are specific to Type 3 fonts.
|
||
CharProcs _fd .PdfObject ;Encoding _fd .PdfObject ;FontBBox _fd .PdfObject ;FontMatrix _fd .PdfObject ;FirstChar _fd .PdfObject ;LastChar _fd .PdfObject ;Widths _fd .PdfObject ;Resources _fd .PdfObject ;_febf map[_ee .CharCode ]float64 ;_eceb _ee .TextEncoder ;
|
||
};
|
||
|
||
// PdfPageResources is a Page resources model.
|
||
// Implements PdfModel.
|
||
type PdfPageResources struct{ExtGState _fd .PdfObject ;ColorSpace _fd .PdfObject ;Pattern _fd .PdfObject ;Shading _fd .PdfObject ;XObject _fd .PdfObject ;Font _fd .PdfObject ;ProcSet _fd .PdfObject ;Properties _fd .PdfObject ;_adegd *_fd .PdfObjectDictionary ;
|
||
_agaf *PdfPageResourcesColorspaces ;};
|
||
|
||
// AddOCSPs adds OCSPs to DSS.
|
||
func (_egaff *DSS )AddOCSPs (ocsps [][]byte )([]*_fd .PdfObjectStream ,error ){return _egaff .add (&_egaff .OCSPs ,_egaff ._baceg ,ocsps );};func (_bcbdb *PdfWriter )writeXRefStreams (_cafcgb int ,_cgbfg int64 )error {_abfaa :=_cafcgb +1;_bcbdb ._bccbb [_abfaa ]=crossReference {Type :1,ObjectNumber :_abfaa ,Offset :_cgbfg };
|
||
_cbgfg :=_bf .NewBuffer (nil );_fgcbcd :=_fd .MakeArray ();for _dacga :=0;_dacga <=_cafcgb ;{for ;_dacga <=_cafcgb ;_dacga ++{_cbdca ,_bgffc :=_bcbdb ._bccbb [_dacga ];if _bgffc &&(!_bcbdb ._fbgg ||_bcbdb ._fbgg &&(_cbdca .Type ==1&&_cbdca .Offset >=_bcbdb ._bfdbd ||_cbdca .Type ==0)){break ;
|
||
};};var _ebfff int ;for _ebfff =_dacga +1;_ebfff <=_cafcgb ;_ebfff ++{_gcfae ,_gfgd :=_bcbdb ._bccbb [_ebfff ];if _gfgd &&(!_bcbdb ._fbgg ||_bcbdb ._fbgg &&(_gcfae .Type ==1&&_gcfae .Offset > _bcbdb ._bfdbd )){continue ;};break ;};_fgcbcd .Append (_fd .MakeInteger (int64 (_dacga )),_fd .MakeInteger (int64 (_ebfff -_dacga )));
|
||
for _deddd :=_dacga ;_deddd < _ebfff ;_deddd ++{_aebgf :=_bcbdb ._bccbb [_deddd ];switch _aebgf .Type {case 0:_ff .Write (_cbgfg ,_ff .BigEndian ,byte (0));_ff .Write (_cbgfg ,_ff .BigEndian ,uint32 (0));_ff .Write (_cbgfg ,_ff .BigEndian ,uint16 (0xFFFF));
|
||
case 1:_ff .Write (_cbgfg ,_ff .BigEndian ,byte (1));_ff .Write (_cbgfg ,_ff .BigEndian ,uint32 (_aebgf .Offset ));_ff .Write (_cbgfg ,_ff .BigEndian ,uint16 (_aebgf .Generation ));case 2:_ff .Write (_cbgfg ,_ff .BigEndian ,byte (2));_ff .Write (_cbgfg ,_ff .BigEndian ,uint32 (_aebgf .ObjectNumber ));
|
||
_ff .Write (_cbgfg ,_ff .BigEndian ,uint16 (_aebgf .Index ));};};_dacga =_ebfff +1;};_fdffg ,_cafbg :=_fd .MakeStream (_cbgfg .Bytes (),_fd .NewFlateEncoder ());if _cafbg !=nil {return _cafbg ;};_fdffg .ObjectNumber =int64 (_abfaa );_fdffg .PdfObjectDictionary .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058\u0052\u0065\u0066"));
|
||
_fdffg .PdfObjectDictionary .Set ("\u0057",_fd .MakeArray (_fd .MakeInteger (1),_fd .MakeInteger (4),_fd .MakeInteger (2)));_fdffg .PdfObjectDictionary .Set ("\u0049\u006e\u0064e\u0078",_fgcbcd );_fdffg .PdfObjectDictionary .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (_abfaa )));
|
||
_fdffg .PdfObjectDictionary .Set ("\u0049\u006e\u0066\u006f",_bcbdb ._ggdfa );_fdffg .PdfObjectDictionary .Set ("\u0052\u006f\u006f\u0074",_bcbdb ._defdd );if _bcbdb ._fbgg &&_bcbdb ._ecfc > 0{_fdffg .PdfObjectDictionary .Set ("\u0050\u0072\u0065\u0076",_fd .MakeInteger (_bcbdb ._ecfc ));
|
||
};if _bcbdb ._egadf !=nil {_fdffg .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bcbdb ._abbcc );};if _bcbdb ._bgdef ==nil &&_bcbdb ._gaeaa !=""&&_bcbdb ._cgaga !=""{_bcbdb ._bgdef =_fd .MakeArray (_fd .MakeHexString (_bcbdb ._gaeaa ),_fd .MakeHexString (_bcbdb ._cgaga ));
|
||
};if _bcbdb ._bgdef !=nil {_ag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bcbdb ._bgdef );_fdffg .Set ("\u0049\u0044",_bcbdb ._bgdef );};_bcbdb .writeObject (int (_fdffg .ObjectNumber ),_fdffg );return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the outline tree node.
|
||
func (_dfaeg *PdfOutlineTreeNode )ToPdfObject ()_fd .PdfObject {return _dfaeg .GetContext ().ToPdfObject ();};
|
||
|
||
// 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 *_fd .PdfObjectInteger ;ColorSpace PdfColorspace ;Background *_fd .PdfObjectArray ;BBox *PdfRectangle ;AntiAlias *_fd .PdfObjectBool ;_cgfce PdfModel ;_cdgfd _fd .PdfObject ;};
|
||
|
||
// PdfModel is a higher level PDF construct which can be collapsed into a PdfObject.
|
||
// Each PdfModel has an underlying PdfObject and vice versa (one-to-one).
|
||
// Under normal circumstances there should only be one copy of each.
|
||
// Copies can be made, but care must be taken to do it properly.
|
||
type PdfModel interface{ToPdfObject ()_fd .PdfObject ;GetContainingPdfObject ()_fd .PdfObject ;};
|
||
|
||
// AddContentStreamByString adds content stream by string. Puts the content
|
||
// string into a stream object and points the content stream towards it.
|
||
func (_bcfaf *PdfPage )AddContentStreamByString (contentStr string )error {_fbeee ,_cadeg :=_fd .MakeStream ([]byte (contentStr ),_fd .NewFlateEncoder ());if _cadeg !=nil {return _cadeg ;};if _bcfaf .Contents ==nil {_bcfaf .Contents =_fbeee ;}else {_adgfb :=_fd .TraceToDirectObject (_bcfaf .Contents );
|
||
_ccacg ,_gbdd :=_adgfb .(*_fd .PdfObjectArray );if !_gbdd {_ccacg =_fd .MakeArray (_adgfb );};_ccacg .Append (_fbeee );_bcfaf .Contents =_ccacg ;};return nil ;};func (_badd *PdfAcroForm )fillImageWithAppearance (_fcff FieldImageProvider ,_cfeaa FieldAppearanceGenerator )error {if _badd ==nil {return nil ;
|
||
};_daffa ,_fegc :=_fcff .FieldImageValues ();if _fegc !=nil {return _fegc ;};for _ ,_dafa :=range _badd .AllFields (){_dbaac :=_dafa .PartialName ();_efbff ,_defc :=_daffa [_dbaac ];if !_defc {if _fagc ,_dfbga :=_dafa .FullName ();_dfbga ==nil {_efbff ,_defc =_daffa [_fagc ];
|
||
};};if !_defc {_ag .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",_dbaac );
|
||
continue ;};switch _aedde :=_dafa .GetContext ().(type ){case *PdfFieldButton :if _aedde .IsPush (){_aedde .SetFillImage (_efbff );};};if _cfeaa ==nil {continue ;};for _ ,_facf :=range _dafa .Annotations {_acgaa ,_gdffe :=_cfeaa .GenerateAppearanceDict (_badd ,_dafa ,_facf );
|
||
if _gdffe !=nil {return _gdffe ;};_facf .AP =_acgaa ;_facf .ToPdfObject ();};};return nil ;};const (RelationshipSource FileRelationship =iota ;RelationshipData ;RelationshipAlternative ;RelationshipSupplement ;RelationshipUnspecified ;);
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gaf *PdfActionImportData )ToPdfObject ()_fd .PdfObject {_gaf .PdfAction .ToPdfObject ();_gde :=_gaf ._bfb ;_gabc :=_gde .PdfObject .(*_fd .PdfObjectDictionary );_gabc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeImportData )));if _gaf .F !=nil {_gabc .Set ("\u0046",_gaf .F .ToPdfObject ());
|
||
};return _gde ;};
|
||
|
||
// PdfAnnotationPolygon represents Polygon annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolygon struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fd .PdfObject ;LE _fd .PdfObject ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;IT _fd .PdfObject ;Measure _fd .PdfObject ;};
|
||
|
||
// GenerateHashMaps generates DSS hashmaps for Certificates, OCSPs and CRLs to make sure they are unique.
|
||
func (_dbea *DSS )GenerateHashMaps ()error {_fabg ,_fdfcf :=_dbea .generateHashMap (_dbea .Certs );if _fdfcf !=nil {return _fdfcf ;};_cegf ,_fdfcf :=_dbea .generateHashMap (_dbea .OCSPs );if _fdfcf !=nil {return _fdfcf ;};_ddbc ,_fdfcf :=_dbea .generateHashMap (_dbea .CRLs );
|
||
if _fdfcf !=nil {return _fdfcf ;};_dbea ._ffbg =_fabg ;_dbea ._baceg =_cegf ;_dbea ._bgacf =_ddbc ;return nil ;};
|
||
|
||
// Outline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
// Currently, the Outline object can only be used to construct PDF outlines.
|
||
type Outline struct{Entries []*OutlineItem `json:"entries,omitempty"`;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ced *PdfAnnotationRedact )ToPdfObject ()_fd .PdfObject {_ced .PdfAnnotation .ToPdfObject ();_dddd :=_ced ._aeb ;_defgg :=_dddd .PdfObject .(*_fd .PdfObjectDictionary );_ced .PdfAnnotationMarkup .appendToPdfDictionary (_defgg );_defgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0052\u0065\u0064\u0061\u0063\u0074"));
|
||
_defgg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_ced .QuadPoints );_defgg .SetIfNotNil ("\u0049\u0043",_ced .IC );_defgg .SetIfNotNil ("\u0052\u004f",_ced .RO );_defgg .SetIfNotNil ("O\u0076\u0065\u0072\u006c\u0061\u0079\u0054\u0065\u0078\u0074",_ced .OverlayText );
|
||
_defgg .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_ced .Repeat );_defgg .SetIfNotNil ("\u0044\u0041",_ced .DA );_defgg .SetIfNotNil ("\u0051",_ced .Q );return _dddd ;};func _egffb (_fgeae *PdfField ,_debbag _fd .PdfObject ){for _ ,_eaac :=range _fgeae .Annotations {_eaac .AS =_debbag ;
|
||
_eaac .ToPdfObject ();};};
|
||
|
||
// Y returns the value of the yellow component of the color.
|
||
func (_adged *PdfColorDeviceCMYK )Y ()float64 {return _adged [2]};
|
||
|
||
// Hasher is the interface that wraps the basic Write method.
|
||
type Hasher interface{Write (_gggbc []byte )(_eefea int ,_ceefd error );};func (_adgcc *PdfReader )lookupPageByObject (_bgdc _fd .PdfObject )(*PdfPage ,error ){return nil ,_ad .New ("\u0070\u0061\u0067\u0065\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");
|
||
};
|
||
|
||
// 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 ){_fdbf ,_eega :=_gbe .Open (filePath );if _eega !=nil {_ag .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",_eega );
|
||
return nil ,_eega ;};defer _fdbf .Close ();return NewPdfFontFromTTF (_fdbf );};
|
||
|
||
// SetReason sets the `Reason` field of the signature.
|
||
func (_eagdb *PdfSignature )SetReason (reason string ){_eagdb .Reason =_fd .MakeEncodedString (reason ,true );};
|
||
|
||
// NewMultipleFontEncoder returns instantiates a new *MultipleFontEncoder
|
||
func NewMultipleFontEncoder (fonts []*PdfFont )*MultipleFontEncoder {return &MultipleFontEncoder {_ccbbf :fonts ,CurrentFont :fonts [0]};};
|
||
|
||
// NewPdfColorspaceCalRGB returns a new CalRGB colorspace object.
|
||
func NewPdfColorspaceCalRGB ()*PdfColorspaceCalRGB {_fgaf :=&PdfColorspaceCalRGB {};_fgaf .BlackPoint =[]float64 {0.0,0.0,0.0};_fgaf .Gamma =[]float64 {1.0,1.0,1.0};_fgaf .Matrix =[]float64 {1,0,0,0,1,0,0,0,1};return _fgaf ;};
|
||
|
||
// 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 (_fceeg *LTV )EnableAll (extraCerts []*_gff .Certificate )error {_fafff :=_fceeg ._gaggb ._efec .AcroForm ;for _ ,_ddaf :=range _fafff .AllFields (){_cebdb ,_ :=_ddaf .GetContext ().(*PdfFieldSignature );if _cebdb ==nil {continue ;};_cbgd :=_cebdb .V ;
|
||
if _bgbac :=_fceeg .validateSig (_cbgd );_bgbac !=nil {_ag .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",_bgbac );
|
||
};if _dgbfa :=_fceeg .Enable (_cbgd ,extraCerts );_dgbfa !=nil {return _dgbfa ;};};return nil ;};
|
||
|
||
// NewPdfActionNamed returns a new "named" action.
|
||
func NewPdfActionNamed ()*PdfActionNamed {_fcg :=NewPdfAction ();_eab :=&PdfActionNamed {};_eab .PdfAction =_fcg ;_fcg .SetContext (_eab );return _eab ;};
|
||
|
||
// Write writes out the PDF.
|
||
func (_gfece *PdfWriter )Write (writer _bc .Writer )error {_ag .Log .Trace ("\u0057r\u0069\u0074\u0065\u0028\u0029");_cffbc :=_gfece .checkLicense ();if _cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .writeOutlines ();_cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .writeAcroFormFields ();
|
||
_cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .writeNamesDictionary ();_cffbc !=nil {return _cffbc ;};_gfece .checkPendingObjects ();if _cffbc =_gfece .writeOutputIntents ();_cffbc !=nil {return _cffbc ;};_gfece .setCatalogVersion ();_gfece .copyObjects ();
|
||
if _cffbc =_gfece .optimize ();_cffbc !=nil {return _cffbc ;};if _cffbc =_gfece .optimizeDocument ();_cffbc !=nil {return _cffbc ;};var _abfeb _a .Hash ;if _gfece ._cgde {_abfeb =_dad .New ();writer =_bc .MultiWriter (_abfeb ,writer );};_gfece .setWriter (writer );
|
||
_bfggbe :=_gfece .checkCrossReferenceStream ();_dgcee ,_bfggbe :=_gfece .mapObjectStreams (_bfggbe );_gfece .adjustXRefAffectedVersion (_bfggbe );_gfece .writeDocumentVersion ();_gfece .updateObjectNumbers ();_gfece .writeObjects ();if _cffbc =_gfece .writeObjectsInStreams (_dgcee );
|
||
_cffbc !=nil {return _cffbc ;};_gaedc :=_gfece ._bbcab ;var _fdfbc int ;for _dfcafe :=range _gfece ._bccbb {if _dfcafe > _fdfbc {_fdfbc =_dfcafe ;};};if _gfece ._cgde {if _cffbc =_gfece .setHashIDs (_abfeb );_cffbc !=nil {return _cffbc ;};};if _bfggbe {if _cffbc =_gfece .writeXRefStreams (_fdfbc ,_gaedc );
|
||
_cffbc !=nil {return _cffbc ;};}else {_gfece .writeTrailer (_fdfbc );};_gfece .makeOffSetReference (_gaedc );if _cffbc =_gfece .flushWriter ();_cffbc !=nil {return _cffbc ;};return nil ;};
|
||
|
||
// SetBorderWidth sets the style's border width.
|
||
func (_deae *PdfBorderStyle )SetBorderWidth (width float64 ){_deae .W =&width };
|
||
|
||
// PdfActionURI represents an URI action.
|
||
type PdfActionURI struct{*PdfAction ;URI _fd .PdfObject ;IsMap _fd .PdfObject ;};
|
||
|
||
// DecodeArray returns the component range values for the Separation colorspace.
|
||
func (_accfc *PdfColorspaceSpecialSeparation )DecodeArray ()[]float64 {return []float64 {0,1.0}};func (_aaeb *PdfPage )flattenFieldsWithOpts (_cbaa FieldAppearanceGenerator ,_fbbe *FieldFlattenOpts ,_edgad map[*PdfAnnotation ]bool )error {var _cbdfb []*PdfAnnotation ;
|
||
if _cbaa !=nil {if _caef :=_cbaa .WrapContentStream (_aaeb );_caef !=nil {return _caef ;};};_dbed ,_edccb :=_aaeb .GetAnnotations ();if _edccb !=nil {return _edccb ;};for _ ,_cfgba :=range _dbed {_decfb ,_geeg :=_edgad [_cfgba ];if !_geeg &&_fbbe .AnnotFilterFunc !=nil {if _ ,_eeag :=_cfgba .GetContext ().(*PdfAnnotationWidget );
|
||
!_eeag {_geeg =_fbbe .AnnotFilterFunc (_cfgba );};};if !_geeg {_cbdfb =append (_cbdfb ,_cfgba );continue ;};switch _cfgba .GetContext ().(type ){case *PdfAnnotationPopup :continue ;case *PdfAnnotationLink :continue ;case *PdfAnnotationProjection :continue ;
|
||
};_ceagb ,_acdbe ,_acfd :=_edbab (_cfgba );if _acfd !=nil {if !_decfb {_ag .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 ;};_ag .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",_acfd );
|
||
continue ;};if _ceagb ==nil {continue ;};_ggfa :=_aaeb .Resources .GenerateXObjectName ();_aaeb .Resources .SetXObjectFormByName (_ggfa ,_ceagb );_ddeed ,_aggd ,_acfd :=_eedg (_ceagb );if _acfd !=nil {_ag .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",_acfd );
|
||
}else {_aacag :=_gdd .IdentityMatrix ();_aacag =_aacag .Translate (-_ddeed .Llx ,-_ddeed .Lly );if _aggd {_aebf :=0.0;if _ddeed .Width ()> 0{_aebf =_acdbe .Width ()/_ddeed .Width ();};_ddfg :=0.0;if _ddeed .Height ()> 0{_ddfg =_acdbe .Height ()/_ddeed .Height ();
|
||
};_aacag =_aacag .Scale (_aebf ,_ddfg );};_acdbe .Transform (_aacag );};_fdfb :=_af .Min (_acdbe .Llx ,_acdbe .Urx );_agea :=_af .Min (_acdbe .Lly ,_acdbe .Ury );var _gdggc []string ;_gdggc =append (_gdggc ,"\u0071");_gdggc =append (_gdggc ,_dc .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,_fdfb ,_agea ));
|
||
_gdggc =append (_gdggc ,_dc .Sprintf ("\u002f\u0025\u0073\u0020\u0044\u006f",_ggfa .String ()));_gdggc =append (_gdggc ,"\u0051");_bagc :=_gg .Join (_gdggc ,"\u000a");_acfd =_aaeb .AppendContentStream (_bagc );if _acfd !=nil {return _acfd ;};if _ceagb .Resources !=nil {_efead ,_gdefb :=_fd .GetDict (_ceagb .Resources .Font );
|
||
if _gdefb {for _ ,_acdgb :=range _efead .Keys (){if !_aaeb .Resources .HasFontByName (_acdgb ){_aaeb .Resources .SetFontByName (_acdgb ,_efead .Get (_acdgb ));};};};};};if len (_cbdfb )> 0{_aaeb ._gbaf =_cbdfb ;}else {_aaeb ._gbaf =[]*PdfAnnotation {};
|
||
};return nil ;};
|
||
|
||
// SetXObjectImageByName adds the provided XObjectImage to the page resources.
|
||
// The added XObjectImage is identified by the specified name.
|
||
func (_baabg *PdfPageResources )SetXObjectImageByName (keyName _fd .PdfObjectName ,ximg *XObjectImage )error {_acdbg :=ximg .ToPdfObject ().(*_fd .PdfObjectStream );_efbce :=_baabg .SetXObjectByName (keyName ,_acdbg );return _efbce ;};
|
||
|
||
// 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 (_edcg pdfFontSimple )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _ebaff ,_fageg :=_edcg ._bafeg [code ];_fageg {return _cf .CharMetrics {Wx :_ebaff },true ;};if _cf .IsStdFont (_cf .StdFontName (_edcg ._ffedb )){return _cf .CharMetrics {Wx :250},true ;
|
||
};return _cf .CharMetrics {},false ;};
|
||
|
||
// PdfVersion returns version of the PDF file.
|
||
func (_beee *PdfReader )PdfVersion ()_fd .Version {return _beee ._faaf .PdfVersion ()};
|
||
|
||
// AddWatermarkImage adds a watermark to the page.
|
||
func (_bbcf *PdfPage )AddWatermarkImage (ximg *XObjectImage ,opt WatermarkImageOptions )error {_dbef ,_gfcf :=_bbcf .GetMediaBox ();if _gfcf !=nil {return _gfcf ;};_ebcce :=_dbef .Urx -_dbef .Llx ;_bdgda :=_dbef .Ury -_dbef .Lly ;_babfb :=float64 (*ximg .Width );
|
||
_eaebe :=(_ebcce -_babfb )/2;if opt .FitToWidth {_babfb =_ebcce ;_eaebe =0;};_gfgef :=_bdgda ;_fgac :=float64 (0);if opt .PreserveAspectRatio {_gfgef =_babfb *float64 (*ximg .Height )/float64 (*ximg .Width );_fgac =(_bdgda -_gfgef )/2;};if _bbcf .Resources ==nil {_bbcf .Resources =NewPdfPageResources ();
|
||
};_cceaa :=0;_edefd :=_fd .PdfObjectName (_dc .Sprintf ("\u0049\u006d\u0077%\u0064",_cceaa ));for _bbcf .Resources .HasXObjectByName (_edefd ){_cceaa ++;_edefd =_fd .PdfObjectName (_dc .Sprintf ("\u0049\u006d\u0077%\u0064",_cceaa ));};_gfcf =_bbcf .AddImageResource (_edefd ,ximg );
|
||
if _gfcf !=nil {return _gfcf ;};_cceaa =0;_ddgbf :=_fd .PdfObjectName (_dc .Sprintf ("\u0047\u0053\u0025\u0064",_cceaa ));for _bbcf .HasExtGState (_ddgbf ){_cceaa ++;_ddgbf =_fd .PdfObjectName (_dc .Sprintf ("\u0047\u0053\u0025\u0064",_cceaa ));};_caffd :=_fd .MakeDict ();
|
||
_caffd .Set ("\u0042\u004d",_fd .MakeName ("\u004e\u006f\u0072\u006d\u0061\u006c"));_caffd .Set ("\u0043\u0041",_fd .MakeFloat (opt .Alpha ));_caffd .Set ("\u0063\u0061",_fd .MakeFloat (opt .Alpha ));_gfcf =_bbcf .AddExtGState (_ddgbf ,_caffd );if _gfcf !=nil {return _gfcf ;
|
||
};_bddcd :=_dc .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",_ddgbf ,_babfb ,_gfgef ,_eaebe ,_fgac ,_edefd );
|
||
_bbcf .AddContentStreamByString (_bddcd );return nil ;};
|
||
|
||
// NewPdfAnnotation returns an initialized generic PDF annotation model.
|
||
func NewPdfAnnotation ()*PdfAnnotation {_dagd :=&PdfAnnotation {};_dagd ._aeb =_fd .MakeIndirectObject (_fd .MakeDict ());return _dagd ;};
|
||
|
||
// PdfActionLaunch represents a launch action.
|
||
type PdfActionLaunch struct{*PdfAction ;F *PdfFilespec ;Win _fd .PdfObject ;Mac _fd .PdfObject ;Unix _fd .PdfObject ;NewWindow _fd .PdfObject ;};
|
||
|
||
// SetDSS sets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_ccfd *PdfAppender )SetDSS (dss *DSS ){if dss !=nil {_ccfd .updateObjectsDeep (dss .ToPdfObject (),nil );};_ccfd ._bgge =dss ;};
|
||
|
||
// GetAnnotations returns the list of page annotations for `page`. If not loaded attempts to load the
|
||
// annotations, otherwise returns the loaded list.
|
||
func (_dadb *PdfPage )GetAnnotations ()([]*PdfAnnotation ,error ){if _dadb ._gbaf !=nil {return _dadb ._gbaf ,nil ;};if _dadb .Annots ==nil {_dadb ._gbaf =[]*PdfAnnotation {};return nil ,nil ;};if _dadb ._dfaff ==nil {_dadb ._gbaf =[]*PdfAnnotation {};
|
||
return nil ,nil ;};_becf ,_dfadg :=_dadb ._dfaff .loadAnnotations (_dadb .Annots );if _dfadg !=nil {return nil ,_dfadg ;};if _becf ==nil {_dadb ._gbaf =[]*PdfAnnotation {};};_dadb ._gbaf =_becf ;return _dadb ._gbaf ,nil ;};
|
||
|
||
// PdfColorspaceSpecialIndexed is an indexed color space is a lookup table, where the input element
|
||
// is an index to the lookup table and the output is a color defined in the lookup table in the Base
|
||
// colorspace.
|
||
// [/Indexed base hival lookup]
|
||
type PdfColorspaceSpecialIndexed struct{Base PdfColorspace ;HiVal int ;Lookup _fd .PdfObject ;_fdac []byte ;_ecdg *_fd .PdfIndirectObject ;};
|
||
|
||
// GetDescent returns the Descent of the font `descriptor`.
|
||
func (_ggbd *PdfFontDescriptor )GetDescent ()(float64 ,error ){return _fd .GetNumberAsFloat (_ggbd .Descent );};
|
||
|
||
// 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 ,_ee .SimpleEncoder ,error ){_eafga ,_cgec :=_bceg (basefont );if _cgec !=nil {return nil ,nil ,_cgec ;};_adbb ,_adfd :=_eafga .Encoder ().(_ee .SimpleEncoder );
|
||
if !_adfd {return nil ,nil ,_dc .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",_eafga .Encoder ());
|
||
};_dcdbb :=make (map[rune ]_ee .GlyphName );for _dfbb :=range alphabet {if _ ,_ecff :=_adbb .RuneToCharcode (_dfbb );!_ecff {_ ,_abfe :=_eafga ._dcgdd .Read (_dfbb );if !_abfe {_ag .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",_dfbb ,_dfbb );
|
||
continue ;};_aegaf ,_abfe :=_ee .RuneToGlyph (_dfbb );if !_abfe {_ag .Log .Debug ("\u006eo\u0020\u0067\u006c\u0079\u0070\u0068\u0020\u0066\u006f\u0072\u0020r\u0075\u006e\u0065\u0020\u0025\u0023\u0078\u003d\u0025\u0071",_dfbb ,_dfbb );continue ;};if len (_dcdbb )>=255{return nil ,nil ,_ad .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");
|
||
};_dcdbb [_dfbb ]=_aegaf ;};};var (_gacec []_ee .CharCode ;_ddgab []_ee .CharCode ;);for _gfdf :=_ee .CharCode (1);_gfdf <=0xff;_gfdf ++{_gdadb ,_aggae :=_adbb .CharcodeToRune (_gfdf );if !_aggae {_gacec =append (_gacec ,_gfdf );continue ;};if _ ,_aggae =alphabet [_gdadb ];
|
||
!_aggae {_ddgab =append (_ddgab ,_gfdf );};};_egdf :=append (_gacec ,_ddgab ...);if len (_egdf )< len (_dcdbb ){return nil ,nil ,_dc .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 (_dcdbb ),len (_egdf ));
|
||
};_efbaf :=make ([]rune ,0,len (_dcdbb ));for _dgbgd :=range _dcdbb {_efbaf =append (_efbaf ,_dgbgd );};_da .Slice (_efbaf ,func (_bgea ,_bcea int )bool {return _efbaf [_bgea ]< _efbaf [_bcea ]});_eebgd :=make (map[_ee .CharCode ]_ee .GlyphName ,len (_efbaf ));
|
||
for _ ,_acfdb :=range _efbaf {_dcef :=_egdf [0];_egdf =_egdf [1:];_eebgd [_dcef ]=_dcdbb [_acfdb ];};_adbb =_ee .ApplyDifferences (_adbb ,_eebgd );_eafga .SetEncoder (_adbb );return &PdfFont {_gbaac :&_eafga },_adbb ,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 (_dgbad *PdfFont )StringToCharcodeBytes (str string )([]byte ,int ){return _dgbad .RunesToCharcodeBytes ([]rune (str ));};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_cccga *pdfSignDictionary )WriteString ()string {_cccga ._cfdbb =0;_cccga ._efcd =0;_cccga ._cdfec =0;_cccga ._cecea =0;_bgga :=_bf .NewBuffer (nil );_bgga .WriteString ("\u003c\u003c");for _ ,_fabaa :=range _cccga .Keys (){_efgfb :=_cccga .Get (_fabaa );
|
||
switch _fabaa {case "\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e":_bgga .WriteString (_fabaa .WriteString ());_bgga .WriteString ("\u0020");_cccga ._cdfec =_bgga .Len ();_bgga .WriteString (_efgfb .WriteString ());_bgga .WriteString ("\u0020");_cccga ._cecea =_bgga .Len ()-1;
|
||
case "\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073":_bgga .WriteString (_fabaa .WriteString ());_bgga .WriteString ("\u0020");_cccga ._cfdbb =_bgga .Len ();_bgga .WriteString (_efgfb .WriteString ());_bgga .WriteString ("\u0020");_cccga ._efcd =_bgga .Len ()-1;
|
||
default:_bgga .WriteString (_fabaa .WriteString ());_bgga .WriteString ("\u0020");_bgga .WriteString (_efgfb .WriteString ());};};_bgga .WriteString ("\u003e\u003e");return _bgga .String ();};
|
||
|
||
// GetDocMDPPermission returns the DocMDP level of the restrictions
|
||
func (_gccdg *PdfSignature )GetDocMDPPermission ()(_gfg .DocMDPPermission ,bool ){for _ ,_acegbb :=range _gccdg .Reference .Elements (){if _ecdee ,_dgcaf :=_fd .GetDict (_acegbb );_dgcaf {if _ebegb ,_cfde :=_fd .GetNameVal (_ecdee .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064"));
|
||
_cfde &&_ebegb =="\u0044\u006f\u0063\u004d\u0044\u0050"{if _dgbdeg ,_dafag :=_fd .GetDict (_ecdee .Get ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073"));_dafag {if P ,_aaecfg :=_fd .GetIntVal (_dgbdeg .Get ("\u0050"));
|
||
_aaecfg {return _gfg .DocMDPPermission (P ),true ;};};};};};return 0,false ;};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_badc *PdfColorCalRGB )ToInteger (bits int )[3]uint32 {_dddf :=_af .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_dddf *_badc .A ()),uint32 (_dddf *_badc .B ()),uint32 (_dddf *_badc .C ())};};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ddca *PdfAnnotationCircle )ToPdfObject ()_fd .PdfObject {_ddca .PdfAnnotation .ToPdfObject ();_beef :=_ddca ._aeb ;_egc :=_beef .PdfObject .(*_fd .PdfObjectDictionary );_ddca .PdfAnnotationMarkup .appendToPdfDictionary (_egc );_egc .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0043\u0069\u0072\u0063\u006c\u0065"));
|
||
_egc .SetIfNotNil ("\u0042\u0053",_ddca .BS );_egc .SetIfNotNil ("\u0049\u0043",_ddca .IC );_egc .SetIfNotNil ("\u0042\u0045",_ddca .BE );_egc .SetIfNotNil ("\u0052\u0044",_ddca .RD );return _beef ;};
|
||
|
||
// CustomKeys returns all custom info keys as list.
|
||
func (_efaec *PdfInfo )CustomKeys ()[]string {if _efaec ._defeg ==nil {return nil ;};_ecgbf :=make ([]string ,len (_efaec ._defeg .Keys ()));for _ ,_fdae :=range _efaec ._defeg .Keys (){_ecgbf =append (_ecgbf ,_fdae .String ());};return _ecgbf ;};func (_bfggc *PdfWriter )writeTrailer (_gdccde int ){_bfggc .writeString ("\u0078\u0072\u0065\u0066\u000d\u000a");
|
||
for _edadd :=0;_edadd <=_gdccde ;{for ;_edadd <=_gdccde ;_edadd ++{_gedg ,_ddecb :=_bfggc ._bccbb [_edadd ];if _ddecb &&(!_bfggc ._fbgg ||_bfggc ._fbgg &&(_gedg .Type ==1&&_gedg .Offset >=_bfggc ._bfdbd ||_gedg .Type ==0)){break ;};};var _fdbbag int ;for _fdbbag =_edadd +1;
|
||
_fdbbag <=_gdccde ;_fdbbag ++{_fgageb ,_bbge :=_bfggc ._bccbb [_fdbbag ];if _bbge &&(!_bfggc ._fbgg ||_bfggc ._fbgg &&(_fgageb .Type ==1&&_fgageb .Offset > _bfggc ._bfdbd )){continue ;};break ;};_fdegf :=_dc .Sprintf ("\u0025d\u0020\u0025\u0064\u000d\u000a",_edadd ,_fdbbag -_edadd );
|
||
_bfggc .writeString (_fdegf );for _beaaa :=_edadd ;_beaaa < _fdbbag ;_beaaa ++{_egagf :=_bfggc ._bccbb [_beaaa ];switch _egagf .Type {case 0:_fdegf =_dc .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u0066\u000d\u000a",0,65535);
|
||
_bfggc .writeString (_fdegf );case 1:_fdegf =_dc .Sprintf ("\u0025\u002e\u0031\u0030\u0064\u0020\u0025\u002e\u0035d\u0020\u006e\u000d\u000a",_egagf .Offset ,0);_bfggc .writeString (_fdegf );};};_edadd =_fdbbag +1;};_gdcbab :=_fd .MakeDict ();_gdcbab .Set ("\u0049\u006e\u0066\u006f",_bfggc ._ggdfa );
|
||
_gdcbab .Set ("\u0052\u006f\u006f\u0074",_bfggc ._defdd );_gdcbab .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (_gdccde +1)));if _bfggc ._fbgg &&_bfggc ._ecfc > 0{_gdcbab .Set ("\u0050\u0072\u0065\u0076",_fd .MakeInteger (_bfggc ._ecfc ));};
|
||
if _bfggc ._egadf !=nil {_gdcbab .Set ("\u0045n\u0063\u0072\u0079\u0070\u0074",_bfggc ._abbcc );};if _bfggc ._bgdef ==nil &&_bfggc ._gaeaa !=""&&_bfggc ._cgaga !=""{_bfggc ._bgdef =_fd .MakeArray (_fd .MakeHexString (_bfggc ._gaeaa ),_fd .MakeHexString (_bfggc ._cgaga ));
|
||
};if _bfggc ._bgdef !=nil {_gdcbab .Set ("\u0049\u0044",_bfggc ._bgdef );_ag .Log .Trace ("\u0049d\u0073\u003a\u0020\u0025\u0073",_bfggc ._bgdef );};_bfggc .writeString ("\u0074\u0072\u0061\u0069\u006c\u0065\u0072\u000a");_bfggc .writeString (_gdcbab .WriteString ());
|
||
_bfggc .writeString ("\u000a");};func (_ddfa *PdfReader )newPdfActionGoTo3DViewFromDict (_agd *_fd .PdfObjectDictionary )(*PdfActionGoTo3DView ,error ){return &PdfActionGoTo3DView {TA :_agd .Get ("\u0054\u0041"),V :_agd .Get ("\u0056")},nil ;};
|
||
|
||
// PdfInfoTrapped specifies pdf trapped information.
|
||
type PdfInfoTrapped string ;
|
||
|
||
// NewPdfColorspaceDeviceCMYK returns a new CMYK32 colorspace object.
|
||
func NewPdfColorspaceDeviceCMYK ()*PdfColorspaceDeviceCMYK {return &PdfColorspaceDeviceCMYK {}};
|
||
|
||
// 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 (_ebfa *LTV )EnableByName (name string ,extraCerts []*_gff .Certificate )error {_dcca :=_ebfa ._gaggb ._efec .AcroForm ;for _ ,_cddb :=range _dcca .AllFields (){_aaecf ,_ :=_cddb .GetContext ().(*PdfFieldSignature );if _aaecf ==nil {continue ;};if _cabe :=_aaecf .PartialName ();
|
||
_cabe !=name {continue ;};return _ebfa .Enable (_aaecf .V ,extraCerts );};return nil ;};
|
||
|
||
// PdfColorCalGray represents a CalGray colorspace.
|
||
type PdfColorCalGray float64 ;
|
||
|
||
// GetNumPages returns the number of pages in the document.
|
||
func (_cafde *PdfReader )GetNumPages ()(int ,error ){if _cafde ._faaf .GetCrypter ()!=nil &&!_cafde ._faaf .IsAuthenticated (){return 0,_dc .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 (_cafde ._bbfca ),nil ;};func (_bccc *PdfReader )newPdfActionHideFromDict (_abca *_fd .PdfObjectDictionary )(*PdfActionHide ,error ){return &PdfActionHide {T :_abca .Get ("\u0054"),H :_abca .Get ("\u0048")},nil ;};func (_gbacd *PdfReader )loadForms ()(*PdfAcroForm ,error ){if _gbacd ._faaf .GetCrypter ()!=nil &&!_gbacd ._faaf .IsAuthenticated (){return nil ,_dc .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");
|
||
};_gdabe :=_gbacd ._gabca ;_cdae :=_gdabe .Get ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d");if _cdae ==nil {return nil ,nil ;};_dgbaf ,_cadef :=_fd .GetIndirect (_cdae );_cdae =_fd .TraceToDirectObject (_cdae );if _fd .IsNullObject (_cdae ){_ag .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 ;};_fedaa ,_acfbfa :=_fd .GetDict (_cdae );if !_acfbfa {_ag .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u0041\u0063\u0072\u006fF\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_cdae );_ag .Log .Debug ("\u0044\u006f\u0065\u0073 n\u006f\u0074\u0020\u0068\u0061\u0076\u0065\u0020\u0066\u006f\u0072\u006d\u0073");
|
||
return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0061\u0063\u0072\u006ff\u006fr\u006d \u0065\u006e\u0074\u0072\u0079\u0020\u0025T",_cdae );};_ag .Log .Trace ("\u0048\u0061\u0073\u0020\u0041\u0063\u0072\u006f\u0020f\u006f\u0072\u006d\u0073");
|
||
_ag .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 !_gbacd ._gfdda {_ceeaa :=_gbacd .traverseObjectData (_fedaa );
|
||
if _ceeaa !=nil {_ag .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",_ceeaa );
|
||
return nil ,_ceeaa ;};};_gdgf ,_fegdb :=_gbacd .newPdfAcroFormFromDict (_dgbaf ,_fedaa );if _fegdb !=nil {return nil ,_fegdb ;};_gdgf ._cfbb =!_cadef ;return _gdgf ,nil ;};func (_fgffa *pdfCIDFontType2 )getFontDescriptor ()*PdfFontDescriptor {return _fgffa ._babe };
|
||
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
// Note: Call the sub-annotation's ToPdfObject to set both the generic and non-generic information.
|
||
func (_aggf *PdfAnnotation )ToPdfObject ()_fd .PdfObject {_ebbg :=_aggf ._aeb ;_eefe :=_ebbg .PdfObject .(*_fd .PdfObjectDictionary );_eefe .Clear ();_eefe .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0041\u006e\u006eo\u0074"));_eefe .SetIfNotNil ("\u0052\u0065\u0063\u0074",_aggf .Rect );
|
||
_eefe .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_aggf .Contents );_eefe .SetIfNotNil ("\u0050",_aggf .P );_eefe .SetIfNotNil ("\u004e\u004d",_aggf .NM );_eefe .SetIfNotNil ("\u004d",_aggf .M );_eefe .SetIfNotNil ("\u0046",_aggf .F );
|
||
_eefe .SetIfNotNil ("\u0041\u0050",_aggf .AP );_eefe .SetIfNotNil ("\u0041\u0053",_aggf .AS );_eefe .SetIfNotNil ("\u0042\u006f\u0072\u0064\u0065\u0072",_aggf .Border );_eefe .SetIfNotNil ("\u0043",_aggf .C );_eefe .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_aggf .StructParent );
|
||
_eefe .SetIfNotNil ("\u004f\u0043",_aggf .OC );return _ebbg ;};
|
||
|
||
// ColorToRGB converts a CalGray color to an RGB color.
|
||
func (_bfaa *PdfColorspaceCalGray )ColorToRGB (color PdfColor )(PdfColor ,error ){_afbc ,_gabg :=color .(*PdfColorCalGray );if !_gabg {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};ANorm :=_afbc .Val ();X :=_bfaa .WhitePoint [0]*_af .Pow (ANorm ,_bfaa .Gamma );Y :=_bfaa .WhitePoint [1]*_af .Pow (ANorm ,_bfaa .Gamma );
|
||
Z :=_bfaa .WhitePoint [2]*_af .Pow (ANorm ,_bfaa .Gamma );_aefg :=3.240479*X +-1.537150*Y +-0.498535*Z ;_bbece :=-0.969256*X +1.875992*Y +0.041556*Z ;_bcfb :=0.055648*X +-0.204043*Y +1.057311*Z ;_aefg =_af .Min (_af .Max (_aefg ,0),1.0);_bbece =_af .Min (_af .Max (_bbece ,0),1.0);
|
||
_bcfb =_af .Min (_af .Max (_bcfb ,0),1.0);return NewPdfColorDeviceRGB (_aefg ,_bbece ,_bcfb ),nil ;};
|
||
|
||
// SetPdfCreator sets the Creator attribute of the output PDF.
|
||
func SetPdfCreator (creator string ){_feadd .Lock ();defer _feadd .Unlock ();_feebde =creator };func (_acaa *PdfReader )newPdfFieldFromIndirectObject (_cedba *_fd .PdfIndirectObject ,_eagag *PdfField )(*PdfField ,error ){if _abedc ,_eedd :=_acaa ._fbabb .GetModelFromPrimitive (_cedba ).(*PdfField );
|
||
_eedd {return _abedc ,nil ;};_bacaa ,_dedg :=_fd .GetDict (_cedba );if !_dedg {return nil ,_dc .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");
|
||
};_ccaf :=NewPdfField ();_ccaf ._dffeb =_cedba ;_ccaf ._dffeb .PdfObject =_bacaa ;if _dged ,_geed :=_fd .GetName (_bacaa .Get ("\u0046\u0054"));_geed {_ccaf .FT =_dged ;};if _eagag !=nil {_ccaf .Parent =_eagag ;};_ccaf .T ,_ =_bacaa .Get ("\u0054").(*_fd .PdfObjectString );
|
||
_ccaf .TU ,_ =_bacaa .Get ("\u0054\u0055").(*_fd .PdfObjectString );_ccaf .TM ,_ =_bacaa .Get ("\u0054\u004d").(*_fd .PdfObjectString );_ccaf .Ff ,_ =_bacaa .Get ("\u0046\u0066").(*_fd .PdfObjectInteger );_ccaf .V =_bacaa .Get ("\u0056");_ccaf .DV =_bacaa .Get ("\u0044\u0056");
|
||
_ccaf .AA =_bacaa .Get ("\u0041\u0041");if DA :=_bacaa .Get ("\u0044\u0041");DA !=nil {DA ,_ :=_fd .GetString (DA );_ccaf .VariableText =&VariableText {DA :DA };Q ,_ :=_bacaa .Get ("\u0051").(*_fd .PdfObjectInteger );DS ,_ :=_bacaa .Get ("\u0044\u0053").(*_fd .PdfObjectString );
|
||
RV :=_bacaa .Get ("\u0052\u0056");_ccaf .VariableText .Q =Q ;_ccaf .VariableText .DS =DS ;_ccaf .VariableText .RV =RV ;};_afee :=_ccaf .FT ;if _afee ==nil &&_eagag !=nil {_afee =_eagag .FT ;};if _afee !=nil {switch *_afee {case "\u0054\u0078":_bgbda ,_aeeab :=_cdcc (_bacaa );
|
||
if _aeeab !=nil {return nil ,_aeeab ;};_bgbda .PdfField =_ccaf ;_ccaf ._becad =_bgbda ;case "\u0043\u0068":_cgddfe ,_fafgc :=_fadbb (_bacaa );if _fafgc !=nil {return nil ,_fafgc ;};_cgddfe .PdfField =_ccaf ;_ccaf ._becad =_cgddfe ;case "\u0042\u0074\u006e":_fbce ,_bafe :=_eadc (_bacaa );
|
||
if _bafe !=nil {return nil ,_bafe ;};_fbce .PdfField =_ccaf ;_ccaf ._becad =_fbce ;case "\u0053\u0069\u0067":_dbba ,_cafb :=_acaa .newPdfFieldSignatureFromDict (_bacaa );if _cafb !=nil {return nil ,_cafb ;};_dbba .PdfField =_ccaf ;_ccaf ._becad =_dbba ;
|
||
default:_ag .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",*_ccaf .FT );return nil ,_ad .New ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0074\u0079p\u0065");
|
||
};};if _ebcab ,_gdgbe :=_fd .GetName (_bacaa .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));_gdgbe {if *_ebcab =="\u0057\u0069\u0064\u0067\u0065\u0074"{_ffbb ,_abdca :=_acaa .newPdfAnnotationFromIndirectObject (_cedba );if _abdca !=nil {return nil ,_abdca ;
|
||
};_fdbbg ,_defde :=_ffbb .GetContext ().(*PdfAnnotationWidget );if !_defde {return nil ,_ad .New ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0077\u0069\u0064\u0067e\u0074 \u0061n\u006e\u006f\u0074\u0061\u0074\u0069\u006fn");};_fdbbg ._eabc =_ccaf ;_fdbbg .Parent =_ccaf ._dffeb ;
|
||
_ccaf .Annotations =append (_ccaf .Annotations ,_fdbbg );return _ccaf ,nil ;};};_gabcb :=true ;if _efecd ,_cadff :=_fd .GetArray (_bacaa .Get ("\u004b\u0069\u0064\u0073"));_cadff {_fdeb :=make ([]*_fd .PdfIndirectObject ,0,_efecd .Len ());for _ ,_gccca :=range _efecd .Elements (){_bfd ,_gdggg :=_fd .GetIndirect (_gccca );
|
||
if !_gdggg {_aegcd ,_egbaa :=_fd .GetStream (_gccca );if _egbaa &&_aegcd .PdfObjectDictionary !=nil {_eddg ,_cabg :=_fd .GetNameVal (_aegcd .Get ("\u0054\u0079\u0070\u0065"));if _cabg &&_eddg =="\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061"{_ag .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 ,_ad .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");};_ddaeb ,_gacb :=_fd .GetDict (_bfd );
|
||
if !_gacb {return nil ,ErrTypeCheck ;};if _gabcb {_gabcb =!_gdfa (_ddaeb );};_fdeb =append (_fdeb ,_bfd );};for _ ,_ffbgb :=range _fdeb {if _gabcb {_dfea ,_fcaf :=_acaa .newPdfAnnotationFromIndirectObject (_ffbgb );if _fcaf !=nil {_ag .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",_fcaf );
|
||
return nil ,_fcaf ;};_fbbba ,_eafb :=_dfea ._cfda .(*PdfAnnotationWidget );if !_eafb {return nil ,ErrTypeCheck ;};_fbbba ._eabc =_ccaf ;_ccaf .Annotations =append (_ccaf .Annotations ,_fbbba );}else {_fbaab ,_bafbf :=_acaa .newPdfFieldFromIndirectObject (_ffbgb ,_ccaf );
|
||
if _bafbf !=nil {_ag .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",_bafbf );return nil ,_bafbf ;};_ccaf .Kids =append (_ccaf .Kids ,_fbaab );
|
||
};};};return _ccaf ,nil ;};func _eagg (_cedgf []byte )([]byte ,error ){_cbgea :=_ed .New ();if _ ,_befdd :=_bc .Copy (_cbgea ,_bf .NewReader (_cedgf ));_befdd !=nil {return nil ,_befdd ;};return _cbgea .Sum (nil ),nil ;};
|
||
|
||
// SetContext sets the specific fielddata type, e.g. would be PdfFieldButton for a button field.
|
||
func (_ecacc *PdfField )SetContext (ctx PdfModel ){_ecacc ._becad =ctx };
|
||
|
||
// NewPdfAnnotationTrapNet returns a new trapnet annotation.
|
||
func NewPdfAnnotationTrapNet ()*PdfAnnotationTrapNet {_dca :=NewPdfAnnotation ();_baed :=&PdfAnnotationTrapNet {};_baed .PdfAnnotation =_dca ;_dca .SetContext (_baed );return _baed ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eabf *PdfActionGoTo3DView )ToPdfObject ()_fd .PdfObject {_eabf .PdfAction .ToPdfObject ();_fee :=_eabf ._bfb ;_fgd :=_fee .PdfObject .(*_fd .PdfObjectDictionary );_fgd .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoTo3DView )));_fgd .SetIfNotNil ("\u0054\u0041",_eabf .TA );
|
||
_fgd .SetIfNotNil ("\u0056",_eabf .V );return _fee ;};
|
||
|
||
// PdfAnnotationMarkup represents additional fields for mark-up annotations.
|
||
// (Section 12.5.6.2 p. 399).
|
||
type PdfAnnotationMarkup struct{T _fd .PdfObject ;Popup *PdfAnnotationPopup ;CA _fd .PdfObject ;RC _fd .PdfObject ;CreationDate _fd .PdfObject ;IRT _fd .PdfObject ;Subj _fd .PdfObject ;RT _fd .PdfObject ;IT _fd .PdfObject ;ExData _fd .PdfObject ;};
|
||
|
||
// PdfInfo holds document information that will overwrite
|
||
// document information global variables defined above.
|
||
type PdfInfo struct{Title *_fd .PdfObjectString ;Author *_fd .PdfObjectString ;Subject *_fd .PdfObjectString ;Keywords *_fd .PdfObjectString ;Creator *_fd .PdfObjectString ;Producer *_fd .PdfObjectString ;CreationDate *PdfDate ;ModifiedDate *PdfDate ;Trapped *_fd .PdfObjectName ;
|
||
_defeg *_fd .PdfObjectDictionary ;};type modelManager struct{_eeead map[PdfModel ]_fd .PdfObject ;_aabd map[_fd .PdfObject ]PdfModel ;};
|
||
|
||
// NewPdfOutputIntentFromPdfObject creates a new PdfOutputIntent from the input core.PdfObject.
|
||
func NewPdfOutputIntentFromPdfObject (object _fd .PdfObject )(*PdfOutputIntent ,error ){_gbbcd :=&PdfOutputIntent {};if _gedced :=_gbbcd .ParsePdfObject (object );_gedced !=nil {return nil ,_gedced ;};return _gbbcd ,nil ;};
|
||
|
||
// HasFontByName checks whether a font is defined by the specified keyName.
|
||
func (_adafcbe *PdfPageResources )HasFontByName (keyName _fd .PdfObjectName )bool {_ ,_gdecb :=_adafcbe .GetFontByName (keyName );return _gdecb ;};
|
||
|
||
// ImageToRGB converts an image in CMYK32 colorspace to an RGB image.
|
||
func (_cgab *PdfColorspaceDeviceCMYK )ImageToRGB (img Image )(Image ,error ){_ag .Log .Trace ("\u0043\u004d\u0059\u004b\u0033\u0032\u0020\u002d\u003e\u0020\u0052\u0047\u0042");_ag .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 );
|
||
_ag .Log .Trace ("\u004c\u0065\u006e \u0064\u0061\u0074\u0061\u003a\u0020\u0025\u0064",len (img .Data ));_ag .Log .Trace ("H\u0065\u0069\u0067\u0068t:\u0020%\u0064\u002c\u0020\u0057\u0069d\u0074\u0068\u003a\u0020\u0025\u0064",img .Height ,img .Width );
|
||
_eaeee ,_gedd :=_gbed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gfffd ,img ._cdbdc );if _gedd !=nil {return Image {},_gedd ;};_abee ,_gedd :=_gbed .NRGBAConverter .Convert (_eaeee );
|
||
if _gedd !=nil {return Image {},_gedd ;};return _eeafa (_abee .Base ()),nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_gdag *PdfAnnotationScreen )ToPdfObject ()_fd .PdfObject {_gdag .PdfAnnotation .ToPdfObject ();_cccf :=_gdag ._aeb ;_beed :=_cccf .PdfObject .(*_fd .PdfObjectDictionary );_beed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0063\u0072\u0065\u0065\u006e"));
|
||
_beed .SetIfNotNil ("\u0054",_gdag .T );_beed .SetIfNotNil ("\u004d\u004b",_gdag .MK );_beed .SetIfNotNil ("\u0041",_gdag .A );_beed .SetIfNotNil ("\u0041\u0041",_gdag .AA );return _cccf ;};
|
||
|
||
// FileRelationship represents a attachment file relationship type.
|
||
type FileRelationship int ;
|
||
|
||
// UpdatePage updates the `page` in the new revision if it has changed.
|
||
func (_affg *PdfAppender )UpdatePage (page *PdfPage ){_affg .updateObjectsDeep (page .ToPdfObject (),nil )};func (_bbffc *PdfWriter )copyObject (_dfgfg _fd .PdfObject ,_dccffg map[_fd .PdfObject ]_fd .PdfObject ,_fadcd map[_fd .PdfObject ]struct{},_acgbd bool )_fd .PdfObject {_debd :=!_bbffc ._fbgg &&_fadcd !=nil ;
|
||
if _afbgg ,_bgfad :=_dccffg [_dfgfg ];_bgfad {if _debd &&!_acgbd {delete (_fadcd ,_dfgfg );};return _afbgg ;};if _dfgfg ==nil {_cggga :=_fd .MakeNull ();return _cggga ;};_eccea :=_dfgfg ;switch _dacfa :=_dfgfg .(type ){case *_fd .PdfObjectArray :_dfebf :=_fd .MakeArray ();
|
||
_eccea =_dfebf ;_dccffg [_dfgfg ]=_eccea ;for _ ,_bfdfe :=range _dacfa .Elements (){_dfebf .Append (_bbffc .copyObject (_bfdfe ,_dccffg ,_fadcd ,_acgbd ));};case *_fd .PdfObjectStreams :_bbfeg :=&_fd .PdfObjectStreams {PdfObjectReference :_dacfa .PdfObjectReference };
|
||
_eccea =_bbfeg ;_dccffg [_dfgfg ]=_eccea ;for _ ,_addg :=range _dacfa .Elements (){_bbfeg .Append (_bbffc .copyObject (_addg ,_dccffg ,_fadcd ,_acgbd ));};case *_fd .PdfObjectStream :_ccacgf :=&_fd .PdfObjectStream {Stream :_dacfa .Stream ,PdfObjectReference :_dacfa .PdfObjectReference ,Lazy :_dacfa .Lazy ,TempFile :_dacfa .TempFile };
|
||
_eccea =_ccacgf ;_dccffg [_dfgfg ]=_eccea ;_ccacgf .PdfObjectDictionary =_bbffc .copyObject (_dacfa .PdfObjectDictionary ,_dccffg ,_fadcd ,_acgbd ).(*_fd .PdfObjectDictionary );case *_fd .PdfObjectDictionary :var _fddef bool ;if _debd &&!_acgbd {if _dfbe ,_ :=_fd .GetNameVal (_dacfa .Get ("\u0054\u0079\u0070\u0065"));
|
||
_dfbe =="\u0050\u0061\u0067\u0065"{_ ,_bcgfd :=_bbffc ._efed [_dacfa ];_acgbd =!_bcgfd ;_fddef =_acgbd ;};};_gbcbfb :=_fd .MakeDict ();_eccea =_gbcbfb ;_dccffg [_dfgfg ]=_eccea ;for _ ,_gfad :=range _dacfa .Keys (){_gbcbfb .Set (_gfad ,_bbffc .copyObject (_dacfa .Get (_gfad ),_dccffg ,_fadcd ,_acgbd ));
|
||
};if _fddef {_eccea =_fd .MakeNull ();_acgbd =false ;};case *_fd .PdfIndirectObject :_cdcfc :=&_fd .PdfIndirectObject {PdfObjectReference :_dacfa .PdfObjectReference };_eccea =_cdcfc ;_dccffg [_dfgfg ]=_eccea ;_cdcfc .PdfObject =_bbffc .copyObject (_dacfa .PdfObject ,_dccffg ,_fadcd ,_acgbd );
|
||
case *_fd .PdfObjectString :_gffff :=*_dacfa ;_eccea =&_gffff ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectName :_ebagd :=*_dacfa ;_eccea =&_ebagd ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectNull :_eccea =_fd .MakeNull ();_dccffg [_dfgfg ]=_eccea ;
|
||
case *_fd .PdfObjectInteger :_eaedf :=*_dacfa ;_eccea =&_eaedf ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectReference :_eeffa :=*_dacfa ;_eccea =&_eeffa ;_dccffg [_dfgfg ]=_eccea ;case *_fd .PdfObjectFloat :_cdbfe :=*_dacfa ;_eccea =&_cdbfe ;_dccffg [_dfgfg ]=_eccea ;
|
||
case *_fd .PdfObjectBool :_ggacd :=*_dacfa ;_eccea =&_ggacd ;_dccffg [_dfgfg ]=_eccea ;case *pdfSignDictionary :_aaaga :=&pdfSignDictionary {PdfObjectDictionary :_fd .MakeDict (),_efeca :_dacfa ._efeca ,_eeabe :_dacfa ._eeabe };_eccea =_aaaga ;_dccffg [_dfgfg ]=_eccea ;
|
||
for _ ,_afcef :=range _dacfa .Keys (){_aaaga .Set (_afcef ,_bbffc .copyObject (_dacfa .Get (_afcef ),_dccffg ,_fadcd ,_acgbd ));};default:_ag .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",_dfgfg );
|
||
};if _debd &&_acgbd {_fadcd [_dfgfg ]=struct{}{};};return _eccea ;};func _gecgg (_cgcf _fd .PdfObject )(map[_ee .CharCode ]float64 ,error ){if _cgcf ==nil {return nil ,nil ;};_bfdb ,_abgb :=_fd .GetArray (_cgcf );if !_abgb {return nil ,nil ;};_abcabg :=map[_ee .CharCode ]float64 {};
|
||
_dbdf :=_bfdb .Len ();for _dbcga :=0;_dbcga < _dbdf -1;_dbcga ++{_aaba :=_fd .TraceToDirectObject (_bfdb .Get (_dbcga ));_ebbbd ,_dffbaf :=_fd .GetIntVal (_aaba );if !_dffbaf {return nil ,_dc .Errorf ("\u0042a\u0064\u0020\u0066\u006fn\u0074\u0020\u0057\u0020\u006fb\u006a0\u003a \u0069\u003d\u0025\u0064\u0020\u0025\u0023v",_dbcga ,_aaba );
|
||
};_dbcga ++;if _dbcga > _dbdf -1{return nil ,_dc .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",_bfdb );};_cggc :=_fd .TraceToDirectObject (_bfdb .Get (_dbcga ));
|
||
switch _cggc .(type ){case *_fd .PdfObjectArray :_gbfga ,_ :=_fd .GetArray (_cggc );if _cceba ,_edccbg :=_gbfga .ToFloat64Array ();_edccbg ==nil {for _acaag :=0;_acaag < len (_cceba );_acaag ++{_abcabg [_ee .CharCode (_ebbbd +_acaag )]=_cceba [_acaag ];
|
||
};}else {return nil ,_dc .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",_dbcga ,_cggc );};case *_fd .PdfObjectInteger :_bfegf ,_abfba :=_fd .GetIntVal (_cggc );
|
||
if !_abfba {return nil ,_dc .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",_dbcga ,_cggc );};_dbcga ++;if _dbcga > _dbdf -1{return nil ,_dc .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",_bfdb );
|
||
};_ceeb :=_bfdb .Get (_dbcga );_edbff ,_cfedc :=_fd .GetNumberAsFloat (_ceeb );if _cfedc !=nil {return nil ,_dc .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",_dbcga ,_ceeb );
|
||
};for _ddgga :=_ebbbd ;_ddgga <=_bfegf ;_ddgga ++{_abcabg [_ee .CharCode (_ddgga )]=_edbff ;};default:return nil ,_dc .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",_dbcga ,_cggc );
|
||
};};return _abcabg ,nil ;};
|
||
|
||
// PdfFunction interface represents the common methods of a function in PDF.
|
||
type PdfFunction interface{Evaluate ([]float64 )([]float64 ,error );ToPdfObject ()_fd .PdfObject ;};
|
||
|
||
// ParsePdfObject parses input pdf object into given output intent.
|
||
func (_dfcfg *PdfOutputIntent )ParsePdfObject (object _fd .PdfObject )error {_fegce ,_fagbc :=_fd .GetDict (object );if !_fagbc {_ag .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 _ad .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");
|
||
};_dfcfg ._fbbec =_fegce ;_dfcfg .Type ,_ =_fegce .GetString ("\u0054\u0079\u0070\u0065");_aeffa ,_fagbc :=_fegce .GetString ("\u0053");if _fagbc {switch _aeffa {case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00411":_dfcfg .S =PdfOutputIntentTypeA1 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00412":_dfcfg .S =PdfOutputIntentTypeA2 ;
|
||
case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00413":_dfcfg .S =PdfOutputIntentTypeA3 ;case "\u0047T\u0053\u005f\u0050\u0044\u0046\u00414":_dfcfg .S =PdfOutputIntentTypeA4 ;case "\u0047\u0054\u0053\u005f\u0050\u0044\u0046\u0058":_dfcfg .S =PdfOutputIntentTypeX ;
|
||
};};_dfcfg .OutputCondition ,_ =_fegce .GetString ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e");_dfcfg .OutputConditionIdentifier ,_ =_fegce .GetString ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r");
|
||
_dfcfg .RegistryName ,_ =_fegce .GetString ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065");_dfcfg .Info ,_ =_fegce .GetString ("\u0049\u006e\u0066\u006f");if _deebf ,_gbcbd :=_fd .GetStream (_fegce .Get ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065"));
|
||
_gbcbd {_dfcfg .ColorComponents ,_ =_fd .GetIntVal (_deebf .Get ("\u004e"));_acadb ,_dbdcb :=_fd .DecodeStream (_deebf );if _dbdcb !=nil {return _dbdcb ;};_dfcfg .DestOutputProfile =_acadb ;};return nil ;};
|
||
|
||
// ToPdfObject converts colorspace to a PDF object. [/Indexed base hival lookup]
|
||
func (_bceeg *PdfColorspaceSpecialIndexed )ToPdfObject ()_fd .PdfObject {_fede :=_fd .MakeArray (_fd .MakeName ("\u0049n\u0064\u0065\u0078\u0065\u0064"));_fede .Append (_bceeg .Base .ToPdfObject ());_fede .Append (_fd .MakeInteger (int64 (_bceeg .HiVal )));
|
||
_fede .Append (_bceeg .Lookup );if _bceeg ._ecdg !=nil {_bceeg ._ecdg .PdfObject =_fede ;return _bceeg ._ecdg ;};return _fede ;};func (_fgfd *LTV )getCerts (_bfeag []*_gff .Certificate )([][]byte ,error ){_gddce :=make ([][]byte ,0,len (_bfeag ));for _ ,_cggg :=range _bfeag {_gddce =append (_gddce ,_cggg .Raw );
|
||
};return _gddce ,nil ;};
|
||
|
||
// SetPdfKeywords sets the Keywords attribute of the output PDF.
|
||
func SetPdfKeywords (keywords string ){_feadd .Lock ();defer _feadd .Unlock ();_cfgbe =keywords };
|
||
|
||
// ToPdfObject converts the pdfCIDFontType0 to a PDF representation.
|
||
func (_acebdf *pdfCIDFontType0 )ToPdfObject ()_fd .PdfObject {return _fd .MakeNull ()};
|
||
|
||
// 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 (_faaeb *PdfFont )CharcodesToUnicode (charcodes []_ee .CharCode )[]rune {_gfgb ,_ ,_ :=_faaeb .CharcodesToUnicodeWithStats (charcodes );return _gfgb ;};
|
||
|
||
// NewEmbeddedFileFromObject construct a new EmbeddedFile from supplied object.
|
||
func NewEmbeddedFileFromObject (obj _fd .PdfObject )(*EmbeddedFile ,error ){_fgbda :=_fd .TraceToDirectObject (obj );_bfggb ,_ecbd :=_fgbda .(*_fd .PdfObjectDictionary );if !_ecbd {return nil ,_ad .New ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006fb\u006a\u0065\u0063\u0074");
|
||
};_cbdfg :=_fd .TraceToDirectObject (_bfggb .Get ("\u0046"));if _cbdfg ==nil {return nil ,_ad .New ("\u0049n\u0076\u0061\u006c\u0069\u0064\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0073\u0074\u0072\u0075\u0063\u0074\u0075\u0072\u0065");};_fade ,_ecbd :=_cbdfg .(*_fd .PdfObjectStream );
|
||
if !_ecbd {return nil ,_ad .New ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0073t\u0072\u0065\u0061\u006d");};_adff :=_fade .PdfObjectDictionary ;_geadd :=_adff .Get ("\u0050\u0061\u0072\u0061\u006d\u0073");if _geadd ==nil {return nil ,_ad .New ("P\u0061\u0072\u0061\u006d\u0073\u0020o\u0062\u006a\u0065\u0063\u0074\u0020\u006e\u006f\u0074 \u0061\u0076\u0061i\u006ca\u0062\u006c\u0065");
|
||
};_ebdfa ,_ecbd :=_geadd .(*_fd .PdfObjectDictionary );if !_ecbd {return nil ,_ad .New ("I\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0061\u006d\u0073 \u006f\u0062\u006a\u0065\u0063\u0074");};_dfcac :="";_fcbe :=_ebdfa .Get ("\u0043\u0068\u0065\u0063\u006b\u0053\u0075\u006d");
|
||
if _fcbe !=nil {_dfcac =_fcbe .(*_fd .PdfObjectString ).Str ();};_fcba ,_dcbeb :=_fd .DecodeStream (_fade );if _dcbeb !=nil {return nil ,_dcbeb ;};_feca :=&EmbeddedFile {Content :_fcba ,Hash :_dfcac };return _feca ,nil ;};
|
||
|
||
// PdfFilespec represents a file specification which can either refer to an external or embedded file.
|
||
type PdfFilespec struct{Type _fd .PdfObject ;FS _fd .PdfObject ;F _fd .PdfObject ;UF _fd .PdfObject ;DOS _fd .PdfObject ;Mac _fd .PdfObject ;Unix _fd .PdfObject ;ID _fd .PdfObject ;V _fd .PdfObject ;EF _fd .PdfObject ;RF _fd .PdfObject ;Desc _fd .PdfObject ;
|
||
CI _fd .PdfObject ;AFRelationship _fd .PdfObject ;_cbfc _fd .PdfObject ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_dgbfe *PdfFunctionType3 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};return nil ,_ad .New ("\u006e\u006f\u0074\u0020im\u0070\u006c\u0065\u006d\u0065\u006e\u0074\u0065\u0064\u0020\u0079\u0065\u0074");};
|
||
|
||
// NewPdfAnnotationText returns a new text annotation.
|
||
func NewPdfAnnotationText ()*PdfAnnotationText {_bfgd :=NewPdfAnnotation ();_acae :=&PdfAnnotationText {};_acae .PdfAnnotation =_bfgd ;_acae .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bfgd .SetContext (_acae );return _acae ;};
|
||
|
||
// G returns the value of the green component of the color.
|
||
func (_gfedf *PdfColorDeviceRGB )G ()float64 {return _gfedf [1]};
|
||
|
||
// NewPdfAnnotationPopup returns a new popup annotation.
|
||
func NewPdfAnnotationPopup ()*PdfAnnotationPopup {_dcb :=NewPdfAnnotation ();_bfba :=&PdfAnnotationPopup {};_bfba .PdfAnnotation =_dcb ;_dcb .SetContext (_bfba );return _bfba ;};func (_fagad *PdfWriter )setCatalogVersion (){_fagad ._fdaca .Set ("\u0056e\u0072\u0073\u0069\u006f\u006e",_fd .MakeName (_dc .Sprintf ("\u0025\u0064\u002e%\u0064",_fagad ._ggaddg .Major ,_fagad ._ggaddg .Minor )));
|
||
};
|
||
|
||
// 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 _bc .ReadSeeker )(*PdfReader ,error ){const _dddag ="\u006do\u0064e\u006c\u003a\u004e\u0065\u0077P\u0064\u0066R\u0065\u0061\u0064\u0065\u0072";return _daab (rs ,&ReaderOpts {},false ,_dddag );};func _ggbab (_beebf *fontCommon )*pdfFontType3 {return &pdfFontType3 {fontCommon :*_beebf }};
|
||
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on input color components. The input PdfObjects should
|
||
// be numeric.
|
||
func (_bfcff *PdfColorspaceDeviceN )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=_bfcff .GetNumComponents (){return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_bdbcf ,_ebfcg :=_fd .GetNumbersAsFloat (objects );
|
||
if _ebfcg !=nil {return nil ,_ebfcg ;};return _bfcff .ColorFromFloats (_bdbcf );};func (_efab *PdfWriter )flushWriter ()error {if _efab ._bgfb ==nil {_efab ._bgfb =_efab ._abgaac .Flush ();};return _efab ._bgfb ;};
|
||
|
||
// SetPdfCreationDate sets the CreationDate attribute of the output PDF.
|
||
func SetPdfCreationDate (creationDate _cd .Time ){_feadd .Lock ();defer _feadd .Unlock ();_afgca =creationDate ;};
|
||
|
||
// AddPages adds pages to be appended to the end of the source PDF.
|
||
func (_cef *PdfAppender )AddPages (pages ...*PdfPage ){for _ ,_eece :=range pages {_eece =_eece .Duplicate ();_baeb (_eece );_cef ._gbca =append (_cef ._gbca ,_eece );};};func (_fcdd *PdfReader )newPdfAnnotationHighlightFromDict (_cgge *_fd .PdfObjectDictionary )(*PdfAnnotationHighlight ,error ){_dbcg :=PdfAnnotationHighlight {};
|
||
_dgdc ,_fbbf :=_fcdd .newPdfAnnotationMarkupFromDict (_cgge );if _fbbf !=nil {return nil ,_fbbf ;};_dbcg .PdfAnnotationMarkup =_dgdc ;_dbcg .QuadPoints =_cgge .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_dbcg ,nil ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_cbdd pdfCIDFontType0 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){return _cf .CharMetrics {Wx :_cbdd ._aaeef },true ;};
|
||
|
||
// GetContext returns the PdfField context which is the more specific field data type, e.g. PdfFieldButton
|
||
// for a button field.
|
||
func (_fbbc *PdfField )GetContext ()PdfModel {return _fbbc ._becad };func _fgbga (_bfee *_fd .PdfObjectDictionary ,_ffcb *fontCommon )(*pdfFontType3 ,error ){_agfe :=_ggbab (_ffcb );_ggbec :=_bfee .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _ggbec ==nil {_ggbec =_fd .MakeInteger (0);
|
||
};_agfe .FirstChar =_ggbec ;_dggdf ,_bdbf :=_fd .GetIntVal (_ggbec );if !_bdbf {_ag .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",_ggbec );
|
||
return nil ,_fd .ErrTypeError ;};_fegea :=_ee .CharCode (_dggdf );_ggbec =_bfee .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _ggbec ==nil {_ggbec =_fd .MakeInteger (255);};_agfe .LastChar =_ggbec ;_dggdf ,_bdbf =_fd .GetIntVal (_ggbec );
|
||
if !_bdbf {_ag .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",_ggbec );return nil ,_fd .ErrTypeError ;
|
||
};_agbbg :=_ee .CharCode (_dggdf );_ggbec =_bfee .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");if _ggbec !=nil {_agfe .Resources =_ggbec ;};_ggbec =_bfee .Get ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s");if _ggbec ==nil {_ag .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",_ggbec );
|
||
return nil ,_fd .ErrNotSupported ;};_agfe .CharProcs =_ggbec ;_ggbec =_bfee .Get ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0072\u0069\u0078");if _ggbec ==nil {_ag .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",_ggbec );
|
||
return nil ,_fd .ErrNotSupported ;};_agfe .FontMatrix =_ggbec ;_agfe ._febf =make (map[_ee .CharCode ]float64 );_ggbec =_bfee .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _ggbec !=nil {_agfe .Widths =_ggbec ;_ecdc ,_acgggb :=_fd .GetArray (_ggbec );
|
||
if !_acgggb {_ag .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",_ggbec );return nil ,_fd .ErrTypeError ;
|
||
};_bdbga ,_fbadg :=_ecdc .ToFloat64Array ();if _fbadg !=nil {_ag .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 ,_fbadg ;};if len (_bdbga )!=int (_agbbg -_fegea +1){_ag .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",_agbbg -_fegea +1,len (_bdbga ));
|
||
return nil ,_fd .ErrRangeError ;};_cccb ,_acgggb :=_fd .GetArray (_agfe .FontMatrix );if !_acgggb {_ag .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",_cccb );
|
||
return nil ,_fbadg ;};_bcba ,_fbadg :=_cccb .ToFloat64Array ();if _fbadg !=nil {_ag .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 ,_fbadg ;};_edda :=_gdd .NewMatrix (_bcba [0],_bcba [1],_bcba [2],_bcba [3],_bcba [4],_bcba [5]);for _ceeg ,_acga :=range _bdbga {_gcdgd ,_ :=_edda .Transform (_acga ,_acga );_agfe ._febf [_fegea +_ee .CharCode (_ceeg )]=_gcdgd ;};};_agfe .Encoding =_fd .TraceToDirectObject (_bfee .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
||
_agfaf :=_bfee .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _agfaf !=nil {_agfe ._eebbb =_fd .TraceToDirectObject (_agfaf );_cfac ,_ebgag :=_dbaa (_agfe ._eebbb ,&_agfe .fontCommon );if _ebgag !=nil {return nil ,_ebgag ;};_agfe ._dgdg =_cfac ;
|
||
};if _fbcef :=_agfe ._dgdg ;_fbcef !=nil {_agfe ._eceb =_ee .NewCMapEncoder ("",nil ,_fbcef );}else {_agfe ._eceb =_ee .NewPdfDocEncoder ();};return _agfe ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbcb *PdfSignatureReference )ToPdfObject ()_fd .PdfObject {_caeag :=_fd .MakeDict ();_caeag .SetIfNotNil ("\u0054\u0079\u0070\u0065",_cbcb .Type );_caeag .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u004d\u0065\u0074\u0068\u006f\u0064",_cbcb .TransformMethod );
|
||
_caeag .SetIfNotNil ("\u0054r\u0061n\u0073\u0066\u006f\u0072\u006d\u0050\u0061\u0072\u0061\u006d\u0073",_cbcb .TransformParams );_caeag .SetIfNotNil ("\u0044\u0061\u0074\u0061",_cbcb .Data );_caeag .SetIfNotNil ("\u0044\u0069\u0067e\u0073\u0074\u004d\u0065\u0074\u0068\u006f\u0064",_cbcb .DigestMethod );
|
||
return _caeag ;};func (_aebge *PdfColorspaceCalRGB )String ()string {return "\u0043\u0061\u006c\u0052\u0047\u0042"};type pdfFontType0 struct{fontCommon ;_ffead *_fd .PdfIndirectObject ;_agbe _ee .TextEncoder ;Encoding _fd .PdfObject ;DescendantFont *PdfFont ;
|
||
_bbbfb *_gd .CMap ;};
|
||
|
||
// 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 (_abfg *PdfFieldButton )GetType ()ButtonType {_acdg :=ButtonTypeCheckbox ;if _abfg .Ff !=nil {if (uint32 (*_abfg .Ff )&FieldFlagPushbutton .Mask ())> 0{_acdg =ButtonTypePush ;}else if (uint32 (*_abfg .Ff )&FieldFlagRadio .Mask ())> 0{_acdg =ButtonTypeRadio ;
|
||
};};return _acdg ;};func _gfbac (_eeggc *_fd .PdfObjectDictionary )(*PdfShadingType4 ,error ){_bbgga :=PdfShadingType4 {};_fbgfdg :=_eeggc .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _fbgfdg ==nil {_ag .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 ;};_fbbg ,_dbaaa :=_fbgfdg .(*_fd .PdfObjectInteger );if !_dbaaa {_ag .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",_fbgfdg );
|
||
return nil ,_fd .ErrTypeError ;};_bbgga .BitsPerCoordinate =_fbbg ;_fbgfdg =_eeggc .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _fbgfdg ==nil {_ag .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 ;};_fbbg ,_dbaaa =_fbgfdg .(*_fd .PdfObjectInteger );if !_dbaaa {_ag .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",_fbgfdg );
|
||
return nil ,_fd .ErrTypeError ;};_bbgga .BitsPerComponent =_fbbg ;_fbgfdg =_eeggc .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _fbgfdg ==nil {_ag .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 ;};_fbbg ,_dbaaa =_fbgfdg .(*_fd .PdfObjectInteger );if !_dbaaa {_ag .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",_fbgfdg );
|
||
return nil ,_fd .ErrTypeError ;};_bbgga .BitsPerComponent =_fbbg ;_fbgfdg =_eeggc .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _fbgfdg ==nil {_ag .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 ;};_bfaagc ,_dbaaa :=_fbgfdg .(*_fd .PdfObjectArray );if !_dbaaa {_ag .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",_fbgfdg );
|
||
return nil ,_fd .ErrTypeError ;};_bbgga .Decode =_bfaagc ;_fbgfdg =_eeggc .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _fbgfdg ==nil {_ag .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 ;};_bbgga .Function =[]PdfFunction {};if _gdgca ,_caebd :=_fbgfdg .(*_fd .PdfObjectArray );_caebd {for _ ,_baedb :=range _gdgca .Elements (){_addag ,_egceg :=_badad (_baedb );if _egceg !=nil {_ag .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",_egceg );
|
||
return nil ,_egceg ;};_bbgga .Function =append (_bbgga .Function ,_addag );};}else {_cfca ,_aedddb :=_badad (_fbgfdg );if _aedddb !=nil {_ag .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",_aedddb );
|
||
return nil ,_aedddb ;};_bbgga .Function =append (_bbgga .Function ,_cfca );};return &_bbgga ,nil ;};
|
||
|
||
// GenerateXObjectName generates an unused XObject name that can be used for
|
||
// adding new XObjects. Uses format XObj1, XObj2, ...
|
||
func (_aeaba *PdfPageResources )GenerateXObjectName ()_fd .PdfObjectName {_edccc :=1;for {_fdfg :=_fd .MakeName (_dc .Sprintf ("\u0058\u004f\u0062\u006a\u0025\u0064",_edccc ));if !_aeaba .HasXObjectByName (*_fdfg ){return *_fdfg ;};_edccc ++;};};
|
||
|
||
// 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 (_ecgc *PdfFont )SubsetRegistered ()error {switch _dgdb :=_ecgc ._gbaac .(type ){case *pdfFontType0 :_gdaa :=_dgdb .subsetRegistered ();if _gdaa !=nil {_ag .Log .Debug ("\u0053\u0075b\u0073\u0065\u0074 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gdaa );
|
||
return _gdaa ;};if _dgdb ._ffead !=nil {if _dgdb ._agbe !=nil {_dgdb ._agbe .ToPdfObject ();};_dgdb .ToPdfObject ();};default:_ag .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",_dgdb );
|
||
};return nil ;};
|
||
|
||
// GetAscent returns the Ascent of the font `descriptor`.
|
||
func (_agged *PdfFontDescriptor )GetAscent ()(float64 ,error ){return _fd .GetNumberAsFloat (_agged .Ascent );};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (4 for cmyk).
|
||
func (_cdfc *PdfColorspaceDeviceCMYK )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=4{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gbcfg ,_cdgb :=_fd .GetNumbersAsFloat (objects );
|
||
if _cdgb !=nil {return nil ,_cdgb ;};return _cdfc .ColorFromFloats (_gbcfg );};func (_ffafgb *PdfWriter )writeAcroFormFields ()error {if _ffafgb ._agdg ==nil {return nil ;};_ag .Log .Trace ("\u0057r\u0069t\u0069\u006e\u0067\u0020\u0061c\u0072\u006f \u0066\u006f\u0072\u006d\u0073");
|
||
_ggabe :=_ffafgb ._agdg .ToPdfObject ();_ag .Log .Trace ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_ggabe );_ffafgb ._fdaca .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ggabe );_ebabd :=_ffafgb .addObjects (_ggabe );
|
||
if _ebabd !=nil {return _ebabd ;};return nil ;};
|
||
|
||
// NewPdfColorspaceSpecialPattern returns a new pattern color.
|
||
func NewPdfColorspaceSpecialPattern ()*PdfColorspaceSpecialPattern {return &PdfColorspaceSpecialPattern {};};
|
||
|
||
// IsPush returns true if the button field represents a push button, false otherwise.
|
||
func (_fdaa *PdfFieldButton )IsPush ()bool {return _fdaa .GetType ()==ButtonTypePush };
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a CalGray device.
|
||
func (_faag *PdfColorspaceCalGray )GetNumComponents ()int {return 1};
|
||
|
||
// NewPdfAnnotationRichMedia returns a new rich media annotation.
|
||
func NewPdfAnnotationRichMedia ()*PdfAnnotationRichMedia {_faf :=NewPdfAnnotation ();_ffd :=&PdfAnnotationRichMedia {};_ffd .PdfAnnotation =_faf ;_faf .SetContext (_ffd );return _ffd ;};
|
||
|
||
// GetVersion gets the document version.
|
||
func (_bagb *PdfWriter )GetVersion ()_fd .Version {return _bagb ._ggaddg };
|
||
|
||
// SetNameDictionary sets the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_deef *PdfWriter )SetNameDictionary (names _fd .PdfObject )error {if names ==nil {return nil ;};_deef ._gdabc =_gfac (names );_ag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u004e\u0061\u006d\u0065\u0073\u002e\u002e\u002e");
|
||
_deef ._fdaca .Set ("\u004e\u0061\u006de\u0073",names );return _deef .addObjects (names );};
|
||
|
||
// 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 _bc .ReadSeeker )(*PdfFont ,error ){_gede ,_egfdf :=_gcb .ReadAll (r );if _egfdf !=nil {_ag .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",_egfdf );
|
||
return nil ,_egfdf ;};_degda ,_egfdf :=_cf .TtfParse (_bf .NewReader (_gede ));if _egfdf !=nil {_ag .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",_egfdf );
|
||
return nil ,_egfdf ;};_dfed :=&pdfCIDFontType2 {fontCommon :fontCommon {_eded :"\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"},CIDToGIDMap :_fd .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079")};if len (_degda .Widths )<=0{return nil ,_ad .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");
|
||
};_cdfgb :=1000.0/float64 (_degda .UnitsPerEm );_cgdg :=_cdfgb *float64 (_degda .Widths [0]);_bcgc :=make (map[rune ]int );_agega :=make (map[_cf .GID ]int );_gbaeg :=_cf .GID (len (_degda .Widths ));for _gdaaa ,_bgdgf :=range _degda .Chars {if _bgdgf > _gbaeg -1{continue ;
|
||
};_dgbgda :=int (_cdfgb *float64 (_degda .Widths [_bgdgf ]));_bcgc [_gdaaa ]=_dgbgda ;_agega [_bgdgf ]=_dgbgda ;};_dfed ._agbed =_bcgc ;_dfed .DW =_fd .MakeInteger (int64 (_cgdg ));_ebdfd :=_bdaa (_agega ,uint16 (_gbaeg ));_dfed .W =_fd .MakeIndirectObject (_ebdfd );
|
||
_ebaag :=_fd .MakeDict ();_ebaag .Set ("\u004f\u0072\u0064\u0065\u0072\u0069\u006e\u0067",_fd .MakeString ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079"));_ebaag .Set ("\u0052\u0065\u0067\u0069\u0073\u0074\u0072\u0079",_fd .MakeString ("\u0041\u0064\u006fb\u0065"));
|
||
_ebaag .Set ("\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074",_fd .MakeInteger (0));_dfed .CIDSystemInfo =_ebaag ;_abeag :=&PdfFontDescriptor {FontName :_fd .MakeName (_degda .PostScriptName ),Ascent :_fd .MakeFloat (_cdfgb *float64 (_degda .TypoAscender )),Descent :_fd .MakeFloat (_cdfgb *float64 (_degda .TypoDescender )),CapHeight :_fd .MakeFloat (_cdfgb *float64 (_degda .CapHeight )),FontBBox :_fd .MakeArrayFromFloats ([]float64 {_cdfgb *float64 (_degda .Xmin ),_cdfgb *float64 (_degda .Ymin ),_cdfgb *float64 (_degda .Xmax ),_cdfgb *float64 (_degda .Ymax )}),ItalicAngle :_fd .MakeFloat (_degda .ItalicAngle ),MissingWidth :_fd .MakeFloat (_cgdg )};
|
||
_aaabg ,_egfdf :=_fd .MakeStream (_gede ,_fd .NewFlateEncoder ());if _egfdf !=nil {_ag .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",_egfdf );
|
||
return nil ,_egfdf ;};_aaabg .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (len (_gede ))));_abeag .FontFile2 =_aaabg ;if _degda .Bold {_abeag .StemV =_fd .MakeInteger (120);}else {_abeag .StemV =_fd .MakeInteger (70);
|
||
};_gcgb :=_fefd ;if _degda .IsFixedPitch {_gcgb |=_debadb ;};if _degda .ItalicAngle !=0{_gcgb |=_eaeg ;};_abeag .Flags =_fd .MakeInteger (int64 (_gcgb ));_dfed ._ffedb =_degda .PostScriptName ;_dfed ._babe =_abeag ;_cged :=pdfFontType0 {fontCommon :fontCommon {_eded :"\u0054\u0079\u0070e\u0030",_ffedb :_degda .PostScriptName },DescendantFont :&PdfFont {_gbaac :_dfed },Encoding :_fd .MakeName ("\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"),_agbe :_degda .NewEncoder ()};
|
||
if len (_degda .Chars )> 0{_dceeg :=make (map[_gd .CharCode ]rune ,len (_degda .Chars ));for _dade ,_fgfca :=range _degda .Chars {_dafffg :=_gd .CharCode (_fgfca );if _abfaf ,_dcbc :=_dceeg [_dafffg ];!_dcbc ||(_dcbc &&_abfaf > _dade ){_dceeg [_dafffg ]=_dade ;
|
||
};};_cged ._dgdg =_gd .NewToUnicodeCMap (_dceeg );};_fgbg :=PdfFont {_gbaac :&_cged };return &_fgbg ,nil ;};
|
||
|
||
// GetFillImage get attached model.Image in push button.
|
||
func (_daaab *PdfFieldButton )GetFillImage ()*Image {if _daaab .IsPush (){return _daaab ._daeaa ;};return nil ;};
|
||
|
||
// PdfRectangle is a definition of a rectangle.
|
||
type PdfRectangle struct{Llx float64 ;Lly float64 ;Urx float64 ;Ury float64 ;};
|
||
|
||
// 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 ;_babf *_fd .PdfIndirectObject ;};
|
||
|
||
// 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 *_ef .CertClient ;
|
||
|
||
// OCSPClient is the client used to retrieve OCSP validation information.
|
||
OCSPClient *_ef .OCSPClient ;
|
||
|
||
// CRLClient is the client used to retrieve CRL validation information.
|
||
CRLClient *_ef .CRLClient ;
|
||
|
||
// SkipExisting specifies whether existing signature validations
|
||
// should be skipped.
|
||
SkipExisting bool ;_gaggb *PdfAppender ;_fefa *DSS ;};
|
||
|
||
// ImageToRGB converts ICCBased colorspace image to RGB and returns the result.
|
||
func (_fddg *PdfColorspaceICCBased )ImageToRGB (img Image )(Image ,error ){if _fddg .Alternate ==nil {_ag .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 _fddg .N ==1{_ag .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");
|
||
_egafe :=NewPdfColorspaceDeviceGray ();return _egafe .ImageToRGB (img );}else if _fddg .N ==3{_ag .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 _fddg .N ==4{_ag .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");
|
||
_dcfg :=NewPdfColorspaceDeviceCMYK ();return _dcfg .ImageToRGB (img );}else {return img ,_ad .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");
|
||
};};_ag .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",_fddg );
|
||
_ggae ,_dgecc :=_fddg .Alternate .ImageToRGB (img );_ag .Log .Trace ("I\u0043C\u0020\u0049\u006e\u0070\u0075\u0074\u0020\u0069m\u0061\u0067\u0065\u003a %\u002b\u0076",img );_ag .Log .Trace ("I\u0043\u0043\u0020\u004fut\u0070u\u0074\u0020\u0069\u006d\u0061g\u0065\u003a\u0020\u0025\u002b\u0076",_ggae );
|
||
return _ggae ,_dgecc ;};func _baeb (_bddbe *PdfPage ){_ebgcf :=_ae .GetLicenseKey ();if _ebgcf !=nil &&_ebgcf .IsLicensed (){return ;};_ffdca :=_fd .PdfObjectName ("\u0055\u0046\u0031");if !_bddbe .Resources .HasFontByName (_ffdca ){_bddbe .Resources .SetFontByName (_ffdca ,DefaultFont ().ToPdfObject ());
|
||
};var _gegb []string ;_gegb =append (_gegb ,"\u0071");_gegb =append (_gegb ,"\u0042\u0054");_gegb =append (_gegb ,_dc .Sprintf ("\u002f%\u0073\u0020\u0031\u0034\u0020\u0054f",_ffdca .String ()));_gegb =append (_gegb ,"\u0031\u0020\u0030\u0020\u0030\u0020\u0072\u0067");
|
||
_gegb =append (_gegb ,"\u0031\u0030\u0020\u0031\u0030\u0020\u0054\u0064");_gfbgf :="\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";
|
||
_gegb =append (_gegb ,_dc .Sprintf ("\u0028%\u0073\u0029\u0020\u0054\u006a",_gfbgf ));_gegb =append (_gegb ,"\u0045\u0054");_gegb =append (_gegb ,"\u0051");_fddfc :=_gg .Join (_gegb ,"\u000a");_bddbe .AddContentStreamByString (_fddfc );_bddbe .ToPdfObject ();
|
||
};func (_cac *PdfReader )newPdfAnnotationCircleFromDict (_deca *_fd .PdfObjectDictionary )(*PdfAnnotationCircle ,error ){_dbe :=PdfAnnotationCircle {};_cbb ,_ega :=_cac .newPdfAnnotationMarkupFromDict (_deca );if _ega !=nil {return nil ,_ega ;};_dbe .PdfAnnotationMarkup =_cbb ;
|
||
_dbe .BS =_deca .Get ("\u0042\u0053");_dbe .IC =_deca .Get ("\u0049\u0043");_dbe .BE =_deca .Get ("\u0042\u0045");_dbe .RD =_deca .Get ("\u0052\u0044");return &_dbe ,nil ;};
|
||
|
||
// PdfTilingPattern is a Tiling pattern that consists of repetitions of a pattern cell with defined intervals.
|
||
// It is a type 1 pattern. (PatternType = 1).
|
||
// A tiling pattern is represented by a stream object, where the stream content is
|
||
// a content stream that describes the pattern cell.
|
||
type PdfTilingPattern struct{*PdfPattern ;PaintType *_fd .PdfObjectInteger ;TilingType *_fd .PdfObjectInteger ;BBox *PdfRectangle ;XStep *_fd .PdfObjectFloat ;YStep *_fd .PdfObjectFloat ;Resources *PdfPageResources ;Matrix *_fd .PdfObjectArray ;};
|
||
|
||
// 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 (_abeea *PdfPageResources )GetFontByName (keyName _fd .PdfObjectName )(_fd .PdfObject ,bool ){if _abeea .Font ==nil {return nil ,false ;};_abfga ,_gbdcd :=_fd .TraceToDirectObject (_abeea .Font ).(*_fd .PdfObjectDictionary );if !_gbdcd {_ag .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",_fd .TraceToDirectObject (_abeea .Font ));
|
||
return nil ,false ;};if _cgcg :=_abfga .Get (keyName );_cgcg !=nil {return _cgcg ,true ;};return nil ,false ;};
|
||
|
||
// PdfAnnotationInk represents Ink annotations.
|
||
// (Section 12.5.6.13).
|
||
type PdfAnnotationInk struct{*PdfAnnotation ;*PdfAnnotationMarkup ;InkList _fd .PdfObject ;BS _fd .PdfObject ;};
|
||
|
||
// AddFont adds a font dictionary to the Font resources.
|
||
func (_aeabf *PdfPage )AddFont (name _fd .PdfObjectName ,font _fd .PdfObject )error {if _aeabf .Resources ==nil {_aeabf .Resources =NewPdfPageResources ();};if _aeabf .Resources .Font ==nil {_aeabf .Resources .Font =_fd .MakeDict ();};_baea ,_dfedg :=_fd .TraceToDirectObject (_aeabf .Resources .Font ).(*_fd .PdfObjectDictionary );
|
||
if !_dfedg {_ag .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",_fd .TraceToDirectObject (_aeabf .Resources .Font ));
|
||
return _ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_baea .Set (name ,font );return nil ;};
|
||
|
||
// CharcodeBytesToUnicode converts PDF character codes `data` to a Go unicode string.
|
||
//
|
||
// 9.10 Extraction of Text Content (page 292)
|
||
// The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following:
|
||
// - For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings
|
||
// for Type 1 Fonts".
|
||
// - For TrueType fonts using “glyf” tables, the process shall be as described in 9.6.6.4,
|
||
// "Encodings for TrueType Fonts". Since this process sometimes produces ambiguous results,
|
||
// conforming writers, instead of using a simple font, shall use a Type 0 font with an Identity-H
|
||
// encoding and use the glyph indices as character codes, as described following Table 118.
|
||
func (_ddgb *PdfFont )CharcodeBytesToUnicode (data []byte )(string ,int ,int ){_bbagb ,_ ,_eaff :=_ddgb .CharcodesToUnicodeWithStats (_ddgb .BytesToCharcodes (data ));_debe :=_ee .ExpandLigatures (_bbagb );return _debe ,_eb .RuneCountInString (_debe ),_eaff ;
|
||
};
|
||
|
||
// GetNameDictionary returns the Names entry in the PDF catalog.
|
||
// See section 7.7.4 "Name Dictionary" (p. 80 PDF32000_2008).
|
||
func (_ecdbf *PdfReader )GetNameDictionary ()(_fd .PdfObject ,error ){_gfgg :=_fd .ResolveReference (_ecdbf ._gabca .Get ("\u004e\u0061\u006de\u0073"));if _gfgg ==nil {return nil ,nil ;};if !_ecdbf ._gfdda {_ccaa :=_ecdbf .traverseObjectData (_gfgg );if _ccaa !=nil {return nil ,_ccaa ;
|
||
};};return _gfgg ,nil ;};func _bddaa ()_cd .Time {_feadd .Lock ();defer _feadd .Unlock ();return _afgca };
|
||
|
||
// PdfPage represents a page in a PDF document. (7.7.3.3 - Table 30).
|
||
type PdfPage struct{Parent _fd .PdfObject ;LastModified *PdfDate ;Resources *PdfPageResources ;CropBox *PdfRectangle ;MediaBox *PdfRectangle ;BleedBox *PdfRectangle ;TrimBox *PdfRectangle ;ArtBox *PdfRectangle ;BoxColorInfo _fd .PdfObject ;Contents _fd .PdfObject ;
|
||
Rotate *int64 ;Group _fd .PdfObject ;Thumb _fd .PdfObject ;B _fd .PdfObject ;Dur _fd .PdfObject ;Trans _fd .PdfObject ;AA _fd .PdfObject ;Metadata _fd .PdfObject ;PieceInfo _fd .PdfObject ;StructParents _fd .PdfObject ;ID _fd .PdfObject ;PZ _fd .PdfObject ;
|
||
SeparationInfo _fd .PdfObject ;Tabs _fd .PdfObject ;TemplateInstantiated _fd .PdfObject ;PresSteps _fd .PdfObject ;UserUnit _fd .PdfObject ;VP _fd .PdfObject ;Annots _fd .PdfObject ;_gbaf []*PdfAnnotation ;_gaec *_fd .PdfObjectDictionary ;_fgcac *_fd .PdfIndirectObject ;
|
||
_cadc _fd .PdfObjectDictionary ;_dfaff *PdfReader ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components.
|
||
func (_ebgeb *PdfColorspaceDeviceN )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=_ebgeb .GetNumComponents (){return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_eggb ,_gcced :=_ebgeb .TintTransform .Evaluate (vals );
|
||
if _gcced !=nil {return nil ,_gcced ;};_ecece ,_gcced :=_ebgeb .AlternateSpace .ColorFromFloats (_eggb );if _gcced !=nil {return nil ,_gcced ;};return _ecece ,nil ;};
|
||
|
||
// PdfColorspaceDeviceCMYK represents a CMYK32 colorspace.
|
||
type PdfColorspaceDeviceCMYK struct{};
|
||
|
||
// GetPdfInfo returns the PDF info dictionary.
|
||
func (_febcb *PdfReader )GetPdfInfo ()(*PdfInfo ,error ){_cebce ,_dfebc :=_febcb .GetTrailer ();if _dfebc !=nil {return nil ,_dfebc ;};var _daadd *_fd .PdfObjectDictionary ;_eddab :=_cebce .Get ("\u0049\u006e\u0066\u006f");switch _abadd :=_eddab .(type ){case *_fd .PdfObjectReference :_cgfba :=_abadd ;
|
||
_eddab ,_dfebc =_febcb .GetIndirectObjectByNumber (int (_cgfba .ObjectNumber ));_eddab =_fd .TraceToDirectObject (_eddab );if _dfebc !=nil {return nil ,_dfebc ;};_daadd ,_ =_eddab .(*_fd .PdfObjectDictionary );case *_fd .PdfObjectDictionary :_daadd =_abadd ;
|
||
};if _daadd ==nil {return nil ,_ad .New ("I\u006e\u0066\u006f\u0020\u0064\u0069c\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006eo\u0074\u0020\u0070r\u0065s\u0065\u006e\u0074");};_gfdae ,_dfebc :=NewPdfInfoFromObject (_daadd );if _dfebc !=nil {return nil ,_dfebc ;
|
||
};return _gfdae ,nil ;};
|
||
|
||
// ColorFromFloats returns a new PdfColorDevice based on the input slice of
|
||
// color components. The slice should contain four elements representing the
|
||
// cyan, magenta, yellow and key components of the color. The values of the
|
||
// elements should be between 0 and 1.
|
||
func (_gdeb *PdfColorspaceDeviceCMYK )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=4{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_cceg :=vals [0];if _cceg < 0.0||_cceg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_cceg );
|
||
return nil ,ErrColorOutOfRange ;};_fcgb :=vals [1];if _fcgb < 0.0||_fcgb > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fcgb );return nil ,ErrColorOutOfRange ;
|
||
};_gdbg :=vals [2];if _gdbg < 0.0||_gdbg > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gdbg );return nil ,ErrColorOutOfRange ;};_fabf :=vals [3];
|
||
if _fabf < 0.0||_fabf > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_fabf );return nil ,ErrColorOutOfRange ;};_efea :=NewPdfColorDeviceCMYK (_cceg ,_fcgb ,_gdbg ,_fabf );
|
||
return _efea ,nil ;};const (_debadb =0x00001;_fdfd =0x00002;_fefd =0x00004;_fabeg =0x00008;_gebb =0x00020;_eaeg =0x00040;_egbb =0x10000;_cfea =0x20000;_edbe =0x40000;);
|
||
|
||
// AddCRLs adds CRLs to DSS.
|
||
func (_caab *DSS )AddCRLs (crls [][]byte )([]*_fd .PdfObjectStream ,error ){return _caab .add (&_caab .CRLs ,_caab ._bgacf ,crls );};func (_gbbe *PdfReader )newPdfAnnotationMovieFromDict (_bdcd *_fd .PdfObjectDictionary )(*PdfAnnotationMovie ,error ){_eeb :=PdfAnnotationMovie {};
|
||
_eeb .T =_bdcd .Get ("\u0054");_eeb .Movie =_bdcd .Get ("\u004d\u006f\u0076i\u0065");_eeb .A =_bdcd .Get ("\u0041");return &_eeb ,nil ;};
|
||
|
||
// FlattenFieldsWithOpts flattens the AcroForm fields of the page using the
|
||
// provided field appearance generator and the specified options. If no options
|
||
// are specified, all form fields are flattened for the page.
|
||
// If a filter function is provided using the opts parameter, only the filtered
|
||
// fields are flattened. Otherwise, all form fields are flattened.
|
||
func (_degc *PdfPage )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {_cdfe :=map[*PdfAnnotation ]bool {};_bfgfc ,_afaaf :=_degc .GetAnnotations ();if _afaaf !=nil {return _afaaf ;};_agfd :=false ;for _ ,_ecda :=range _bfgfc {if opts .AnnotFilterFunc !=nil {_cdfe [_ecda ]=opts .AnnotFilterFunc (_ecda );
|
||
}else {_cdfe [_ecda ]=true ;};if _cdfe [_ecda ]{_agfd =true ;};};if !_agfd {return nil ;};return _degc .flattenFieldsWithOpts (appgen ,opts ,_cdfe );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bdaf *PdfActionHide )ToPdfObject ()_fd .PdfObject {_bdaf .PdfAction .ToPdfObject ();_ccf :=_bdaf ._bfb ;_edfg :=_ccf .PdfObject .(*_fd .PdfObjectDictionary );_edfg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeHide )));_edfg .SetIfNotNil ("\u0054",_bdaf .T );
|
||
_edfg .SetIfNotNil ("\u0048",_bdaf .H );return _ccf ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_ddee *PdfColorspaceDeviceGray )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079");};
|
||
|
||
// SetContext sets the sub pattern (context). Either PdfTilingPattern or PdfShadingPattern.
|
||
func (_edcdb *PdfPattern )SetContext (ctx PdfModel ){_edcdb ._dccfd =ctx };func (_aaga *fontFile )loadFromSegments (_gedce ,_gfede []byte )error {_ag .Log .Trace ("\u006c\u006f\u0061dF\u0072\u006f\u006d\u0053\u0065\u0067\u006d\u0065\u006e\u0074\u0073\u003a\u0020\u0025\u0064\u0020\u0025\u0064",len (_gedce ),len (_gfede ));
|
||
_bdae :=_aaga .parseASCIIPart (_gedce );if _bdae !=nil {return _bdae ;};_ag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aaga );if len (_gfede )==0{return nil ;};_ag .Log .Trace ("f\u006f\u006e\u0074\u0066\u0069\u006c\u0065\u003d\u0025\u0073",_aaga );
|
||
return nil ;};
|
||
|
||
// NewStandard14Font returns the standard 14 font named `basefont` as a *PdfFont, or an error if it
|
||
// `basefont` is not one of the standard 14 font names.
|
||
func NewStandard14Font (basefont StdFontName )(*PdfFont ,error ){_bdfd ,_fceb :=_bceg (basefont );if _fceb !=nil {return nil ,_fceb ;};if basefont !=SymbolName &&basefont !=ZapfDingbatsName {_bdfd ._dcfda =_ee .NewWinAnsiEncoder ();};return &PdfFont {_gbaac :&_bdfd },nil ;
|
||
};
|
||
|
||
// PdfColorspaceDeviceNAttributes contains additional information about the components of colour space that
|
||
// conforming readers may use. Conforming readers need not use the alternateSpace and tintTransform parameters,
|
||
// and may instead use a custom blending algorithms, along with other information provided in the attributes
|
||
// dictionary if present.
|
||
type PdfColorspaceDeviceNAttributes struct{Subtype *_fd .PdfObjectName ;Colorants _fd .PdfObject ;Process _fd .PdfObject ;MixingHints _fd .PdfObject ;_cbd *_fd .PdfIndirectObject ;};
|
||
|
||
// PdfColorPattern represents a pattern color.
|
||
type PdfColorPattern struct{Color PdfColor ;PatternName _fd .PdfObjectName ;};func (_fgec *PdfReader )newPdfActionResetFormFromDict (_bbe *_fd .PdfObjectDictionary )(*PdfActionResetForm ,error ){return &PdfActionResetForm {Fields :_bbe .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_bbe .Get ("\u0046\u006c\u0061g\u0073")},nil ;
|
||
};
|
||
|
||
// PdfFont represents an underlying font structure which can be of type:
|
||
// - Type0
|
||
// - Type1
|
||
// - TrueType
|
||
// etc.
|
||
type PdfFont struct{_gbaac pdfFont };func (_abcb *LTV )enable (_ebdab ,_cfccb []*_gff .Certificate ,_efbge string )error {_bcab ,_decba ,_ecab :=_abcb .buildCertChain (_ebdab ,_cfccb );if _ecab !=nil {return _ecab ;};_cefb ,_ecab :=_abcb .getCerts (_bcab );
|
||
if _ecab !=nil {return _ecab ;};var _aaffc ,_fdgcd [][]byte ;if _abcb .OCSPClient !=nil {_aaffc ,_ecab =_abcb .getOCSPs (_bcab ,_decba );if _ecab !=nil {return _ecab ;};};if _abcb .CRLClient !=nil {_fdgcd ,_ecab =_abcb .getCRLs (_bcab );if _ecab !=nil {return _ecab ;
|
||
};};_caegg :=_abcb ._fefa ;_abgef ,_ecab :=_caegg .AddCerts (_cefb );if _ecab !=nil {return _ecab ;};_cafg ,_ecab :=_caegg .AddOCSPs (_aaffc );if _ecab !=nil {return _ecab ;};_eeacf ,_ecab :=_caegg .AddCRLs (_fdgcd );if _ecab !=nil {return _ecab ;};if _efbge !=""{_caegg .VRI [_efbge ]=&VRI {Cert :_abgef ,OCSP :_cafg ,CRL :_eeacf };
|
||
};_abcb ._gaggb .SetDSS (_caegg );return nil ;};
|
||
|
||
// Height returns the height of `rect`.
|
||
func (_ecggg *PdfRectangle )Height ()float64 {return _af .Abs (_ecggg .Ury -_ecggg .Lly )};func _eege (_gddg string )map[string ]string {_bfdg :=_daef .Split (_gddg ,-1);_ffec :=map[string ]string {};for _ ,_gecge :=range _bfdg {_ebcbb :=_ebccf .FindStringSubmatch (_gecge );
|
||
if _ebcbb ==nil {continue ;};_fbff ,_eabce :=_ebcbb [1],_ebcbb [2];_ffec [_fbff ]=_eabce ;};return _ffec ;};
|
||
|
||
// 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 *_fd .PdfObjectName ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;_dbeeaf *_fd .PdfIndirectObject ;};
|
||
|
||
// PdfAnnotation3D represents 3D annotations.
|
||
// (Section 13.6.2).
|
||
type PdfAnnotation3D struct{*PdfAnnotation ;T3DD _fd .PdfObject ;T3DV _fd .PdfObject ;T3DA _fd .PdfObject ;T3DI _fd .PdfObject ;T3DB _fd .PdfObject ;};func _affgb (_eafeg *XObjectImage )error {if _eafeg .SMask ==nil {return nil ;};_bffge ,_baecd :=_eafeg .SMask .(*_fd .PdfObjectStream );
|
||
if !_baecd {_ag .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 _fd .ErrTypeError ;};_acda :=_bffge .PdfObjectDictionary ;
|
||
_cbdfa :=_acda .Get ("\u004d\u0061\u0074t\u0065");if _cbdfa ==nil {return nil ;};_ebaacg ,_bcfeb :=_cfddd (_cbdfa .(*_fd .PdfObjectArray ));if _bcfeb !=nil {return _bcfeb ;};_fbddd :=_fd .MakeArrayFromFloats ([]float64 {_ebaacg });_acda .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_fbddd );
|
||
return nil ;};
|
||
|
||
// NewCompositePdfFontFromTTFFile loads a composite font from a TTF font file. Composite fonts can
|
||
// be used to represent unicode fonts which can have multi-byte character codes, representing a wide
|
||
// range of values. They are often used for symbolic languages, including Chinese, Japanese and Korean.
|
||
// It is represented by a Type0 Font with an underlying CIDFontType2 and an Identity-H encoding map.
|
||
// TODO: May be extended in the future to support a larger variety of CMaps and vertical fonts.
|
||
// NOTE: For simple fonts, use NewPdfFontFromTTFFile.
|
||
func NewCompositePdfFontFromTTFFile (filePath string )(*PdfFont ,error ){_abbdb ,_gbff :=_gbe .Open (filePath );if _gbff !=nil {_ag .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u006f\u0070\u0065\u006e\u0069\u006e\u0067\u0020\u0066\u0069\u006c\u0065\u003a\u0020\u0025\u0076",_gbff );
|
||
return nil ,_gbff ;};defer _abbdb .Close ();return NewCompositePdfFontFromTTF (_abbdb );};
|
||
|
||
// L returns the value of the L component of the color.
|
||
func (_agbgf *PdfColorLab )L ()float64 {return _agbgf [0]};
|
||
|
||
// NewPdfColorspaceDeviceN returns an initialized PdfColorspaceDeviceN.
|
||
func NewPdfColorspaceDeviceN ()*PdfColorspaceDeviceN {_efgd :=&PdfColorspaceDeviceN {};return _efgd };
|
||
|
||
// String returns a string describing the font descriptor.
|
||
func (_dfegd *PdfFontDescriptor )String ()string {var _cfbc []string ;if _dfegd .FontName !=nil {_cfbc =append (_cfbc ,_dfegd .FontName .String ());};if _dfegd .FontFamily !=nil {_cfbc =append (_cfbc ,_dfegd .FontFamily .String ());};if _dfegd .fontFile !=nil {_cfbc =append (_cfbc ,_dfegd .fontFile .String ());
|
||
};if _dfegd ._dccc !=nil {_cfbc =append (_cfbc ,_dfegd ._dccc .String ());};_cfbc =append (_cfbc ,_dc .Sprintf ("\u0046\u006f\u006et\u0046\u0069\u006c\u0065\u0033\u003d\u0025\u0074",_dfegd .FontFile3 !=nil ));return _dc .Sprintf ("\u0046\u004f\u004e\u0054_D\u0045\u0053\u0043\u0052\u0049\u0050\u0054\u004f\u0052\u007b\u0025\u0073\u007d",_gg .Join (_cfbc ,"\u002c\u0020"));
|
||
};
|
||
|
||
// PartialName returns the partial name of the field.
|
||
func (_cccec *PdfField )PartialName ()string {_dcda :="";if _cccec .T !=nil {_dcda =_cccec .T .Decoded ();}else {_ag .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 _dcda ;};func (_debee *PdfWriter )setWriter (_dfgaef _bc .Writer ){_debee ._bbcab =_debee ._dfgae ;_debee ._abgaac =_b .NewWriter (_dfgaef );};func (_dfgac *PdfReader )loadStructure ()error {if _dfgac ._faaf .GetCrypter ()!=nil &&!_dfgac ._faaf .IsAuthenticated (){return _dc .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");
|
||
};_daafb :=_dfgac ._faaf .GetTrailer ();if _daafb ==nil {return _dc .Errorf ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_dccbc ,_cbbca :=_daafb .Get ("\u0052\u006f\u006f\u0074").(*_fd .PdfObjectReference );if !_cbbca {return _dc .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",_daafb );
|
||
};_bfeda ,_fcceee :=_dfgac ._faaf .LookupByReference (*_dccbc );if _fcceee !=nil {_ag .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",_fcceee );
|
||
return _fcceee ;};_gdbf ,_cbbca :=_bfeda .(*_fd .PdfIndirectObject );if !_cbbca {_ag .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",_bfeda ,*_daafb );
|
||
return _ad .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_dgcd ,_cbbca :=(*_gdbf ).PdfObject .(*_fd .PdfObjectDictionary );if !_cbbca {_ag .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",_gdbf .PdfObject );
|
||
return _ad .New ("\u0069n\u0076a\u006c\u0069\u0064\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_ag .Log .Trace ("C\u0061\u0074\u0061\u006c\u006f\u0067\u003a\u0020\u0025\u0073",_dgcd );_dgdfe ,_cbbca :=_dgcd .Get ("\u0050\u0061\u0067e\u0073").(*_fd .PdfObjectReference );
|
||
if !_cbbca {return _ad .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");};_bddfb ,_fcceee :=_dfgac ._faaf .LookupByReference (*_dgdfe );
|
||
if _fcceee !=nil {_ag .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 _fcceee ;};_geaec ,_cbbca :=_bddfb .(*_fd .PdfIndirectObject );if !_cbbca {_ag .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");
|
||
_ag .Log .Debug ("\u006f\u0070\u003a\u0020\u0025\u0070",_geaec );return _ad .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fafec ,_cbbca :=_geaec .PdfObject .(*_fd .PdfObjectDictionary );if !_cbbca {_ag .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",_geaec );
|
||
return _ad .New ("p\u0061g\u0065\u0073\u0020\u006f\u0062\u006a\u0065\u0063t\u0020\u0069\u006e\u0076al\u0069\u0064");};_fdbga ,_cbbca :=_fd .GetInt (_fafec .Get ("\u0043\u006f\u0075n\u0074"));if !_cbbca {_ag .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 _ad .New ("\u0070\u0061\u0067\u0065s \u0063\u006f\u0075\u006e\u0074\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};if _ ,_cbbca =_fd .GetName (_fafec .Get ("\u0054\u0079\u0070\u0065"));!_cbbca {_ag .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");
|
||
_fafec .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067e\u0073"));};if _ddag ,_bdef :=_fd .GetInt (_fafec .Get ("\u0052\u006f\u0074\u0061\u0074\u0065"));_bdef {_bafa :=int64 (*_ddag );_dfgac .Rotate =&_bafa ;};_dfgac ._cbfcd =_dccbc ;
|
||
_dfgac ._gabca =_dgcd ;_dfgac ._dddeg =_fafec ;_dfgac ._gaag =_geaec ;_dfgac ._fdeae =int (*_fdbga );_dfgac ._bbfca =[]*_fd .PdfIndirectObject {};_cgbba :=map[_fd .PdfObject ]struct{}{};_fcceee =_dfgac .buildPageList (_geaec ,nil ,_cgbba );if _fcceee !=nil {return _fcceee ;
|
||
};_ag .Log .Trace ("\u002d\u002d\u002d");_ag .Log .Trace ("\u0054\u004f\u0043");_ag .Log .Trace ("\u0050\u0061\u0067e\u0073");_ag .Log .Trace ("\u0025\u0064\u003a\u0020\u0025\u0073",len (_dfgac ._bbfca ),_dfgac ._bbfca );_dfgac ._aceac ,_fcceee =_dfgac .loadOutlines ();
|
||
if _fcceee !=nil {_ag .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",_fcceee );
|
||
return _fcceee ;};_dfgac .AcroForm ,_fcceee =_dfgac .loadForms ();if _fcceee !=nil {return _fcceee ;};_dfgac .DSS ,_fcceee =_dfgac .loadDSS ();if _fcceee !=nil {return _fcceee ;};_dfgac ._cggae ,_fcceee =_dfgac .loadPerms ();if _fcceee !=nil {return _fcceee ;
|
||
};return nil ;};func (_dgbde fontCommon )asPdfObjectDictionary (_ebbba string )*_fd .PdfObjectDictionary {if _ebbba !=""&&_dgbde ._eded !=""&&_ebbba !=_dgbde ._eded {_ag .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",_ebbba ,_dgbde );
|
||
}else if _ebbba ==""&&_dgbde ._eded ==""{_ag .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",_dgbde );
|
||
}else if _dgbde ._eded ==""{_dgbde ._eded =_ebbba ;};_bfff :=_fd .MakeDict ();_bfff .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u006e\u0074"));_bfff .Set ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074",_fd .MakeName (_dgbde ._ffedb ));
|
||
_bfff .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName (_dgbde ._eded ));if _dgbde ._babe !=nil {_bfff .Set ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072",_dgbde ._babe .ToPdfObject ());};if _dgbde ._eebbb !=nil {_bfff .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_dgbde ._eebbb );
|
||
}else if _dgbde ._dgdg !=nil {_gdec ,_egfdg :=_dgbde ._dgdg .Stream ();if _egfdg !=nil {_ag .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",_egfdg );
|
||
}else {_bfff .Set ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e",_gdec );};};return _bfff ;};func _aaece (_ecfdg _fd .PdfObject )(*PdfFontDescriptor ,error ){_gcccf :=&PdfFontDescriptor {};_ecfdg =_fd .ResolveReference (_ecfdg );if _bbddd ,_gggdg :=_ecfdg .(*_fd .PdfIndirectObject );
|
||
_gggdg {_gcccf ._aefcd =_bbddd ;_ecfdg =_bbddd .PdfObject ;};_fccee ,_cgfdc :=_fd .GetDict (_ecfdg );if !_cgfdc {_ag .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",_ecfdg );
|
||
return nil ,_fd .ErrTypeError ;};if _gdgba :=_fccee .Get ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065");_gdgba !=nil {_gcccf .FontName =_gdgba ;}else {_ag .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");
|
||
};_cbdag ,_ :=_fd .GetName (_gcccf .FontName );if _dbeeg :=_fccee .Get ("\u0054\u0079\u0070\u0065");_dbeeg !=nil {_bbafe ,_adcg :=_dbeeg .(*_fd .PdfObjectName );if !_adcg ||string (*_bbafe )!="\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"{_ag .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",_dbeeg ,_cbdag ,_gcccf .FontName );
|
||
};}else {_ag .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",_cbdag ,_gcccf .FontName );
|
||
};_gcccf .FontFamily =_fccee .Get ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079");_gcccf .FontStretch =_fccee .Get ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068");_gcccf .FontWeight =_fccee .Get ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074");
|
||
_gcccf .Flags =_fccee .Get ("\u0046\u006c\u0061g\u0073");_gcccf .FontBBox =_fccee .Get ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078");_gcccf .ItalicAngle =_fccee .Get ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065");_gcccf .Ascent =_fccee .Get ("\u0041\u0073\u0063\u0065\u006e\u0074");
|
||
_gcccf .Descent =_fccee .Get ("\u0044e\u0073\u0063\u0065\u006e\u0074");_gcccf .Leading =_fccee .Get ("\u004ce\u0061\u0064\u0069\u006e\u0067");_gcccf .CapHeight =_fccee .Get ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t");_gcccf .XHeight =_fccee .Get ("\u0058H\u0065\u0069\u0067\u0068\u0074");
|
||
_gcccf .StemV =_fccee .Get ("\u0053\u0074\u0065m\u0056");_gcccf .StemH =_fccee .Get ("\u0053\u0074\u0065m\u0048");_gcccf .AvgWidth =_fccee .Get ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068");_gcccf .MaxWidth =_fccee .Get ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068");
|
||
_gcccf .MissingWidth =_fccee .Get ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068");_gcccf .FontFile =_fccee .Get ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065");_gcccf .FontFile2 =_fccee .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652");
|
||
_gcccf .FontFile3 =_fccee .Get ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653");_gcccf .CharSet =_fccee .Get ("\u0043h\u0061\u0072\u0053\u0065\u0074");_gcccf .Style =_fccee .Get ("\u0053\u0074\u0079l\u0065");_gcccf .Lang =_fccee .Get ("\u004c\u0061\u006e\u0067");
|
||
_gcccf .FD =_fccee .Get ("\u0046\u0044");_gcccf .CIDSet =_fccee .Get ("\u0043\u0049\u0044\u0053\u0065\u0074");if _gcccf .Flags !=nil {if _fbec ,_fage :=_fd .GetIntVal (_gcccf .Flags );_fage {_gcccf ._egced =_fbec ;};};if _gcccf .MissingWidth !=nil {if _aecdd ,_ddcec :=_fd .GetNumberAsFloat (_gcccf .MissingWidth );
|
||
_ddcec ==nil {_gcccf ._gfbd =_aecdd ;};};if _gcccf .FontFile !=nil {_dbfc ,_ebff :=_bbcga (_gcccf .FontFile );if _ebff !=nil {return _gcccf ,_ebff ;};_ag .Log .Trace ("f\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u003d\u0025\u0073",_dbfc );_gcccf .fontFile =_dbfc ;
|
||
};if _gcccf .FontFile2 !=nil {_fdaff ,_cccge :=_cf .NewFontFile2FromPdfObject (_gcccf .FontFile2 );if _cccge !=nil {return _gcccf ,_cccge ;};_ag .Log .Trace ("\u0066\u006f\u006et\u0046\u0069\u006c\u0065\u0032\u003d\u0025\u0073",_fdaff .String ());_gcccf ._dccc =&_fdaff ;
|
||
};return _gcccf ,nil ;};
|
||
|
||
// PdfOutlineTreeNode contains common fields used by the outline and outline
|
||
// item objects.
|
||
type PdfOutlineTreeNode struct{_gcgcg interface{};First *PdfOutlineTreeNode ;Last *PdfOutlineTreeNode ;};
|
||
|
||
// GetPrimitiveFromModel returns the primitive object corresponding to the input `model`.
|
||
func (_eegb *modelManager )GetPrimitiveFromModel (model PdfModel )_fd .PdfObject {_fgade ,_acef :=_eegb ._eeead [model ];if !_acef {return nil ;};return _fgade ;};
|
||
|
||
// PdfActionMovie represents a movie action.
|
||
type PdfActionMovie struct{*PdfAction ;Annotation _fd .PdfObject ;T _fd .PdfObject ;Operation _fd .PdfObject ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_daaaf pdfFontSimple )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){if _daaaf ._dcgdd !=nil {_bcegd ,_bfdc :=_daaaf ._dcgdd .Read (r );if _bfdc {return _bcegd ,true ;};};_aacb :=_daaaf .Encoder ();if _aacb ==nil {_ag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_daaaf );
|
||
return _cf .CharMetrics {},false ;};_gdebf ,_eac :=_aacb .RuneToCharcode (r );if !_eac {if r !=' '{_ag .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 ,_daaaf );
|
||
};return _cf .CharMetrics {},false ;};_cggca ,_gegef :=_daaaf .GetCharMetrics (_gdebf );return _cggca ,_gegef ;};
|
||
|
||
// GetSubFilter returns SubFilter value or empty string.
|
||
func (_bbeceb *pdfSignDictionary )GetSubFilter ()string {_gcgcgf :=_bbeceb .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r");if _gcgcgf ==nil {return "";};if _dadf ,_bedbd :=_fd .GetNameVal (_gcgcgf );_bedbd {return _dadf ;};return "";};func (_gddgf *PdfSignature )extractChainFromPKCS7 ()([]*_gff .Certificate ,error ){_effb ,_eebbe :=_ada .Parse (_gddgf .Contents .Bytes ());
|
||
if _eebbe !=nil {return nil ,_eebbe ;};return _effb .Certificates ,nil ;};func _eeafa (_becbd *_gbed .ImageBase )(_fcgad Image ){_fcgad .Width =int64 (_becbd .Width );_fcgad .Height =int64 (_becbd .Height );_fcgad .BitsPerComponent =int64 (_becbd .BitsPerComponent );
|
||
_fcgad .ColorComponents =_becbd .ColorComponents ;_fcgad .Data =_becbd .Data ;_fcgad ._cdbdc =_becbd .Decode ;_fcgad ._gfffd =_becbd .Alpha ;return _fcgad ;};
|
||
|
||
// PdfOutline represents a PDF outline dictionary (Table 152 - p. 376).
|
||
type PdfOutline struct{PdfOutlineTreeNode ;Parent *PdfOutlineTreeNode ;Count *int64 ;_fcef *_fd .PdfIndirectObject ;};func (_cbac *PdfReader )newPdfActionLaunchFromDict (_dfa *_fd .PdfObjectDictionary )(*PdfActionLaunch ,error ){_ddc ,_gcfg :=_ece (_dfa .Get ("\u0046"));
|
||
if _gcfg !=nil {return nil ,_gcfg ;};return &PdfActionLaunch {Win :_dfa .Get ("\u0057\u0069\u006e"),Mac :_dfa .Get ("\u004d\u0061\u0063"),Unix :_dfa .Get ("\u0055\u006e\u0069\u0078"),NewWindow :_dfa .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),F :_ddc },nil ;
|
||
};
|
||
|
||
// GetContainingPdfObject returns the container of the PdfAcroForm (indirect object).
|
||
func (_aegcde *PdfAcroForm )GetContainingPdfObject ()_fd .PdfObject {return _aegcde ._fefdb };
|
||
|
||
// NewPdfWriter initializes a new PdfWriter.
|
||
func NewPdfWriter ()PdfWriter {_eggce :=PdfWriter {};_eggce ._agfaff =map[_fd .PdfObject ]struct{}{};_eggce ._agfbf =[]_fd .PdfObject {};_eggce ._aaabd =map[_fd .PdfObject ][]*_fd .PdfObjectDictionary {};_eggce ._bagca =map[_fd .PdfObject ]struct{}{};_eggce ._ggaddg .Major =1;
|
||
_eggce ._ggaddg .Minor =3;_gagee :=_fd .MakeDict ();_cfgcc :=[]struct{_ddfce _fd .PdfObjectName ;_gdbge string ;}{{"\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_eeeaa ()},{"\u0043r\u0065\u0061\u0074\u006f\u0072",_edeca ()},{"\u0041\u0075\u0074\u0068\u006f\u0072",_bgaa ()},{"\u0053u\u0062\u006a\u0065\u0063\u0074",_cbea ()},{"\u0054\u0069\u0074l\u0065",_gfeef ()},{"\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_egdga ()}};
|
||
for _ ,_bbff :=range _cfgcc {if _bbff ._gdbge !=""{_gagee .Set (_bbff ._ddfce ,_fd .MakeString (_bbff ._gdbge ));};};if _ddead :=_bddaa ();!_ddead .IsZero (){if _adcae ,_fcgde :=NewPdfDateFromTime (_ddead );_fcgde ==nil {_gagee .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_adcae .ToPdfObject ());
|
||
};};if _gfagc :=_ddbf ();!_gfagc .IsZero (){if _cbccd ,_egafgc :=NewPdfDateFromTime (_gfagc );_egafgc ==nil {_gagee .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_cbccd .ToPdfObject ());};};_bbdfg :=_fd .PdfIndirectObject {};_bbdfg .PdfObject =_gagee ;
|
||
_eggce ._ggdfa =&_bbdfg ;_eggce .addObject (&_bbdfg );_eefb :=_fd .PdfIndirectObject {};_dedbd :=_fd .MakeDict ();_dedbd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0043a\u0074\u0061\u006c\u006f\u0067"));_eefb .PdfObject =_dedbd ;_eggce ._defdd =&_eefb ;
|
||
_eggce .addObject (_eggce ._defdd );_fcgfa ,_ccdec :=_abbdf ("\u0077");if _ccdec !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ccdec );};_eggce ._cdfgf =_fcgfa ;_aeeee :=_fd .PdfIndirectObject {};_bfafd :=_fd .MakeDict ();_bfafd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050\u0061\u0067e\u0073"));
|
||
_cebg :=_fd .PdfObjectArray {};_bfafd .Set ("\u004b\u0069\u0064\u0073",&_cebg );_bfafd .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (0));_aeeee .PdfObject =_bfafd ;_eggce ._eecde =&_aeeee ;_eggce ._efed =map[_fd .PdfObject ]struct{}{};_eggce .addObject (_eggce ._eecde );
|
||
_dedbd .Set ("\u0050\u0061\u0067e\u0073",&_aeeee );_eggce ._fdaca =_dedbd ;_ag .Log .Trace ("\u0043\u0061\u0074\u0061\u006c\u006f\u0067\u0020\u0025\u0073",_eefb );return _eggce ;};
|
||
|
||
// 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 };};
|
||
|
||
// GetContainingPdfObject returns the container of the outline tree node (indirect object).
|
||
func (_bcae *PdfOutlineTreeNode )GetContainingPdfObject ()_fd .PdfObject {return _bcae .GetContext ().GetContainingPdfObject ();};func _bbdf (_befg _fd .PdfObject )(*PdfColorspaceICCBased ,error ){_gffab :=&PdfColorspaceICCBased {};if _efdfd ,_ceadf :=_befg .(*_fd .PdfIndirectObject );
|
||
_ceadf {_gffab ._gddfd =_efdfd ;};_befg =_fd .TraceToDirectObject (_befg );_dbff ,_eafg :=_befg .(*_fd .PdfObjectArray );if !_eafg {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _dbff .Len ()!=2{return nil ,_dc .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064\u0020c\u006f\u006c\u006fr\u0073p\u0061\u0063\u0065");
|
||
};_befg =_fd .TraceToDirectObject (_dbff .Get (0));_fbaa ,_eafg :=_befg .(*_fd .PdfObjectName );if !_eafg {return nil ,_dc .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 *_fbaa !="\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064"{return nil ,_dc .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");};_befg =_dbff .Get (1);
|
||
_gcdab ,_eafg :=_fd .GetStream (_befg );if !_eafg {_ag .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",_befg );
|
||
return nil ,_dc .Errorf ("\u0049\u0043\u0043Ba\u0073\u0065\u0064\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u0020\u0069\u006e\u0076\u0061\u006c\u0069\u0064");};_efafg :=_gcdab .PdfObjectDictionary ;_ecge ,_eafg :=_efafg .Get ("\u004e").(*_fd .PdfObjectInteger );
|
||
if !_eafg {return nil ,_dc .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 *_ecge !=1&&*_ecge !=3&&*_ecge !=4{return nil ,_dc .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");
|
||
};_gffab .N =int (*_ecge );if _fagg :=_efafg .Get ("\u0041l\u0074\u0065\u0072\u006e\u0061\u0074e");_fagg !=nil {_fbbd ,_ebag :=NewPdfColorspaceFromPdfObject (_fagg );if _ebag !=nil {return nil ,_ebag ;};_gffab .Alternate =_fbbd ;};if _aafd :=_efafg .Get ("\u0052\u0061\u006eg\u0065");
|
||
_aafd !=nil {_aafd =_fd .TraceToDirectObject (_aafd );_egbg ,_dagbe :=_aafd .(*_fd .PdfObjectArray );if !_dagbe {return nil ,_dc .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 _egbg .Len ()!=2*_gffab .N {return nil ,_dc .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");
|
||
};_agge ,_bbad :=_egbg .GetAsFloat64Slice ();if _bbad !=nil {return nil ,_bbad ;};_gffab .Range =_agge ;}else {_gffab .Range =make ([]float64 ,2*_gffab .N );for _dacbb :=0;_dacbb < _gffab .N ;_dacbb ++{_gffab .Range [2*_dacbb ]=0.0;_gffab .Range [2*_dacbb +1]=1.0;
|
||
};};if _bgedb :=_efafg .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_bgedb !=nil {_ggdc ,_eaaf :=_bgedb .(*_fd .PdfObjectStream );if !_eaaf {return nil ,_dc .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");
|
||
};_gffab .Metadata =_ggdc ;};_aggc ,_geaed :=_fd .DecodeStream (_gcdab );if _geaed !=nil {return nil ,_geaed ;};_gffab .Data =_aggc ;_gffab ._fbad =_gcdab ;return _gffab ,nil ;};
|
||
|
||
// 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 (_fgdde *pdfFontSimple )SetEncoder (encoder _ee .TextEncoder ){_fgdde ._dcfda =encoder };
|
||
|
||
// 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 (_cgecd *LTV )EnableChain (chain []*_gff .Certificate )error {return _cgecd .enable (nil ,chain ,"")};
|
||
|
||
// NewPdfShadingPatternType3 creates an empty shading pattern type 3 object.
|
||
func NewPdfShadingPatternType3 ()*PdfShadingPatternType3 {_bdaec :=&PdfShadingPatternType3 {};_bdaec .Matrix =_fd .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_bdaec .PdfPattern =&PdfPattern {};_bdaec .PdfPattern .PatternType =int64 (*_fd .MakeInteger (2));
|
||
_bdaec .PdfPattern ._dccfd =_bdaec ;_bdaec .PdfPattern ._gcgba =_fd .MakeIndirectObject (_fd .MakeDict ());return _bdaec ;};
|
||
|
||
// 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 *_fd .PdfObjectArray ;ExtGState _fd .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_gceb *PdfFunctionType4 )ToPdfObject ()_fd .PdfObject {_afca :=_gceb ._bdga ;if _afca ==nil {_gceb ._bdga =&_fd .PdfObjectStream {};_afca =_gceb ._bdga ;};_ccfcc :=_fd .MakeDict ();_ccfcc .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (4));
|
||
_dfaba :=&_fd .PdfObjectArray {};for _ ,_cbcad :=range _gceb .Domain {_dfaba .Append (_fd .MakeFloat (_cbcad ));};_ccfcc .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_dfaba );_bedgb :=&_fd .PdfObjectArray {};for _ ,_ceceea :=range _gceb .Range {_bedgb .Append (_fd .MakeFloat (_ceceea ));
|
||
};_ccfcc .Set ("\u0052\u0061\u006eg\u0065",_bedgb );if _gceb ._cbaff ==nil &&_gceb .Program !=nil {_gceb ._cbaff =[]byte (_gceb .Program .String ());};_ccfcc .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_gceb ._cbaff ))));
|
||
_afca .Stream =_gceb ._cbaff ;_afca .PdfObjectDictionary =_ccfcc ;return _afca ;};func _gebge (_efdb *PdfPage )map[_fd .PdfObjectName ]_fd .PdfObject {_efaf :=make (map[_fd .PdfObjectName ]_fd .PdfObject );if _efdb .Resources ==nil {return _efaf ;};if _efdb .Resources .Font !=nil {if _cfdf ,_affa :=_fd .GetDict (_efdb .Resources .Font );
|
||
_affa {for _ ,_feba :=range _cfdf .Keys (){_efaf [_feba ]=_cfdf .Get (_feba );};};};if _efdb .Resources .ExtGState !=nil {if _ebab ,_bgag :=_fd .GetDict (_efdb .Resources .ExtGState );_bgag {for _ ,_eefeb :=range _ebab .Keys (){_efaf [_eefeb ]=_ebab .Get (_eefeb );
|
||
};};};if _efdb .Resources .XObject !=nil {if _effg ,_fgdca :=_fd .GetDict (_efdb .Resources .XObject );_fgdca {for _ ,_cecb :=range _effg .Keys (){_efaf [_cecb ]=_effg .Get (_cecb );};};};if _efdb .Resources .Pattern !=nil {if _bfgf ,_efcc :=_fd .GetDict (_efdb .Resources .Pattern );
|
||
_efcc {for _ ,_dbgd :=range _bfgf .Keys (){_efaf [_dbgd ]=_bfgf .Get (_dbgd );};};};if _efdb .Resources .Shading !=nil {if _edcd ,_dgfg :=_fd .GetDict (_efdb .Resources .Shading );_dgfg {for _ ,_bace :=range _edcd .Keys (){_efaf [_bace ]=_edcd .Get (_bace );
|
||
};};};if _efdb .Resources .ProcSet !=nil {if _bea ,_bcac :=_fd .GetDict (_efdb .Resources .ProcSet );_bcac {for _ ,_fgcg :=range _bea .Keys (){_efaf [_fgcg ]=_bea .Get (_fgcg );};};};if _efdb .Resources .Properties !=nil {if _fcgg ,_cfcc :=_fd .GetDict (_efdb .Resources .Properties );
|
||
_cfcc {for _ ,_ggba :=range _fcgg .Keys (){_efaf [_ggba ]=_fcgg .Get (_ggba );};};};return _efaf ;};
|
||
|
||
// 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 *_fd .PdfObjectStream ;Data []byte ;_gddfd *_fd .PdfIndirectObject ;_fbad *_fd .PdfObjectStream ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_gfeaa *PdfPageResourcesColorspaces )ToPdfObject ()_fd .PdfObject {_faef :=_fd .MakeDict ();for _ ,_decefa :=range _gfeaa .Names {_faef .Set (_fd .PdfObjectName (_decefa ),_gfeaa .Colorspaces [_decefa ].ToPdfObject ());};if _gfeaa ._abdg !=nil {_gfeaa ._abdg .PdfObject =_faef ;
|
||
return _gfeaa ._abdg ;};return _faef ;};
|
||
|
||
// AcroFormRepairOptions contains options for rebuilding the AcroForm.
|
||
type AcroFormRepairOptions struct{};func (_gbgeb *PdfWriter )mapObjectStreams (_egade bool )(map[_fd .PdfObject ]bool ,bool ){_cceec :=make (map[_fd .PdfObject ]bool );for _ ,_cafeb :=range _gbgeb ._agfbf {if _agbgd ,_aadag :=_cafeb .(*_fd .PdfObjectStreams );
|
||
_aadag {_egade =true ;for _ ,_cdged :=range _agbgd .Elements (){_cceec [_cdged ]=true ;if _ecege ,_fddde :=_cdged .(*_fd .PdfIndirectObject );_fddde {_cceec [_ecege .PdfObject ]=true ;};};};};return _cceec ,_egade ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dea *PdfActionNamed )ToPdfObject ()_fd .PdfObject {_dea .PdfAction .ToPdfObject ();_bb :=_dea ._bfb ;_dcee :=_bb .PdfObject .(*_fd .PdfObjectDictionary );_dcee .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeNamed )));_dcee .SetIfNotNil ("\u004e",_dea .N );
|
||
return _bb ;};
|
||
|
||
// SetContentStream sets the pattern cell's content stream.
|
||
func (_ggfd *PdfTilingPattern )SetContentStream (content []byte ,encoder _fd .StreamEncoder )error {_fdbef ,_dege :=_ggfd ._gcgba .(*_fd .PdfObjectStream );if !_dege {_ag .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",_ggfd ._gcgba );
|
||
return _fd .ErrTypeError ;};if encoder ==nil {encoder =_fd .NewRawEncoder ();};_gebgd :=_fdbef .PdfObjectDictionary ;_dbdgf :=encoder .MakeStreamDict ();_gebgd .Merge (_dbdgf );_cfdfb ,_fffee :=encoder .EncodeBytes (content );if _fffee !=nil {return _fffee ;
|
||
};_gebgd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_cfdfb ))));_fdbef .Stream =_cfdfb ;return nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bad *PdfActionLaunch )ToPdfObject ()_fd .PdfObject {_bad .PdfAction .ToPdfObject ();_fbf :=_bad ._bfb ;_fe :=_fbf .PdfObject .(*_fd .PdfObjectDictionary );_fe .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeLaunch )));if _bad .F !=nil {_fe .Set ("\u0046",_bad .F .ToPdfObject ());
|
||
};_fe .SetIfNotNil ("\u0057\u0069\u006e",_bad .Win );_fe .SetIfNotNil ("\u004d\u0061\u0063",_bad .Mac );_fe .SetIfNotNil ("\u0055\u006e\u0069\u0078",_bad .Unix );_fe .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_bad .NewWindow );return _fbf ;
|
||
};
|
||
|
||
// Duplicate creates a duplicate page based on the current one and returns it.
|
||
func (_abfbg *PdfPage )Duplicate ()*PdfPage {_efbag :=*_abfbg ;_efbag ._gaec =_fd .MakeDict ();_efbag ._fgcac =_fd .MakeIndirectObject (_efbag ._gaec );_efbag ._cadc =*_efbag ._gaec ;return &_efbag ;};
|
||
|
||
// NewPdfColorspaceICCBased returns a new ICCBased colorspace object.
|
||
func NewPdfColorspaceICCBased (N int )(*PdfColorspaceICCBased ,error ){_adfgg :=&PdfColorspaceICCBased {};if N !=1&&N !=3&&N !=4{return nil ,_dc .Errorf ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u004e\u0020\u0028\u0031/\u0033\u002f\u0034\u0029");
|
||
};_adfgg .N =N ;return _adfgg ,nil ;};
|
||
|
||
// PdfActionType represents an action type in PDF (section 12.6.4 p. 417).
|
||
type PdfActionType string ;
|
||
|
||
// B returns the value of the blue component of the color.
|
||
func (_bdabb *PdfColorDeviceRGB )B ()float64 {return _bdabb [2]};func (_eadce *LTV )generateVRIKey (_bbbcd *PdfSignature )(string ,error ){_cebaf ,_gbfcf :=_eagg (_bbbcd .Contents .Bytes ());if _gbfcf !=nil {return "",_gbfcf ;};return _gg .ToUpper (_f .EncodeToString (_cebaf )),nil ;
|
||
};
|
||
|
||
// NewPdfShadingType3 creates an empty shading type 3 dictionary.
|
||
func NewPdfShadingType3 ()*PdfShadingType3 {_addbd :=&PdfShadingType3 {};_addbd .PdfShading =&PdfShading {};_addbd .PdfShading ._cdgfd =_fd .MakeIndirectObject (_fd .MakeDict ());_addbd .PdfShading ._cgfce =_addbd ;return _addbd ;};var (CourierName =_cf .CourierName ;
|
||
CourierBoldName =_cf .CourierBoldName ;CourierObliqueName =_cf .CourierObliqueName ;CourierBoldObliqueName =_cf .CourierBoldObliqueName ;HelveticaName =_cf .HelveticaName ;HelveticaBoldName =_cf .HelveticaBoldName ;HelveticaObliqueName =_cf .HelveticaObliqueName ;
|
||
HelveticaBoldObliqueName =_cf .HelveticaBoldObliqueName ;SymbolName =_cf .SymbolName ;ZapfDingbatsName =_cf .ZapfDingbatsName ;TimesRomanName =_cf .TimesRomanName ;TimesBoldName =_cf .TimesBoldName ;TimesItalicName =_cf .TimesItalicName ;TimesBoldItalicName =_cf .TimesBoldItalicName ;
|
||
);
|
||
|
||
// ReplacePage replaces the original page to a new page.
|
||
func (_fbaeg *PdfAppender )ReplacePage (pageNum int ,page *PdfPage ){_dbce :=pageNum -1;for _ecbc :=range _fbaeg ._gbca {if _ecbc ==_dbce {_agad :=page .Duplicate ();_baeb (_agad );_fbaeg ._gbca [_ecbc ]=_agad ;};};};
|
||
|
||
// GetRuneMetrics iterates through each font in the list of fonts the returns the fonts.CharMetrics from working font.
|
||
func (_ffda *MultipleFontEncoder )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){_dfgdd :=_ffda .CurrentFont ;_abgbd ,_ggee :=_dfgdd .GetRuneMetrics (r );for _cccd :=1;_cccd < len (_ffda ._ccbbf )&&_abgbd .Wx ==0;_cccd ++{_dfgdd =_ffda ._ccbbf [_cccd ];
|
||
_abgbd ,_ggee =_dfgdd .GetRuneMetrics (r );};return _abgbd ,_ggee ;};func (_fbegf *fontFile )parseASCIIPart (_cbdc []byte )error {if len (_cbdc )< 2||string (_cbdc [:2])!="\u0025\u0021"{return _ad .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");
|
||
};_ebadg ,_dddfb ,_egfb :=_bgae (_cbdc );if _egfb !=nil {return _egfb ;};_beagd :=_eege (_ebadg );_fbegf ._cbfca =_beagd ["\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065"];if _fbegf ._cbfca ==""{_ag .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 _dddfb !=""{_dbbef ,_cgccb :=_ecafd (_dddfb );if _cgccb !=nil {return _cgccb ;};_eccd ,_cgccb :=_ee .NewCustomSimpleTextEncoder (_dbbef ,nil );if _cgccb !=nil {_ag .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",_cgccb );
|
||
return nil ;};_fbegf ._cecab =_eccd ;};return nil ;};
|
||
|
||
// SetPdfAuthor sets the Author attribute of the output PDF.
|
||
func SetPdfAuthor (author string ){_feadd .Lock ();defer _feadd .Unlock ();_fbgc =author };func (_gegac *pdfFontSimple )baseFields ()*fontCommon {return &_gegac .fontCommon };
|
||
|
||
// NewPdfActionHide returns a new "hide" action.
|
||
func NewPdfActionHide ()*PdfActionHide {_fge :=NewPdfAction ();_gee :=&PdfActionHide {};_gee .PdfAction =_fge ;_fge .SetContext (_gee );return _gee ;};
|
||
|
||
// GetAsTilingPattern returns a tiling pattern. Check with IsTiling() prior to using this.
|
||
func (_afceb *PdfPattern )GetAsTilingPattern ()*PdfTilingPattern {return _afceb ._dccfd .(*PdfTilingPattern );};
|
||
|
||
// SetAction sets the PDF action for the annotation link.
|
||
func (_bgb *PdfAnnotationLink )SetAction (action *PdfAction ){_bgb ._abb =action ;if action ==nil {_bgb .A =nil ;};};
|
||
|
||
// Insert adds a top level outline item in the outline,
|
||
// at the specified index.
|
||
func (_gdbgg *Outline )Insert (index uint ,item *OutlineItem ){_gabgge :=uint (len (_gdbgg .Entries ));if index > _gabgge {index =_gabgge ;};_gdbgg .Entries =append (_gdbgg .Entries [:index ],append ([]*OutlineItem {item },_gdbgg .Entries [index :]...)...);
|
||
};
|
||
|
||
// 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 (_dagfd *PdfFont )FontDescriptor ()*PdfFontDescriptor {if _dagfd .baseFields ()._babe !=nil {return _dagfd .baseFields ()._babe ;};if _fafae :=_dagfd ._gbaac .getFontDescriptor ();_fafae !=nil {return _fafae ;};_ag .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",_dagfd );
|
||
return nil ;};
|
||
|
||
// PdfField contains the common attributes of a form field. The context object contains the specific field data
|
||
// which can represent a button, text, choice or signature.
|
||
// The PdfField is typically not used directly, but is encapsulated by the more specific field types such as
|
||
// PdfFieldButton etc (i.e. the context attribute).
|
||
type PdfField struct{_becad PdfModel ;_dffeb *_fd .PdfIndirectObject ;Parent *PdfField ;Annotations []*PdfAnnotationWidget ;Kids []*PdfField ;FT *_fd .PdfObjectName ;T *_fd .PdfObjectString ;TU *_fd .PdfObjectString ;TM *_fd .PdfObjectString ;Ff *_fd .PdfObjectInteger ;
|
||
V _fd .PdfObject ;DV _fd .PdfObject ;AA _fd .PdfObject ;VariableText *VariableText ;};
|
||
|
||
// SetOptimizer sets the optimizer to optimize PDF before writing.
|
||
func (_ceadc *PdfWriter )SetOptimizer (optimizer Optimizer ){_ceadc ._cffdf =optimizer };
|
||
|
||
// Encoder iterates through the list of fonts and returns a working encoder
|
||
func (_acegd *MultipleFontEncoder )Encoder (rn rune )(_ee .TextEncoder ,bool ){_bffb :=_acegd .CurrentFont ;_begcb :=_bffb .Encoder ();_ ,_aeddd :=_begcb .RuneToCharcode (rn );for _bfedb :=1;_bfedb < len (_acegd ._ccbbf )&&!_aeddd ;_bfedb ++{_bffb =_acegd ._ccbbf [_bfedb ];
|
||
_begcb =_bffb .Encoder ();_ ,_aeddd =_begcb .RuneToCharcode (rn );_acegd .CurrentFont =_bffb ;};return _begcb ,_aeddd ;};func (_ddfdc *PdfColorspaceSpecialPattern )String ()string {return "\u0050a\u0074\u0074\u0065\u0072\u006e";};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edd *PdfActionRendition )ToPdfObject ()_fd .PdfObject {_edd .PdfAction .ToPdfObject ();_defe :=_edd ._bfb ;_dab :=_defe .PdfObject .(*_fd .PdfObjectDictionary );_dab .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeRendition )));_dab .SetIfNotNil ("\u0052",_edd .R );
|
||
_dab .SetIfNotNil ("\u0041\u004e",_edd .AN );_dab .SetIfNotNil ("\u004f\u0050",_edd .OP );_dab .SetIfNotNil ("\u004a\u0053",_edd .JS );return _defe ;};
|
||
|
||
// ImageToRGB converts an image with samples in Separation CS to an image with samples specified in
|
||
// DeviceRGB CS.
|
||
func (_bcbe *PdfColorspaceSpecialSeparation )ImageToRGB (img Image )(Image ,error ){_aeed :=_bg .NewReader (img .getBase ());_bcgga :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),_bcbe .AlternateSpace .GetNumComponents (),nil ,img ._gfffd ,nil );
|
||
_fegga :=_bg .NewWriter (_bcgga );_acdc :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_ag .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");
|
||
_ag .Log .Trace ("\u0054i\u006et\u0054\u0072\u0061\u006e\u0073f\u006f\u0072m\u003a\u0020\u0025\u002b\u0076",_bcbe .TintTransform );_fdaf :=_bcbe .AlternateSpace .DecodeArray ();var (_fbeb uint32 ;_ggab error ;);for {_fbeb ,_ggab =_aeed .ReadSample ();if _ggab ==_bc .EOF {break ;
|
||
};if _ggab !=nil {return img ,_ggab ;};_aefac :=float64 (_fbeb )/_acdc ;_cagc ,_cdbb :=_bcbe .TintTransform .Evaluate ([]float64 {_aefac });if _cdbb !=nil {return img ,_cdbb ;};for _bdbc ,_bccd :=range _cagc {_acebd :=_gbed .LinearInterpolate (_bccd ,_fdaf [_bdbc *2],_fdaf [_bdbc *2+1],0,1);
|
||
if _cdbb =_fegga .WriteSample (uint32 (_acebd *_acdc ));_cdbb !=nil {return img ,_cdbb ;};};};return _bcbe .AlternateSpace .ImageToRGB (_eeafa (&_bcgga ));};
|
||
|
||
// PdfAnnotationUnderline represents Underline annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationUnderline struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
|
||
|
||
// ReaderOpts defines options for creating PdfReader instances.
|
||
type ReaderOpts struct{
|
||
|
||
// Password password of the PDF file encryption.
|
||
// Default: empty ("").
|
||
Password string ;
|
||
|
||
// LazyLoad set if the PDF file would be loaded using lazy-loading mode.
|
||
// Default: true.
|
||
LazyLoad bool ;
|
||
|
||
// ComplianceMode set if parsed PDF file should contain meta information for the verifiers of the compliance standards like PDF/A.
|
||
ComplianceMode bool ;};func _febfg (_cecaf *_fd .PdfObjectDictionary )(*PdfShadingType7 ,error ){_dgabc :=PdfShadingType7 {};_gbdce :=_cecaf .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _gbdce ==nil {_ag .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 ;};_dgfba ,_cdgbd :=_gbdce .(*_fd .PdfObjectInteger );if !_cdgbd {_ag .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",_gbdce );
|
||
return nil ,_fd .ErrTypeError ;};_dgabc .BitsPerCoordinate =_dgfba ;_gbdce =_cecaf .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _gbdce ==nil {_ag .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 ;};_dgfba ,_cdgbd =_gbdce .(*_fd .PdfObjectInteger );if !_cdgbd {_ag .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",_gbdce );
|
||
return nil ,_fd .ErrTypeError ;};_dgabc .BitsPerComponent =_dgfba ;_gbdce =_cecaf .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _gbdce ==nil {_ag .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 ;};_dgfba ,_cdgbd =_gbdce .(*_fd .PdfObjectInteger );if !_cdgbd {_ag .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",_gbdce );
|
||
return nil ,_fd .ErrTypeError ;};_dgabc .BitsPerComponent =_dgfba ;_gbdce =_cecaf .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _gbdce ==nil {_ag .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 ;};_fadcb ,_cdgbd :=_gbdce .(*_fd .PdfObjectArray );if !_cdgbd {_ag .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",_gbdce );
|
||
return nil ,_fd .ErrTypeError ;};_dgabc .Decode =_fadcb ;if _bcgfe :=_cecaf .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_bcgfe !=nil {_dgabc .Function =[]PdfFunction {};if _afbdd ,_daafe :=_bcgfe .(*_fd .PdfObjectArray );_daafe {for _ ,_aggef :=range _afbdd .Elements (){_dfaed ,_ggef :=_badad (_aggef );
|
||
if _ggef !=nil {_ag .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",_ggef );return nil ,_ggef ;};_dgabc .Function =append (_dgabc .Function ,_dfaed );
|
||
};}else {_babd ,_fgcbc :=_badad (_bcgfe );if _fgcbc !=nil {_ag .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",_fgcbc );return nil ,_fgcbc ;
|
||
};_dgabc .Function =append (_dgabc .Function ,_babd );};};return &_dgabc ,nil ;};
|
||
|
||
// 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 (_ddba *PdfFont )RunesToCharcodeBytes (data []rune )([]byte ,int ){var _ggfaa []_ee .TextEncoder ;var _abea _ee .CMapEncoder ;if _fceaa :=_ddba .baseFields ()._dgdg ;_fceaa !=nil {_abea =_ee .NewCMapEncoder ("",nil ,_fceaa );};_gggb :=_ddba .Encoder ();
|
||
if _gggb !=nil {switch _gdaf :=_gggb .(type ){case _ee .SimpleEncoder :_fagb :=_gdaf .BaseName ();if _ ,_dbcf :=_geafg [_fagb ];_dbcf {_ggfaa =append (_ggfaa ,_gggb );};};};if len (_ggfaa )==0{if _ddba .baseFields ()._dgdg !=nil {_ggfaa =append (_ggfaa ,_abea );
|
||
};if _gggb !=nil {_ggfaa =append (_ggfaa ,_gggb );};};var _deecc _bf .Buffer ;var _cfeg int ;for _ ,_cgege :=range data {var _bgdb bool ;for _ ,_ffgff :=range _ggfaa {if _fddcb :=_ffgff .Encode (string (_cgege ));len (_fddcb )> 0{_deecc .Write (_fddcb );
|
||
_bgdb =true ;break ;};};if !_bgdb {_ag .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",_cgege );
|
||
_cfeg ++;};};if _cfeg !=0{_ag .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 ),_cfeg ,_ddba ,_ggfaa );
|
||
};return _deecc .Bytes (),_cfeg ;};func (_fgee *PdfReader )newPdfActionMovieFromDict (_daddc *_fd .PdfObjectDictionary )(*PdfActionMovie ,error ){return &PdfActionMovie {Annotation :_daddc .Get ("\u0041\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e"),T :_daddc .Get ("\u0054"),Operation :_daddc .Get ("\u004fp\u0065\u0072\u0061\u0074\u0069\u006fn")},nil ;
|
||
};func _gdfa (_fbfb *_fd .PdfObjectDictionary )bool {for _ ,_fdec :=range _fbfb .Keys (){if _ ,_baca :=_aegc [_fdec .String ()];_baca {return true ;};};return false ;};
|
||
|
||
// GetCatalogMetadata gets the catalog defined XMP Metadata.
|
||
func (_dcabg *PdfReader )GetCatalogMetadata ()(_fd .PdfObject ,bool ){if _dcabg ._gabca ==nil {return nil ,false ;};_gebd :=_dcabg ._gabca .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return _gebd ,_gebd !=nil ;};
|
||
|
||
// SetImageHandler sets the image handler used by the package.
|
||
func SetImageHandler (imgHandling ImageHandler ){ImageHandling =imgHandling };
|
||
|
||
// PdfBorderEffect represents a PDF border effect.
|
||
type PdfBorderEffect struct{S *BorderEffect ;I *float64 ;};
|
||
|
||
// SetFlag sets the flag for the field.
|
||
func (_fgea *PdfField )SetFlag (flag FieldFlag ){_fgea .Ff =_fd .MakeInteger (int64 (flag ))};func (_ccagdf *PdfWriter )writeOutlines ()error {if _ccagdf ._adfcff ==nil {return nil ;};_ag .Log .Trace ("\u004f\u0075t\u006c\u0069\u006ee\u0054\u0072\u0065\u0065\u003a\u0020\u0025\u002b\u0076",_ccagdf ._adfcff );
|
||
_gffad :=_ccagdf ._adfcff .ToPdfObject ();_ag .Log .Trace ("\u004fu\u0074\u006c\u0069\u006e\u0065\u0073\u003a\u0020\u0025\u002b\u0076 \u0028\u0025\u0054\u002c\u0020\u0070\u003a\u0025\u0070\u0029",_gffad ,_gffad ,_gffad );_ccagdf ._fdaca .Set ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073",_gffad );
|
||
_cadgf :=_ccagdf .addObjects (_gffad );if _cadgf !=nil {return _cadgf ;};return nil ;};
|
||
|
||
// Initialize initializes the PdfSignature.
|
||
func (_eeeb *PdfSignature )Initialize ()error {if _eeeb .Handler ==nil {return _ad .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 _eeeb .Handler .InitSignature (_eeeb );};
|
||
|
||
// GetOCProperties returns the optional content properties PdfObject.
|
||
func (_gffcd *PdfReader )GetOCProperties ()(_fd .PdfObject ,error ){_gafcd :=_gffcd ._gabca ;_ggfgfg :=_gafcd .Get ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_ggfgfg =_fd .ResolveReference (_ggfgfg );if !_gffcd ._gfdda {_acdfb :=_gffcd .traverseObjectData (_ggfgfg );
|
||
if _acdfb !=nil {return nil ,_acdfb ;};};return _ggfgfg ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_adgg *PdfActionSetOCGState )ToPdfObject ()_fd .PdfObject {_adgg .PdfAction .ToPdfObject ();_eeg :=_adgg ._bfb ;_efba :=_eeg .PdfObject .(*_fd .PdfObjectDictionary );_efba .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSetOCGState )));_efba .SetIfNotNil ("\u0053\u0074\u0061t\u0065",_adgg .State );
|
||
_efba .SetIfNotNil ("\u0050\u0072\u0065\u0073\u0065\u0072\u0076\u0065\u0052\u0042",_adgg .PreserveRB );return _eeg ;};
|
||
|
||
// 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 (_fabcff *PdfColorspaceCalRGB )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_beab :=vals [0];if _beab < 0.0||_beab > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_beab );
|
||
return nil ,ErrColorOutOfRange ;};_gbbb :=vals [1];if _gbbb < 0.0||_gbbb > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_gbbb );return nil ,ErrColorOutOfRange ;
|
||
};_ebbd :=vals [2];if _ebbd < 0.0||_ebbd > 1.0{_ag .Log .Debug ("\u0063\u006f\u006cor\u0020\u006f\u0075\u0074\u0020\u006f\u0066\u0020\u0043\u0053\u0020\u0072\u0061\u006e\u0067\u0065\u003a\u0020",_ebbd );return nil ,ErrColorOutOfRange ;};_ccdd :=NewPdfColorCalRGB (_beab ,_gbbb ,_ebbd );
|
||
return _ccdd ,nil ;};func (_fabcf *PdfColorspaceDeviceGray )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0047\u0072\u0061\u0079";};
|
||
|
||
// PdfAnnotationRedact represents Redact annotations.
|
||
// (Section 12.5.6.23).
|
||
type PdfAnnotationRedact struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;IC _fd .PdfObject ;RO _fd .PdfObject ;OverlayText _fd .PdfObject ;Repeat _fd .PdfObject ;DA _fd .PdfObject ;Q _fd .PdfObject ;};
|
||
|
||
// ToPdfObject converts the pdfFontSimple to its PDF representation for outputting.
|
||
func (_daeee *pdfFontSimple )ToPdfObject ()_fd .PdfObject {if _daeee ._ddggg ==nil {_daeee ._ddggg =&_fd .PdfIndirectObject {};};_egbbc :=_daeee .baseFields ().asPdfObjectDictionary ("");_daeee ._ddggg .PdfObject =_egbbc ;if _daeee .FirstChar !=nil {_egbbc .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_daeee .FirstChar );
|
||
};if _daeee .LastChar !=nil {_egbbc .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_daeee .LastChar );};if _daeee .Widths !=nil {_egbbc .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_daeee .Widths );};if _daeee .Encoding !=nil {_egbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_daeee .Encoding );
|
||
}else if _daeee ._dcfda !=nil {_baae :=_daeee ._dcfda .ToPdfObject ();if _baae !=nil {_egbbc .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_baae );};};return _daeee ._ddggg ;};
|
||
|
||
// 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 (_afef *PdfFont )CharcodesToUnicodeWithStats (charcodes []_ee .CharCode )(_eegdb []rune ,_ggde ,_agab int ){_efefd ,_ggde ,_agab :=_afef .CharcodesToStrings (charcodes ,"");return []rune (_gg .Join (_efefd ,"")),_ggde ,_agab ;};func (_ecgfb *PdfReader )newPdfSignatureFromIndirect (_gcfdc *_fd .PdfIndirectObject )(*PdfSignature ,error ){_cdca ,_edbaa :=_gcfdc .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_edbaa {_ag .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 _eddd ,_bbebe :=_ecgfb ._fbabb .GetModelFromPrimitive (_gcfdc ).(*PdfSignature );_bbebe {return _eddd ,nil ;};_gfdfg :=&PdfSignature {};_gfdfg ._cbaga =_gcfdc ;_gfdfg .Type ,_ =_fd .GetName (_cdca .Get ("\u0054\u0079\u0070\u0065"));
|
||
_gfdfg .Filter ,_edbaa =_fd .GetName (_cdca .Get ("\u0046\u0069\u006c\u0074\u0065\u0072"));if !_edbaa {_ag .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 ;};_gfdfg .SubFilter ,_ =_fd .GetName (_cdca .Get ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r"));_gfdfg .Contents ,_edbaa =_fd .GetString (_cdca .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073"));if !_edbaa {_ag .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 _bfebd ,_gcage :=_fd .GetArray (_cdca .Get ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e"));_gcage {_gfdfg .Reference =_fd .MakeArray ();for _ ,_aecc :=range _bfebd .Elements (){_bdffc ,_gaeg :=_fd .GetDict (_aecc );
|
||
if !_gaeg {_ag .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 ;
|
||
};_gdbb ,_affac :=_ecgfb .newPdfSignatureReferenceFromDict (_bdffc );if _affac !=nil {return nil ,_affac ;};_gfdfg .Reference .Append (_gdbb .ToPdfObject ());};};_gfdfg .Cert =_cdca .Get ("\u0043\u0065\u0072\u0074");_gfdfg .ByteRange ,_ =_fd .GetArray (_cdca .Get ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e"));
|
||
_gfdfg .Changes ,_ =_fd .GetArray (_cdca .Get ("\u0043h\u0061\u006e\u0067\u0065\u0073"));_gfdfg .Name ,_ =_fd .GetString (_cdca .Get ("\u004e\u0061\u006d\u0065"));_gfdfg .M ,_ =_fd .GetString (_cdca .Get ("\u004d"));_gfdfg .Location ,_ =_fd .GetString (_cdca .Get ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e"));
|
||
_gfdfg .Reason ,_ =_fd .GetString (_cdca .Get ("\u0052\u0065\u0061\u0073\u006f\u006e"));_gfdfg .ContactInfo ,_ =_fd .GetString (_cdca .Get ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f"));_gfdfg .R ,_ =_fd .GetInt (_cdca .Get ("\u0052"));
|
||
_gfdfg .V ,_ =_fd .GetInt (_cdca .Get ("\u0056"));_gfdfg .PropBuild ,_ =_fd .GetDict (_cdca .Get ("\u0050\u0072\u006f\u0070\u005f\u0042\u0075\u0069\u006c\u0064"));_gfdfg .PropAuthTime ,_ =_fd .GetInt (_cdca .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0069\u006d\u0065"));
|
||
_gfdfg .PropAuthType ,_ =_fd .GetName (_cdca .Get ("\u0050\u0072\u006f\u0070\u005f\u0041\u0075\u0074\u0068\u0054\u0079\u0070\u0065"));_ecgfb ._fbabb .Register (_gcfdc ,_gfdfg );return _gfdfg ,nil ;};
|
||
|
||
// ToPdfOutline returns a low level PdfOutline object, based on the current
|
||
// instance.
|
||
func (_dbcea *Outline )ToPdfOutline ()*PdfOutline {_efde :=NewPdfOutline ();var _fgadc []*PdfOutlineItem ;var _bfdad int64 ;var _dfdgc *PdfOutlineItem ;for _ ,_ceee :=range _dbcea .Entries {_ffgde ,_afgb :=_ceee .ToPdfOutlineItem ();_ffgde .Parent =&_efde .PdfOutlineTreeNode ;
|
||
if _dfdgc !=nil {_dfdgc .Next =&_ffgde .PdfOutlineTreeNode ;_ffgde .Prev =&_dfdgc .PdfOutlineTreeNode ;};_fgadc =append (_fgadc ,_ffgde );_bfdad +=_afgb ;_dfdgc =_ffgde ;};_ccac :=int64 (len (_fgadc ));_bfdad +=_ccac ;if _ccac > 0{_efde .First =&_fgadc [0].PdfOutlineTreeNode ;
|
||
_efde .Last =&_fgadc [_ccac -1].PdfOutlineTreeNode ;_efde .Count =&_bfdad ;};return _efde ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the DSS dictionary.
|
||
func (_agbf *DSS )ToPdfObject ()_fd .PdfObject {_cbcac :=_agbf ._bdcdg .PdfObject .(*_fd .PdfObjectDictionary );_cbcac .Clear ();_fgbe :=_fd .MakeDict ();for _eabbb ,_caaec :=range _agbf .VRI {_fgbe .Set (*_fd .MakeName (_eabbb ),_caaec .ToPdfObject ());
|
||
};_cbcac .SetIfNotNil ("\u0043\u0065\u0072t\u0073",_gfafb (_agbf .Certs ));_cbcac .SetIfNotNil ("\u004f\u0043\u0053P\u0073",_gfafb (_agbf .OCSPs ));_cbcac .SetIfNotNil ("\u0043\u0052\u004c\u0073",_gfafb (_agbf .CRLs ));_cbcac .Set ("\u0056\u0052\u0049",_fgbe );
|
||
return _agbf ._bdcdg ;};func _fdfgc (_eddfe *_fd .PdfObjectDictionary )(*PdfShadingType6 ,error ){_gceac :=PdfShadingType6 {};_bgdde :=_eddfe .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");if _bgdde ==nil {_ag .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 ;};_bbabe ,_fgddb :=_bgdde .(*_fd .PdfObjectInteger );if !_fgddb {_ag .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",_bgdde );
|
||
return nil ,_fd .ErrTypeError ;};_gceac .BitsPerCoordinate =_bbabe ;_bgdde =_eddfe .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _bgdde ==nil {_ag .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 ;};_bbabe ,_fgddb =_bgdde .(*_fd .PdfObjectInteger );if !_fgddb {_ag .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",_bgdde );
|
||
return nil ,_fd .ErrTypeError ;};_gceac .BitsPerComponent =_bbabe ;_bgdde =_eddfe .Get ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067");if _bgdde ==nil {_ag .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 ;};_bbabe ,_fgddb =_bgdde .(*_fd .PdfObjectInteger );if !_fgddb {_ag .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",_bgdde );
|
||
return nil ,_fd .ErrTypeError ;};_gceac .BitsPerComponent =_bbabe ;_bgdde =_eddfe .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _bgdde ==nil {_ag .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 ;};_bcfd ,_fgddb :=_bgdde .(*_fd .PdfObjectArray );if !_fgddb {_ag .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",_bgdde );
|
||
return nil ,_fd .ErrTypeError ;};_gceac .Decode =_bcfd ;if _gggbe :=_eddfe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_gggbe !=nil {_gceac .Function =[]PdfFunction {};if _dbdac ,_cegfb :=_gggbe .(*_fd .PdfObjectArray );_cegfb {for _ ,_ccfbcbd :=range _dbdac .Elements (){_aaagb ,_adec :=_badad (_ccfbcbd );
|
||
if _adec !=nil {_ag .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",_adec );return nil ,_adec ;};_gceac .Function =append (_gceac .Function ,_aaagb );
|
||
};}else {_dacfg ,_egdaa :=_badad (_gggbe );if _egdaa !=nil {_ag .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",_egdaa );return nil ,_egdaa ;
|
||
};_gceac .Function =append (_gceac .Function ,_dacfg );};};return &_gceac ,nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ecba *PdfAnnotationTrapNet )ToPdfObject ()_fd .PdfObject {_ecba .PdfAnnotation .ToPdfObject ();_aaf :=_ecba ._aeb ;_fgeed :=_aaf .PdfObject .(*_fd .PdfObjectDictionary );_fgeed .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0054r\u0061\u0070\u004e\u0065\u0074"));
|
||
return _aaf ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_acd *PdfActionSound )ToPdfObject ()_fd .PdfObject {_acd .PdfAction .ToPdfObject ();_edea :=_acd ._bfb ;_bec :=_edea .PdfObject .(*_fd .PdfObjectDictionary );_bec .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeSound )));_bec .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_acd .Sound );
|
||
_bec .SetIfNotNil ("\u0056\u006f\u006c\u0075\u006d\u0065",_acd .Volume );_bec .SetIfNotNil ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073",_acd .Synchronous );_bec .SetIfNotNil ("\u0052\u0065\u0070\u0065\u0061\u0074",_acd .Repeat );_bec .SetIfNotNil ("\u004d\u0069\u0078",_acd .Mix );
|
||
return _edea ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components. The slice should contain a single element.
|
||
func (_gcbda *PdfColorspaceSpecialSeparation )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gdddgd :=vals [0];_cece :=[]float64 {_gdddgd };
|
||
_cbbf ,_cbbd :=_gcbda .TintTransform .Evaluate (_cece );if _cbbd !=nil {_ag .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",_cbbd );
|
||
_ag .Log .Trace ("\u0054\u0069\u006e\u0074 t\u0072\u0061\u006e\u0073\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u002b\u0076",_gcbda .TintTransform );return nil ,_cbbd ;};_ag .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",_cbbf ,_gcbda .AlternateSpace );
|
||
_bcdf ,_cbbd :=_gcbda .AlternateSpace .ColorFromFloats (_cbbf );if _cbbd !=nil {_ag .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",_cbbd );
|
||
return nil ,_cbbd ;};return _bcdf ,nil ;};
|
||
|
||
// A returns the value of the A component of the color.
|
||
func (_cgda *PdfColorLab )A ()float64 {return _cgda [1]};func _daab (_adeae _bc .ReadSeeker ,_baefec *ReaderOpts ,_ebfcf bool ,_eafdg string )(*PdfReader ,error ){if _baefec ==nil {_baefec =NewReaderOpts ();};_fdcbb :=*_baefec ;_gefgc :=&PdfReader {_gcafg :_adeae ,_cedebc :map[_fd .PdfObject ]struct{}{},_fbabb :_adedc (),_gfdda :_baefec .LazyLoad ,_agdae :_baefec .ComplianceMode ,_gaggbb :_ebfcf ,_badf :&_fdcbb };
|
||
_edfd ,_bccf :=_abbdf ("\u0072");if _bccf !=nil {return nil ,_bccf ;};_bccf =_ae .Track (_edfd ,_eafdg );if _bccf !=nil {return nil ,_bccf ;};_gefgc ._ecbab =_edfd ;var _bbadg *_fd .PdfParser ;if !_gefgc ._agdae {_bbadg ,_bccf =_fd .NewParser (_adeae );
|
||
}else {_bbadg ,_bccf =_fd .NewCompliancePdfParser (_adeae );};if _bccf !=nil {return nil ,_bccf ;};_gefgc ._faaf =_bbadg ;_fbgec ,_bccf :=_gefgc .IsEncrypted ();if _bccf !=nil {return nil ,_bccf ;};if !_fbgec {_bccf =_gefgc .loadStructure ();if _bccf !=nil {return nil ,_bccf ;
|
||
};}else if _ebfcf {_dbfed ,_bfbca :=_gefgc .Decrypt ([]byte (_baefec .Password ));if _bfbca !=nil {return nil ,_bfbca ;};if !_dbfed {return nil ,_ad .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");
|
||
};};_gefgc ._dbggb =make (map[*PdfReader ]*PdfReader );_gefgc ._afcee =make ([]*PdfReader ,_bbadg .GetRevisionNumber ());return _gefgc ,nil ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline destination.
|
||
func (_eggdg OutlineDest )ToPdfObject ()_fd .PdfObject {if (_eggdg .PageObj ==nil &&_eggdg .Page < 0)||_eggdg .Mode ==""{return _fd .MakeNull ();};_agefd :=_fd .MakeArray ();if _eggdg .PageObj !=nil {_agefd .Append (_eggdg .PageObj );}else {_agefd .Append (_fd .MakeInteger (_eggdg .Page ));
|
||
};_agefd .Append (_fd .MakeName (_eggdg .Mode ));switch _eggdg .Mode {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":_agefd .Append (_fd .MakeFloat (_eggdg .Y ));case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":_agefd .Append (_fd .MakeFloat (_eggdg .X ));
|
||
case "\u0058\u0059\u005a":_agefd .Append (_fd .MakeFloat (_eggdg .X ));_agefd .Append (_fd .MakeFloat (_eggdg .Y ));_agefd .Append (_fd .MakeFloat (_eggdg .Zoom ));default:_agefd .Set (1,_fd .MakeName ("\u0046\u0069\u0074"));};return _agefd ;};func (_gagfbbf *PdfReader )resolveReference (_egbf *_fd .PdfObjectReference )(_fd .PdfObject ,bool ,error ){_abfd ,_gdgff :=_gagfbbf ._faaf .ObjCache [int (_egbf .ObjectNumber )];
|
||
if !_gdgff {_ag .Log .Trace ("R\u0065\u0061\u0064\u0065r \u004co\u006f\u006b\u0075\u0070\u0020r\u0065\u0066\u003a\u0020\u0025\u0073",_egbf );_gefd ,_dgefb :=_gagfbbf ._faaf .LookupByReference (*_egbf );if _dgefb !=nil {return nil ,false ,_dgefb ;};_gagfbbf ._faaf .ObjCache [int (_egbf .ObjectNumber )]=_gefd ;
|
||
return _gefd ,false ,nil ;};return _abfd ,true ,nil ;};
|
||
|
||
// Add appends an outline item as a child of the current outline item.
|
||
func (_ffcce *OutlineItem )Add (item *OutlineItem ){_ffcce .Entries =append (_ffcce .Entries ,item )};
|
||
|
||
// PdfFunctionType4 is a Postscript calculator functions.
|
||
type PdfFunctionType4 struct{Domain []float64 ;Range []float64 ;Program *_fa .PSProgram ;_bdbbc *_fa .PSExecutor ;_cbaff []byte ;_bdga *_fd .PdfObjectStream ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_facb *PdfAnnotationMovie )ToPdfObject ()_fd .PdfObject {_facb .PdfAnnotation .ToPdfObject ();_ccfc :=_facb ._aeb ;_ccbac :=_ccfc .PdfObject .(*_fd .PdfObjectDictionary );_ccbac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u004d\u006f\u0076i\u0065"));
|
||
_ccbac .SetIfNotNil ("\u0054",_facb .T );_ccbac .SetIfNotNil ("\u004d\u006f\u0076i\u0065",_facb .Movie );_ccbac .SetIfNotNil ("\u0041",_facb .A );return _ccfc ;};
|
||
|
||
// String returns a string representation of what flags are set.
|
||
func (_dgdf FieldFlag )String ()string {_egfg :="";if _dgdf ==FieldFlagClear {_egfg ="\u0043\u006c\u0065a\u0072";return _egfg ;};if _dgdf &FieldFlagReadOnly > 0{_egfg +="\u007cR\u0065\u0061\u0064\u004f\u006e\u006cy";};if _dgdf &FieldFlagRequired > 0{_egfg +="\u007cR\u0065\u0071\u0075\u0069\u0072\u0065d";
|
||
};if _dgdf &FieldFlagNoExport > 0{_egfg +="\u007cN\u006f\u0045\u0078\u0070\u006f\u0072t";};if _dgdf &FieldFlagNoToggleToOff > 0{_egfg +="\u007c\u004e\u006f\u0054\u006f\u0067\u0067\u006c\u0065T\u006f\u004f\u0066\u0066";};if _dgdf &FieldFlagRadio > 0{_egfg +="\u007c\u0052\u0061\u0064\u0069\u006f";
|
||
};if _dgdf &FieldFlagPushbutton > 0{_egfg +="|\u0050\u0075\u0073\u0068\u0062\u0075\u0074\u0074\u006f\u006e";};if _dgdf &FieldFlagRadiosInUnision > 0{_egfg +="\u007c\u0052a\u0064\u0069\u006fs\u0049\u006e\u0055\u006e\u0069\u0073\u0069\u006f\u006e";};if _dgdf &FieldFlagMultiline > 0{_egfg +="\u007c\u004d\u0075\u006c\u0074\u0069\u006c\u0069\u006e\u0065";
|
||
};if _dgdf &FieldFlagPassword > 0{_egfg +="\u007cP\u0061\u0073\u0073\u0077\u006f\u0072d";};if _dgdf &FieldFlagFileSelect > 0{_egfg +="|\u0046\u0069\u006c\u0065\u0053\u0065\u006c\u0065\u0063\u0074";};if _dgdf &FieldFlagDoNotScroll > 0{_egfg +="\u007c\u0044\u006fN\u006f\u0074\u0053\u0063\u0072\u006f\u006c\u006c";
|
||
};if _dgdf &FieldFlagComb > 0{_egfg +="\u007c\u0043\u006fm\u0062";};if _dgdf &FieldFlagRichText > 0{_egfg +="\u007cR\u0069\u0063\u0068\u0054\u0065\u0078t";};if _dgdf &FieldFlagDoNotSpellCheck > 0{_egfg +="\u007c\u0044o\u004e\u006f\u0074S\u0070\u0065\u006c\u006c\u0043\u0068\u0065\u0063\u006b";
|
||
};if _dgdf &FieldFlagCombo > 0{_egfg +="\u007c\u0043\u006f\u006d\u0062\u006f";};if _dgdf &FieldFlagEdit > 0{_egfg +="\u007c\u0045\u0064i\u0074";};if _dgdf &FieldFlagSort > 0{_egfg +="\u007c\u0053\u006fr\u0074";};if _dgdf &FieldFlagMultiSelect > 0{_egfg +="\u007c\u004d\u0075l\u0074\u0069\u0053\u0065\u006c\u0065\u0063\u0074";
|
||
};if _dgdf &FieldFlagCommitOnSelChange > 0{_egfg +="\u007cC\u006fm\u006d\u0069\u0074\u004f\u006eS\u0065\u006cC\u0068\u0061\u006e\u0067\u0065";};return _gg .Trim (_egfg ,"\u007c");};
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_cfge *PdfColorLab )ToInteger (bits int )[3]uint32 {_cbca :=_af .Pow (2,float64 (bits ))-1;return [3]uint32 {uint32 (_cbca *_cfge .L ()),uint32 (_cbca *_cfge .A ()),uint32 (_cbca *_cfge .B ())};};func _ccag (_baefe _fd .PdfObject )(*_fd .PdfObjectDictionary ,*fontCommon ,error ){_cfcec :=&fontCommon {};
|
||
if _dccd ,_dfcf :=_baefe .(*_fd .PdfIndirectObject );_dfcf {_cfcec ._ffbd =_dccd .ObjectNumber ;};_gcaf ,_ffgec :=_fd .GetDict (_baefe );if !_ffgec {_ag .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",_baefe );
|
||
return nil ,nil ,ErrFontNotSupported ;};_dagc ,_ffgec :=_fd .GetNameVal (_gcaf .Get ("\u0054\u0079\u0070\u0065"));if !_ffgec {_ag .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 _dagc !="\u0046\u006f\u006e\u0074"{_ag .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.",_dagc ,"\u0046\u006f\u006e\u0074");
|
||
return nil ,nil ,_fd .ErrTypeError ;};_gcac ,_ffgec :=_fd .GetNameVal (_gcaf .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065"));if !_ffgec {_ag .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 ;};_cfcec ._eded =_gcac ;_dafff ,_ffgec :=_fd .GetNameVal (_gcaf .Get ("\u004e\u0061\u006d\u0065"));if _ffgec {_cfcec ._cabb =_dafff ;};_fgbac :=_gcaf .Get ("\u0054o\u0055\u006e\u0069\u0063\u006f\u0064e");if _fgbac !=nil {_cfcec ._eebbb =_fd .TraceToDirectObject (_fgbac );
|
||
_bedba ,_babbd :=_dbaa (_cfcec ._eebbb ,_cfcec );if _babbd !=nil {return _gcaf ,_cfcec ,_babbd ;};_cfcec ._dgdg =_bedba ;}else if _gcac =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"||_gcac =="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032"{_bddff ,_cafbe :=_gd .NewCIDSystemInfo (_gcaf .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _cafbe !=nil {return _gcaf ,_cfcec ,_cafbe ;};_bgbc :=_dc .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_bddff .Registry ,_bddff .Ordering );if _gd .IsPredefinedCMap (_bgbc ){_cfcec ._dgdg ,_cafbe =_gd .LoadPredefinedCMap (_bgbc );
|
||
if _cafbe !=nil {_ag .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",_bgbc ,_cafbe );
|
||
};};};_debad :=_gcaf .Get ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072");if _debad !=nil {_dcecg ,_gfdag :=_aaece (_debad );if _gfdag !=nil {_ag .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",_gfdag );
|
||
return _gcaf ,_cfcec ,_gfdag ;};_cfcec ._babe =_dcecg ;};if _gcac !="\u0054\u0079\u0070e\u0033"{_egaeb ,_dfbf :=_fd .GetNameVal (_gcaf .Get ("\u0042\u0061\u0073\u0065\u0046\u006f\u006e\u0074"));if !_dfbf {_ag .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 _gcaf ,_cfcec ,ErrRequiredAttributeMissing ;};_cfcec ._ffedb =_egaeb ;};return _gcaf ,_cfcec ,nil ;};const (BorderStyleSolid BorderStyle =iota ;BorderStyleDashed BorderStyle =iota ;BorderStyleBeveled BorderStyle =iota ;BorderStyleInset BorderStyle =iota ;
|
||
BorderStyleUnderline BorderStyle =iota ;);
|
||
|
||
// UpdateObject marks `obj` as updated and to be included in the following revision.
|
||
func (_fbba *PdfAppender )UpdateObject (obj _fd .PdfObject ){_fbba .replaceObject (obj ,obj );if _ ,_aedd :=_fbba ._dbdc [obj ];!_aedd {_fbba ._gagg =append (_fbba ._gagg ,obj );_fbba ._dbdc [obj ]=struct{}{};};};func (_bgabb *PdfReader )buildNameNodes (_cbgbb *_fd .PdfIndirectObject ,_fceg map[_fd .PdfObject ]struct{})error {if _cbgbb ==nil {return nil ;
|
||
};if _ ,_gggec :=_fceg [_cbgbb ];_gggec {_ag .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",_cbgbb .ObjectNumber );
|
||
return nil ;};_fceg [_cbgbb ]=struct{}{};_fagef ,_cefc :=_cbgbb .PdfObject .(*_fd .PdfObjectDictionary );if !_cefc {return _ad .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};if _eabd ,_agdadc :=_fd .GetDict (_fagef .Get ("\u0044\u0065\u0073t\u0073"));
|
||
_agdadc {_ccbff ,_gbecb :=_fd .GetArray (_eabd .Get ("\u004b\u0069\u0064\u0073"));if !_gbecb {return _ad .New ("\u0049n\u0076\u0061\u006c\u0069d\u0020\u004b\u0069\u0064\u0073 \u0061r\u0072a\u0079\u0020\u006f\u0062\u006a\u0065\u0063t");};_ag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_ccbff );
|
||
for _becfb ,_ffdc :=range _ccbff .Elements (){_dfdgg ,_abgfg :=_fd .GetIndirect (_ffdc );if !_abgfg {_ag .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",_dfdgg );
|
||
return _ad .New ("\u0063h\u0069\u006c\u0064\u0020n\u006f\u0074\u0020\u0069\u006ed\u0069r\u0065c\u0074\u0020\u006f\u0062\u006a\u0065\u0063t");};_ccbff .Set (_becfb ,_dfdgg );_gfdaa :=_bgabb .buildNameNodes (_dfdgg ,_fceg );if _gfdaa !=nil {return _gfdaa ;
|
||
};};};if _egead ,_cdgfe :=_fd .GetDict (_fagef );_cdgfe {if !_fd .IsNullObject (_egead .Get ("\u004b\u0069\u0064\u0073")){if _ebdcd ,_gcgd :=_fd .GetArray (_egead .Get ("\u004b\u0069\u0064\u0073"));_gcgd {for _abag ,_dfeag :=range _ebdcd .Elements (){if _dffdbf ,_daafba :=_fd .GetIndirect (_dfeag );
|
||
_daafba {_ebdcd .Set (_abag ,_dffdbf );_eaacf :=_bgabb .buildNameNodes (_dffdbf ,_fceg );if _eaacf !=nil {return _eaacf ;};};};};};};return nil ;};
|
||
|
||
// multiFontEncoder implements a an Encoder that holds a list of fonts provided.
|
||
type MultipleFontEncoder struct{_ccbbf []*PdfFont ;CurrentFont *PdfFont ;};func _ggdg (_eefebe *_fd .PdfIndirectObject ,_gbec *_fd .PdfObjectDictionary )(*DSS ,error ){if _eefebe ==nil {_eefebe =_fd .MakeIndirectObject (nil );};_eefebe .PdfObject =_fd .MakeDict ();
|
||
_bgcf :=map[string ]*VRI {};if _bedab ,_dbcbb :=_fd .GetDict (_gbec .Get ("\u0056\u0052\u0049"));_dbcbb {for _ ,_eecc :=range _bedab .Keys (){if _fcce ,_ddae :=_fd .GetDict (_bedab .Get (_eecc ));_ddae {_bgcf [_gg .ToUpper (_eecc .String ())]=_agdd (_fcce );
|
||
};};};return &DSS {Certs :_abbbc (_gbec .Get ("\u0043\u0065\u0072t\u0073")),OCSPs :_abbbc (_gbec .Get ("\u004f\u0043\u0053P\u0073")),CRLs :_abbbc (_gbec .Get ("\u0043\u0052\u004c\u0073")),VRI :_bgcf ,_bdcdg :_eefebe },nil ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efdf *PdfAnnotationPolyLine )ToPdfObject ()_fd .PdfObject {_efdf .PdfAnnotation .ToPdfObject ();_fccdb :=_efdf ._aeb ;_bdab :=_fccdb .PdfObject .(*_fd .PdfObjectDictionary );_efdf .PdfAnnotationMarkup .appendToPdfDictionary (_bdab );_bdab .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050\u006f\u006c\u0079\u004c\u0069\u006e\u0065"));
|
||
_bdab .SetIfNotNil ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073",_efdf .Vertices );_bdab .SetIfNotNil ("\u004c\u0045",_efdf .LE );_bdab .SetIfNotNil ("\u0042\u0053",_efdf .BS );_bdab .SetIfNotNil ("\u0049\u0043",_efdf .IC );_bdab .SetIfNotNil ("\u0042\u0045",_efdf .BE );
|
||
_bdab .SetIfNotNil ("\u0049\u0054",_efdf .IT );_bdab .SetIfNotNil ("\u004de\u0061\u0073\u0075\u0072\u0065",_efdf .Measure );return _fccdb ;};
|
||
|
||
// AddOutlineTree adds outlines to a PDF file.
|
||
func (_ccgce *PdfWriter )AddOutlineTree (outlineTree *PdfOutlineTreeNode ){_ccgce ._adfcff =outlineTree ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cbbe *PdfAnnotationCaret )ToPdfObject ()_fd .PdfObject {_cbbe .PdfAnnotation .ToPdfObject ();_cea :=_cbbe ._aeb ;_dcf :=_cea .PdfObject .(*_fd .PdfObjectDictionary );_cbbe .PdfAnnotationMarkup .appendToPdfDictionary (_dcf );_dcf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0043\u0061\u0072e\u0074"));
|
||
_dcf .SetIfNotNil ("\u0052\u0044",_cbbe .RD );_dcf .SetIfNotNil ("\u0053\u0079",_cbbe .Sy );return _cea ;};
|
||
|
||
// HasExtGState checks whether a font is defined by the specified keyName.
|
||
func (_gfbcd *PdfPageResources )HasExtGState (keyName _fd .PdfObjectName )bool {_ ,_aafce :=_gfbcd .GetFontByName (keyName );return _aafce ;};
|
||
|
||
// NewPdfAnnotationScreen returns a new screen annotation.
|
||
func NewPdfAnnotationScreen ()*PdfAnnotationScreen {_adda :=NewPdfAnnotation ();_gbc :=&PdfAnnotationScreen {};_gbc .PdfAnnotation =_adda ;_adda .SetContext (_gbc );return _gbc ;};
|
||
|
||
// NewPdfSignature creates a new PdfSignature object.
|
||
func NewPdfSignature (handler SignatureHandler )*PdfSignature {_fbbeb :=&PdfSignature {Type :_fd .MakeName ("\u0053\u0069\u0067"),Handler :handler };_gdaeff :=&pdfSignDictionary {PdfObjectDictionary :_fd .MakeDict (),_efeca :&handler ,_eeabe :_fbbeb };
|
||
_fbbeb ._cbaga =_fd .MakeIndirectObject (_gdaeff );return _fbbeb ;};func (_afgc *PdfPattern )getDict ()*_fd .PdfObjectDictionary {if _fedfg ,_bcfcg :=_afgc ._gcgba .(*_fd .PdfIndirectObject );_bcfcg {_fefe ,_gadb :=_fedfg .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_gadb {return nil ;};return _fefe ;}else if _gfbg ,_dcbbg :=_afgc ._gcgba .(*_fd .PdfObjectStream );_dcbbg {return _gfbg .PdfObjectDictionary ;}else {_ag .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",_afgc ._gcgba );
|
||
return nil ;};};
|
||
|
||
// GetPdfName returns the PDF name used to indicate the border style.
|
||
// (Table 166 p. 395).
|
||
func (_ddfaa *BorderStyle )GetPdfName ()string {switch *_ddfaa {case BorderStyleSolid :return "\u0053";case BorderStyleDashed :return "\u0044";case BorderStyleBeveled :return "\u0042";case BorderStyleInset :return "\u0049";case BorderStyleUnderline :return "\u0055";
|
||
};return "";};func (_fcgga *PdfWriter )writeOutputIntents ()error {if len (_fcgga ._adef )==0{return nil ;};_fcfff :=make ([]_fd .PdfObject ,len (_fcgga ._adef ));for _gaefae ,_ffaff :=range _fcgga ._adef {_dacbf :=_ffaff .ToPdfObject ();_fcfff [_gaefae ]=_fd .MakeIndirectObject (_dacbf );
|
||
};_dcbbb :=_fd .MakeIndirectObject (_fd .MakeArray (_fcfff ...));_fcgga ._fdaca .Set ("\u004f\u0075\u0074\u0070\u0075\u0074\u0049\u006e\u0074\u0065\u006e\u0074\u0073",_dcbbb );if _deecdd :=_fcgga .addObjects (_dcbbb );_deecdd !=nil {return _deecdd ;};return nil ;
|
||
};func _eeeaa ()string {_feadd .Lock ();defer _feadd .Unlock ();_decae :=_ae .GetLicenseKey ();if len (_ecebc )> 0&&(_decae .IsLicensed ()||_dceef ){return _ecebc ;};return _dc .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",_dcafe (),_decae .TypeToString ());
|
||
};
|
||
|
||
// GetEncryptionMethod returns a descriptive information string about the encryption method used.
|
||
func (_fddgf *PdfReader )GetEncryptionMethod ()string {_ddcfa :=_fddgf ._faaf .GetCrypter ();return _ddcfa .String ();};
|
||
|
||
// String returns the name of the colorspace (DeviceN).
|
||
func (_aggb *PdfColorspaceDeviceN )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u004e"};
|
||
|
||
// 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{_acdd *_fd .PdfObjectDictionary ;Type *_fd .PdfObjectName ;TransformMethod *_fd .PdfObjectName ;TransformParams _fd .PdfObject ;Data _fd .PdfObject ;DigestMethod *_fd .PdfObjectName ;};
|
||
|
||
// XObjectForm (Table 95 in 8.10.2).
|
||
type XObjectForm struct{Filter _fd .StreamEncoder ;FormType _fd .PdfObject ;BBox _fd .PdfObject ;Matrix _fd .PdfObject ;Resources *PdfPageResources ;Group _fd .PdfObject ;Ref _fd .PdfObject ;MetaData _fd .PdfObject ;PieceInfo _fd .PdfObject ;LastModified _fd .PdfObject ;
|
||
StructParent _fd .PdfObject ;StructParents _fd .PdfObject ;OPI _fd .PdfObject ;OC _fd .PdfObject ;Name _fd .PdfObject ;
|
||
|
||
// Stream data.
|
||
Stream []byte ;_cebfa *_fd .PdfObjectStream ;};func _gfeef ()string {_feadd .Lock ();defer _feadd .Unlock ();return _geacc };
|
||
|
||
// ToJBIG2Image converts current image to the core.JBIG2Image.
|
||
func (_agccg *Image )ToJBIG2Image ()(*_fd .JBIG2Image ,error ){_gfgcfg ,_aedcga :=_agccg .ToGoImage ();if _aedcga !=nil {return nil ,_aedcga ;};return _fd .GoImageToJBIG2 (_gfgcfg ,_fd .JB2ImageAutoThreshold );};
|
||
|
||
// SetDecode sets the decode image float slice.
|
||
func (_ebee *Image )SetDecode (decode []float64 ){_ebee ._cdbdc =decode };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ggg *PdfAnnotationPrinterMark )ToPdfObject ()_fd .PdfObject {_ggg .PdfAnnotation .ToPdfObject ();_bedd :=_ggg ._aeb ;_ddbd :=_bedd .PdfObject .(*_fd .PdfObjectDictionary );_ddbd .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("P\u0072\u0069\u006e\u0074\u0065\u0072\u004d\u0061\u0072\u006b"));
|
||
_ddbd .SetIfNotNil ("\u004d\u004e",_ggg .MN );return _bedd ;};func (_cbgb PdfFont )actualFont ()pdfFont {if _cbgb ._gbaac ==nil {_ag .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",_cbgb );
|
||
};return _cbgb ._gbaac ;};
|
||
|
||
// GetTrailer returns the PDF's trailer dictionary.
|
||
func (_ddcda *PdfReader )GetTrailer ()(*_fd .PdfObjectDictionary ,error ){_dccac :=_ddcda ._faaf .GetTrailer ();if _dccac ==nil {return nil ,_ad .New ("\u0074r\u0061i\u006c\u0065\u0072\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};return _dccac ,nil ;
|
||
};
|
||
|
||
// SetXObjectByName adds the XObject from the passed in stream to the page resources.
|
||
// The added XObject is identified by the specified name.
|
||
func (_ceeea *PdfPageResources )SetXObjectByName (keyName _fd .PdfObjectName ,stream *_fd .PdfObjectStream )error {if _ceeea .XObject ==nil {_ceeea .XObject =_fd .MakeDict ();};_eebf :=_fd .TraceToDirectObject (_ceeea .XObject );_dbefg ,_dggee :=_eebf .(*_fd .PdfObjectDictionary );
|
||
if !_dggee {_ag .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",_ceeea .XObject ,_eebf );return _ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_dbefg .Set (keyName ,stream );return nil ;};func (_bggc *PdfWriter )setDocInfo (_cegbc _fd .PdfObject ){if _bggc .hasObject (_bggc ._ggdfa ){delete (_bggc ._agfaff ,_bggc ._ggdfa );delete (_bggc ._bagca ,_bggc ._ggdfa );for _bebdaa ,_aceeb :=range _bggc ._agfbf {if _aceeb ==_bggc ._ggdfa {copy (_bggc ._agfbf [_bebdaa :],_bggc ._agfbf [_bebdaa +1:]);
|
||
_bggc ._agfbf [len (_bggc ._agfbf )-1]=nil ;_bggc ._agfbf =_bggc ._agfbf [:len (_bggc ._agfbf )-1];break ;};};};_aecefg :=_fd .PdfIndirectObject {};_aecefg .PdfObject =_cegbc ;_bggc ._ggdfa =&_aecefg ;_bggc .addObject (&_aecefg );};
|
||
|
||
// SetCatalogLanguage sets the catalog language.
|
||
func (_eaddga *PdfWriter )SetCatalogLanguage (lang _fd .PdfObject )error {if lang ==nil {_eaddga ._fdaca .Remove ("\u004c\u0061\u006e\u0067");return nil ;};_eaddga .addObject (lang );_eaddga ._fdaca .Set ("\u004c\u0061\u006e\u0067",lang );return nil ;};
|
||
func (_gbacf *PdfFunctionType0 )processSamples ()error {_beeag :=_bg .ResampleBytes (_gbacf ._facbf ,_gbacf .BitsPerSample );_gbacf ._ebgce =_beeag ;return nil ;};
|
||
|
||
// NewPdfAcroForm returns a new PdfAcroForm with an initialized container (indirect object).
|
||
func NewPdfAcroForm ()*PdfAcroForm {return &PdfAcroForm {Fields :&[]*PdfField {},_fefdb :_fd .MakeIndirectObject (_fd .MakeDict ())};};var _ccebb =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":{}};
|
||
|
||
|
||
// PdfActionHide represents a hide action.
|
||
type PdfActionHide struct{*PdfAction ;T _fd .PdfObject ;H _fd .PdfObject ;};func _badad (_acaad _fd .PdfObject )(PdfFunction ,error ){_acaad =_fd .ResolveReference (_acaad );if _agce ,_aada :=_acaad .(*_fd .PdfObjectStream );_aada {_gebba :=_agce .PdfObjectDictionary ;
|
||
_fdafg ,_fgbaa :=_gebba .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );if !_fgbaa {_ag .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 ,_ad .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 *_fdafg ==0{return _gcgad (_agce );}else if *_fdafg ==4{return _cccfb (_agce );
|
||
}else {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _fead ,_gfdfa :=_acaad .(*_fd .PdfIndirectObject );_gfdfa {_gdaef ,_afabg :=_fead .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_afabg {_ag .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 ,_ad .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");};_bfbd ,_afabg :=_gdaef .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );
|
||
if !_afabg {_ag .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 ,_ad .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 *_bfbd ==2{return _acgcc (_fead );}else if *_bfbd ==3{return _ceddb (_fead );}else {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else if _gbeg ,_egfbg :=_acaad .(*_fd .PdfObjectDictionary );
|
||
_egfbg {_gacf ,_addeg :=_gbeg .Get ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065").(*_fd .PdfObjectInteger );if !_addeg {_ag .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 ,_ad .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 *_gacf ==2{return _acgcc (_gbeg );}else if *_gacf ==3{return _ceddb (_gbeg );
|
||
}else {return nil ,_ad .New ("i\u006e\u0076\u0061\u006cid\u0020f\u0075\u006e\u0063\u0074\u0069o\u006e\u0020\u0074\u0079\u0070\u0065");};}else {_ag .Log .Debug ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0054\u0079\u0070\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0023\u0076",_acaad );
|
||
return nil ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};};
|
||
|
||
// NewPdfAnnotationCircle returns a new circle annotation.
|
||
func NewPdfAnnotationCircle ()*PdfAnnotationCircle {_cce :=NewPdfAnnotation ();_efa :=&PdfAnnotationCircle {};_efa .PdfAnnotation =_cce ;_efa .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cce .SetContext (_efa );return _efa ;};type pdfCIDFontType2 struct{fontCommon ;
|
||
_bceb *_fd .PdfIndirectObject ;_fccef _ee .TextEncoder ;
|
||
|
||
// Table 117 – Entries in a CIDFont dictionary (page 269)
|
||
// Dictionary that defines the character collection of the CIDFont (required).
|
||
// See Table 116.
|
||
CIDSystemInfo *_fd .PdfObjectDictionary ;
|
||
|
||
// Glyph metrics fields (optional).
|
||
DW _fd .PdfObject ;W _fd .PdfObject ;DW2 _fd .PdfObject ;W2 _fd .PdfObject ;
|
||
|
||
// CIDs to glyph indices mapping (optional).
|
||
CIDToGIDMap _fd .PdfObject ;_defb map[_ee .CharCode ]float64 ;_ebbc float64 ;_agbed map[rune ]int ;};
|
||
|
||
// C returns the value of the cyan component of the color.
|
||
func (_efggf *PdfColorDeviceCMYK )C ()float64 {return _efggf [0]};type pdfFontSimple struct{fontCommon ;_ddggg *_fd .PdfIndirectObject ;_bafeg map[_ee .CharCode ]float64 ;_dcfda _ee .TextEncoder ;_gadae _ee .TextEncoder ;_cbffb *PdfFontDescriptor ;
|
||
|
||
// Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
|
||
// BaseFont is derived differently.
|
||
FirstChar _fd .PdfObject ;LastChar _fd .PdfObject ;Widths _fd .PdfObject ;Encoding _fd .PdfObject ;_dcgdd *_cf .RuneCharSafeMap ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdd *PdfActionJavaScript )ToPdfObject ()_fd .PdfObject {_fdd .PdfAction .ToPdfObject ();_eaga :=_fdd ._bfb ;_cbc :=_eaga .PdfObject .(*_fd .PdfObjectDictionary );_cbc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeJavaScript )));_cbc .SetIfNotNil ("\u004a\u0053",_fdd .JS );
|
||
return _eaga ;};func _bgaa ()string {_feadd .Lock ();defer _feadd .Unlock ();return _fbgc };
|
||
|
||
// GetContainingPdfObject returns the container of the pattern object (indirect object).
|
||
func (_fecee *PdfPattern )GetContainingPdfObject ()_fd .PdfObject {return _fecee ._gcgba };func (_dbccc fontCommon )coreString ()string {_dddac :="";if _dbccc ._babe !=nil {_dddac =_dbccc ._babe .String ();};return _dc .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",_dbccc ._eded ,_dbccc ._ffedb ,_dbccc ._cabb ,_dbccc ._ffbd ,_dbccc ._eebbb !=nil ,_dbccc .fontFlags (),_dddac );
|
||
};func (_dbaaf *pdfFontSimple )getFontDescriptor ()*PdfFontDescriptor {if _ggdeb :=_dbaaf ._babe ;_ggdeb !=nil {return _ggdeb ;};return _dbaaf ._cbffb ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_fgfcg *PdfSignatureReference )GetContainingPdfObject ()_fd .PdfObject {return _fgfcg ._acdd };func (_adf *PdfReader )newPdfActionThreadFromDict (_aec *_fd .PdfObjectDictionary )(*PdfActionThread ,error ){_cca ,_daba :=_ece (_aec .Get ("\u0046"));
|
||
if _daba !=nil {return nil ,_daba ;};return &PdfActionThread {D :_aec .Get ("\u0044"),B :_aec .Get ("\u0042"),F :_cca },nil ;};
|
||
|
||
// GetContentStreams returns the content stream as an array of strings.
|
||
func (_ccec *PdfPage )GetContentStreams ()([]string ,error ){_bdaebe :=_ccec .GetContentStreamObjs ();var _ecdb []string ;for _ ,_acbd :=range _bdaebe {_fcae ,_ebea :=_bdca (_acbd );if _ebea !=nil {return nil ,_ebea ;};_ecdb =append (_ecdb ,_fcae );};return _ecdb ,nil ;
|
||
};func (_cced *PdfReader )newPdfAnnotationStrikeOut (_fdbb *_fd .PdfObjectDictionary )(*PdfAnnotationStrikeOut ,error ){_abge :=PdfAnnotationStrikeOut {};_fgdg ,_adag :=_cced .newPdfAnnotationMarkupFromDict (_fdbb );if _adag !=nil {return nil ,_adag ;};
|
||
_abge .PdfAnnotationMarkup =_fgdg ;_abge .QuadPoints =_fdbb .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_abge ,nil ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_ffgaa *Permissions )GetContainingPdfObject ()_fd .PdfObject {return _ffgaa ._ecebg };
|
||
|
||
// ToPdfObject returns the PDF representation of the tiling pattern.
|
||
func (_bdbee *PdfTilingPattern )ToPdfObject ()_fd .PdfObject {_bdbee .PdfPattern .ToPdfObject ();_cgadd :=_bdbee .getDict ();if _bdbee .PaintType !=nil {_cgadd .Set ("\u0050a\u0069\u006e\u0074\u0054\u0079\u0070e",_bdbee .PaintType );};if _bdbee .TilingType !=nil {_cgadd .Set ("\u0054\u0069\u006c\u0069\u006e\u0067\u0054\u0079\u0070\u0065",_bdbee .TilingType );
|
||
};if _bdbee .BBox !=nil {_cgadd .Set ("\u0042\u0042\u006f\u0078",_bdbee .BBox .ToPdfObject ());};if _bdbee .XStep !=nil {_cgadd .Set ("\u0058\u0053\u0074e\u0070",_bdbee .XStep );};if _bdbee .YStep !=nil {_cgadd .Set ("\u0059\u0053\u0074e\u0070",_bdbee .YStep );
|
||
};if _bdbee .Resources !=nil {_cgadd .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_bdbee .Resources .ToPdfObject ());};if _bdbee .Matrix !=nil {_cgadd .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_bdbee .Matrix );};return _bdbee ._gcgba ;};func _cdba (_bcdb *PdfField )[]*PdfField {_fcdeb :=[]*PdfField {_bcdb };
|
||
for _ ,_eabg :=range _bcdb .Kids {_fcdeb =append (_fcdeb ,_cdba (_eabg )...);};return _fcdeb ;};
|
||
|
||
// 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 (_gdfae *Image )SetSamples (samples []uint32 ){if _gdfae .BitsPerComponent < 8{samples =_gdfae .samplesAddPadding (samples );};_cdbeg :=_bg .ResampleUint32 (samples ,int (_gdfae .BitsPerComponent ),8);_cbag :=make ([]byte ,len (_cdbeg ));for _gbccg ,_ebebf :=range _cdbeg {_cbag [_gbccg ]=byte (_ebebf );
|
||
};_gdfae .Data =_cbag ;};
|
||
|
||
// GetIndirectObjectByNumber retrieves and returns a specific PdfObject by object number.
|
||
func (_daafa *PdfReader )GetIndirectObjectByNumber (number int )(_fd .PdfObject ,error ){_eafdf ,_cccgc :=_daafa ._faaf .LookupByNumber (number );return _eafdf ,_cccgc ;};
|
||
|
||
// GetOutlineTree returns the outline tree.
|
||
func (_edfgfe *PdfReader )GetOutlineTree ()*PdfOutlineTreeNode {return _edfgfe ._aceac };
|
||
|
||
// ContentStreamWrapper wraps the Page's contentstream into q ... Q blocks.
|
||
type ContentStreamWrapper interface{WrapContentStream (_dacg *PdfPage )error ;};
|
||
|
||
// PdfColorspaceLab is a L*, a*, b* 3 component colorspace.
|
||
type PdfColorspaceLab struct{WhitePoint []float64 ;BlackPoint []float64 ;Range []float64 ;_ddfd *_fd .PdfIndirectObject ;};
|
||
|
||
// GetShadingByName gets the shading specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_cdbgg *PdfPageResources )GetShadingByName (keyName _fd .PdfObjectName )(*PdfShading ,bool ){if _cdbgg .Shading ==nil {return nil ,false ;};_afbebe ,_abfbb :=_fd .TraceToDirectObject (_cdbgg .Shading ).(*_fd .PdfObjectDictionary );if !_abfbb {_ag .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",_cdbgg .Shading );
|
||
return nil ,false ;};if _cgefb :=_afbebe .Get (keyName );_cgefb !=nil {_ccff ,_gaeaf :=_cceab (_cgefb );if _gaeaf !=nil {_ag .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",_gaeaf );
|
||
return nil ,false ;};return _ccff ,true ;};return nil ,false ;};const (TrappedUnknown PdfInfoTrapped ="\u0055n\u006b\u006e\u006f\u0077\u006e";TrappedTrue PdfInfoTrapped ="\u0054\u0072\u0075\u0065";TrappedFalse PdfInfoTrapped ="\u0046\u0061\u006cs\u0065";
|
||
);
|
||
|
||
// Transform rectangle with the supplied matrix.
|
||
func (_defgff *PdfRectangle )Transform (transformMatrix _gdd .Matrix ){_defgff .Llx ,_defgff .Lly =transformMatrix .Transform (_defgff .Llx ,_defgff .Lly );_defgff .Urx ,_defgff .Ury =transformMatrix .Transform (_defgff .Urx ,_defgff .Ury );_defgff .Normalize ();
|
||
};func (_aaaa *PdfReader )loadAnnotations (_gefbc _fd .PdfObject )([]*PdfAnnotation ,error ){_eabba ,_abcga :=_fd .GetArray (_gefbc );if !_abcga {return nil ,_dc .Errorf ("\u0041\u006e\u006e\u006fts\u0020\u006e\u006f\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _aaeeg []*PdfAnnotation ;for _ ,_abad :=range _eabba .Elements (){_abad =_fd .ResolveReference (_abad );if _ ,_daadc :=_abad .(*_fd .PdfObjectNull );_daadc {continue ;};_gdcba ,_cgece :=_abad .(*_fd .PdfObjectDictionary );_ddbgd ,_fcbecf :=_abad .(*_fd .PdfIndirectObject );
|
||
if _cgece {_ddbgd =&_fd .PdfIndirectObject {};_ddbgd .PdfObject =_gdcba ;}else {if !_fcbecf {return nil ,_dc .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");
|
||
};};_abgbg ,_cbccb :=_aaaa .newPdfAnnotationFromIndirectObject (_ddbgd );if _cbccb !=nil {return nil ,_cbccb ;};switch _caeed :=_abgbg .GetContext ().(type ){case *PdfAnnotationWidget :for _ ,_aaaf :=range _aaaa .AcroForm .AllFields (){if _aaaf ._dffeb ==_caeed .Parent {_caeed ._eabc =_aaaf ;
|
||
break ;};};};if _abgbg !=nil {_aaeeg =append (_aaeeg ,_abgbg );};};return _aaeeg ,nil ;};
|
||
|
||
// 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 (_gffc DefaultImageHandler )Compress (input *Image ,quality int64 )(*Image ,error ){return input ,nil ;};
|
||
|
||
// GetPageAsIndirectObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_eeggd *PdfPage )GetPageAsIndirectObject ()*_fd .PdfIndirectObject {return _eeggd ._fgcac };
|
||
|
||
// GetPdfVersion gets the version of the PDF used within this document.
|
||
func (_gfccb *PdfWriter )GetPdfVersion ()string {return _gfccb .getPdfVersion ()};
|
||
|
||
// PdfColorspaceCalRGB stores A, B, C components
|
||
type PdfColorspaceCalRGB struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma []float64 ;Matrix []float64 ;_dbee *_fd .PdfObjectDictionary ;_gadad *_fd .PdfIndirectObject ;};
|
||
|
||
// GetColorspaceByName returns the colorspace with the specified name from the page resources.
|
||
func (_fagbe *PdfPageResources )GetColorspaceByName (keyName _fd .PdfObjectName )(PdfColorspace ,bool ){_bdcaf ,_ccdea :=_fagbe .GetColorspaces ();if _ccdea !=nil {_ag .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",_ccdea );
|
||
return nil ,false ;};if _bdcaf ==nil {return nil ,false ;};_ebgef ,_ecdfg :=_bdcaf .Colorspaces [string (keyName )];if !_ecdfg {return nil ,false ;};return _ebgef ,true ;};
|
||
|
||
// PdfActionSound represents a sound action.
|
||
type PdfActionSound struct{*PdfAction ;Sound _fd .PdfObject ;Volume _fd .PdfObject ;Synchronous _fd .PdfObject ;Repeat _fd .PdfObject ;Mix _fd .PdfObject ;};
|
||
|
||
// Width returns the width of `rect`.
|
||
func (_ggaeg *PdfRectangle )Width ()float64 {return _af .Abs (_ggaeg .Urx -_ggaeg .Llx )};func _fagfg ()string {_abab :="\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 _gdafc _bf .Buffer ;for _adfgba :=0;_adfgba < 6;_adfgba ++{_gdafc .WriteRune (rune (_abab [_de .Intn (len (_abab ))]));};return _gdafc .String ();};
|
||
|
||
// GetNumComponents returns the number of color components (4 for CMYK32).
|
||
func (_egca *PdfColorDeviceCMYK )GetNumComponents ()int {return 4};type crossReference struct{Type int ;
|
||
|
||
// Type 1
|
||
Offset int64 ;Generation int64 ;
|
||
|
||
// Type 2
|
||
ObjectNumber int ;Index int ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ceced *Permissions )ToPdfObject ()_fd .PdfObject {return _ceced ._ecebg };
|
||
|
||
// 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 _fd .StreamEncoder )(*XObjectImage ,error ){if encoder ==nil {var _feae error ;encoder ,_feae =img .getSuitableEncoder ();if _feae !=nil {_ag .Log .Debug ("F\u0061\u0069l\u0075\u0072\u0065\u0020\u006f\u006e\u0020\u0066\u0069\u006e\u0064\u0069\u006e\u0067\u0020\u0073\u0075\u0069\u0074\u0061b\u006c\u0065\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0065\u006e\u0063\u006f\u0064\u0065\u0072,\u0020\u0066\u0061\u006c\u006c\u0062\u0061\u0063\u006b\u0020\u0074\u006f\u0020R\u0061\u0077\u0045\u006e\u0063\u006f\u0064\u0065\u0072\u003a\u0020%\u0076",_feae );
|
||
encoder =_fd .NewRawEncoder ();};};encoder .UpdateParams (img .GetParamsDict ());_ccffa ,_adbag :=encoder .EncodeBytes (img .Data );if _adbag !=nil {_ag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_adbag );
|
||
return nil ,_adbag ;};_daadab :=NewXObjectImage ();_aegg :=img .Width ;_ebfbe :=img .Height ;_daadab .Width =&_aegg ;_daadab .Height =&_ebfbe ;_deabd :=img .BitsPerComponent ;_daadab .BitsPerComponent =&_deabd ;_daadab .Filter =encoder ;_daadab .Stream =_ccffa ;
|
||
if cs ==nil {if img .ColorComponents ==1{_daadab .ColorSpace =NewPdfColorspaceDeviceGray ();if img .BitsPerComponent ==16{switch encoder .(type ){case *_fd .DCTEncoder :_daadab .ColorSpace =NewPdfColorspaceDeviceRGB ();_deabd =8;_daadab .BitsPerComponent =&_deabd ;
|
||
};};}else if img .ColorComponents ==3{_daadab .ColorSpace =NewPdfColorspaceDeviceRGB ();}else if img .ColorComponents ==4{switch encoder .(type ){case *_fd .DCTEncoder :_daadab .ColorSpace =NewPdfColorspaceDeviceRGB ();default:_daadab .ColorSpace =NewPdfColorspaceDeviceCMYK ();
|
||
};}else {return nil ,_ad .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_daadab .ColorSpace =cs ;};if len (img ._gfffd )!=0{_dcde :=NewXObjectImage ();_dcde .Filter =encoder ;_eegdbb ,_bdabg :=encoder .EncodeBytes (img ._gfffd );
|
||
if _bdabg !=nil {_ag .Log .Debug ("\u0045\u0072\u0072or\u0020\u0077\u0069\u0074\u0068\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0076",_bdabg );return nil ,_bdabg ;};_dcde .Stream =_eegdbb ;_dcde .BitsPerComponent =_daadab .BitsPerComponent ;
|
||
_dcde .Width =&img .Width ;_dcde .Height =&img .Height ;_dcde .ColorSpace =NewPdfColorspaceDeviceGray ();_daadab .SMask =_dcde .ToPdfObject ();}else {_daadab .SMask =xobjIn .SMask ;_daadab .ImageMask =xobjIn .ImageMask ;if _daadab .ColorSpace .GetNumComponents ()==1{_affgb (_daadab );
|
||
};};return _daadab ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the function.
|
||
func (_efccea *PdfFunctionType0 )ToPdfObject ()_fd .PdfObject {if _efccea ._efff ==nil {_efccea ._efff =&_fd .PdfObjectStream {};};_gabe :=_fd .MakeDict ();_gabe .Set ("\u0046\u0075\u006ec\u0074\u0069\u006f\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (0));
|
||
_ddeee :=&_fd .PdfObjectArray {};for _ ,_gbgca :=range _efccea .Domain {_ddeee .Append (_fd .MakeFloat (_gbgca ));};_gabe .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_ddeee );_facc :=&_fd .PdfObjectArray {};for _ ,_geca :=range _efccea .Range {_facc .Append (_fd .MakeFloat (_geca ));
|
||
};_gabe .Set ("\u0052\u0061\u006eg\u0065",_facc );_efaa :=&_fd .PdfObjectArray {};for _ ,_decc :=range _efccea .Size {_efaa .Append (_fd .MakeInteger (int64 (_decc )));};_gabe .Set ("\u0053\u0069\u007a\u0065",_efaa );_gabe .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0053\u0061\u006d\u0070\u006c\u0065",_fd .MakeInteger (int64 (_efccea .BitsPerSample )));
|
||
if _efccea .Order !=1{_gabe .Set ("\u004f\u0072\u0064e\u0072",_fd .MakeInteger (int64 (_efccea .Order )));};_gabe .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_efccea ._facbf ))));_efccea ._efff .Stream =_efccea ._facbf ;_efccea ._efff .PdfObjectDictionary =_gabe ;
|
||
return _efccea ._efff ;};
|
||
|
||
// GetAction returns the PDF action for the annotation link.
|
||
func (_gedf *PdfAnnotationLink )GetAction ()(*PdfAction ,error ){if _gedf ._abb !=nil {return _gedf ._abb ,nil ;};if _gedf .A ==nil {return nil ,nil ;};if _gedf ._cff ==nil {return nil ,nil ;};_fdc ,_dbg :=_gedf ._cff .loadAction (_gedf .A );if _dbg !=nil {return nil ,_dbg ;
|
||
};_gedf ._abb =_fdc ;return _gedf ._abb ,nil ;};
|
||
|
||
// GetCerts returns the signature certificate chain.
|
||
func (_agfcg *PdfSignature )GetCerts ()([]*_gff .Certificate ,error ){var _gffdc []func ()([]*_gff .Certificate ,error );switch _fbcbf ,_ :=_fd .GetNameVal (_agfcg .SubFilter );_fbcbf {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":_gffdc =append (_gffdc ,_agfcg .extractChainFromPKCS7 ,_agfcg .extractChainFromCert );
|
||
case "\u0061d\u0062e\u002e\u0078\u0035\u0030\u0039.\u0072\u0073a\u005f\u0073\u0068\u0061\u0031":_gffdc =append (_gffdc ,_agfcg .extractChainFromCert );case "\u0045\u0054\u0053I\u002e\u0052\u0046\u0043\u0033\u0031\u0036\u0031":_gffdc =append (_gffdc ,_agfcg .extractChainFromPKCS7 );
|
||
default:return nil ,_dc .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020S\u0075b\u0046i\u006c\u0074\u0065\u0072\u003a\u0020\u0025s",_fbcbf );};for _ ,_daaeba :=range _gffdc {_dgaf ,_ffff :=_daaeba ();if _ffff !=nil {return nil ,_ffff ;
|
||
};if len (_dgaf )> 0{return _dgaf ,nil ;};};return nil ,ErrSignNoCertificates ;};
|
||
|
||
// SetContext sets the sub action (context).
|
||
func (_gfb *PdfAction )SetContext (ctx PdfModel ){_gfb ._ga =ctx };func (_gcdd *PdfAcroForm )signatureFields ()[]*PdfFieldSignature {var _dabd []*PdfFieldSignature ;for _ ,_ggffc :=range _gcdd .AllFields (){switch _gdccd :=_ggffc .GetContext ().(type ){case *PdfFieldSignature :_ebaaf :=_gdccd ;
|
||
_dabd =append (_dabd ,_ebaaf );};};return _dabd ;};func (_dagdg *PdfWriter )checkLicense ()error {_ebcfe :=_ae .GetLicenseKey ();if (_ebcfe ==nil ||!_ebcfe .IsLicensed ())&&!_dceef {_dc .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");
|
||
_dc .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 _ad .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 ;};
|
||
|
||
// ColorAt returns the color of the image pixel specified by the x and y coordinates.
|
||
func (_bfffg *Image )ColorAt (x ,y int )(_gc .Color ,error ){_gfgfc :=_gbed .BytesPerLine (int (_bfffg .Width ),int (_bfffg .BitsPerComponent ),_bfffg .ColorComponents );switch _bfffg .ColorComponents {case 1:return _gbed .ColorAtGrayscale (x ,y ,int (_bfffg .BitsPerComponent ),_gfgfc ,_bfffg .Data ,_bfffg ._cdbdc );
|
||
case 3:return _gbed .ColorAtNRGBA (x ,y ,int (_bfffg .Width ),_gfgfc ,int (_bfffg .BitsPerComponent ),_bfffg .Data ,_bfffg ._gfffd ,_bfffg ._cdbdc );case 4:return _gbed .ColorAtCMYK (x ,y ,int (_bfffg .Width ),_bfffg .Data ,_bfffg ._cdbdc );};_ag .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",_bfffg .ColorComponents ,_bfffg .BitsPerComponent );
|
||
return nil ,_ad .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");};
|
||
|
||
// NewPdfActionGoToR returns a new "go to remote" action.
|
||
func NewPdfActionGoToR ()*PdfActionGoToR {_ead :=NewPdfAction ();_ggf :=&PdfActionGoToR {};_ggf .PdfAction =_ead ;_ead .SetContext (_ggf );return _ggf ;};func (_bdec *PdfReader )newPdfAnnotationProjectionFromDict (_bee *_fd .PdfObjectDictionary )(*PdfAnnotationProjection ,error ){_fgag :=&PdfAnnotationProjection {};
|
||
_bdcda ,_fccd :=_bdec .newPdfAnnotationMarkupFromDict (_bee );if _fccd !=nil {return nil ,_fccd ;};_fgag .PdfAnnotationMarkup =_bdcda ;return _fgag ,nil ;};func _bfcb (_cead _fd .PdfObject )(*PdfBorderStyle ,error ){_cfbg :=&PdfBorderStyle {};_cfbg ._cdd =_cead ;
|
||
var _adde *_fd .PdfObjectDictionary ;_cead =_fd .TraceToDirectObject (_cead );_adde ,_gafea :=_cead .(*_fd .PdfObjectDictionary );if !_gafea {return nil ,_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};if _gbaa :=_adde .Get ("\u0054\u0079\u0070\u0065");
|
||
_gbaa !=nil {_ebbb ,_eged :=_gbaa .(*_fd .PdfObjectName );if !_eged {_ag .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",_gbaa );
|
||
}else {if *_ebbb !="\u0042\u006f\u0072\u0064\u0065\u0072"{_ag .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",*_ebbb );};};};if _efgf :=_adde .Get ("\u0057");
|
||
_efgf !=nil {_ecfd ,_feg :=_fd .GetNumberAsFloat (_efgf );if _feg !=nil {_ag .Log .Debug ("\u0045\u0072\u0072\u006fr \u0072\u0065\u0074\u0072\u0069\u0065\u0076\u0069\u006e\u0067\u0020\u0057\u003a\u0020%\u0076",_feg );return nil ,_feg ;};_cfbg .W =&_ecfd ;
|
||
};if _cdbe :=_adde .Get ("\u0053");_cdbe !=nil {_cacf ,_efe :=_cdbe .(*_fd .PdfObjectName );if !_efe {return nil ,_ad .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 _gccg BorderStyle ;switch *_cacf {case "\u0053":_gccg =BorderStyleSolid ;case "\u0044":_gccg =BorderStyleDashed ;case "\u0042":_gccg =BorderStyleBeveled ;case "\u0049":_gccg =BorderStyleInset ;case "\u0055":_gccg =BorderStyleUnderline ;default:_ag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020s\u0074\u0079\u006c\u0065\u0020n\u0061\u006d\u0065\u0020\u0025\u0073",*_cacf );
|
||
return nil ,_ad .New ("\u0073\u0074\u0079\u006ce \u0074\u0079\u0070\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065c\u006b");};_cfbg .S =&_gccg ;};if _caeb :=_adde .Get ("\u0044");_caeb !=nil {_feda ,_cde :=_caeb .(*_fd .PdfObjectArray );
|
||
if !_cde {_ag .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",_caeb );return nil ,_ad .New ("\u0062o\u0072\u0064\u0065\u0072 \u0044\u0020\u0074\u0079\u0070e\u0020c\u0068e\u0063\u006b\u0020\u0065\u0072\u0072\u006fr");
|
||
};_cec ,_fbbb :=_feda .ToIntegerArray ();if _fbbb !=nil {_ag .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",_fbbb );
|
||
return nil ,_fbbb ;};_cfbg .D =&_cec ;};return _cfbg ,nil ;};
|
||
|
||
// PdfColor interface represents a generic color in PDF.
|
||
type PdfColor interface{};
|
||
|
||
// NewPdfActionSubmitForm returns a new "submit form" action.
|
||
func NewPdfActionSubmitForm ()*PdfActionSubmitForm {_gebc :=NewPdfAction ();_gab :=&PdfActionSubmitForm {};_gab .PdfAction =_gebc ;_gebc .SetContext (_gab );return _gab ;};
|
||
|
||
// NewPdfActionTrans returns a new "trans" action.
|
||
func NewPdfActionTrans ()*PdfActionTrans {_afa :=NewPdfAction ();_dag :=&PdfActionTrans {};_dag .PdfAction =_afa ;_afa .SetContext (_dag );return _dag ;};func (_beca *PdfReader )newPdfActionGotoFromDict (_cga *_fd .PdfObjectDictionary )(*PdfActionGoTo ,error ){return &PdfActionGoTo {D :_cga .Get ("\u0044")},nil ;
|
||
};
|
||
|
||
// GetPage returns the PdfPage model for the specified page number.
|
||
func (_dfgef *PdfReader )GetPage (pageNumber int )(*PdfPage ,error ){if _dfgef ._faaf .GetCrypter ()!=nil &&!_dfgef ._faaf .IsAuthenticated (){return nil ,_dc .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 (_dfgef ._bbfca )< pageNumber {return nil ,_ad .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");
|
||
};_gcfaa :=pageNumber -1;if _gcfaa < 0{return nil ,_dc .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");};_bbefa :=_dfgef .PageList [_gcfaa ];
|
||
return _bbefa ,nil ;};
|
||
|
||
// SetOCProperties sets the optional content properties.
|
||
func (_cgea *PdfWriter )SetOCProperties (ocProperties _fd .PdfObject )error {_eefee :=_cgea ._fdaca ;if ocProperties !=nil {_ag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u004f\u0043\u0020\u0050\u0072o\u0070\u0065\u0072\u0074\u0069\u0065\u0073\u002e\u002e\u002e");
|
||
_eefee .Set ("\u004f\u0043\u0050r\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",ocProperties );return _cgea .addObjects (ocProperties );};return nil ;};
|
||
|
||
// Names represents a PDF name tree.
|
||
//
|
||
// Ref: PDF32000_2008 chapter 7.7.4.
|
||
type Names struct{_acbf *_fd .PdfIndirectObject ;
|
||
|
||
// Dests is a name tree mapping name string to destinations.
|
||
Dests *_fd .PdfObjectDictionary ;
|
||
|
||
// AP is a name tree mapping name strings to annotation appearance streams.
|
||
AP *_fd .PdfObjectDictionary ;
|
||
|
||
// JavaScript is a name tree mapping name strings to JavaScript actions.
|
||
JavaScript *_fd .PdfObjectDictionary ;
|
||
|
||
// Pages is a name tree mapping name strings to visible pages for use in interactive forms.
|
||
Pages *_fd .PdfObjectDictionary ;
|
||
|
||
// Templates is a name tree mapping name strings to invisible (template) pages for use in interactive forms.
|
||
Templates *_fd .PdfObjectDictionary ;
|
||
|
||
// IDS is a name tree mapping digital identifies to Web Capture content sets.
|
||
IDS *_fd .PdfObjectDictionary ;
|
||
|
||
// URLS is a name tree mapping URLs to Web Capture content sets.
|
||
URLS *_fd .PdfObjectDictionary ;
|
||
|
||
// EmbeddedFiles is a name tree mapping name strings to file specifications for embedded file streams.
|
||
EmbeddedFiles *_fd .PdfObjectDictionary ;
|
||
|
||
// AlternatePresentations is a name tree mapping name strings to alternate presentations.
|
||
AlternatePresentations *_fd .PdfObjectDictionary ;
|
||
|
||
// Renditions is a name tree mapping name strings (which shall have Unicode encoding) to rendition objects.
|
||
Renditions *_fd .PdfObjectDictionary ;};
|
||
|
||
// Decrypt decrypts the PDF file with a specified password. Also tries to
|
||
// decrypt with an empty password. Returns true if successful,
|
||
// false otherwise.
|
||
func (_afafg *PdfReader )Decrypt (password []byte )(bool ,error ){_eegge ,_dbcag :=_afafg ._faaf .Decrypt (password );if _dbcag !=nil {return false ,_dbcag ;};if !_eegge {return false ,nil ;};_dbcag =_afafg .loadStructure ();if _dbcag !=nil {_ag .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",_dbcag );
|
||
return false ,_dbcag ;};return true ,nil ;};
|
||
|
||
// String returns a string representation of PdfTransformParamsDocMDP.
|
||
func (_fadfc *PdfTransformParamsDocMDP )String ()string {return _dc .Sprintf ("\u0025\u0073\u0020\u0050\u003a\u0020\u0025\u0073\u0020V\u003a\u0020\u0025\u0073",_fadfc .Type ,_fadfc .P ,_fadfc .V );};
|
||
|
||
// 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 (_fbaaf *LTV )Enable (sig *PdfSignature ,extraCerts []*_gff .Certificate )error {if _ggbc :=_fbaaf .validateSig (sig );_ggbc !=nil {return _ggbc ;};_bdeb ,_gaggg :=_fbaaf .generateVRIKey (sig );if _gaggg !=nil {return _gaggg ;};if _ ,_bgbgc :=_fbaaf ._fefa .VRI [_bdeb ];
|
||
_bgbgc &&_fbaaf .SkipExisting {return nil ;};_cebc ,_gaggg :=sig .GetCerts ();if _gaggg !=nil {return _gaggg ;};return _fbaaf .enable (_cebc ,extraCerts ,_bdeb );};func _fcced (_gbefg *_fd .PdfObjectDictionary ,_cbeed *fontCommon ,_bfadb _ee .TextEncoder )(*pdfFontSimple ,error ){_eegcf :=_bdcba (_cbeed );
|
||
_eegcf ._gadae =_bfadb ;if _bfadb ==nil {_eggdf :=_gbefg .Get ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r");if _eggdf ==nil {_eggdf =_fd .MakeInteger (0);};_eegcf .FirstChar =_eggdf ;_dbcbe ,_aegdc :=_fd .GetIntVal (_eggdf );if !_aegdc {_ag .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",_eggdf );
|
||
return nil ,_fd .ErrTypeError ;};_daad :=_ee .CharCode (_dbcbe );_eggdf =_gbefg .Get ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072");if _eggdf ==nil {_eggdf =_fd .MakeInteger (255);};_eegcf .LastChar =_eggdf ;_dbcbe ,_aegdc =_fd .GetIntVal (_eggdf );
|
||
if !_aegdc {_ag .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",_eggdf );return nil ,_fd .ErrTypeError ;
|
||
};_dcbcg :=_ee .CharCode (_dbcbe );_eegcf ._bafeg =make (map[_ee .CharCode ]float64 );_eggdf =_gbefg .Get ("\u0057\u0069\u0064\u0074\u0068\u0073");if _eggdf !=nil {_eegcf .Widths =_eggdf ;_bcece ,_cgcbg :=_fd .GetArray (_eggdf );if !_cgcbg {_ag .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",_eggdf );
|
||
return nil ,_fd .ErrTypeError ;};_efbbe ,_cggd :=_bcece .ToFloat64Array ();if _cggd !=nil {_ag .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 ,_cggd ;};if len (_efbbe )!=int (_dcbcg -_daad +1){_ag .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",_dcbcg -_daad +1,len (_efbbe ));
|
||
return nil ,_fd .ErrRangeError ;};for _gdfb ,_bcdd :=range _efbbe {_eegcf ._bafeg [_daad +_ee .CharCode (_gdfb )]=_bcdd ;};};};_eegcf .Encoding =_fd .TraceToDirectObject (_gbefg .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));return _eegcf ,nil ;
|
||
};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_efdc *PdfAnnotation3D )ToPdfObject ()_fd .PdfObject {_efdc .PdfAnnotation .ToPdfObject ();_gdfe :=_efdc ._aeb ;_bac :=_gdfe .PdfObject .(*_fd .PdfObjectDictionary );_bac .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0033\u0044"));
|
||
_bac .SetIfNotNil ("\u0033\u0044\u0044",_efdc .T3DD );_bac .SetIfNotNil ("\u0033\u0044\u0056",_efdc .T3DV );_bac .SetIfNotNil ("\u0033\u0044\u0041",_efdc .T3DA );_bac .SetIfNotNil ("\u0033\u0044\u0049",_efdc .T3DI );_bac .SetIfNotNil ("\u0033\u0044\u0042",_efdc .T3DB );
|
||
return _gdfe ;};func (_bdcae *PdfWriter )hasObject (_gdbfcc _fd .PdfObject )bool {_ ,_ceebc :=_bdcae ._agfaff [_gdbfcc ];return _ceebc ;};
|
||
|
||
// NewPdfAnnotationInk returns a new ink annotation.
|
||
func NewPdfAnnotationInk ()*PdfAnnotationInk {_eaa :=NewPdfAnnotation ();_gafd :=&PdfAnnotationInk {};_gafd .PdfAnnotation =_eaa ;_gafd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_eaa .SetContext (_gafd );return _gafd ;};
|
||
|
||
// PdfAnnotationHighlight represents Highlight annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationHighlight struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
|
||
|
||
// ReplaceAcroForm replaces the acrobat form. It appends a new form to the Pdf which
|
||
// replaces the original AcroForm.
|
||
func (_gagfa *PdfAppender )ReplaceAcroForm (acroForm *PdfAcroForm ){if acroForm !=nil {_gagfa .updateObjectsDeep (acroForm .ToPdfObject (),nil );};_gagfa ._agfb =acroForm ;};
|
||
|
||
// ColorToRGB verifies that the input color is an RGB color. Method exists in
|
||
// order to satisfy the PdfColorspace interface.
|
||
func (_fgfc *PdfColorspaceDeviceRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dbdg ,_bbec :=color .(*PdfColorDeviceRGB );if !_bbec {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};return _dbdg ,nil ;};
|
||
|
||
// 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 (_agcg *Image )ConvertToBinary ()error {if _agcg .ColorComponents ==1&&_agcg .BitsPerComponent ==1{return nil ;};_affe ,_ecced :=_agcg .ToGoImage ();if _ecced !=nil {return _ecced ;};_febd ,_ecced :=_gbed .MonochromeConverter .Convert (_affe );if _ecced !=nil {return _ecced ;
|
||
};_agcg .Data =_febd .Base ().Data ;_agcg ._gfffd ,_ecced =_gbed .ScaleAlphaToMonochrome (_agcg ._gfffd ,int (_agcg .Width ),int (_agcg .Height ));if _ecced !=nil {return _ecced ;};_agcg .BitsPerComponent =1;_agcg .ColorComponents =1;_agcg ._cdbdc =nil ;
|
||
return nil ;};
|
||
|
||
// NewPdfActionURI returns a new "Uri" action.
|
||
func NewPdfActionURI ()*PdfActionURI {_cfg :=NewPdfAction ();_acb :=&PdfActionURI {};_acb .PdfAction =_cfg ;_cfg .SetContext (_acb );return _acb ;};
|
||
|
||
// PdfColorspaceDeviceRGB represents an RGB colorspace.
|
||
type PdfColorspaceDeviceRGB struct{};func (_fbdfcg *PdfWriter )copyObjects (){_ccade :=make (map[_fd .PdfObject ]_fd .PdfObject );_bbfbc :=make ([]_fd .PdfObject ,0,len (_fbdfcg ._agfbf ));_faeb :=make (map[_fd .PdfObject ]struct{},len (_fbdfcg ._agfbf ));
|
||
_fegcf :=make (map[_fd .PdfObject ]struct{});for _ ,_aadcgg :=range _fbdfcg ._agfbf {_gbagd :=_fbdfcg .copyObject (_aadcgg ,_ccade ,_fegcf ,false );if _ ,_aafeea :=_fegcf [_aadcgg ];_aafeea {continue ;};_bbfbc =append (_bbfbc ,_gbagd );_faeb [_gbagd ]=struct{}{};
|
||
};_fbdfcg ._agfbf =_bbfbc ;_fbdfcg ._agfaff =_faeb ;_fbdfcg ._ggdfa =_fbdfcg .copyObject (_fbdfcg ._ggdfa ,_ccade ,nil ,false ).(*_fd .PdfIndirectObject );_fbdfcg ._defdd =_fbdfcg .copyObject (_fbdfcg ._defdd ,_ccade ,nil ,false ).(*_fd .PdfIndirectObject );
|
||
if _fbdfcg ._abbcc !=nil {_fbdfcg ._abbcc =_fbdfcg .copyObject (_fbdfcg ._abbcc ,_ccade ,nil ,false ).(*_fd .PdfIndirectObject );};if _fbdfcg ._fbgg {_ccdb :=make (map[_fd .PdfObject ]int64 );for _bgdgg ,_edde :=range _fbdfcg ._ddgad {if _agdbd ,_fddbf :=_ccade [_bgdgg ];
|
||
_fddbf {_ccdb [_agdbd ]=_edde ;}else {_ag .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");
|
||
};};_fbdfcg ._ddgad =_ccdb ;};};
|
||
|
||
// Evaluate runs the function. Input is [x1 x2 x3].
|
||
func (_abfbab *PdfFunctionType4 )Evaluate (xVec []float64 )([]float64 ,error ){if _abfbab ._bdbbc ==nil {_abfbab ._bdbbc =_fa .NewPSExecutor (_abfbab .Program );};var _aabbdf []_fa .PSObject ;for _ ,_fabb :=range xVec {_aabbdf =append (_aabbdf ,_fa .MakeReal (_fabb ));
|
||
};_gbfe ,_fbef :=_abfbab ._bdbbc .Execute (_aabbdf );if _fbef !=nil {return nil ,_fbef ;};_dfcff ,_fbef :=_fa .PSObjectArrayToFloat64Array (_gbfe );if _fbef !=nil {return nil ,_fbef ;};return _dfcff ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cceb *PdfColorspaceSpecialSeparation )ToPdfObject ()_fd .PdfObject {_cecf :=_fd .MakeArray (_fd .MakeName ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e"));_cecf .Append (_cceb .ColorantName );_cecf .Append (_cceb .AlternateSpace .ToPdfObject ());
|
||
_cecf .Append (_cceb .TintTransform .ToPdfObject ());if _cceb ._dbeeaf !=nil {_cceb ._dbeeaf .PdfObject =_cecf ;return _cceb ._dbeeaf ;};return _cecf ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_caadf *PdfShadingType5 )ToPdfObject ()_fd .PdfObject {_caadf .PdfShading .ToPdfObject ();_daeda ,_bgfgf :=_caadf .getShadingDict ();if _bgfgf !=nil {_ag .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 _caadf .BitsPerCoordinate !=nil {_daeda .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_caadf .BitsPerCoordinate );};if _caadf .BitsPerComponent !=nil {_daeda .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_caadf .BitsPerComponent );
|
||
};if _caadf .VerticesPerRow !=nil {_daeda .Set ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077",_caadf .VerticesPerRow );};if _caadf .Decode !=nil {_daeda .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_caadf .Decode );};
|
||
if _caadf .Function !=nil {if len (_caadf .Function )==1{_daeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_caadf .Function [0].ToPdfObject ());}else {_afcae :=_fd .MakeArray ();for _ ,_ddgdc :=range _caadf .Function {_afcae .Append (_ddgdc .ToPdfObject ());
|
||
};_daeda .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_afcae );};};return _caadf ._cdgfd ;};
|
||
|
||
// 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 _bc .ReadSeeker ,opts *ReaderOpts )(*PdfReader ,error ){const _eeab ="\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 _daab (rs ,opts ,true ,_eeab );
|
||
};
|
||
|
||
// OutlineItem represents a PDF outline item dictionary (Table 153 - pp. 376 - 377).
|
||
type OutlineItem struct{Title string `json:"title"`;Dest OutlineDest `json:"dest"`;Entries []*OutlineItem `json:"entries,omitempty"`;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbae *PdfAnnotationSquiggly )ToPdfObject ()_fd .PdfObject {_fbae .PdfAnnotation .ToPdfObject ();_caed :=_fbae ._aeb ;_dgg :=_caed .PdfObject .(*_fd .PdfObjectDictionary );_fbae .PdfAnnotationMarkup .appendToPdfDictionary (_dgg );_dgg .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0071\u0075\u0069\u0067\u0067\u006c\u0079"));
|
||
_dgg .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_fbae .QuadPoints );return _caed ;};func (_ddggd *Names )addEmbeddedFile (_ffbed *EmbeddedFile )error {if _ddggd .EmbeddedFiles ==nil {_ddggd .EmbeddedFiles =_fd .MakeDict ();
|
||
_ddggd .EmbeddedFiles .Set ("\u004e\u0061\u006de\u0073",_fd .MakeArray ());};_baff :=NewPdfFileSpecFromEmbeddedFile (_ffbed );_adgc :=_ddggd .EmbeddedFiles .Get ("\u004e\u0061\u006de\u0073");_bbgge ,_fbdc :=_adgc .(*_fd .PdfObjectArray );if !_fbdc {return _ad .New ("\u0049\u006e\u0076\u0061li\u0064\u0020\u004e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};type FileSpecMap struct{_cafae string ;_cbcadb *PdfFilespec ;};_ddbgg :=[]FileSpecMap {};for _gdfea :=0;_gdfea < len (_bbgge .Elements ());_gdfea +=2{if _gdfea %2==0{_abeb :=_bbgge .Get (_gdfea );if _abeb !=nil {_geadf :=_abeb .(*_fd .PdfObjectString );
|
||
_ggadd :=_bbgge .Get (_gdfea +1);_ccaba ,_eefde :=NewPdfFilespecFromObj (_ggadd );if _eefde !=nil {return _eefde ;};_ddbgg =append (_ddbgg ,FileSpecMap {_cafae :_geadf .String (),_cbcadb :_ccaba });};};};_ddbgg =append (_ddbgg ,FileSpecMap {_cafae :_ffbed .Name ,_cbcadb :_baff });
|
||
_da .Slice (_ddbgg ,func (_dcaa ,_feebd int )bool {return _ddbgg [_dcaa ]._cafae < _ddbgg [_feebd ]._cafae });_bbgge =_fd .MakeArray ();for _ ,_gdegc :=range _ddbgg {_bbgge .Append (_fd .MakeString (_gdegc ._cafae ));_bbgge .Append (_gdegc ._cbcadb .ToPdfObject ());
|
||
};_ddggd .EmbeddedFiles .Set ("\u004e\u0061\u006de\u0073",_bbgge );return nil ;};func (_dbdgc *LTV )getCRLs (_cgaf []*_gff .Certificate )([][]byte ,error ){_bbebb :=make ([][]byte ,0,len (_cgaf ));for _ ,_agacb :=range _cgaf {for _ ,_ffdbf :=range _agacb .CRLDistributionPoints {if _dbdgc .CertClient .IsCA (_agacb ){continue ;
|
||
};_bdede ,_cdbcc :=_dbdgc .CRLClient .MakeRequest (_ffdbf ,_agacb );if _cdbcc !=nil {_ag .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",_cdbcc );continue ;
|
||
};_bbebb =append (_bbebb ,_bdede );};};return _bbebb ,nil ;};
|
||
|
||
// String returns a string that describes `font`.
|
||
func (_eage *PdfFont )String ()string {_fdff :="";if _eage ._gbaac .Encoder ()!=nil {_fdff =_eage ._gbaac .Encoder ().String ();};return _dc .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0054\u0020\u0025s\u0020\u0025\u0073\u007d",_eage ._gbaac ,_eage .baseFields ().coreString (),_fdff );
|
||
};
|
||
|
||
// GetContainingPdfObject gets the primitive used to parse the color space.
|
||
func (_dfdd *PdfColorspaceICCBased )GetContainingPdfObject ()_fd .PdfObject {return _dfdd ._fbad };
|
||
|
||
// 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 *_fd .PdfObjectName ;P *_fd .PdfObjectInteger ;V *_fd .PdfObjectName ;};
|
||
|
||
// GetRevisionNumber returns the version of the current Pdf document
|
||
func (_dbaf *PdfReader )GetRevisionNumber ()int {return _dbaf ._faaf .GetRevisionNumber ()};
|
||
|
||
// 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 *_fd .PdfObjectStream )(*XObjectImage ,error ){_ddfbg :=&XObjectImage {};_ddfbg ._bbcgd =stream ;_ddfef :=*(stream .PdfObjectDictionary );_bead ,_acdfa :=_fd .NewEncoderFromStream (stream );if _acdfa !=nil {return nil ,_acdfa ;
|
||
};_ddfbg .Filter =_bead ;if _dcdea :=_fd .TraceToDirectObject (_ddfef .Get ("\u0057\u0069\u0064t\u0068"));_dcdea !=nil {_gbee ,_edgba :=_dcdea .(*_fd .PdfObjectInteger );if !_edgba {return nil ,_ad .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");
|
||
};_cefea :=int64 (*_gbee );_ddfbg .Width =&_cefea ;}else {return nil ,_ad .New ("\u0077\u0069\u0064\u0074\u0068\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};if _cbbgg :=_fd .TraceToDirectObject (_ddfef .Get ("\u0048\u0065\u0069\u0067\u0068\u0074"));
|
||
_cbbgg !=nil {_agada ,_ebdga :=_cbbgg .(*_fd .PdfObjectInteger );if !_ebdga {return nil ,_ad .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cgba :=int64 (*_agada );
|
||
_ddfbg .Height =&_cgba ;}else {return nil ,_ad .New ("\u0068\u0065\u0069\u0067\u0068\u0074\u0020\u006d\u0069s\u0073\u0069\u006e\u0067");};if _cefae :=_fd .TraceToDirectObject (_ddfef .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065"));
|
||
_cefae !=nil {_dcdaa ,_cbcca :=NewPdfColorspaceFromPdfObject (_cefae );if _cbcca !=nil {return nil ,_cbcca ;};_ddfbg .ColorSpace =_dcdaa ;}else {_ag .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");
|
||
_ddfbg .ColorSpace =NewPdfColorspaceDeviceGray ();};if _edgfc :=_fd .TraceToDirectObject (_ddfef .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074"));_edgfc !=nil {_cfbdf ,_dfcd :=_edgfc .(*_fd .PdfObjectInteger );
|
||
if !_dfcd {return nil ,_ad .New ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0069\u006d\u0061\u0067\u0065\u0020\u0068\u0065\u0069g\u0068\u0074\u0020o\u0062j\u0065\u0063\u0074");};_cecgd :=int64 (*_cfbdf );_ddfbg .BitsPerComponent =&_cecgd ;};_ddfbg .Intent =_ddfef .Get ("\u0049\u006e\u0074\u0065\u006e\u0074");
|
||
_ddfbg .ImageMask =_ddfef .Get ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k");_ddfbg .Mask =_ddfef .Get ("\u004d\u0061\u0073\u006b");_ddfbg .Decode =_ddfef .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");_ddfbg .Interpolate =_ddfef .Get ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065");
|
||
_ddfbg .Alternatives =_ddfef .Get ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073");_ddfbg .SMask =_ddfef .Get ("\u0053\u004d\u0061s\u006b");_ddfbg .SMaskInData =_ddfef .Get ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061");
|
||
_ddfbg .Matte =_ddfef .Get ("\u004d\u0061\u0074t\u0065");_ddfbg .Name =_ddfef .Get ("\u004e\u0061\u006d\u0065");_ddfbg .StructParent =_ddfef .Get ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074");_ddfbg .ID =_ddfef .Get ("\u0049\u0044");
|
||
_ddfbg .OPI =_ddfef .Get ("\u004f\u0050\u0049");_ddfbg .Metadata =_ddfef .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_ddfbg .OC =_ddfef .Get ("\u004f\u0043");_ddfbg .Stream =stream .Stream ;return _ddfbg ,nil ;};func _agdd (_fgba *_fd .PdfObjectDictionary )*VRI {_afccd ,_ :=_fd .GetString (_fgba .Get ("\u0054\u0055"));
|
||
_afad ,_ :=_fd .GetString (_fgba .Get ("\u0054\u0053"));return &VRI {Cert :_abbbc (_fgba .Get ("\u0043\u0065\u0072\u0074")),OCSP :_abbbc (_fgba .Get ("\u004f\u0043\u0053\u0050")),CRL :_abbbc (_fgba .Get ("\u0043\u0052\u004c")),TU :_afccd ,TS :_afad };};
|
||
|
||
|
||
// PdfAnnotationPrinterMark represents PrinterMark annotations.
|
||
// (Section 12.5.6.20).
|
||
type PdfAnnotationPrinterMark struct{*PdfAnnotation ;MN _fd .PdfObject ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 3 for a Lab device.
|
||
func (_abfb *PdfColorspaceLab )GetNumComponents ()int {return 3};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_babea pdfCIDFontType2 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){_bdbea ,_dfcb :=_babea ._agbed [r ];if !_dfcb {_faaac ,_eebd :=_fd .GetInt (_babea .DW );if !_eebd {return _cf .CharMetrics {},false ;};_bdbea =int (*_faaac );};return _cf .CharMetrics {Wx :float64 (_bdbea )},true ;
|
||
};
|
||
|
||
// GetXObjectImageByName returns the XObjectImage with the specified name from the
|
||
// page resources, if it exists.
|
||
func (_agfdbgb *PdfPageResources )GetXObjectImageByName (keyName _fd .PdfObjectName )(*XObjectImage ,error ){_cefg ,_cgaa :=_agfdbgb .GetXObjectByName (keyName );if _cefg ==nil {return nil ,nil ;};if _cgaa !=XObjectTypeImage {return nil ,_ad .New ("\u006e\u006f\u0074 \u0061\u006e\u0020\u0069\u006d\u0061\u0067\u0065");
|
||
};_ebabc ,_ccgc :=NewXObjectImageFromStream (_cefg );if _ccgc !=nil {return nil ,_ccgc ;};return _ebabc ,nil ;};
|
||
|
||
// AddExtension adds the specified extension to the Extensions dictionary.
|
||
// See section 7.1.2 "Extensions Dictionary" (pp. 108-109 PDF32000_2008).
|
||
func (_aebeg *PdfWriter )AddExtension (extName ,baseVersion string ,extLevel int ){_caacd ,_agceb :=_fd .GetDict (_aebeg ._fdaca .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073"));if !_agceb {_caacd =_fd .MakeDict ();_aebeg ._fdaca .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006e\u0073",_caacd );
|
||
};_ffcdcb ,_agceb :=_fd .GetDict (_caacd .Get (_fd .PdfObjectName (extName )));if !_agceb {_ffcdcb =_fd .MakeDict ();_caacd .Set (_fd .PdfObjectName (extName ),_ffcdcb );};if _adebe ,_ :=_fd .GetNameVal (_ffcdcb .Get ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e"));
|
||
_adebe !=baseVersion {_ffcdcb .Set ("B\u0061\u0073\u0065\u0056\u0065\u0072\u0073\u0069\u006f\u006e",_fd .MakeName (baseVersion ));};if _bdafcb ,_ :=_fd .GetIntVal (_ffcdcb .Get ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c"));
|
||
_bdafcb !=extLevel {_ffcdcb .Set ("\u0045\u0078\u0074\u0065\u006e\u0073\u0069\u006f\u006eL\u0065\u0076\u0065\u006c",_fd .MakeInteger (int64 (extLevel )));};};
|
||
|
||
// ToPdfOutlineItem returns a low level PdfOutlineItem object,
|
||
// based on the current instance.
|
||
func (_dfbc *OutlineItem )ToPdfOutlineItem ()(*PdfOutlineItem ,int64 ){_gcgfg :=NewPdfOutlineItem ();_gcgfg .Title =_fd .MakeEncodedString (_dfbc .Title ,true );_gcgfg .Dest =_dfbc .Dest .ToPdfObject ();var _edcag []*PdfOutlineItem ;var _gcaa int64 ;var _bcabg *PdfOutlineItem ;
|
||
for _ ,_ecgfd :=range _dfbc .Entries {_bgce ,_deecd :=_ecgfd .ToPdfOutlineItem ();_bgce .Parent =&_gcgfg .PdfOutlineTreeNode ;if _bcabg !=nil {_bcabg .Next =&_bgce .PdfOutlineTreeNode ;_bgce .Prev =&_bcabg .PdfOutlineTreeNode ;};_edcag =append (_edcag ,_bgce );
|
||
_gcaa +=_deecd ;_bcabg =_bgce ;};_bfega :=len (_edcag );_gcaa +=int64 (_bfega );if _bfega > 0{_gcgfg .First =&_edcag [0].PdfOutlineTreeNode ;_gcgfg .Last =&_edcag [_bfega -1].PdfOutlineTreeNode ;_gcgfg .Count =&_gcaa ;};return _gcgfg ,_gcaa ;};
|
||
|
||
// SetColorSpace sets `r` colorspace object to `colorspace`.
|
||
func (_cbdaa *PdfPageResources )SetColorSpace (colorspace *PdfPageResourcesColorspaces ){_cbdaa ._agaf =colorspace ;};func (_edaffg *PdfWriter )seekByName (_fagefd _fd .PdfObject ,_bebdf []string ,_abeg string )([]_fd .PdfObject ,error ){_ag .Log .Trace ("\u0053\u0065\u0065\u006b\u0020\u0062\u0079\u0020\u006e\u0061\u006d\u0065.\u002e\u0020\u0025\u0054",_fagefd );
|
||
var _cdgfc []_fd .PdfObject ;if _dbabg ,_gfffc :=_fagefd .(*_fd .PdfIndirectObject );_gfffc {return _edaffg .seekByName (_dbabg .PdfObject ,_bebdf ,_abeg );};if _abccd ,_bffab :=_fagefd .(*_fd .PdfObjectStream );_bffab {return _edaffg .seekByName (_abccd .PdfObjectDictionary ,_bebdf ,_abeg );
|
||
};if _bgbfd ,_ddcdg :=_fagefd .(*_fd .PdfObjectDictionary );_ddcdg {_ag .Log .Trace ("\u0044\u0069\u0063\u0074");for _ ,_acgad :=range _bgbfd .Keys (){_bfecc :=_bgbfd .Get (_acgad );if string (_acgad )==_abeg {_cdgfc =append (_cdgfc ,_bfecc );};for _ ,_fdbdg :=range _bebdf {if string (_acgad )==_fdbdg {_ag .Log .Trace ("\u0046\u006f\u006c\u006c\u006f\u0077\u0020\u006b\u0065\u0079\u0020\u0025\u0073",_fdbdg );
|
||
_fgfga ,_efcfg :=_edaffg .seekByName (_bfecc ,_bebdf ,_abeg );if _efcfg !=nil {return _cdgfc ,_efcfg ;};_cdgfc =append (_cdgfc ,_fgfga ...);break ;};};};return _cdgfc ,nil ;};return _cdgfc ,nil ;};
|
||
|
||
// PdfActionSetOCGState represents a SetOCGState action.
|
||
type PdfActionSetOCGState struct{*PdfAction ;State _fd .PdfObject ;PreserveRB _fd .PdfObject ;};
|
||
|
||
// PdfAnnotationFreeText represents FreeText annotations.
|
||
// (Section 12.5.6.6).
|
||
type PdfAnnotationFreeText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;DA _fd .PdfObject ;Q _fd .PdfObject ;RC _fd .PdfObject ;DS _fd .PdfObject ;CL _fd .PdfObject ;IT _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;BS _fd .PdfObject ;LE _fd .PdfObject ;
|
||
};type fontFile struct{_cbfca string ;_gccee string ;_cecab _ee .SimpleEncoder ;};func (_bff *PdfAppender )addNewObject (_acf _fd .PdfObject ){if _ ,_gbede :=_bff ._dbdc [_acf ];!_gbede {_bff ._gagg =append (_bff ._gagg ,_acf );_bff ._dbdc [_acf ]=struct{}{};
|
||
};};
|
||
|
||
// Write writes the Appender output to io.Writer.
|
||
// It can only be called once and further invocations will result in an error.
|
||
func (_feeg *PdfAppender )Write (w _bc .Writer )error {if _feeg ._fdbd {return _ad .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");
|
||
};_gddc :=NewPdfWriter ();_afeb ,_bgdg :=_fd .GetDict (_gddc ._eecde );if !_bgdg {return _ad .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");
|
||
};_ccbae ,_bgdg :=_afeb .Get ("\u004b\u0069\u0064\u0073").(*_fd .PdfObjectArray );if !_bgdg {return _ad .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");
|
||
};_cdbg ,_bgdg :=_afeb .Get ("\u0043\u006f\u0075n\u0074").(*_fd .PdfObjectInteger );if !_bgdg {return _ad .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");
|
||
};_acgb :=_feeg ._efec ._faaf ;_fcgf :=_acgb .GetTrailer ();if _fcgf ==nil {return _ad .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0074\u0072\u0061\u0069\u006c\u0065\u0072");};_cceag ,_bgdg :=_fd .GetIndirect (_fcgf .Get ("\u0052\u006f\u006f\u0074"));
|
||
if !_bgdg {return _ad .New ("c\u0061\u0074\u0061\u006c\u006f\u0067 \u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0065\u0072 \u006e\u006f\u0074 \u0066o\u0075\u006e\u0064");};_efag ,_bgdg :=_fd .GetDict (_cceag );if !_bgdg {_ag .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",_cceag ,*_fcgf );
|
||
return _ad .New ("\u006di\u0073s\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006c\u006f\u0067");};_gcdc :=false ;for _ ,_bbgf :=range _feeg ._efec .AcroForm .signatureFields (){if _bbgf .Lock !=nil {_gcdc =true ;break ;};};if _gcdc {_gddc ._defdd =_cceag ;
|
||
};for _ ,_geea :=range _efag .Keys (){if _gddc ._fdaca .Get (_geea )==nil {_dagb :=_efag .Get (_geea );_gddc ._fdaca .Set (_geea ,_dagb );};};if _feeg ._agfb !=nil {if _feeg ._agfb ._cfbb {if _ecce :=_fd .TraceToDirectObject (_feeg ._agfb .ToPdfObject ());
|
||
!_fd .IsNullObject (_ecce ){_gddc ._fdaca .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_ecce );_feeg .updateObjectsDeep (_ecce ,nil );}else {_ag .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 {_gddc ._fdaca .Set ("\u0041\u0063\u0072\u006f\u0046\u006f\u0072\u006d",_feeg ._agfb .ToPdfObject ());_feeg .updateObjectsDeep (_feeg ._agfb .ToPdfObject (),nil );};};if _feeg ._bgge !=nil {_feeg .updateObjectsDeep (_feeg ._bgge .ToPdfObject (),nil );
|
||
_gddc ._fdaca .Set ("\u0044\u0053\u0053",_feeg ._bgge .GetContainingPdfObject ());};if _feeg ._daea !=nil {_gddc ._fdaca .Set ("\u0050\u0065\u0072m\u0073",_feeg ._daea .ToPdfObject ());_feeg .updateObjectsDeep (_feeg ._daea .ToPdfObject (),nil );};if _gddc ._ggaddg .Major < 2{_gddc .AddExtension ("\u0045\u0053\u0049\u0043","\u0031\u002e\u0037",5);
|
||
_gddc .AddExtension ("\u0041\u0044\u0042\u0045","\u0031\u002e\u0037",8);};if _bcfff ,_dafd :=_fd .GetDict (_fcgf .Get ("\u0049\u006e\u0066\u006f"));_dafd {if _eae ,_cdda :=_fd .GetDict (_gddc ._ggdfa );_cdda {for _ ,_dcbd :=range _bcfff .Keys (){if _eae .Get (_dcbd )==nil {_eae .Set (_dcbd ,_bcfff .Get (_dcbd ));
|
||
};};};};if _feeg ._edb !=nil {_gddc ._ggdfa =_fd .MakeIndirectObject (_feeg ._edb .ToPdfObject ());};_feeg .updateObjectsDeep (_gddc ._ggdfa ,nil );_feeg .updateObjectsDeep (_gddc ._defdd ,nil );_beeb :=false ;if len (_feeg ._efec .PageList )!=len (_feeg ._gbca ){_beeb =true ;
|
||
}else {for _face :=range _feeg ._efec .PageList {switch {case _feeg ._gbca [_face ]==_feeg ._efec .PageList [_face ]:case _feeg ._gbca [_face ]==_feeg .Reader .PageList [_face ]:default:_beeb =true ;};if _beeb {break ;};};};if _beeb {_feeg .updateObjectsDeep (_gddc ._eecde ,nil );
|
||
}else {_feeg ._cfa [_gddc ._eecde ]=struct{}{};};_gddc ._eecde .ObjectNumber =_feeg .Reader ._gaag .ObjectNumber ;_feeg ._aceb [_gddc ._eecde ]=_feeg .Reader ._gaag .ObjectNumber ;_dcff :=[]_fd .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 _ ,_bbbf :=range _feeg ._gbca {_abcc :=_bbbf .ToPdfObject ();*_cdbg =*_cdbg +1;if _dagf ,_bedb :=_abcc .(*_fd .PdfIndirectObject );_bedb &&_dagf .GetParser ()==_feeg ._efec ._faaf {_ccbae .Append (&_dagf .PdfObjectReference );continue ;};if _gfaa ,_afg :=_fd .GetDict (_abcc );
|
||
_afg {_gadg ,_begb :=_gfaa .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fd .PdfIndirectObject );for _begb {_ag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gadg );_aef ,_adcd :=_gadg .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_adcd {return _ad .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");};for _ ,_bcef :=range _dcff {_ag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bcef );if _afcf :=_gfaa .Get (_bcef );
|
||
_afcf !=nil {_ag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");if len (_bbbf ._cadc .Keys ())> 0&&!_beeb {_deaea :=_bbbf ._cadc ;if _eeee :=_deaea .Get (_bcef );_eeee !=nil {if _afcf !=_eeee {_ag .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",_bcef ,_eeee );
|
||
_gfaa .Set (_bcef ,_eeee );};};};continue ;};if _fagf :=_aef .Get (_bcef );_fagf !=nil {_ag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_bcef );_gfaa .Set (_bcef ,_fagf );};};_gadg ,_begb =_aef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074").(*_fd .PdfIndirectObject );
|
||
_ag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_aef .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};if _beeb {_gfaa .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gddc ._eecde );};};_feeg .updateObjectsDeep (_abcc ,nil );
|
||
_ccbae .Append (_abcc );};if _ ,_geba :=_feeg ._cgae .Seek (0,_bc .SeekStart );_geba !=nil {return _geba ;};_gdfd :=make (map[SignatureHandler ]_bc .Writer );_gfgcfd :=_fd .MakeArray ();for _ ,_efbd :=range _feeg ._gagg {if _dgec ,_cfedg :=_fd .GetIndirect (_efbd );
|
||
_cfedg {if _ecaa ,_aaef :=_dgec .PdfObject .(*pdfSignDictionary );_aaef {_efbc :=*_ecaa ._efeca ;var _bgab error ;_gdfd [_efbc ],_bgab =_efbc .NewDigest (_ecaa ._eeabe );if _bgab !=nil {return _bgab ;};_gfgcfd .Append (_fd .MakeInteger (0xfffff),_fd .MakeInteger (0xfffff));
|
||
};};};if _gfgcfd .Len ()> 0{_gfgcfd .Append (_fd .MakeInteger (0xfffff),_fd .MakeInteger (0xfffff));};for _ ,_cage :=range _feeg ._gagg {if _dgfb ,_ecdf :=_fd .GetIndirect (_cage );_ecdf {if _egf ,_ceba :=_dgfb .PdfObject .(*pdfSignDictionary );_ceba {_egf .Set ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_gfgcfd );
|
||
};};};_eefab :=len (_gdfd )> 0;var _ebdcg _bc .Reader =_feeg ._cgae ;if _eefab {_egcg :=make ([]_bc .Writer ,0,len (_gdfd ));for _ ,_geef :=range _gdfd {_egcg =append (_egcg ,_geef );};_ebdcg =_bc .TeeReader (_feeg ._cgae ,_bc .MultiWriter (_egcg ...));
|
||
};_ffcd ,_efbg :=_bc .Copy (w ,_ebdcg );if _efbg !=nil {return _efbg ;};if len (_feeg ._gagg )==0{return nil ;};_gddc ._dfgae =_ffcd ;_gddc .ObjNumOffset =_feeg ._bgfg ;_gddc ._fbgg =true ;_gddc ._aeffd =_feeg ._ccfe ;_gddc ._ecfc =_feeg ._fda ;_gddc ._bfdbd =_feeg ._cdfg ;
|
||
_gddc ._ggaddg =_feeg ._efec .PdfVersion ();_gddc ._ddgad =_feeg ._aceb ;_gddc ._egadf =_feeg ._fcec .GetCrypter ();_gddc ._abbcc =_feeg ._fcec .GetEncryptObj ();_bgec :=_feeg ._fcec .GetXrefType ();if _bgec !=nil {_eea :=*_bgec ==_fd .XrefTypeObjectStream ;
|
||
_gddc ._bgced =&_eea ;};_gddc ._agfaff =map[_fd .PdfObject ]struct{}{};_gddc ._agfbf =[]_fd .PdfObject {};for _ ,_cdab :=range _feeg ._gagg {if _ ,_bdf :=_feeg ._cfa [_cdab ];_bdf {continue ;};_gddc .addObject (_cdab );};_gffd :=w ;if _eefab {_gffd =_bf .NewBuffer (nil );
|
||
};if _feeg ._gffb !=""&&_gddc ._egadf ==nil {_gddc .Encrypt ([]byte (_feeg ._gffb ),[]byte (_feeg ._gffb ),_feeg ._gdef );};if _eeea :=_fcgf .Get ("\u0049\u0044");_eeea !=nil {if _dde ,_cadb :=_fd .GetArray (_eeea );_cadb {_gddc ._bgdef =_dde ;};};if _gdad :=_gddc .Write (_gffd );
|
||
_gdad !=nil {return _gdad ;};if _eefab {_fgbc :=_gffd .(*_bf .Buffer ).Bytes ();_fegg :=_fd .MakeArray ();var _gace []*pdfSignDictionary ;var _bbgg int64 ;for _ ,_fgca :=range _gddc ._agfbf {if _dedd ,_egdd :=_fd .GetIndirect (_fgca );_egdd {if _faba ,_gcee :=_dedd .PdfObject .(*pdfSignDictionary );
|
||
_gcee {_gace =append (_gace ,_faba );_eebg :=_faba ._gedfg +int64 (_faba ._cfdbb );_fegg .Append (_fd .MakeInteger (_bbgg ),_fd .MakeInteger (_eebg -_bbgg ));_bbgg =_faba ._gedfg +int64 (_faba ._efcd );};};};_fegg .Append (_fd .MakeInteger (_bbgg ),_fd .MakeInteger (_ffcd +int64 (len (_fgbc ))-_bbgg ));
|
||
_ccfcb :=[]byte (_fegg .WriteString ());for _ ,_dbbg :=range _gace {_dfaa :=int (_dbbg ._gedfg -_ffcd );for _eccg :=_dbbg ._cdfec ;_eccg < _dbbg ._cecea ;_eccg ++{_fgbc [_dfaa +_eccg ]=' ';};_dfge :=_fgbc [_dfaa +_dbbg ._cdfec :_dfaa +_dbbg ._cecea ];copy (_dfge ,_ccfcb );
|
||
};var _fdab int ;for _ ,_bdbe :=range _gace {_cab :=int (_bdbe ._gedfg -_ffcd );_fgadf :=_fgbc [_fdab :_cab +_bdbe ._cfdbb ];_ccefe :=*_bdbe ._efeca ;_gdfd [_ccefe ].Write (_fgadf );_fdab =_cab +_bdbe ._efcd ;};for _ ,_cbfg :=range _gace {_aaeg :=_fgbc [_fdab :];
|
||
_defea :=*_cbfg ._efeca ;_gdfd [_defea ].Write (_aaeg );};for _ ,_bgeca :=range _gace {_gecg :=int (_bgeca ._gedfg -_ffcd );_aecdc :=*_bgeca ._efeca ;_cgfa :=_gdfd [_aecdc ];if _acbe :=_aecdc .Sign (_bgeca ._eeabe ,_cgfa );_acbe !=nil {return _acbe ;};
|
||
_bgeca ._eeabe .ByteRange =_fegg ;_daff :=[]byte (_bgeca ._eeabe .Contents .WriteString ());for _abac :=_bgeca ._cdfec ;_abac < _bgeca ._cecea ;_abac ++{_fgbc [_gecg +_abac ]=' ';};for _ggac :=_bgeca ._cfdbb ;_ggac < _bgeca ._efcd ;_ggac ++{_fgbc [_gecg +_ggac ]=' ';
|
||
};_aacd :=_fgbc [_gecg +_bgeca ._cdfec :_gecg +_bgeca ._cecea ];copy (_aacd ,_ccfcb );_aacd =_fgbc [_gecg +_bgeca ._cfdbb :_gecg +_bgeca ._efcd ];copy (_aacd ,_daff );};_gagfb :=_bf .NewBuffer (_fgbc );_ ,_efbg =_bc .Copy (w ,_gagfb );if _efbg !=nil {return _efbg ;
|
||
};};_feeg ._fdbd =true ;return nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_dgdba *PdfShadingType6 )ToPdfObject ()_fd .PdfObject {_dgdba .PdfShading .ToPdfObject ();_aabcc ,_ccaeb :=_dgdba .getShadingDict ();if _ccaeb !=nil {_ag .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 _dgdba .BitsPerCoordinate !=nil {_aabcc .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgdba .BitsPerCoordinate );};if _dgdba .BitsPerComponent !=nil {_aabcc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgdba .BitsPerComponent );
|
||
};if _dgdba .BitsPerFlag !=nil {_aabcc .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dgdba .BitsPerFlag );};if _dgdba .Decode !=nil {_aabcc .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgdba .Decode );};if _dgdba .Function !=nil {if len (_dgdba .Function )==1{_aabcc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgdba .Function [0].ToPdfObject ());
|
||
}else {_bdddd :=_fd .MakeArray ();for _ ,_gdca :=range _dgdba .Function {_bdddd .Append (_gdca .ToPdfObject ());};_aabcc .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bdddd );};};return _dgdba ._cdgfd ;};func _ceddb (_aadaa _fd .PdfObject )(*PdfFunctionType3 ,error ){_eageg :=&PdfFunctionType3 {};
|
||
var _afaec *_fd .PdfObjectDictionary ;if _ebbcf ,_aageb :=_aadaa .(*_fd .PdfIndirectObject );_aageb {_cabd ,_dbcde :=_ebbcf .PdfObject .(*_fd .PdfObjectDictionary );if !_dbcde {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_eageg ._dcaf =_ebbcf ;_afaec =_cabd ;}else if _gddff ,_deeee :=_aadaa .(*_fd .PdfObjectDictionary );_deeee {_afaec =_gddff ;}else {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_ffaae ,_gfabd :=_fd .TraceToDirectObject (_afaec .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );
|
||
if !_gfabd {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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 _ffaae .Len ()!=2{_ag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_cdebg ,_ffbdg :=_ffaae .ToFloat64Array ();
|
||
if _ffbdg !=nil {return nil ,_ffbdg ;};_eageg .Domain =_cdebg ;_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if _gfabd {if _ffaae .Len ()< 0||_ffaae .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_ebgceb ,_aacabf :=_ffaae .ToFloat64Array ();if _aacabf !=nil {return nil ,_aacabf ;};_eageg .Range =_ebgceb ;};_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0046u\u006e\u0063\u0074\u0069\u006f\u006es")).(*_fd .PdfObjectArray );if !_gfabd {_ag .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 ,_ad .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");};_eageg .Functions =[]PdfFunction {};
|
||
for _ ,_aeeeb :=range _ffaae .Elements (){_geeab ,_ffbee :=_badad (_aeeeb );if _ffbee !=nil {return nil ,_ffbee ;};_eageg .Functions =append (_eageg .Functions ,_geeab );};_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0042\u006f\u0075\u006e\u0064\u0073")).(*_fd .PdfObjectArray );
|
||
if !_gfabd {_ag .Log .Error ("B\u006fu\u006e\u0064\u0073\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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");
|
||
};_cedg ,_ffbdg :=_ffaae .ToFloat64Array ();if _ffbdg !=nil {return nil ,_ffbdg ;};_eageg .Bounds =_cedg ;if len (_eageg .Bounds )!=len (_eageg .Functions )-1{_ag .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 (_eageg .Bounds ),len (_eageg .Functions ));
|
||
return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffaae ,_gfabd =_fd .TraceToDirectObject (_afaec .Get ("\u0045\u006e\u0063\u006f\u0064\u0065")).(*_fd .PdfObjectArray );if !_gfabd {_ag .Log .Error ("E\u006ec\u006f\u0064\u0065\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_ad .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");};_aace ,_ffbdg :=_ffaae .ToFloat64Array ();
|
||
if _ffbdg !=nil {return nil ,_ffbdg ;};_eageg .Encode =_aace ;if len (_eageg .Encode )!=2*len (_eageg .Functions ){_ag .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 (_eageg .Encode ),len (_eageg .Functions ));
|
||
return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};return _eageg ,nil ;};
|
||
|
||
// ToPdfObject converts rectangle to a PDF object.
|
||
func (_afddd *PdfRectangle )ToPdfObject ()_fd .PdfObject {return _fd .MakeArray (_fd .MakeFloat (_afddd .Llx ),_fd .MakeFloat (_afddd .Lly ),_fd .MakeFloat (_afddd .Urx ),_fd .MakeFloat (_afddd .Ury ));};func (_gdadc *PdfColorspaceICCBased )String ()string {return "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064";
|
||
};func (_ffcdba SignatureValidationResult )String ()string {var _abade _bf .Buffer ;_abade .WriteString (_dc .Sprintf ("\u004ea\u006d\u0065\u003a\u0020\u0025\u0073\n",_ffcdba .Name ));if _ffcdba .Date ._bdaae > 0{_abade .WriteString (_dc .Sprintf ("\u0044a\u0074\u0065\u003a\u0020\u0025\u0073\n",_ffcdba .Date .ToGoTime ().String ()));
|
||
}else {_abade .WriteString ("\u0044\u0061\u0074\u0065 n\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_ffcdba .Reason )> 0{_abade .WriteString (_dc .Sprintf ("R\u0065\u0061\u0073\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffcdba .Reason ));
|
||
}else {_abade .WriteString ("N\u006f \u0072\u0065\u0061\u0073\u006f\u006e\u0020\u0073p\u0065\u0063\u0069\u0066ie\u0064\u000a");};if len (_ffcdba .Location )> 0{_abade .WriteString (_dc .Sprintf ("\u004c\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u003a\u0020\u0025\u0073\u000a",_ffcdba .Location ));
|
||
}else {_abade .WriteString ("\u004c\u006f\u0063at\u0069\u006f\u006e\u0020\u006e\u006f\u0074\u0020\u0073\u0070\u0065\u0063\u0069\u0066\u0069\u0065\u0064\u000a");};if len (_ffcdba .ContactInfo )> 0{_abade .WriteString (_dc .Sprintf ("\u0043\u006f\u006e\u0074\u0061\u0063\u0074\u0020\u0049\u006e\u0066\u006f:\u0020\u0025\u0073\u000a",_ffcdba .ContactInfo ));
|
||
}else {_abade .WriteString ("C\u006f\u006e\u0074\u0061\u0063\u0074 \u0069\u006e\u0066\u006f\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063i\u0066i\u0065\u0064\u000a");};_abade .WriteString (_dc .Sprintf ("F\u0069\u0065\u006c\u0064\u0073\u003a\u0020\u0025\u0064\u000a",len (_ffcdba .Fields )));
|
||
if _ffcdba .IsSigned {_abade .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 {_abade .WriteString ("\u0053\u0069\u0067\u006eed\u003a\u0020\u004e\u006f\u0074\u0020\u0073\u0069\u0067\u006e\u0065\u0064\u000a");
|
||
};if _ffcdba .IsVerified {_abade .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 {_abade .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 _ffcdba .IsTrusted {_abade .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 {_abade .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 !_ffcdba .GeneralizedTime .IsZero (){_abade .WriteString (_dc .Sprintf ("G\u0065n\u0065\u0072\u0061\u006c\u0069\u007a\u0065\u0064T\u0069\u006d\u0065\u003a %\u0073\u000a",_ffcdba .GeneralizedTime .String ()));};if _ffcdba .DiffResults !=nil {_abade .WriteString (_dc .Sprintf ("\u0064\u0069\u0066\u0066 i\u0073\u0020\u0070\u0065\u0072\u006d\u0069\u0074\u0074\u0065\u0064\u003a\u0020\u0025v\u000a",_ffcdba .DiffResults .IsPermitted ()));
|
||
if len (_ffcdba .DiffResults .Warnings )> 0{_abade .WriteString ("\u004d\u0044\u0050\u0020\u0077\u0061\u0072\u006e\u0069n\u0067\u0073\u003a\u000a");for _ ,_bcgcf :=range _ffcdba .DiffResults .Warnings {_abade .WriteString (_dc .Sprintf ("\u0009\u0025\u0073\u000a",_bcgcf ));
|
||
};};if len (_ffcdba .DiffResults .Errors )> 0{_abade .WriteString ("\u004d\u0044\u0050 \u0065\u0072\u0072\u006f\u0072\u0073\u003a\u000a");for _ ,_edada :=range _ffcdba .DiffResults .Errors {_abade .WriteString (_dc .Sprintf ("\u0009\u0025\u0073\u000a",_edada ));
|
||
};};};if _ffcdba .IsCrlFound {_abade .WriteString ("R\u0065\u0076\u006f\u0063\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0061\u003a\u0020C\u0052\u004c\u0020f\u006fu\u006e\u0064\u000a");}else {_abade .WriteString ("\u0052\u0065\u0076o\u0063\u0061\u0074\u0069o\u006e\u0020\u0064\u0061\u0074\u0061\u003a \u0043\u0052\u004c\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
|
||
};if _ffcdba .IsOcspFound {_abade .WriteString ("\u0052\u0065\u0076\u006fc\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u0066\u006f\u0075n\u0064\u000a");}else {_abade .WriteString ("\u0052\u0065\u0076\u006f\u0063\u0061\u0074\u0069\u006f\u006e\u0020\u0064\u0061\u0074\u0061:\u0020O\u0043\u0053\u0050\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u000a");
|
||
};return _abade .String ();};func (_dfb *PdfReader )newPdfAnnotationInkFromDict (_afag *_fd .PdfObjectDictionary )(*PdfAnnotationInk ,error ){_dage :=PdfAnnotationInk {};_cbe ,_ecgb :=_dfb .newPdfAnnotationMarkupFromDict (_afag );if _ecgb !=nil {return nil ,_ecgb ;
|
||
};_dage .PdfAnnotationMarkup =_cbe ;_dage .InkList =_afag .Get ("\u0049n\u006b\u004c\u0069\u0073\u0074");_dage .BS =_afag .Get ("\u0042\u0053");return &_dage ,nil ;};func (_acca *PdfSignature )extractChainFromCert ()([]*_gff .Certificate ,error ){var _fdfdg *_fd .PdfObjectArray ;
|
||
switch _adagg :=_acca .Cert .(type ){case *_fd .PdfObjectString :_fdfdg =_fd .MakeArray (_adagg );case *_fd .PdfObjectArray :_fdfdg =_adagg ;default:return nil ,_dc .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",_adagg );
|
||
};var _dccff _bf .Buffer ;for _ ,_bdfgb :=range _fdfdg .Elements (){_bdbba ,_gfgge :=_fd .GetString (_bdfgb );if !_gfgge {return nil ,_dc .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",_bdfgb );
|
||
};if _ ,_eafe :=_dccff .Write (_bdbba .Bytes ());_eafe !=nil {return nil ,_eafe ;};};return _gff .ParseCertificates (_dccff .Bytes ());};
|
||
|
||
// PdfColorPatternType3 represents a color shading pattern type 3 (Radial).
|
||
type PdfColorPatternType3 struct{Color PdfColor ;PatternName _fd .PdfObjectName ;};
|
||
|
||
// 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 (_dggdc *PdfReader )ToWriter (opts *ReaderToWriterOpts )(*PdfWriter ,error ){_aeeg :=NewPdfWriter ();if opts ==nil {opts =&ReaderToWriterOpts {};};_cabdd ,_abcfc :=_dggdc .GetNumPages ();if _abcfc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_abcfc );
|
||
return nil ,_abcfc ;};for _bcafc :=1;_bcafc <=_cabdd ;_bcafc ++{_cgacc ,_bbdeg :=_dggdc .GetPage (_bcafc );if _bbdeg !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbdeg );return nil ,_bbdeg ;};if opts .PageProcessCallback !=nil {_bbdeg =opts .PageProcessCallback (_bcafc ,_cgacc );
|
||
if _bbdeg !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbdeg );return nil ,_bbdeg ;};}else if opts .PageCallback !=nil {opts .PageCallback (_bcafc ,_cgacc );};_bbdeg =_aeeg .AddPage (_cgacc );if _bbdeg !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_bbdeg );
|
||
return nil ,_bbdeg ;};};_aeeg ._ggaddg =_dggdc .PdfVersion ();if !opts .SkipInfo {_acff ,_adbc :=_dggdc .GetPdfInfo ();if _adbc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adbc );}else {_aeeg ._ggdfa .PdfObject =_acff .ToPdfObject ();
|
||
};};if !opts .SkipMetadata {if _fcdge :=_dggdc ._gabca .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_fcdge !=nil {if _fdgcdg :=_aeeg .SetCatalogMetadata (_fcdge );_fdgcdg !=nil {return nil ,_fdgcdg ;};};};if !opts .SkipMarkInfo {if _egad ,_abbf :=_dggdc .GetCatalogMarkInfo ();
|
||
_abbf {if _gbadc :=_aeeg .SetCatalogMarkInfo (_egad );_gbadc !=nil {return nil ,_gbadc ;};};};if !opts .SkipAcroForm {_fdeea :=_aeeg .SetForms (_dggdc .AcroForm );if _fdeea !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdeea );
|
||
return nil ,_fdeea ;};};if !opts .SkipViewerPreferences {if _cgcef ,_cbdagg :=_dggdc .GetCatalogViewerPreferences ();_cbdagg {if _bbegb :=_aeeg .SetCatalogViewerPreferences (_cgcef );_bbegb !=nil {return nil ,_bbegb ;};};};if !opts .SkipLanguage {if _ececfa ,_efege :=_dggdc .GetCatalogLanguage ();
|
||
_efege {if _afgcc :=_aeeg .SetCatalogLanguage (_ececfa );_afgcc !=nil {return nil ,_afgcc ;};};};if !opts .SkipOutlines {_aeeg .AddOutlineTree (_dggdc .GetOutlineTree ());};if !opts .SkipOCProperties {_fcfe ,_dgffc :=_dggdc .GetOCProperties ();if _dgffc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgffc );
|
||
}else {_dgffc =_aeeg .SetOCProperties (_fcfe );if _dgffc !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dgffc );};};};if !opts .SkipPageLabels {_ffcge ,_ebeef :=_dggdc .GetPageLabels ();if _ebeef !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ebeef );
|
||
}else {_ebeef =_aeeg .SetPageLabels (_ffcge );if _ebeef !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_ebeef );};};};if !opts .SkipNamedDests {_fgbde ,_gfce :=_dggdc .GetNamedDestinations ();if _gfce !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gfce );
|
||
}else {_gfce =_aeeg .SetNamedDestinations (_fgbde );if _gfce !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gfce );};};};if !opts .SkipNameDictionary {_dddfa ,_gadf :=_dggdc .GetNameDictionary ();if _gadf !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gadf );
|
||
}else {_gadf =_aeeg .SetNameDictionary (_dddfa );if _gadf !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gadf );};};};if !opts .SkipRotation &&_dggdc .Rotate !=nil {if _gaead :=_aeeg .SetRotation (*_dggdc .Rotate );_gaead !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gaead );
|
||
};};return &_aeeg ,nil ;};
|
||
|
||
// ParserMetadata gets the parser metadata.
|
||
func (_bgba *CompliancePdfReader )ParserMetadata ()_fd .ParserMetadata {if _bgba ._bgcc ==(_fd .ParserMetadata {}){_bgba ._bgcc ,_ =_bgba ._faaf .ParserMetadata ();};return _bgba ._bgcc ;};func _dfgfd ()*Names {return &Names {_acbf :_fd .MakeIndirectObject (_fd .MakeDict ())}};
|
||
|
||
|
||
// GetAllContentStreams gets all the content streams for a page as one string.
|
||
func (_afbec *PdfPage )GetAllContentStreams ()(string ,error ){_bceec ,_fbccd :=_afbec .GetContentStreams ();if _fbccd !=nil {return "",_fbccd ;};return _gg .Join (_bceec ,"\u0020"),nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_eabfc *PdfShadingPattern )ToPdfObject ()_fd .PdfObject {_eabfc .PdfPattern .ToPdfObject ();_bbdgg :=_eabfc .getDict ();if _eabfc .Shading !=nil {_bbdgg .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_eabfc .Shading .ToPdfObject ());};if _eabfc .Matrix !=nil {_bbdgg .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_eabfc .Matrix );
|
||
};if _eabfc .ExtGState !=nil {_bbdgg .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_eabfc .ExtGState );};return _eabfc ._gcgba ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_fbfbg *PdfOutlineItem )ToPdfObject ()_fd .PdfObject {_bfebb :=_fbfbg ._ecga ;_abbg :=_bfebb .PdfObject .(*_fd .PdfObjectDictionary );_abbg .Set ("\u0054\u0069\u0074l\u0065",_fbfbg .Title );if _fbfbg .A !=nil {_abbg .Set ("\u0041",_fbfbg .A );};if _cfgbb :=_abbg .Get ("\u0053\u0045");
|
||
_cfgbb !=nil {_abbg .Remove ("\u0053\u0045");};if _fbfbg .C !=nil {_abbg .Set ("\u0043",_fbfbg .C );};if _fbfbg .Dest !=nil {_abbg .Set ("\u0044\u0065\u0073\u0074",_fbfbg .Dest );};if _fbfbg .F !=nil {_abbg .Set ("\u0046",_fbfbg .F );};if _fbfbg .Count !=nil {_abbg .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (*_fbfbg .Count ));
|
||
};if _fbfbg .Next !=nil {_abbg .Set ("\u004e\u0065\u0078\u0074",_fbfbg .Next .ToPdfObject ());};if _fbfbg .First !=nil {_abbg .Set ("\u0046\u0069\u0072s\u0074",_fbfbg .First .ToPdfObject ());};if _fbfbg .Prev !=nil {_abbg .Set ("\u0050\u0072\u0065\u0076",_fbfbg .Prev .GetContext ().GetContainingPdfObject ());
|
||
};if _fbfbg .Last !=nil {_abbg .Set ("\u004c\u0061\u0073\u0074",_fbfbg .Last .GetContext ().GetContainingPdfObject ());};if _fbfbg .Parent !=nil {_abbg .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_fbfbg .Parent .GetContext ().GetContainingPdfObject ());
|
||
};return _bfebb ;};
|
||
|
||
// NewPdfColorDeviceCMYK returns a new CMYK32 color.
|
||
func NewPdfColorDeviceCMYK (c ,m ,y ,k float64 )*PdfColorDeviceCMYK {_eggd :=PdfColorDeviceCMYK {c ,m ,y ,k };return &_eggd ;};func _cccfb (_eeaad *_fd .PdfObjectStream )(*PdfFunctionType4 ,error ){_afbba :=&PdfFunctionType4 {};_afbba ._bdga =_eeaad ;_edgbfb :=_eeaad .PdfObjectDictionary ;
|
||
_afbe ,_eddcb :=_fd .TraceToDirectObject (_edgbfb .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_eddcb {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");return nil ,_ad .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 _afbe .Len ()%2!=0{_ag .Log .Error ("\u0044\u006f\u006d\u0061\u0069\u006e\u0020\u0069\u006ev\u0061\u006c\u0069\u0064");return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_dcgdb ,_cecbc :=_afbe .ToFloat64Array ();
|
||
if _cecbc !=nil {return nil ,_cecbc ;};_afbba .Domain =_dcgdb ;_afbe ,_eddcb =_fd .TraceToDirectObject (_edgbfb .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );if _eddcb {if _afbe .Len ()< 0||_afbe .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");
|
||
};_gdfbg ,_bebg :=_afbe .ToFloat64Array ();if _bebg !=nil {return nil ,_bebg ;};_afbba .Range =_gdfbg ;};_fddd ,_cecbc :=_fd .DecodeStream (_eeaad );if _cecbc !=nil {return nil ,_cecbc ;};_afbba ._cbaff =_fddd ;_cfdgg :=_fa .NewPSParser (_fddd );_accga ,_cecbc :=_cfdgg .Parse ();
|
||
if _cecbc !=nil {return nil ,_cecbc ;};_afbba .Program =_accga ;return _afbba ,nil ;};var _gfbc =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"};
|
||
|
||
|
||
// GetContainingPdfObject implements model.PdfModel interface.
|
||
func (_dgffe *PdfOutputIntent )GetContainingPdfObject ()_fd .PdfObject {return _dgffe ._fbbec };func (_ebfc *PdfColorspaceDeviceCMYK )String ()string {return "\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b";};
|
||
|
||
// NewPdfColorDeviceRGB returns a new PdfColorDeviceRGB based on the r,g,b component values.
|
||
func NewPdfColorDeviceRGB (r ,g ,b float64 )*PdfColorDeviceRGB {_cgca :=PdfColorDeviceRGB {r ,g ,b };return &_cgca ;};
|
||
|
||
// 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 ;_dcaf *_fd .PdfIndirectObject ;};
|
||
|
||
// PdfAppender appends new PDF content to an existing PDF document via incremental updates.
|
||
type PdfAppender struct{_cgae _bc .ReadSeeker ;_fcec *_fd .PdfParser ;_efec *PdfReader ;Reader *PdfReader ;_gbca []*PdfPage ;_agfb *PdfAcroForm ;_bgge *DSS ;_daea *Permissions ;_ccfe _fd .XrefTable ;_fda int64 ;_bgfg int ;_gagg []_fd .PdfObject ;_dbdc map[_fd .PdfObject ]struct{};
|
||
_aceb map[_fd .PdfObject ]int64 ;_cfa map[_fd .PdfObject ]struct{};_bade map[_fd .PdfObject ]struct{};_cdfg int64 ;_fdbd bool ;_gffb string ;_gdef *EncryptOptions ;_edb *PdfInfo ;};
|
||
|
||
// GetCatalogLanguage gets catalog Language object.
|
||
func (_bacgb *PdfReader )GetCatalogLanguage ()(_fd .PdfObject ,bool ){if _bacgb ._gabca ==nil {return nil ,false ;};_adcba :=_bacgb ._gabca .Get ("\u004c\u0061\u006e\u0067");return _adcba ,_adcba !=nil ;};func _geaf (_gabgg _fd .PdfObject )(*PdfColorspaceLab ,error ){_dgba :=NewPdfColorspaceLab ();
|
||
if _cgad ,_ggdf :=_gabgg .(*_fd .PdfIndirectObject );_ggdf {_dgba ._ddfd =_cgad ;};_gabgg =_fd .TraceToDirectObject (_gabgg );_gfbf ,_gbgda :=_gabgg .(*_fd .PdfObjectArray );if !_gbgda {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};if _gfbf .Len ()!=2{return nil ,_dc .Errorf ("\u0069n\u0076\u0061\u006c\u0069d\u0020\u0043\u0061\u006c\u0052G\u0042 \u0063o\u006c\u006f\u0072\u0073\u0070\u0061\u0063e");};_gabgg =_fd .TraceToDirectObject (_gfbf .Get (0));_dcgd ,_gbgda :=_gabgg .(*_fd .PdfObjectName );
|
||
if !_gbgda {return nil ,_dc .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 *_dcgd !="\u004c\u0061\u0062"{return nil ,_dc .Errorf ("n\u006ft\u0020\u0061\u0020\u004c\u0061\u0062\u0020\u0063o\u006c\u006f\u0072\u0073pa\u0063\u0065");
|
||
};_gabgg =_fd .TraceToDirectObject (_gfbf .Get (1));_cgee ,_gbgda :=_gabgg .(*_fd .PdfObjectDictionary );if !_gbgda {return nil ,_dc .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");
|
||
};_gabgg =_cgee .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_gabgg =_fd .TraceToDirectObject (_gabgg );_ebgb ,_gbgda :=_gabgg .(*_fd .PdfObjectArray );if !_gbgda {return nil ,_dc .Errorf ("\u004c\u0061\u0062\u0020In\u0076\u0061\u006c\u0069\u0064\u0020\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069n\u0074");
|
||
};if _ebgb .Len ()!=3{return nil ,_dc .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");};_dacb ,_cddc :=_ebgb .GetAsFloat64Slice ();
|
||
if _cddc !=nil {return nil ,_cddc ;};_dgba .WhitePoint =_dacb ;_gabgg =_cgee .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _gabgg !=nil {_gabgg =_fd .TraceToDirectObject (_gabgg );_gfedfg ,_gecbb :=_gabgg .(*_fd .PdfObjectArray );
|
||
if !_gecbb {return nil ,_dc .Errorf ("\u004c\u0061\u0062: \u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");};if _gfedfg .Len ()!=3{return nil ,_dc .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");
|
||
};_fffc ,_aabb :=_gfedfg .GetAsFloat64Slice ();if _aabb !=nil {return nil ,_aabb ;};_dgba .BlackPoint =_fffc ;};_gabgg =_cgee .Get ("\u0052\u0061\u006eg\u0065");if _gabgg !=nil {_gabgg =_fd .TraceToDirectObject (_gabgg );_cfdg ,_deaa :=_gabgg .(*_fd .PdfObjectArray );
|
||
if !_deaa {_ag .Log .Error ("\u0052\u0061n\u0067\u0065\u0020t\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");return nil ,_dc .Errorf ("\u004ca\u0062:\u0020\u0054\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _cfdg .Len ()!=4{_ag .Log .Error ("\u0052\u0061\u006e\u0067\u0065\u0020\u0072\u0061\u006e\u0067\u0065\u0020e\u0072\u0072\u006f\u0072");
|
||
return nil ,_dc .Errorf ("\u004c\u0061b\u003a\u0020\u0052a\u006e\u0067\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};_cgfc ,_gcfgf :=_cfdg .GetAsFloat64Slice ();if _gcfgf !=nil {return nil ,_gcfgf ;};_dgba .Range =_cgfc ;};return _dgba ,nil ;};
|
||
|
||
// SetFontByName sets the font specified by keyName to the given object.
|
||
func (_cggfc *PdfPageResources )SetFontByName (keyName _fd .PdfObjectName ,obj _fd .PdfObject )error {if _cggfc .Font ==nil {_cggfc .Font =_fd .MakeDict ();};_eccaf ,_bdceg :=_fd .TraceToDirectObject (_cggfc .Font ).(*_fd .PdfObjectDictionary );if !_bdceg {_ag .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",_fd .TraceToDirectObject (_cggfc .Font ));
|
||
return _fd .ErrTypeError ;};_eccaf .Set (keyName ,obj );return nil ;};
|
||
|
||
// AddImageResource adds an image to the XObject resources.
|
||
func (_faad *PdfPage )AddImageResource (name _fd .PdfObjectName ,ximg *XObjectImage )error {var _aabea *_fd .PdfObjectDictionary ;if _faad .Resources .XObject ==nil {_aabea =_fd .MakeDict ();_faad .Resources .XObject =_aabea ;}else {var _edgd bool ;_aabea ,_edgd =(_faad .Resources .XObject ).(*_fd .PdfObjectDictionary );
|
||
if !_edgd {return _ad .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0078\u0072\u0065\u0073\u0020\u0064\u0069\u0063\u0074\u0020\u0074\u0079p\u0065");};};_aabea .Set (name ,ximg .ToPdfObject ());return nil ;};
|
||
|
||
// ToImage converts an object to an Image which can be transformed or saved out.
|
||
// The image data is decoded and the Image returned.
|
||
func (_ecfdag *XObjectImage )ToImage ()(*Image ,error ){_dbde :=&Image {};if _ecfdag .Height ==nil {return nil ,_ad .New ("\u0068e\u0069\u0067\u0068\u0074\u0020\u0061\u0074\u0074\u0072\u0069\u0062u\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");
|
||
};_dbde .Height =*_ecfdag .Height ;if _ecfdag .Width ==nil {return nil ,_ad .New ("\u0077\u0069\u0064th\u0020\u0061\u0074\u0074\u0072\u0069\u0062\u0075\u0074\u0065\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};_dbde .Width =*_ecfdag .Width ;if _ecfdag .BitsPerComponent ==nil {switch _ecfdag .Filter .(type ){case *_fd .CCITTFaxEncoder ,*_fd .JBIG2Encoder :_dbde .BitsPerComponent =1;
|
||
case *_fd .LZWEncoder ,*_fd .RunLengthEncoder :_dbde .BitsPerComponent =8;default:return nil ,_ad .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 {_dbde .BitsPerComponent =*_ecfdag .BitsPerComponent ;};_dbde .ColorComponents =_ecfdag .ColorSpace .GetNumComponents ();_ecfdag ._bbcgd .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_dbde .ColorComponents )));
|
||
_bdgaf ,_cacb :=_fd .DecodeStream (_ecfdag ._bbcgd );if _cacb !=nil {return nil ,_cacb ;};_dbde .Data =_bdgaf ;if _ecfdag .Decode !=nil {_eaaee ,_gfcfa :=_ecfdag .Decode .(*_fd .PdfObjectArray );if !_gfcfa {_ag .Log .Debug ("I\u006e\u0076\u0061\u006cid\u0020D\u0065\u0063\u006f\u0064\u0065 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
return nil ,_ad .New ("\u0069\u006e\u0076a\u006c\u0069\u0064\u0020\u0074\u0079\u0070\u0065");};_aeddb ,_defdff :=_eaaee .ToFloat64Array ();if _defdff !=nil {return nil ,_defdff ;};switch _ecfdag .ColorSpace .(type ){case *PdfColorspaceDeviceCMYK :_dgcgg :=_ecfdag .ColorSpace .DecodeArray ();
|
||
if _dgcgg [0]==_aeddb [0]&&_dgcgg [1]==_aeddb [1]&&_dgcgg [2]==_aeddb [2]&&_dgcgg [3]==_aeddb [3]{_dbde ._cdbdc =_aeddb ;};default:_dbde ._cdbdc =_aeddb ;};};return _dbde ,nil ;};
|
||
|
||
// Has checks if flag fl is set in flag and returns true if so, false otherwise.
|
||
func (_agee FieldFlag )Has (fl FieldFlag )bool {return (_agee .Mask ()&fl .Mask ())> 0};
|
||
|
||
// PdfShadingType4 is a Free-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType4 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// NewPdfColorPatternType2 returns an empty color shading pattern type 2 (Axial).
|
||
func NewPdfColorPatternType2 ()*PdfColorPatternType2 {_bgdgc :=&PdfColorPatternType2 {};return _bgdgc ;};
|
||
|
||
// SetVersion sets the PDF version of the output file.
|
||
func (_cebb *PdfWriter )SetVersion (majorVersion ,minorVersion int ){_cebb ._ggaddg .Major =majorVersion ;_cebb ._ggaddg .Minor =minorVersion ;};func _dacfd (_dbac *_fd .PdfObjectDictionary )(*PdfShadingType5 ,error ){_fcfcf :=PdfShadingType5 {};_dddbd :=_dbac .Get ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065");
|
||
if _dddbd ==nil {_ag .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 ;};_bgdga ,_dbgab :=_dddbd .(*_fd .PdfObjectInteger );if !_dbgab {_ag .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",_dddbd );
|
||
return nil ,_fd .ErrTypeError ;};_fcfcf .BitsPerCoordinate =_bgdga ;_dddbd =_dbac .Get ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074");if _dddbd ==nil {_ag .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 ;};_bgdga ,_dbgab =_dddbd .(*_fd .PdfObjectInteger );if !_dbgab {_ag .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",_dddbd );
|
||
return nil ,_fd .ErrTypeError ;};_fcfcf .BitsPerComponent =_bgdga ;_dddbd =_dbac .Get ("\u0056\u0065\u0072\u0074\u0069\u0063\u0065\u0073\u0050e\u0072\u0052\u006f\u0077");if _dddbd ==nil {_ag .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 ;};_bgdga ,_dbgab =_dddbd .(*_fd .PdfObjectInteger );if !_dbgab {_ag .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",_dddbd );
|
||
return nil ,_fd .ErrTypeError ;};_fcfcf .VerticesPerRow =_bgdga ;_dddbd =_dbac .Get ("\u0044\u0065\u0063\u006f\u0064\u0065");if _dddbd ==nil {_ag .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 ;};_fdcfe ,_dbgab :=_dddbd .(*_fd .PdfObjectArray );if !_dbgab {_ag .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",_dddbd );
|
||
return nil ,_fd .ErrTypeError ;};_fcfcf .Decode =_fdcfe ;if _fffb :=_dbac .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");_fffb !=nil {_fcfcf .Function =[]PdfFunction {};if _abcgaa ,_cebfbd :=_fffb .(*_fd .PdfObjectArray );_cebfbd {for _ ,_eeadb :=range _abcgaa .Elements (){_fgcd ,_egdcg :=_badad (_eeadb );
|
||
if _egdcg !=nil {_ag .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",_egdcg );return nil ,_egdcg ;};_fcfcf .Function =append (_fcfcf .Function ,_fgcd );
|
||
};}else {_cfgc ,_fedgf :=_badad (_fffb );if _fedgf !=nil {_ag .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",_fedgf );return nil ,_fedgf ;
|
||
};_fcfcf .Function =append (_fcfcf .Function ,_cfgc );};};return &_fcfcf ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the shading object (indirect object).
|
||
func (_dgfcg *PdfShading )GetContainingPdfObject ()_fd .PdfObject {return _dgfcg ._cdgfd };
|
||
|
||
// GetOutlines returns a high-level Outline object, based on the outline tree
|
||
// of the reader.
|
||
func (_deaef *PdfReader )GetOutlines ()(*Outline ,error ){if _deaef ==nil {return nil ,_ad .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");
|
||
};_gcae :=_deaef .GetOutlineTree ();if _gcae ==nil {return nil ,_ad .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 _efac func (_gaggc *PdfOutlineTreeNode ,_gebgg *[]*OutlineItem );_efac =func (_gegab *PdfOutlineTreeNode ,_dcefb *[]*OutlineItem ){if _gegab ==nil {return ;};if _gegab ._gcgcg ==nil {_ag .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 _gfdbf *OutlineItem ;if _bdfbe ,_daedc :=_gegab ._gcgcg .(*PdfOutlineItem );_daedc {_bfefd :=_bdfbe .Dest ;if (_bfefd ==nil ||_fd .IsNullObject (_bfefd ))&&_bdfbe .A !=nil {if _cccad ,_efdca :=_fd .GetDict (_bdfbe .A );_efdca {if _cfdcd ,_abgf :=_fd .GetArray (_cccad .Get ("\u0044"));
|
||
_abgf {_bfefd =_cfdcd ;}else {_dfggb ,_daaeb :=_fd .GetString (_cccad .Get ("\u0044"));if !_daaeb {return ;};_adfcf ,_daaeb :=_deaef ._gabca .Get ("\u004e\u0061\u006de\u0073").(*_fd .PdfObjectReference );if !_daaeb {return ;};_fedcd ,_facec :=_deaef ._faaf .LookupByReference (*_adfcf );
|
||
if _facec !=nil {_ag .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",_facec .Error ());
|
||
return ;};_gbcdd ,_daaeb :=_fedcd .(*_fd .PdfIndirectObject );if !_daaeb {return ;};_adaa :=map[_fd .PdfObject ]struct{}{};_facec =_deaef .buildNameNodes (_gbcdd ,_adaa );if _facec !=nil {_ag .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",_facec .Error ());
|
||
return ;};for _edefb :=range _adaa {_cefac ,_eabcaf :=_fd .GetDict (_edefb );if !_eabcaf {continue ;};_bbbfd ,_eabcaf :=_fd .GetArray (_cefac .Get ("\u004e\u0061\u006de\u0073"));if !_eabcaf {continue ;};for _bbfb ,_gdbfc :=range _bbbfd .Elements (){switch _gdbfc .(type ){case *_fd .PdfObjectString :if _gdbfc .String ()==_dfggb .String (){if _gcccc :=_bbbfd .Get (_bbfb +1);
|
||
_gcccc !=nil {if _cedbf ,_accce :=_fd .GetDict (_gcccc );_accce {_bfefd =_cedbf .Get ("\u0044");break ;};};};};};};};};};var _ebaac OutlineDest ;if _bfefd !=nil &&!_fd .IsNullObject (_bfefd ){if _fdce ,_fbcgg :=_adea (_bfefd ,_deaef );_fbcgg ==nil {_ebaac =*_fdce ;
|
||
}else {_ag .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",_bfefd ,_fbcgg );
|
||
};};_gfdbf =NewOutlineItem (_bdfbe .Title .Decoded (),_ebaac );*_dcefb =append (*_dcefb ,_gfdbf );if _bdfbe .Next !=nil {_efac (_bdfbe .Next ,_dcefb );};};if _gegab .First !=nil {if _gfdbf !=nil {_dcefb =&_gfdbf .Entries ;};_efac (_gegab .First ,_dcefb );
|
||
};};_abgaa :=NewOutline ();_efac (_gcae ,&_abgaa .Entries );return _abgaa ,nil ;};
|
||
|
||
// GetAlphabet returns a map of the runes in `text` and their frequencies.
|
||
func GetAlphabet (text string )map[rune ]int {_gcdg :=map[rune ]int {};for _ ,_fggf :=range text {_gcdg [_fggf ]++;};return _gcdg ;};
|
||
|
||
// 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 *_fd .PdfIndirectObject ;SV *_fd .PdfIndirectObject ;};
|
||
|
||
// SetContext sets the sub annotation (context).
|
||
func (_caeg *PdfAnnotation )SetContext (ctx PdfModel ){_caeg ._cfda =ctx };func (_dacd *PdfWriter )writeNamesDictionary ()error {if _dacd ._gdabc ==nil {return nil ;};_gacga :=_dacd ._gdabc .ToPdfObject ();_dacd ._fdaca .Set ("\u004e\u0061\u006de\u0073",_gacga );
|
||
_bagdd :=_dacd .addObjects (_gacga );if _bagdd !=nil {return _bagdd ;};return nil ;};
|
||
|
||
// NewPdfAnnotation3D returns a new 3d annotation.
|
||
func NewPdfAnnotation3D ()*PdfAnnotation3D {_eddfg :=NewPdfAnnotation ();_faea :=&PdfAnnotation3D {};_faea .PdfAnnotation =_eddfg ;_eddfg .SetContext (_faea );return _faea ;};func _bdca (_gdgd _fd .PdfObject )(string ,error ){_gdgd =_fd .TraceToDirectObject (_gdgd );
|
||
switch _dfdbg :=_gdgd .(type ){case *_fd .PdfObjectString :return _dfdbg .Str (),nil ;case *_fd .PdfObjectStream :_gcec ,_acfef :=_fd .DecodeStream (_dfdbg );if _acfef !=nil {return "",_acfef ;};return string (_gcec ),nil ;};return "",_dc .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",_gdgd );
|
||
};
|
||
|
||
// SetPdfSubject sets the Subject attribute of the output PDF.
|
||
func SetPdfSubject (subject string ){_feadd .Lock ();defer _feadd .Unlock ();_gcba =subject };
|
||
|
||
// AddAnnotation appends `annot` to the list of page annotations.
|
||
func (_efegf *PdfPage )AddAnnotation (annot *PdfAnnotation ){if _efegf ._gbaf ==nil {_efegf .GetAnnotations ();};_efegf ._gbaf =append (_efegf ._gbaf ,annot );};
|
||
|
||
// SetFilter sets compression filter. Decodes with current filter sets and
|
||
// encodes the data with the new filter.
|
||
func (_dgbgdg *XObjectImage )SetFilter (encoder _fd .StreamEncoder )error {_ccegcf :=_dgbgdg .Stream ;_edefa ,_ebeefd :=_dgbgdg .Filter .DecodeBytes (_ccegcf );if _ebeefd !=nil {return _ebeefd ;};_dgbgdg .Filter =encoder ;encoder .UpdateParams (_dgbgdg .getParamsDict ());
|
||
_ccegcf ,_ebeefd =encoder .EncodeBytes (_edefa );if _ebeefd !=nil {return _ebeefd ;};_dgbgdg .Stream =_ccegcf ;return nil ;};func _ece (_gdb _fd .PdfObject )(*PdfFilespec ,error ){if _gdb ==nil {return nil ,nil ;};return NewPdfFilespecFromObj (_gdb );};
|
||
|
||
|
||
// 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 ;_cbaga *_fd .PdfIndirectObject ;
|
||
|
||
// Type: Sig/DocTimeStamp
|
||
Type *_fd .PdfObjectName ;Filter *_fd .PdfObjectName ;SubFilter *_fd .PdfObjectName ;Contents *_fd .PdfObjectString ;Cert _fd .PdfObject ;ByteRange *_fd .PdfObjectArray ;Reference *_fd .PdfObjectArray ;Changes *_fd .PdfObjectArray ;Name *_fd .PdfObjectString ;
|
||
M *_fd .PdfObjectString ;Location *_fd .PdfObjectString ;Reason *_fd .PdfObjectString ;ContactInfo *_fd .PdfObjectString ;R *_fd .PdfObjectInteger ;V *_fd .PdfObjectInteger ;PropBuild *_fd .PdfObjectDictionary ;PropAuthTime *_fd .PdfObjectInteger ;PropAuthType *_fd .PdfObjectName ;
|
||
};func (_ebad *pdfCIDFontType2 )baseFields ()*fontCommon {return &_ebad .fontCommon };
|
||
|
||
// ToPdfObject returns a PdfObject representation of PdfColorspaceDeviceNAttributes as a PdfObjectDictionary directly
|
||
// or indirectly within an indirect object container.
|
||
func (_adgff *PdfColorspaceDeviceNAttributes )ToPdfObject ()_fd .PdfObject {_eead :=_fd .MakeDict ();if _adgff .Subtype !=nil {_eead .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_adgff .Subtype );};_eead .SetIfNotNil ("\u0043o\u006c\u006f\u0072\u0061\u006e\u0074s",_adgff .Colorants );
|
||
_eead .SetIfNotNil ("\u0050r\u006f\u0063\u0065\u0073\u0073",_adgff .Process );_eead .SetIfNotNil ("M\u0069\u0078\u0069\u006e\u0067\u0048\u0069\u006e\u0074\u0073",_adgff .MixingHints );if _adgff ._cbd !=nil {_adgff ._cbd .PdfObject =_eead ;return _adgff ._cbd ;
|
||
};return _eead ;};
|
||
|
||
// WriteToFile writes the output PDF to file.
|
||
func (_eafdfd *PdfWriter )WriteToFile (outputFilePath string )error {_dccfe ,_cadfc :=_gbe .Create (outputFilePath );if _cadfc !=nil {return _cadfc ;};defer _dccfe .Close ();return _eafdfd .Write (_dccfe );};
|
||
|
||
// PdfColorspaceCalGray represents CalGray color space.
|
||
type PdfColorspaceCalGray struct{WhitePoint []float64 ;BlackPoint []float64 ;Gamma float64 ;_gbaaf *_fd .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgded *PdfFilespec )ToPdfObject ()_fd .PdfObject {_agdad :=_fgded .getDict ();_agdad .Clear ();_agdad .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u0069\u006c\u0065\u0073\u0070\u0065\u0063"));_agdad .SetIfNotNil ("\u0046\u0053",_fgded .FS );
|
||
_agdad .SetIfNotNil ("\u0046",_fgded .F );_agdad .SetIfNotNil ("\u0055\u0046",_fgded .UF );_agdad .SetIfNotNil ("\u0044\u004f\u0053",_fgded .DOS );_agdad .SetIfNotNil ("\u004d\u0061\u0063",_fgded .Mac );_agdad .SetIfNotNil ("\u0055\u006e\u0069\u0078",_fgded .Unix );
|
||
_agdad .SetIfNotNil ("\u0049\u0044",_fgded .ID );_agdad .SetIfNotNil ("\u0056",_fgded .V );_agdad .SetIfNotNil ("\u0045\u0046",_fgded .EF );_agdad .SetIfNotNil ("\u0052\u0046",_fgded .RF );_agdad .SetIfNotNil ("\u0044\u0065\u0073\u0063",_fgded .Desc );
|
||
_agdad .SetIfNotNil ("\u0043\u0049",_fgded .CI );_agdad .SetIfNotNil ("\u0041\u0046\u0052\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070",_fgded .AFRelationship );return _fgded ._cbfc ;};var _ pdfFont =(*pdfFontType3 )(nil );
|
||
|
||
// NewPdfAnnotationSquiggly returns a new text squiggly annotation.
|
||
func NewPdfAnnotationSquiggly ()*PdfAnnotationSquiggly {_cgb :=NewPdfAnnotation ();_afd :=&PdfAnnotationSquiggly {};_afd .PdfAnnotation =_cgb ;_afd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_cgb .SetContext (_afd );return _afd ;};
|
||
|
||
// NewPdfActionMovie returns a new "movie" action.
|
||
func NewPdfActionMovie ()*PdfActionMovie {_db :=NewPdfAction ();_ged :=&PdfActionMovie {};_ged .PdfAction =_db ;_db .SetContext (_ged );return _ged ;};
|
||
|
||
// PdfShadingType3 is a Radial shading.
|
||
type PdfShadingType3 struct{*PdfShading ;Coords *_fd .PdfObjectArray ;Domain *_fd .PdfObjectArray ;Function []PdfFunction ;Extend *_fd .PdfObjectArray ;};
|
||
|
||
// 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 *_fd .PdfParser ;DiffPolicy _gfg .DiffPolicy ;};func (_ecdd *PdfField )inherit (_fgcb func (*PdfField )bool )(bool ,error ){_ffeg :=map[*PdfField ]bool {};_gcdad :=false ;_cebf :=_ecdd ;for _cebf !=nil {if _ ,_agddf :=_ffeg [_cebf ];
|
||
_agddf {return false ,_ad .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};_ddga :=_fgcb (_cebf );if _ddga {_gcdad =true ;break ;};_ffeg [_cebf ]=true ;_cebf =_cebf .Parent ;};return _gcdad ,nil ;
|
||
};func (_eca *PdfReader )newPdfAnnotationFileAttachmentFromDict (_gagf *_fd .PdfObjectDictionary )(*PdfAnnotationFileAttachment ,error ){_cbee :=PdfAnnotationFileAttachment {};_cag ,_fcfg :=_eca .newPdfAnnotationMarkupFromDict (_gagf );if _fcfg !=nil {return nil ,_fcfg ;
|
||
};_cbee .PdfAnnotationMarkup =_cag ;_cbee .FS =_gagf .Get ("\u0046\u0053");_cbee .Name =_gagf .Get ("\u004e\u0061\u006d\u0065");return &_cbee ,nil ;};
|
||
|
||
// NewGrayImageFromGoImage creates a new grayscale unidoc Image from a golang Image.
|
||
func (_egedd DefaultImageHandler )NewGrayImageFromGoImage (goimg _gb .Image )(*Image ,error ){_cbafa :=goimg .Bounds ();_gfea :=&Image {Width :int64 (_cbafa .Dx ()),Height :int64 (_cbafa .Dy ()),ColorComponents :1,BitsPerComponent :8};switch _dfee :=goimg .(type ){case *_gb .Gray :if len (_dfee .Pix )!=_cbafa .Dx ()*_cbafa .Dy (){_ebbcg ,_beggf :=_gbed .GrayConverter .Convert (goimg );
|
||
if _beggf !=nil {return nil ,_beggf ;};_gfea .Data =_ebbcg .Pix ();}else {_gfea .Data =_dfee .Pix ;};case *_gb .Gray16 :_gfea .BitsPerComponent =16;if len (_dfee .Pix )!=_cbafa .Dx ()*_cbafa .Dy ()*2{_ffde ,_bfdd :=_gbed .Gray16Converter .Convert (goimg );
|
||
if _bfdd !=nil {return nil ,_bfdd ;};_gfea .Data =_ffde .Pix ();}else {_gfea .Data =_dfee .Pix ;};case _gbed .Image :_gbffb :=_dfee .Base ();if _gbffb .ColorComponents ==1{_gfea .BitsPerComponent =int64 (_gbffb .BitsPerComponent );_gfea .Data =_gbffb .Data ;
|
||
return _gfea ,nil ;};_acec ,_bgbdg :=_gbed .GrayConverter .Convert (goimg );if _bgbdg !=nil {return nil ,_bgbdg ;};_gfea .Data =_acec .Pix ();default:_cadbg ,_bdgg :=_gbed .GrayConverter .Convert (goimg );if _bdgg !=nil {return nil ,_bdgg ;};_gfea .Data =_cadbg .Pix ();
|
||
};return _gfea ,nil ;};
|
||
|
||
// PdfShadingPatternType3 is shading patterns that will use a Type 3 shading pattern (Radial).
|
||
type PdfShadingPatternType3 struct{*PdfPattern ;Shading *PdfShadingType3 ;Matrix *_fd .PdfObjectArray ;ExtGState _fd .PdfObject ;};
|
||
|
||
// GetParamsDict returns *core.PdfObjectDictionary with a set of basic image parameters.
|
||
func (_bfbdd *Image )GetParamsDict ()*_fd .PdfObjectDictionary {_fbefa :=_fd .MakeDict ();_fbefa .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (_bfbdd .Width ));_fbefa .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (_bfbdd .Height ));
|
||
_fbefa .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_bfbdd .ColorComponents )));_fbefa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (_bfbdd .BitsPerComponent ));
|
||
return _fbefa ;};
|
||
|
||
// GetContext returns a reference to the subpattern entry: either PdfTilingPattern or PdfShadingPattern.
|
||
func (_adbg *PdfPattern )GetContext ()PdfModel {return _adbg ._dccfd };func _adedc ()*modelManager {_fgaa :=modelManager {};_fgaa ._eeead =map[PdfModel ]_fd .PdfObject {};_fgaa ._aabd =map[_fd .PdfObject ]PdfModel {};return &_fgaa ;};
|
||
|
||
// 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{_bdcdg *_fd .PdfIndirectObject ;Certs []*_fd .PdfObjectStream ;OCSPs []*_fd .PdfObjectStream ;CRLs []*_fd .PdfObjectStream ;VRI map[string ]*VRI ;_ffbg map[string ]*_fd .PdfObjectStream ;_baceg map[string ]*_fd .PdfObjectStream ;_bgacf map[string ]*_fd .PdfObjectStream ;
|
||
};
|
||
|
||
// PdfShadingType6 is a Coons patch mesh.
|
||
type PdfShadingType6 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};
|
||
|
||
// SetContext set the sub annotation (context).
|
||
func (_fggbe *PdfShading )SetContext (ctx PdfModel ){_fggbe ._cgfce =ctx };
|
||
|
||
// 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 _fd .PdfObjectArray )(*PdfRectangle ,error ){_facba :=PdfRectangle {};if arr .Len ()!=4{return nil ,_ad .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 _aegeg error ;_facba .Llx ,_aegeg =_fd .GetNumberAsFloat (arr .Get (0));if _aegeg !=nil {return nil ,_aegeg ;};_facba .Lly ,_aegeg =_fd .GetNumberAsFloat (arr .Get (1));if _aegeg !=nil {return nil ,_aegeg ;};_facba .Urx ,_aegeg =_fd .GetNumberAsFloat (arr .Get (2));
|
||
if _aegeg !=nil {return nil ,_aegeg ;};_facba .Ury ,_aegeg =_fd .GetNumberAsFloat (arr .Get (3));if _aegeg !=nil {return nil ,_aegeg ;};return &_facba ,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{_faaf *_fd .PdfParser ;_cbfcd _fd .PdfObject ;_gaag *_fd .PdfIndirectObject ;_dddeg *_fd .PdfObjectDictionary ;_bbfca []*_fd .PdfIndirectObject ;PageList []*PdfPage ;_fdeae int ;_gabca *_fd .PdfObjectDictionary ;_aceac *PdfOutlineTreeNode ;
|
||
AcroForm *PdfAcroForm ;DSS *DSS ;Rotate *int64 ;_cggae *Permissions ;_dbggb map[*PdfReader ]*PdfReader ;_afcee []*PdfReader ;_fbabb *modelManager ;_gfdda bool ;_cedebc map[_fd .PdfObject ]struct{};_gcafg _bc .ReadSeeker ;_ecbab string ;_agdae bool ;_badf *ReaderOpts ;
|
||
_gaggbb bool ;};
|
||
|
||
// GetPerms returns the Permissions dictionary
|
||
func (_cefd *PdfReader )GetPerms ()*Permissions {return _cefd ._cggae };func _dcafe ()string {return _ag .Version };
|
||
|
||
// ColorToRGB converts an Indexed color to an RGB color.
|
||
func (_dbbe *PdfColorspaceSpecialIndexed )ColorToRGB (color PdfColor )(PdfColor ,error ){if _dbbe .Base ==nil {return nil ,_ad .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 _dbbe .Base .ColorToRGB (color );};
|
||
|
||
// Val returns the value of the color.
|
||
func (_fgga *PdfColorCalGray )Val ()float64 {return float64 (*_fgga )};
|
||
|
||
// NewPdfAnnotationCaret returns a new caret annotation.
|
||
func NewPdfAnnotationCaret ()*PdfAnnotationCaret {_fgdc :=NewPdfAnnotation ();_fdcc :=&PdfAnnotationCaret {};_fdcc .PdfAnnotation =_fgdc ;_fdcc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fgdc .SetContext (_fdcc );return _fdcc ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_ddege *pdfFontType3 )ToPdfObject ()_fd .PdfObject {if _ddege ._fcac ==nil {_ddege ._fcac =&_fd .PdfIndirectObject {};};_agfga :=_ddege .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0033");_ddege ._fcac .PdfObject =_agfga ;if _ddege .FirstChar !=nil {_agfga .Set ("\u0046i\u0072\u0073\u0074\u0043\u0068\u0061r",_ddege .FirstChar );
|
||
};if _ddege .LastChar !=nil {_agfga .Set ("\u004c\u0061\u0073\u0074\u0043\u0068\u0061\u0072",_ddege .LastChar );};if _ddege .Widths !=nil {_agfga .Set ("\u0057\u0069\u0064\u0074\u0068\u0073",_ddege .Widths );};if _ddege .Encoding !=nil {_agfga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ddege .Encoding );
|
||
}else if _ddege ._eceb !=nil {_ggeb :=_ddege ._eceb .ToPdfObject ();if _ggeb !=nil {_agfga .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_ggeb );};};if _ddege .FontBBox !=nil {_agfga .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_ddege .FontBBox );
|
||
};if _ddege .FontMatrix !=nil {_agfga .Set ("\u0046\u006f\u006e\u0074\u004d\u0061\u0074\u0069\u0072\u0078",_ddege .FontMatrix );};if _ddege .CharProcs !=nil {_agfga .Set ("\u0043h\u0061\u0072\u0050\u0072\u006f\u0063s",_ddege .CharProcs );};if _ddege .Resources !=nil {_agfga .Set ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_ddege .Resources );
|
||
};return _ddege ._fcac ;};
|
||
|
||
// 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 (_ebfcd *PdfSignature )bool ;
|
||
|
||
// Validate validates a PDF signature against a given digest (hash) such as that determined
|
||
// for an input file. Returns validation results.
|
||
Validate (_efged *PdfSignature ,_cgfg 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 (_gdga *PdfSignature )error ;
|
||
|
||
// NewDigest creates a new digest/hasher based on the signature dictionary and handler.
|
||
NewDigest (_bbbbd *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 (_abgcg *PdfSignature ,_cccc Hasher )error ;};
|
||
|
||
// Items returns all children outline items.
|
||
func (_gecf *Outline )Items ()[]*OutlineItem {return _gecf .Entries };func _cbea ()string {_feadd .Lock ();defer _feadd .Unlock ();return _gcba };
|
||
|
||
// 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 (_bdfb PdfColor )(PdfColor ,error );
|
||
|
||
// GetNumComponents returns the number of components in the PdfColorspace.
|
||
GetNumComponents ()int ;
|
||
|
||
// ToPdfObject returns a PdfObject representation of the PdfColorspace.
|
||
ToPdfObject ()_fd .PdfObject ;
|
||
|
||
// ColorFromPdfObjects returns a PdfColor in the given PdfColorspace from an array of PdfObject where each
|
||
// PdfObject represents a numeric value.
|
||
ColorFromPdfObjects (_gfff []_fd .PdfObject )(PdfColor ,error );
|
||
|
||
// ColorFromFloats returns a new PdfColor based on input color components for a given PdfColorspace.
|
||
ColorFromFloats (_beda []float64 )(PdfColor ,error );
|
||
|
||
// DecodeArray returns the Decode array for the PdfColorSpace, i.e. the range of each component.
|
||
DecodeArray ()[]float64 ;};
|
||
|
||
// NewEmbeddedFile constructs a new EmbeddedFile object from supplied file.
|
||
// The file type of the file would be detected automatically.
|
||
func NewEmbeddedFile (path string )(*EmbeddedFile ,error ){_cfccd ,_caee :=_gbe .ReadFile (path );if _caee !=nil {return nil ,_caee ;};_dfce :=_dff .Detect (_cfccd );_ddeg :=_dad .Sum (_cfccd );_ceef :=&EmbeddedFile {Name :_gf .Base (path ),Content :_cfccd ,FileType :_dfce .String (),Hash :_f .EncodeToString (_ddeg [:])};
|
||
return _ceef ,nil ;};func (_dbcge *PdfReader )newPdfFieldSignatureFromDict (_bbca *_fd .PdfObjectDictionary )(*PdfFieldSignature ,error ){_dgfbb :=&PdfFieldSignature {};_eegc ,_dgcc :=_fd .GetIndirect (_bbca .Get ("\u0056"));if _dgcc {var _adcc error ;
|
||
_dgfbb .V ,_adcc =_dbcge .newPdfSignatureFromIndirect (_eegc );if _adcc !=nil {return nil ,_adcc ;};};_dgfbb .Lock ,_ =_fd .GetIndirect (_bbca .Get ("\u004c\u006f\u0063\u006b"));_dgfbb .SV ,_ =_fd .GetIndirect (_bbca .Get ("\u0053\u0056"));return _dgfbb ,nil ;
|
||
};
|
||
|
||
// String returns a string that describes `base`.
|
||
func (_cdece fontCommon )String ()string {return _dc .Sprintf ("\u0046\u004f\u004e\u0054\u007b\u0025\u0073\u007d",_cdece .coreString ());};func (_bbcd *PdfReader )newPdfAnnotationFreeTextFromDict (_gddd *_fd .PdfObjectDictionary )(*PdfAnnotationFreeText ,error ){_cbcc :=PdfAnnotationFreeText {};
|
||
_gcdf ,_ffce :=_bbcd .newPdfAnnotationMarkupFromDict (_gddd );if _ffce !=nil {return nil ,_ffce ;};_cbcc .PdfAnnotationMarkup =_gcdf ;_cbcc .DA =_gddd .Get ("\u0044\u0041");_cbcc .Q =_gddd .Get ("\u0051");_cbcc .RC =_gddd .Get ("\u0052\u0043");_cbcc .DS =_gddd .Get ("\u0044\u0053");
|
||
_cbcc .CL =_gddd .Get ("\u0043\u004c");_cbcc .IT =_gddd .Get ("\u0049\u0054");_cbcc .BE =_gddd .Get ("\u0042\u0045");_cbcc .RD =_gddd .Get ("\u0052\u0044");_cbcc .BS =_gddd .Get ("\u0042\u0053");_cbcc .LE =_gddd .Get ("\u004c\u0045");return &_cbcc ,nil ;
|
||
};
|
||
|
||
// EncryptOptions represents encryption options for an output PDF.
|
||
type EncryptOptions struct{Permissions _dfg .Permissions ;Algorithm EncryptionAlgorithm ;};
|
||
|
||
// PdfShadingType7 is a Tensor-product patch mesh.
|
||
type PdfShadingType7 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;BitsPerFlag *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};func (_eageab *pdfFontSimple )updateStandard14Font (){_geaab ,_ebgbb :=_eageab .Encoder ().(_ee .SimpleEncoder );
|
||
if !_ebgbb {_ag .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",_eageab .Encoder (),_eageab );return ;
|
||
};_fecff :=_geaab .Charcodes ();_eageab ._bafeg =make (map[_ee .CharCode ]float64 ,len (_fecff ));for _ ,_fbcg :=range _fecff {_acbg ,_ :=_geaab .CharcodeToRune (_fbcg );_adca ,_ :=_eageab ._dcgdd .Read (_acbg );_eageab ._bafeg [_fbcg ]=_adca .Wx ;};};
|
||
|
||
|
||
// ColorFromPdfObjects returns a new PdfColor based on the input slice of color
|
||
// component PDF objects.
|
||
func (_dbcbg *PdfColorspaceICCBased )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if _dbcbg .Alternate ==nil {if _dbcbg .N ==1{_cddee :=NewPdfColorspaceDeviceGray ();return _cddee .ColorFromPdfObjects (objects );}else if _dbcbg .N ==3{_egfd :=NewPdfColorspaceDeviceRGB ();
|
||
return _egfd .ColorFromPdfObjects (objects );}else if _dbcbg .N ==4{_agag :=NewPdfColorspaceDeviceCMYK ();return _agag .ColorFromPdfObjects (objects );}else {return nil ,_ad .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 _dbcbg .Alternate .ColorFromPdfObjects (objects );};
|
||
|
||
// B returns the value of the B component of the color.
|
||
func (_ecbeb *PdfColorLab )B ()float64 {return _ecbeb [2]};
|
||
|
||
// PdfFieldText represents a text field where user can enter text.
|
||
type PdfFieldText struct{*PdfField ;DA *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;DS *_fd .PdfObjectString ;RV _fd .PdfObject ;MaxLen *_fd .PdfObjectInteger ;};
|
||
|
||
// StdFontName represents name of a standard font.
|
||
type StdFontName =_cf .StdFontName ;
|
||
|
||
// ToPdfObject returns the PDF representation of the shading pattern.
|
||
func (_dggbd *PdfShadingPatternType2 )ToPdfObject ()_fd .PdfObject {_dggbd .PdfPattern .ToPdfObject ();_gdgga :=_dggbd .getDict ();if _dggbd .Shading !=nil {_gdgga .Set ("\u0053h\u0061\u0064\u0069\u006e\u0067",_dggbd .Shading .ToPdfObject ());};if _dggbd .Matrix !=nil {_gdgga .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_dggbd .Matrix );
|
||
};if _dggbd .ExtGState !=nil {_gdgga .Set ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_dggbd .ExtGState );};return _dggbd ._gcgba ;};func (_cgcfc *PdfWriter )optimize ()error {if _cgcfc ._cffdf ==nil {return nil ;};var _gfaga error ;_cgcfc ._agfbf ,_gfaga =_cgcfc ._cffdf .Optimize (_cgcfc ._agfbf );
|
||
if _gfaga !=nil {return _gfaga ;};_fegcc :=make (map[_fd .PdfObject ]struct{},len (_cgcfc ._agfbf ));for _ ,_ffeaf :=range _cgcfc ._agfbf {_fegcc [_ffeaf ]=struct{}{};};_cgcfc ._agfaff =_fegcc ;return nil ;};
|
||
|
||
// PdfAnnotation represents an annotation in PDF (section 12.5 p. 389).
|
||
type PdfAnnotation struct{_cfda PdfModel ;Rect _fd .PdfObject ;Contents _fd .PdfObject ;P _fd .PdfObject ;NM _fd .PdfObject ;M _fd .PdfObject ;F _fd .PdfObject ;AP _fd .PdfObject ;AS _fd .PdfObject ;Border _fd .PdfObject ;C _fd .PdfObject ;StructParent _fd .PdfObject ;
|
||
OC _fd .PdfObject ;_aeb *_fd .PdfIndirectObject ;};
|
||
|
||
// ToPdfObject implements model.PdfModel interface.
|
||
func (_cbfd *PdfOutputIntent )ToPdfObject ()_fd .PdfObject {if _cbfd ._fbbec ==nil {_cbfd ._fbbec =_fd .MakeDict ();};_bgfd :=_cbfd ._fbbec ;if _cbfd .Type !=""{_bgfd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName (_cbfd .Type ));};_bgfd .Set ("\u0053",_fd .MakeName (_cbfd .S .String ()));
|
||
if _cbfd .OutputCondition !=""{_bgfd .Set ("\u004fu\u0074p\u0075\u0074\u0043\u006f\u006e\u0064\u0069\u0074\u0069\u006f\u006e",_fd .MakeString (_cbfd .OutputCondition ));};_bgfd .Set ("\u004fu\u0074\u0070\u0075\u0074C\u006f\u006e\u0064\u0069\u0074i\u006fn\u0049d\u0065\u006e\u0074\u0069\u0066\u0069\u0065r",_fd .MakeString (_cbfd .OutputConditionIdentifier ));
|
||
_bgfd .Set ("\u0052\u0065\u0067i\u0073\u0074\u0072\u0079\u004e\u0061\u006d\u0065",_fd .MakeString (_cbfd .RegistryName ));if _cbfd .Info !=""{_bgfd .Set ("\u0049\u006e\u0066\u006f",_fd .MakeString (_cbfd .Info ));};if len (_cbfd .DestOutputProfile )!=0{_fedge ,_egag :=_fd .MakeStream (_cbfd .DestOutputProfile ,_fd .NewFlateEncoder ());
|
||
if _egag !=nil {_ag .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",_egag );
|
||
};_fedge .PdfObjectDictionary .Set ("\u004e",_fd .MakeInteger (int64 (_cbfd .ColorComponents )));_aacae :=make ([]float64 ,_cbfd .ColorComponents *2);for _edgcb :=0;_edgcb < _cbfd .ColorComponents *2;_edgcb ++{_agadg :=0.0;if _edgcb %2!=0{_agadg =1.0;};
|
||
_aacae [_edgcb ]=_agadg ;};_fedge .PdfObjectDictionary .Set ("\u0052\u0061\u006eg\u0065",_fd .MakeArrayFromFloats (_aacae ));_bgfd .Set ("\u0044\u0065\u0073\u0074\u004f\u0075\u0074\u0070\u0075\u0074\u0050\u0072o\u0066\u0069\u006c\u0065",_fedge );};return _bgfd ;
|
||
};func (_gggeb *LTV )getOCSPs (_baegf []*_gff .Certificate ,_egcc map[string ]*_gff .Certificate )([][]byte ,error ){_gbga :=make ([][]byte ,0,len (_baegf ));for _ ,_fegee :=range _baegf {for _ ,_daedf :=range _fegee .OCSPServer {if _gggeb .CertClient .IsCA (_fegee ){continue ;
|
||
};_ggabd ,_cdgfa :=_egcc [_fegee .Issuer .CommonName ];if !_cdgfa {_ag .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 ;};_ ,_geefe ,_eabbf :=_gggeb .OCSPClient .MakeRequest (_daedf ,_fegee ,_ggabd );if _eabbf !=nil {_ag .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",_eabbf );
|
||
continue ;};_gbga =append (_gbga ,_geefe );};};return _gbga ,nil ;};
|
||
|
||
// RemovePage removes a page by number.
|
||
func (_faaa *PdfAppender )RemovePage (pageNum int ){_ceb :=pageNum -1;_faaa ._gbca =append (_faaa ._gbca [0:_ceb ],_faaa ._gbca [pageNum :]...);};func (_ffefg *PdfWriter )setDocumentIDs (_ecfdd ,_agcbb string ){_ffefg ._bgdef =_fd .MakeArray (_fd .MakeHexString (_ecfdd ),_fd .MakeHexString (_agcbb ));
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the VRI dictionary.
|
||
func (_cfdc *VRI )ToPdfObject ()*_fd .PdfObjectDictionary {_fbebb :=_fd .MakeDict ();_fbebb .SetIfNotNil (_fd .PdfObjectName ("\u0043\u0065\u0072\u0074"),_gfafb (_cfdc .Cert ));_fbebb .SetIfNotNil (_fd .PdfObjectName ("\u004f\u0043\u0053\u0050"),_gfafb (_cfdc .OCSP ));
|
||
_fbebb .SetIfNotNil (_fd .PdfObjectName ("\u0043\u0052\u004c"),_gfafb (_cfdc .CRL ));_fbebb .SetIfNotNil ("\u0054\u0055",_cfdc .TU );_fbebb .SetIfNotNil ("\u0054\u0053",_cfdc .TS );return _fbebb ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for Indexed).
|
||
func (_cafc *PdfColorspaceSpecialIndexed )GetNumComponents ()int {return 1};
|
||
|
||
// PdfDate represents a date, which is a PDF string of the form:
|
||
// (D:YYYYMMDDHHmmSSOHH'mm)
|
||
type PdfDate struct{_bdaae int64 ;_gbdf int64 ;_afcde int64 ;_bgagg int64 ;_gbgef int64 ;_cfdgb int64 ;_fcdea byte ;_bbea int64 ;_gdeac int64 ;};
|
||
|
||
// GetRotate gets the inheritable rotate value, either from the page
|
||
// or a higher up page/pages struct.
|
||
func (_eaged *PdfPage )GetRotate ()(int64 ,error ){if _eaged .Rotate !=nil {return *_eaged .Rotate ,nil ;};_eebbc :=_eaged .Parent ;for _eebbc !=nil {_gaacb ,_fggga :=_fd .GetDict (_eebbc );if !_fggga {return 0,_ad .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 _gcbedb :=_gaacb .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_gcbedb !=nil {_dfgda ,_fadeb :=_fd .GetInt (_gcbedb );if !_fadeb {return 0,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0072\u006f\u0074a\u0074\u0065\u0020\u0076al\u0075\u0065");
|
||
};if _dfgda !=nil {return int64 (*_dfgda ),nil ;};return 0,_ad .New ("\u0072\u006f\u0074\u0061te\u0020\u0076\u0061\u006c\u0075\u0065\u0020\u0069\u0073\u0020\u006e\u0069\u006c");};_eebbc =_gaacb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");};return 0,_ad .New ("\u0072o\u0074a\u0074\u0065\u0020\u006e\u006ft\u0020\u0064e\u0066\u0069\u006e\u0065\u0064");
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the colorspace.
|
||
func (_cfcb *PdfColorspaceDeviceCMYK )ToPdfObject ()_fd .PdfObject {return _fd .MakeName ("\u0044\u0065\u0076\u0069\u0063\u0065\u0043\u004d\u0059\u004b");};
|
||
|
||
// ColorToRGB converts a CalRGB color to an RGB color.
|
||
func (_cefad *PdfColorspaceCalRGB )ColorToRGB (color PdfColor )(PdfColor ,error ){_dcce ,_cegb :=color .(*PdfColorCalRGB );if !_cegb {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_gecd :=_dcce .A ();_feea :=_dcce .B ();_fafd :=_dcce .C ();X :=_cefad .Matrix [0]*_af .Pow (_gecd ,_cefad .Gamma [0])+_cefad .Matrix [3]*_af .Pow (_feea ,_cefad .Gamma [1])+_cefad .Matrix [6]*_af .Pow (_fafd ,_cefad .Gamma [2]);
|
||
Y :=_cefad .Matrix [1]*_af .Pow (_gecd ,_cefad .Gamma [0])+_cefad .Matrix [4]*_af .Pow (_feea ,_cefad .Gamma [1])+_cefad .Matrix [7]*_af .Pow (_fafd ,_cefad .Gamma [2]);Z :=_cefad .Matrix [2]*_af .Pow (_gecd ,_cefad .Gamma [0])+_cefad .Matrix [5]*_af .Pow (_feea ,_cefad .Gamma [1])+_cefad .Matrix [8]*_af .Pow (_fafd ,_cefad .Gamma [2]);
|
||
_aaab :=3.240479*X +-1.537150*Y +-0.498535*Z ;_ecgf :=-0.969256*X +1.875992*Y +0.041556*Z ;_dbae :=0.055648*X +-0.204043*Y +1.057311*Z ;_aaab =_af .Min (_af .Max (_aaab ,0),1.0);_ecgf =_af .Min (_af .Max (_ecgf ,0),1.0);_dbae =_af .Min (_af .Max (_dbae ,0),1.0);
|
||
return NewPdfColorDeviceRGB (_aaab ,_ecgf ,_dbae ),nil ;};
|
||
|
||
// GetContentStream returns the XObject Form's content stream.
|
||
func (_cagda *XObjectForm )GetContentStream ()([]byte ,error ){_ebdbb ,_fbfef :=_fd .DecodeStream (_cagda ._cebfa );if _fbfef !=nil {return nil ,_fbfef ;};return _ebdbb ,nil ;};
|
||
|
||
// PdfAnnotationCircle represents Circle annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationCircle struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_dgcbe *PdfShadingType4 )ToPdfObject ()_fd .PdfObject {_dgcbe .PdfShading .ToPdfObject ();_bcaaa ,_bgfce :=_dgcbe .getShadingDict ();if _bgfce !=nil {_ag .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 _dgcbe .BitsPerCoordinate !=nil {_bcaaa .Set ("\u0042\u0069\u0074\u0073\u0050\u0065\u0072\u0043\u006f\u006f\u0072\u0064i\u006e\u0061\u0074\u0065",_dgcbe .BitsPerCoordinate );};if _dgcbe .BitsPerComponent !=nil {_bcaaa .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_dgcbe .BitsPerComponent );
|
||
};if _dgcbe .BitsPerFlag !=nil {_bcaaa .Set ("B\u0069\u0074\u0073\u0050\u0065\u0072\u0046\u006c\u0061\u0067",_dgcbe .BitsPerFlag );};if _dgcbe .Decode !=nil {_bcaaa .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_dgcbe .Decode );};if _dgcbe .Function !=nil {if len (_dgcbe .Function )==1{_bcaaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_dgcbe .Function [0].ToPdfObject ());
|
||
}else {_bgfgc :=_fd .MakeArray ();for _ ,_dbfd :=range _dgcbe .Function {_bgfgc .Append (_dbfd .ToPdfObject ());};_bcaaa .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bgfgc );};};return _dgcbe ._cdgfd ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 4 for a CMYK32 device.
|
||
func (_acgf *PdfColorspaceDeviceCMYK )GetNumComponents ()int {return 4};
|
||
|
||
// NewPdfShadingPatternType2 creates an empty shading pattern type 2 object.
|
||
func NewPdfShadingPatternType2 ()*PdfShadingPatternType2 {_fdebc :=&PdfShadingPatternType2 {};_fdebc .Matrix =_fd .MakeArrayFromIntegers ([]int {1,0,0,1,0,0});_fdebc .PdfPattern =&PdfPattern {};_fdebc .PdfPattern .PatternType =int64 (*_fd .MakeInteger (2));
|
||
_fdebc .PdfPattern ._dccfd =_fdebc ;_fdebc .PdfPattern ._gcgba =_fd .MakeIndirectObject (_fd .MakeDict ());return _fdebc ;};
|
||
|
||
// 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 (_fecdd *PdfSignature ,_fcafb Hasher ,_gbaag SignatureHandlerDocMDPParams )(SignatureValidationResult ,error );};
|
||
|
||
// PdfAnnotationPolyLine represents PolyLine annotations.
|
||
// (Section 12.5.6.9).
|
||
type PdfAnnotationPolyLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Vertices _fd .PdfObject ;LE _fd .PdfObject ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;IT _fd .PdfObject ;Measure _fd .PdfObject ;};
|
||
|
||
// 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 _fd .PdfObject )(_fd .PdfObjectName ,error ){var _gacgf *_fd .PdfObjectName ;var _ggbe *_fd .PdfObjectArray ;if _abcaf ,_gafg :=obj .(*_fd .PdfIndirectObject );_gafg {if _aedcg ,_edafb :=_abcaf .PdfObject .(*_fd .PdfObjectArray );
|
||
_edafb {_ggbe =_aedcg ;}else if _eaeb ,_acfb :=_abcaf .PdfObject .(*_fd .PdfObjectName );_acfb {_gacgf =_eaeb ;};}else if _cgag ,_fdfc :=obj .(*_fd .PdfObjectArray );_fdfc {_ggbe =_cgag ;}else if _bbda ,_beff :=obj .(*_fd .PdfObjectName );_beff {_gacgf =_bbda ;
|
||
};if _gacgf !=nil {switch *_gacgf {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 *_gacgf ,nil ;case "\u0050a\u0074\u0074\u0065\u0072\u006e":return *_gacgf ,nil ;
|
||
};};if _ggbe !=nil &&_ggbe .Len ()> 0{if _cfaa ,_eed :=_ggbe .Get (0).(*_fd .PdfObjectName );_eed {switch *_cfaa {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 _ggbe .Len ()==1{return *_cfaa ,nil ;
|
||
};case "\u0043a\u006c\u0047\u0072\u0061\u0079","\u0043\u0061\u006c\u0052\u0047\u0042","\u004c\u0061\u0062":return *_cfaa ,nil ;case "\u0049\u0043\u0043\u0042\u0061\u0073\u0065\u0064","\u0050a\u0074\u0074\u0065\u0072\u006e","\u0049n\u0064\u0065\u0078\u0065\u0064":return *_cfaa ,nil ;
|
||
case "\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006f\u006e","\u0044e\u0076\u0069\u0063\u0065\u004e":return *_cfaa ,nil ;};};};return "",nil ;};
|
||
|
||
// NewPdfAnnotationStrikeOut returns a new text strikeout annotation.
|
||
func NewPdfAnnotationStrikeOut ()*PdfAnnotationStrikeOut {_ccg :=NewPdfAnnotation ();_bgbd :=&PdfAnnotationStrikeOut {};_bgbd .PdfAnnotation =_ccg ;_bgbd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ccg .SetContext (_bgbd );return _bgbd ;};func (_abccg *pdfFontType0 )subsetRegistered ()error {_gdab ,_gacc :=_abccg .DescendantFont ._gbaac .(*pdfCIDFontType2 );
|
||
if !_gacc {_ag .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",_abccg .DescendantFont );return nil ;};if _gdab ==nil {return nil ;
|
||
};if _gdab ._babe ==nil {_ag .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 _abccg ._agbe ==nil {_ag .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 ;};_agddg ,_gacc :=_fd .GetStream (_gdab ._babe .FontFile2 );if !_gacc {_ag .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 _ad .New ("\u0066\u006f\u006e\u0074fi\u006c\u0065\u0032\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064");};_aefec ,_fgbb :=_fd .DecodeStream (_agddg );if _fgbb !=nil {_ag .Log .Debug ("\u0044\u0065c\u006f\u0064\u0065 \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_fgbb );
|
||
return _fgbb ;};_ebfcb ,_fgbb :=_geb .Parse (_bf .NewReader (_aefec ));if _fgbb !=nil {_ag .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 (_agddg .Stream ));
|
||
return _fgbb ;};var _ccafc []rune ;var _edce *_geb .Font ;switch _ffcab :=_abccg ._agbe .(type ){case *_ee .TrueTypeFontEncoder :_ccafc =_ffcab .RegisteredRunes ();_edce ,_fgbb =_ebfcb .SubsetKeepRunes (_ccafc );if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );
|
||
return _fgbb ;};_ffcab .SubsetRegistered ();case *_ee .IdentityEncoder :_ccafc =_ffcab .RegisteredRunes ();_cgffd :=make ([]_geb .GlyphIndex ,len (_ccafc ));for _cbge ,_gcadd :=range _ccafc {_cgffd [_cbge ]=_geb .GlyphIndex (_gcadd );};_edce ,_fgbb =_ebfcb .SubsetKeepIndices (_cgffd );
|
||
if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );return _fgbb ;};case _ee .SimpleEncoder :_aeage :=_ffcab .Charcodes ();for _ ,_efgba :=range _aeage {_ebdeg ,_cdfaf :=_ffcab .CharcodeToRune (_efgba );if !_cdfaf {_ag .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",_efgba );
|
||
continue ;};_ccafc =append (_ccafc ,_ebdeg );};default:return _dc .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",_abccg ._agbe );
|
||
};var _gcceb _bf .Buffer ;_fgbb =_edce .Write (&_gcceb );if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );return _fgbb ;};if _abccg ._dgdg !=nil {_dcbdd :=make (map[_gd .CharCode ]rune ,len (_ccafc ));for _ ,_aaffa :=range _ccafc {_defdf ,_fbfde :=_abccg ._agbe .RuneToCharcode (_aaffa );
|
||
if !_fbfde {continue ;};_dcbdd [_gd .CharCode (_defdf )]=_aaffa ;};_abccg ._dgdg =_gd .NewToUnicodeCMap (_dcbdd );};_agddg ,_fgbb =_fd .MakeStream (_gcceb .Bytes (),_fd .NewFlateEncoder ());if _fgbb !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fgbb );
|
||
return _fgbb ;};_agddg .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (_gcceb .Len ())));if _aeca ,_dgeg :=_fd .GetStream (_gdab ._babe .FontFile2 );_dgeg {*_aeca =*_agddg ;}else {_gdab ._babe .FontFile2 =_agddg ;};_ecged :=_fagfg ();
|
||
if len (_abccg ._ffedb )> 0{_abccg ._ffedb =_febca (_abccg ._ffedb ,_ecged );};if len (_gdab ._ffedb )> 0{_gdab ._ffedb =_febca (_gdab ._ffedb ,_ecged );};if len (_abccg ._cabb )> 0{_abccg ._cabb =_febca (_abccg ._cabb ,_ecged );};if _gdab ._babe !=nil {_cbacg ,_afdf :=_fd .GetName (_gdab ._babe .FontName );
|
||
if _afdf &&len (_cbacg .String ())> 0{_bbbc :=_febca (_cbacg .String (),_ecged );_gdab ._babe .FontName =_fd .MakeName (_bbbc );};};return nil ;};func (_fded *PdfColorspaceDeviceRGB )String ()string {return "\u0044e\u0076\u0069\u0063\u0065\u0052\u0047B";
|
||
};
|
||
|
||
// DecodeArray returns the range of color component values in CalGray colorspace.
|
||
func (_afac *PdfColorspaceCalGray )DecodeArray ()[]float64 {return []float64 {0.0,1.0}};
|
||
|
||
// Mask returns the uin32 bitmask for the specific flag.
|
||
func (_gaggd FieldFlag )Mask ()uint32 {return uint32 (_gaggd )};
|
||
|
||
// GetNumComponents returns the number of color components.
|
||
func (_accf *PdfColorspaceICCBased )GetNumComponents ()int {return _accf .N };
|
||
|
||
// IsSimple returns true if `font` is a simple font.
|
||
func (_fdca *PdfFont )IsSimple ()bool {_ ,_bcaf :=_fdca ._gbaac .(*pdfFontSimple );return _bcaf };func (_eggeed *PdfWriter )writeBytes (_cegae []byte ){if _eggeed ._bgfb !=nil {return ;};_dfefg ,_efbcg :=_eggeed ._abgaac .Write (_cegae );_eggeed ._bbcab +=int64 (_dfefg );
|
||
_eggeed ._bgfb =_efbcg ;};func (_gbad *pdfCIDFontType0 )getFontDescriptor ()*PdfFontDescriptor {return _gbad ._babe };
|
||
|
||
// SetPatternByName sets a pattern resource specified by keyName.
|
||
func (_bgbad *PdfPageResources )SetPatternByName (keyName _fd .PdfObjectName ,pattern _fd .PdfObject )error {if _bgbad .Pattern ==nil {_bgbad .Pattern =_fd .MakeDict ();};_bcbgd ,_adcgf :=_fd .GetDict (_bgbad .Pattern );if !_adcgf {return _fd .ErrTypeError ;
|
||
};_bcbgd .Set (keyName ,pattern );return nil ;};
|
||
|
||
// R returns the value of the red component of the color.
|
||
func (_decf *PdfColorDeviceRGB )R ()float64 {return _decf [0]};
|
||
|
||
// PdfFieldChoice represents a choice field which includes scrollable list boxes and combo boxes.
|
||
type PdfFieldChoice struct{*PdfField ;Opt *_fd .PdfObjectArray ;TI *_fd .PdfObjectInteger ;I *_fd .PdfObjectArray ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dd *PdfActionThread )ToPdfObject ()_fd .PdfObject {_dd .PdfAction .ToPdfObject ();_bda :=_dd ._bfb ;_efg :=_bda .PdfObject .(*_fd .PdfObjectDictionary );_efg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeThread )));if _dd .F !=nil {_efg .Set ("\u0046",_dd .F .ToPdfObject ());
|
||
};_efg .SetIfNotNil ("\u0044",_dd .D );_efg .SetIfNotNil ("\u0042",_dd .B );return _bda ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline (indirect object).
|
||
func (_bbfc *PdfOutline )GetContainingPdfObject ()_fd .PdfObject {return _bbfc ._fcef };
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_egdg *PdfAnnotationPopup )ToPdfObject ()_fd .PdfObject {_egdg .PdfAnnotation .ToPdfObject ();_ccgd :=_egdg ._aeb ;_ege :=_ccgd .PdfObject .(*_fd .PdfObjectDictionary );_ege .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0050\u006f\u0070u\u0070"));
|
||
_ege .SetIfNotNil ("\u0050\u0061\u0072\u0065\u006e\u0074",_egdg .Parent );_ege .SetIfNotNil ("\u004f\u0070\u0065\u006e",_egdg .Open );return _ccgd ;};
|
||
|
||
// 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 _bc .ReadSeeker )(*PdfReader ,error ){const _fdacgd ="\u006d\u006f\u0064\u0065l:\u004e\u0065\u0077\u0050\u0064\u0066\u0052\u0065\u0061\u0064\u0065\u0072\u004c\u0061z\u0079";return _daab (rs ,&ReaderOpts {LazyLoad :true },false ,_fdacgd );
|
||
};const (ButtonTypeCheckbox ButtonType =iota ;ButtonTypePush ButtonType =iota ;ButtonTypeRadio ButtonType =iota ;);func _dbaa (_fafgd _fd .PdfObject ,_ffgfb *fontCommon )(*_gd .CMap ,error ){_dfef ,_aedda :=_fd .GetStream (_fafgd );if !_aedda {_ag .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",_fafgd );
|
||
return nil ,_fd .ErrTypeError ;};_bgfa ,_bcgf :=_fd .DecodeStream (_dfef );if _bcgf !=nil {return nil ,_bcgf ;};_ecbfe ,_bcgf :=_gd .LoadCmapFromData (_bgfa ,!_ffgfb .isCIDFont ());if _bcgf !=nil {_ag .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",_dfef .ObjectNumber ,_bcgf );
|
||
};return _ecbfe ,_bcgf ;};
|
||
|
||
// NewXObjectImage returns a new XObjectImage.
|
||
func NewXObjectImage ()*XObjectImage {_efgad :=&XObjectImage {};_dbbgb :=&_fd .PdfObjectStream {};_dbbgb .PdfObjectDictionary =_fd .MakeDict ();_efgad ._bbcgd =_dbbgb ;return _efgad ;};
|
||
|
||
// ImageToGray returns a new grayscale image based on the passed in RGB image.
|
||
func (_bgcg *PdfColorspaceDeviceRGB )ImageToGray (img Image )(Image ,error ){if img .ColorComponents !=3{return img ,_ad .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");
|
||
};_ebae ,_gfee :=_gbed .NewImage (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,img .Data ,img ._gfffd ,img ._cdbdc );if _gfee !=nil {return img ,_gfee ;};_dcfe ,_gfee :=_gbed .GrayConverter .Convert (_ebae );if _gfee !=nil {return img ,_gfee ;
|
||
};return _eeafa (_dcfe .Base ()),nil ;};func _febca (_fcgdc ,_fcdfa string )string {if _gg .Contains (_fcgdc ,"\u002b"){_cafbc :=_gg .Split (_fcgdc ,"\u002b");if len (_cafbc )==2{_fcgdc =_cafbc [1];};};return _fcdfa +"\u002b"+_fcgdc ;};
|
||
|
||
// PdfActionResetForm represents a resetForm action.
|
||
type PdfActionResetForm struct{*PdfAction ;Fields _fd .PdfObject ;Flags _fd .PdfObject ;};
|
||
|
||
// PdfAnnotationCaret represents Caret annotations.
|
||
// (Section 12.5.6.11).
|
||
type PdfAnnotationCaret struct{*PdfAnnotation ;*PdfAnnotationMarkup ;RD _fd .PdfObject ;Sy _fd .PdfObject ;};
|
||
|
||
// GetExtGState gets the ExtGState specified by keyName. Returns a bool
|
||
// indicating whether it was found or not.
|
||
func (_fdaaa *PdfPageResources )GetExtGState (keyName _fd .PdfObjectName )(_fd .PdfObject ,bool ){if _fdaaa .ExtGState ==nil {return nil ,false ;};_gfgga ,_dedgd :=_fd .TraceToDirectObject (_fdaaa .ExtGState ).(*_fd .PdfObjectDictionary );if !_dedgd {_ag .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",_fdaaa .ExtGState );
|
||
return nil ,false ;};if _aafee :=_gfgga .Get (keyName );_aafee !=nil {return _aafee ,true ;};return nil ,false ;};func (_cdbc *PdfReader )newPdfAnnotationWidgetFromDict (_efgb *_fd .PdfObjectDictionary )(*PdfAnnotationWidget ,error ){_bbcdd :=PdfAnnotationWidget {};
|
||
_bbcdd .H =_efgb .Get ("\u0048");_bbcdd .MK =_efgb .Get ("\u004d\u004b");_bbcdd .A =_efgb .Get ("\u0041");_bbcdd .AA =_efgb .Get ("\u0041\u0041");_bbcdd .BS =_efgb .Get ("\u0042\u0053");_bbcdd .Parent =_efgb .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
return &_bbcdd ,nil ;};func (_adbdb *PdfAcroForm )fill (_egcb FieldValueProvider ,_dffg FieldAppearanceGenerator )error {if _adbdb ==nil {return nil ;};_dgfc ,_fegge :=_egcb .FieldValues ();if _fegge !=nil {return _fegge ;};for _ ,_fddce :=range _adbdb .AllFields (){_bbfaf :=_fddce .PartialName ();
|
||
_cdbd ,_daadb :=_dgfc [_bbfaf ];if !_daadb {if _bgbce ,_fafba :=_fddce .FullName ();_fafba ==nil {_cdbd ,_daadb =_dgfc [_bgbce ];};};if !_daadb {_ag .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",_bbfaf );
|
||
continue ;};if _eeff :=_cbec (_fddce ,_cdbd );_eeff !=nil {return _eeff ;};if _dffg ==nil {continue ;};for _ ,_bgca :=range _fddce .Annotations {_cdgf ,_gdgcg :=_dffg .GenerateAppearanceDict (_adbdb ,_fddce ,_bgca );if _gdgcg !=nil {return _gdgcg ;};_bgca .AP =_cdgf ;
|
||
_bgca .ToPdfObject ();};};return nil ;};
|
||
|
||
// GetCatalogMarkInfo gets catalog MarkInfo object.
|
||
func (_dggbc *PdfReader )GetCatalogMarkInfo ()(_fd .PdfObject ,bool ){if _dggbc ._gabca ==nil {return nil ,false ;};_afaga :=_dggbc ._gabca .Get ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return _afaga ,_afaga !=nil ;};
|
||
|
||
// HasPatternByName checks whether a pattern object is defined by the specified keyName.
|
||
func (_addf *PdfPageResources )HasPatternByName (keyName _fd .PdfObjectName )bool {_ ,_edcea :=_addf .GetPatternByName (keyName );return _edcea ;};func (_abcg *Image )samplesAddPadding (_cagce []uint32 )[]uint32 {_bdbbce :=_gbed .BytesPerLine (int (_abcg .Width ),int (_abcg .BitsPerComponent ),_abcg .ColorComponents )*(8/int (_abcg .BitsPerComponent ));
|
||
_gdbaa :=_bdbbce *int (_abcg .Height );if len (_cagce )==_gdbaa {return _cagce ;};_bbgfda :=make ([]uint32 ,_gdbaa );_adfc :=int (_abcg .Width )*_abcg .ColorComponents ;for _addb :=0;_addb < int (_abcg .Height );_addb ++{_fada :=_addb *int (_abcg .Width );
|
||
_fdfbb :=_addb *_bdbbce ;for _gaca :=0;_gaca < _adfc ;_gaca ++{_bbgfda [_fdfbb +_gaca ]=_cagce [_fada +_gaca ];};};return _bbgfda ;};
|
||
|
||
// NewPdfPageResourcesFromDict creates and returns a new PdfPageResources object
|
||
// from the input dictionary.
|
||
func NewPdfPageResourcesFromDict (dict *_fd .PdfObjectDictionary )(*PdfPageResources ,error ){_eeedb :=NewPdfPageResources ();if _aagc :=dict .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_aagc !=nil {_eeedb .ExtGState =_aagc ;};if _agfab :=dict .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");
|
||
_agfab !=nil &&!_fd .IsNullObject (_agfab ){_eeedb .ColorSpace =_agfab ;};if _dabdd :=dict .Get ("\u0050a\u0074\u0074\u0065\u0072\u006e");_dabdd !=nil {_eeedb .Pattern =_dabdd ;};if _adffb :=dict .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");_adffb !=nil {_eeedb .Shading =_adffb ;
|
||
};if _dfcecc :=dict .Get ("\u0058O\u0062\u006a\u0065\u0063\u0074");_dfcecc !=nil {_eeedb .XObject =_dfcecc ;};if _ebba :=_fd .ResolveReference (dict .Get ("\u0046\u006f\u006e\u0074"));_ebba !=nil {_eeedb .Font =_ebba ;};if _fbafb :=dict .Get ("\u0050r\u006f\u0063\u0053\u0065\u0074");
|
||
_fbafb !=nil {_eeedb .ProcSet =_fbafb ;};if _dcabd :=dict .Get ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_dcabd !=nil {_eeedb .Properties =_dcabd ;};return _eeedb ,nil ;};
|
||
|
||
// PdfAcroForm represents the AcroForm dictionary used for representation of form data in PDF.
|
||
type PdfAcroForm struct{Fields *[]*PdfField ;NeedAppearances *_fd .PdfObjectBool ;SigFlags *_fd .PdfObjectInteger ;CO *_fd .PdfObjectArray ;DR *PdfPageResources ;DA *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;XFA _fd .PdfObject ;
|
||
|
||
// ADBEEchoSign extra objects from Adobe Acrobat, causing signature invalid if not exists.
|
||
ADBEEchoSign _fd .PdfObject ;_fefdb *_fd .PdfIndirectObject ;_cfbb bool ;};var (_aeagf =_ge .MustCompile ("\u005cd\u002b\u0020\u0064\u0069c\u0074\u005c\u0073\u002b\u0028d\u0075p\u005cs\u002b\u0029\u003f\u0062\u0065\u0067\u0069n");_ebccf =_ge .MustCompile ("\u005e\u005cs\u002a\u002f\u0028\u005c\u0053\u002b\u003f\u0029\u005c\u0073\u002b\u0028\u002e\u002b\u003f\u0029\u005c\u0073\u002b\u0064\u0065\u0066\\s\u002a\u0024");
|
||
_bada =_ge .MustCompile ("\u005e\u005c\u0073*\u0064\u0075\u0070\u005c\u0073\u002b\u0028\u005c\u0064\u002b\u0029\u005c\u0073\u002a\u002f\u0028\u005c\u0077\u002b\u003f\u0029\u0028\u003f\u003a\u005c\u002e\u005c\u0064\u002b)\u003f\u005c\u0073\u002b\u0070\u0075\u0074\u0024");
|
||
_fedc ="\u002f\u0045\u006e\u0063od\u0069\u006e\u0067\u0020\u0032\u0035\u0036\u0020\u0061\u0072\u0072\u0061\u0079";_ddded ="\u0072\u0065\u0061d\u006f\u006e\u006c\u0079\u0020\u0064\u0065\u0066";_affb ="\u0063\u0075\u0072\u0072\u0065\u006e\u0074\u0066\u0069\u006c\u0065\u0020e\u0065\u0078\u0065\u0063";
|
||
);func (_ggaddc *PdfReader )loadPerms ()(*Permissions ,error ){if _bacb :=_ggaddc ._gabca .Get ("\u0050\u0065\u0072m\u0073");_bacb !=nil {if _aegde ,_bcaacd :=_fd .GetDict (_bacb );_bcaacd {_geagd :=_aegde .Get ("\u0044\u006f\u0063\u004d\u0044\u0050");
|
||
if _geagd ==nil {return nil ,nil ;};if _aedfd ,_afgg :=_fd .GetIndirect (_geagd );_afgg {_baccc ,_acgce :=_ggaddc .newPdfSignatureFromIndirect (_aedfd );if _acgce !=nil {return nil ,_acgce ;};return NewPermissions (_baccc ),nil ;};return nil ,_dc .Errorf ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0044\u006f\u0063M\u0044\u0050\u0020\u0065nt\u0072\u0079");
|
||
};return nil ,_dc .Errorf ("\u0069\u006e\u0076\u0061li\u0064\u0020\u0050\u0065\u0072\u006d\u0073\u0020\u0065\u006e\u0074\u0072\u0079");};return nil ,nil ;};func (_ccab *PdfReader )newPdfActionTransFromDict (_fbfdb *_fd .PdfObjectDictionary )(*PdfActionTrans ,error ){return &PdfActionTrans {Trans :_fbfdb .Get ("\u0054\u0072\u0061n\u0073")},nil ;
|
||
};
|
||
|
||
// NewXObjectForm creates a brand new XObject Form. Creates a new underlying PDF object stream primitive.
|
||
func NewXObjectForm ()*XObjectForm {_cagee :=&XObjectForm {};_gcagg :=&_fd .PdfObjectStream {};_gcagg .PdfObjectDictionary =_fd .MakeDict ();_cagee ._cebfa =_gcagg ;return _cagee ;};
|
||
|
||
// NewPdfAnnotationWatermark returns a new watermark annotation.
|
||
func NewPdfAnnotationWatermark ()*PdfAnnotationWatermark {_fbg :=NewPdfAnnotation ();_gffa :=&PdfAnnotationWatermark {};_gffa .PdfAnnotation =_fbg ;_fbg .SetContext (_gffa );return _gffa ;};
|
||
|
||
// HasColorspaceByName checks if the colorspace with the specified name exists in the page resources.
|
||
func (_ggbea *PdfPageResources )HasColorspaceByName (keyName _fd .PdfObjectName )bool {_fffca ,_ecdcb :=_ggbea .GetColorspaces ();if _ecdcb !=nil {_ag .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",_ecdcb );
|
||
return false ;};if _fffca ==nil {return false ;};_ ,_bgdaf :=_fffca .Colorspaces [string (keyName )];return _bgdaf ;};func (_cadd *pdfFontSimple )addEncoding ()error {var (_fbcfd string ;_gdbgb map[_ee .CharCode ]_ee .GlyphName ;_agffb _ee .SimpleEncoder ;
|
||
);if _cadd .Encoder ()!=nil {_gcfe ,_gaef :=_cadd .Encoder ().(_ee .SimpleEncoder );if _gaef &&_gcfe !=nil {_fbcfd =_gcfe .BaseName ();};};if _cadd .Encoding !=nil {_fbccb ,_ebcc ,_agaaec :=_cadd .getFontEncoding ();if _agaaec !=nil {_ag .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",_cadd ._ffedb ,_cadd ._eded ,_cadd .Encoding ,_cadd .Encoding ,_agaaec );
|
||
return _agaaec ;};if _fbccb !=""{_fbcfd =_fbccb ;};_gdbgb =_ebcc ;_agffb ,_agaaec =_ee .NewSimpleTextEncoder (_fbcfd ,_gdbgb );if _agaaec !=nil {return _agaaec ;};};if _agffb ==nil {_aded :=_cadd ._babe ;if _aded !=nil {switch _cadd ._eded {case "\u0054\u0079\u0070e\u0031":if _aded .fontFile !=nil &&_aded .fontFile ._cecab !=nil {_ag .Log .Debug ("\u0055\u0073\u0069\u006e\u0067\u0020\u0066\u006f\u006et\u0046\u0069\u006c\u0065");
|
||
_agffb =_aded .fontFile ._cecab ;};case "\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065":if _aded ._dccc !=nil {_ag .Log .Debug ("\u0055s\u0069n\u0067\u0020\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065\u0032");_bdfdc ,_efagg :=_aded ._dccc .MakeEncoder ();
|
||
if _efagg ==nil {_agffb =_bdfdc ;};if _cadd ._dgdg ==nil {_cadd ._dgdg =_aded ._dccc .MakeToUnicode ();};};};};};if _agffb !=nil {if _gdbgb !=nil {_ag .Log .Trace ("\u0064\u0069\u0066fe\u0072\u0065\u006e\u0063\u0065\u0073\u003d\u0025\u002b\u0076\u0020\u0066\u006f\u006e\u0074\u003d\u0025\u0073",_gdbgb ,_cadd .baseFields ());
|
||
_agffb =_ee .ApplyDifferences (_agffb ,_gdbgb );};_cadd .SetEncoder (_agffb );};return nil ;};
|
||
|
||
// GetPageLabels returns the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_cacg *PdfReader )GetPageLabels ()(_fd .PdfObject ,error ){_adeg :=_fd .ResolveReference (_cacg ._gabca .Get ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073"));if _adeg ==nil {return nil ,nil ;};if !_cacg ._gfdda {_efeb :=_cacg .traverseObjectData (_adeg );
|
||
if _efeb !=nil {return nil ,_efeb ;};};return _adeg ,nil ;};type fontCommon struct{_ffedb string ;_eded string ;_cabb string ;_eebbb _fd .PdfObject ;_dgdg *_gd .CMap ;_babe *PdfFontDescriptor ;_ffbd int64 ;};
|
||
|
||
// GetCatalogStructTreeRoot gets the catalog StructTreeRoot object.
|
||
func (_cggaba *PdfReader )GetCatalogStructTreeRoot ()(_fd .PdfObject ,bool ){if _cggaba ._gabca ==nil {return nil ,false ;};_abdea :=_cggaba ._gabca .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0054\u0072\u0065e\u0052\u006f\u006f\u0074");return _abdea ,_abdea !=nil ;
|
||
};
|
||
|
||
// SetForms sets the Acroform for a PDF file.
|
||
func (_afaac *PdfWriter )SetForms (form *PdfAcroForm )error {_afaac ._agdg =form ;return nil };
|
||
|
||
// NewReaderForText makes a new PdfReader for an input PDF content string. For use in testing.
|
||
func NewReaderForText (txt string )*PdfReader {return &PdfReader {_cedebc :map[_fd .PdfObject ]struct{}{},_fbabb :_adedc (),_faaf :_fd .NewParserFromString (txt )};};
|
||
|
||
// ImageToRGB converts CalRGB colorspace image to RGB and returns the result.
|
||
func (_eefd *PdfColorspaceCalRGB )ImageToRGB (img Image )(Image ,error ){_afae :=_bg .NewReader (img .getBase ());_ffef :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_adgb :=_bg .NewWriter (_ffef );
|
||
_ggbaa :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_eaf :=make ([]uint32 ,3);var (_eaba error ;_fgff ,_bbcg ,_ceab ,_bbfg ,_fcbc ,_cagg float64 ;);for {_eaba =_afae .ReadSamples (_eaf );if _eaba ==_bc .EOF {break ;}else if _eaba !=nil {return img ,_eaba ;
|
||
};_fgff =float64 (_eaf [0])/_ggbaa ;_bbcg =float64 (_eaf [1])/_ggbaa ;_ceab =float64 (_eaf [2])/_ggbaa ;_bbfg =_eefd .Matrix [0]*_af .Pow (_fgff ,_eefd .Gamma [0])+_eefd .Matrix [3]*_af .Pow (_bbcg ,_eefd .Gamma [1])+_eefd .Matrix [6]*_af .Pow (_ceab ,_eefd .Gamma [2]);
|
||
_fcbc =_eefd .Matrix [1]*_af .Pow (_fgff ,_eefd .Gamma [0])+_eefd .Matrix [4]*_af .Pow (_bbcg ,_eefd .Gamma [1])+_eefd .Matrix [7]*_af .Pow (_ceab ,_eefd .Gamma [2]);_cagg =_eefd .Matrix [2]*_af .Pow (_fgff ,_eefd .Gamma [0])+_eefd .Matrix [5]*_af .Pow (_bbcg ,_eefd .Gamma [1])+_eefd .Matrix [8]*_af .Pow (_ceab ,_eefd .Gamma [2]);
|
||
_fgff =3.240479*_bbfg +-1.537150*_fcbc +-0.498535*_cagg ;_bbcg =-0.969256*_bbfg +1.875992*_fcbc +0.041556*_cagg ;_ceab =0.055648*_bbfg +-0.204043*_fcbc +1.057311*_cagg ;_fgff =_af .Min (_af .Max (_fgff ,0),1.0);_bbcg =_af .Min (_af .Max (_bbcg ,0),1.0);
|
||
_ceab =_af .Min (_af .Max (_ceab ,0),1.0);_eaf [0]=uint32 (_fgff *_ggbaa );_eaf [1]=uint32 (_bbcg *_ggbaa );_eaf [2]=uint32 (_ceab *_ggbaa );if _eaba =_adgb .WriteSamples (_eaf );_eaba !=nil {return img ,_eaba ;};};return _eeafa (&_ffef ),nil ;};
|
||
|
||
// AlphaMap performs mapping of alpha data for transformations. Allows custom filtering of alpha data etc.
|
||
func (_geedg *Image )AlphaMap (mapFunc AlphaMapFunc ){for _gaea ,_gdeae :=range _geedg ._gfffd {_geedg ._gfffd [_gaea ]=mapFunc (_gdeae );};};
|
||
|
||
// 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 ;};
|
||
|
||
// SetPdfModifiedDate sets the ModDate attribute of the output PDF.
|
||
func SetPdfModifiedDate (modifiedDate _cd .Time ){_feadd .Lock ();defer _feadd .Unlock ();_gbfgb =modifiedDate ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_cbafc pdfCIDFontType2 )Encoder ()_ee .TextEncoder {return _cbafc ._fccef };const (XObjectTypeUndefined XObjectType =iota ;XObjectTypeImage ;XObjectTypeForm ;XObjectTypePS ;XObjectTypeUnknown ;);
|
||
|
||
// GetContext returns a reference to the subshading entry as represented by PdfShadingType1-7.
|
||
func (_gdebag *PdfShading )GetContext ()PdfModel {return _gdebag ._cgfce };
|
||
|
||
// ToOutlineTree returns a low level PdfOutlineTreeNode object, based on
|
||
// the current instance.
|
||
func (_dfgbf *Outline )ToOutlineTree ()*PdfOutlineTreeNode {return &_dfgbf .ToPdfOutline ().PdfOutlineTreeNode ;};
|
||
|
||
// GetContainingPdfObject implements interface PdfModel.
|
||
func (_bffd *PdfSignature )GetContainingPdfObject ()_fd .PdfObject {return _bffd ._cbaga };func (_dgb *PdfReader )newPdfActionSubmitFormFromDict (_abd *_fd .PdfObjectDictionary )(*PdfActionSubmitForm ,error ){_bed ,_cfe :=_ece (_abd .Get ("\u0046"));if _cfe !=nil {return nil ,_cfe ;
|
||
};return &PdfActionSubmitForm {F :_bed ,Fields :_abd .Get ("\u0046\u0069\u0065\u006c\u0064\u0073"),Flags :_abd .Get ("\u0046\u006c\u0061g\u0073")},nil ;};
|
||
|
||
// GetCIDToGIDMapObject get the underlying CIDToGIDMap object if the font type is CIDFontType2.
|
||
func (_dfae *PdfFont )GetCIDToGIDMapObject ()_fd .PdfObject {_ggegg ,_cbcce :=_dfae ._gbaac .(*pdfCIDFontType2 );if _cbcce {return _ggegg .CIDToGIDMap ;};return nil ;};
|
||
|
||
// 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 ;SkipMarkInfo bool ;SkipViewerPreferences bool ;
|
||
SkipLanguage bool ;PageProcessCallback PageProcessCallback ;
|
||
|
||
// Deprecated: will be removed in v4. Use PageProcessCallback instead.
|
||
PageCallback PageCallback ;};
|
||
|
||
// PdfActionTrans represents a trans action.
|
||
type PdfActionTrans struct{*PdfAction ;Trans _fd .PdfObject ;};
|
||
|
||
// HasExtGState checks if ExtGState name is available.
|
||
func (_ddfba *PdfPage )HasExtGState (name _fd .PdfObjectName )bool {if _ddfba .Resources ==nil {return false ;};if _ddfba .Resources .ExtGState ==nil {return false ;};_eaae ,_bgffd :=_fd .TraceToDirectObject (_ddfba .Resources .ExtGState ).(*_fd .PdfObjectDictionary );
|
||
if !_bgffd {_ag .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",_fd .TraceToDirectObject (_ddfba .Resources .ExtGState ));
|
||
return false ;};_bgdgfd :=_eaae .Get (name );_cbaab :=_bgdgfd !=nil ;return _cbaab ;};
|
||
|
||
// NewPdfColorspaceSpecialIndexed returns a new Indexed color.
|
||
func NewPdfColorspaceSpecialIndexed ()*PdfColorspaceSpecialIndexed {return &PdfColorspaceSpecialIndexed {HiVal :255};};
|
||
|
||
// 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 (_cbbfe *CompliancePdfReader )error ;};
|
||
|
||
// 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 (_ffadf *XObjectForm )SetContentStream (content []byte ,encoder _fd .StreamEncoder )error {_bbeed :=content ;if encoder ==nil {if _ffadf .Filter !=nil {encoder =_ffadf .Filter ;}else {encoder =_fd .NewRawEncoder ();};};_effcb ,_egec :=encoder .EncodeBytes (_bbeed );
|
||
if _egec !=nil {return _egec ;};_bbeed =_effcb ;_ffadf .Stream =_bbeed ;_ffadf .Filter =encoder ;return nil ;};
|
||
|
||
// AddExtGState add External Graphics State (GState). The gsDict can be specified
|
||
// either directly as a dictionary or an indirect object containing a dictionary.
|
||
func (_ggaf *PdfPageResources )AddExtGState (gsName _fd .PdfObjectName ,gsDict _fd .PdfObject )error {if _ggaf .ExtGState ==nil {_ggaf .ExtGState =_fd .MakeDict ();};_cacc :=_ggaf .ExtGState ;_acagd ,_cbccg :=_fd .TraceToDirectObject (_cacc ).(*_fd .PdfObjectDictionary );
|
||
if !_cbccg {_ag .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",_cacc ,_fd .TraceToDirectObject (_cacc ));
|
||
return _fd .ErrTypeError ;};_acagd .Set (gsName ,gsDict );return nil ;};
|
||
|
||
// GetContentStream returns the pattern cell's content stream
|
||
func (_bdaag *PdfTilingPattern )GetContentStream ()([]byte ,error ){_cbbdb ,_ ,_aefad :=_bdaag .GetContentStreamWithEncoder ();return _cbbdb ,_aefad ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ade *PdfAnnotationWatermark )ToPdfObject ()_fd .PdfObject {_ade .PdfAnnotation .ToPdfObject ();_fedg :=_ade ._aeb ;_fgfe :=_fedg .PdfObject .(*_fd .PdfObjectDictionary );_fgfe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0057a\u0074\u0065\u0072\u006d\u0061\u0072k"));
|
||
_fgfe .SetIfNotNil ("\u0046\u0069\u0078\u0065\u0064\u0050\u0072\u0069\u006e\u0074",_ade .FixedPrint );return _fedg ;};
|
||
|
||
// 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 (_cgccf *PdfOutlineTreeNode )GetContext ()PdfModel {if _ffgbg ,_gaac :=_cgccf ._gcgcg .(*PdfOutline );_gaac {return _ffgbg ;};if _cdgcc ,_dbdfg :=_cgccf ._gcgcg .(*PdfOutlineItem );_dbdfg {return _cdgcc ;};_ag .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 ;};func _ecbe (_cgcb _fd .PdfObject )(*PdfColorspaceCalGray ,error ){_beec :=NewPdfColorspaceCalGray ();if _abbd ,_eaea :=_cgcb .(*_fd .PdfIndirectObject );_eaea {_beec ._gbaaf =_abbd ;};_cgcb =_fd .TraceToDirectObject (_cgcb );_fafb ,_edcc :=_cgcb .(*_fd .PdfObjectArray );
|
||
if !_edcc {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _fafb .Len ()!=2{return nil ,_dc .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");
|
||
};_cgcb =_fd .TraceToDirectObject (_fafb .Get (0));_dcfd ,_edcc :=_cgcb .(*_fd .PdfObjectName );if !_edcc {return nil ,_dc .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 *_dcfd !="\u0043a\u006c\u0047\u0072\u0061\u0079"{return nil ,_dc .Errorf ("\u006eo\u0074\u0020\u0061\u0020\u0043\u0061\u006c\u0047\u0072\u0061\u0079 \u0063\u006f\u006c\u006f\u0072\u0073\u0070\u0061\u0063\u0065");};_cgcb =_fd .TraceToDirectObject (_fafb .Get (1));
|
||
_gcga ,_edcc :=_cgcb .(*_fd .PdfObjectDictionary );if !_edcc {return nil ,_dc .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");
|
||
};_cgcb =_gcga .Get ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074");_cgcb =_fd .TraceToDirectObject (_cgcb );_cdbgf ,_edcc :=_cgcb .(*_fd .PdfObjectArray );if !_edcc {return nil ,_dc .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 _cdbgf .Len ()!=3{return nil ,_dc .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");};_ccce ,_egfe :=_cdbgf .GetAsFloat64Slice ();
|
||
if _egfe !=nil {return nil ,_egfe ;};_beec .WhitePoint =_ccce ;_cgcb =_gcga .Get ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074");if _cgcb !=nil {_cgcb =_fd .TraceToDirectObject (_cgcb );_fadd ,_cfggd :=_cgcb .(*_fd .PdfObjectArray );if !_cfggd {return nil ,_dc .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 _fadd .Len ()!=3{return nil ,_dc .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");};_babg ,_fbgb :=_fadd .GetAsFloat64Slice ();
|
||
if _fbgb !=nil {return nil ,_fbgb ;};_beec .BlackPoint =_babg ;};_cgcb =_gcga .Get ("\u0047\u0061\u006dm\u0061");if _cgcb !=nil {_cgcb =_fd .TraceToDirectObject (_cgcb );_aegef ,_gege :=_fd .GetNumberAsFloat (_cgcb );if _gege !=nil {return nil ,_dc .Errorf ("C\u0061\u006c\u0047\u0072\u0061\u0079:\u0020\u0067\u0061\u006d\u006d\u0061\u0020\u006e\u006ft\u0020\u0061\u0020n\u0075m\u0062\u0065\u0072");
|
||
};_beec .Gamma =_aegef ;};return _beec ,nil ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_edbec *XObjectImage )ToPdfObject ()_fd .PdfObject {_aabfg :=_edbec ._bbcgd ;if _edbec ._egdda {return _aabfg ;};_cdfecd :=_aabfg .PdfObjectDictionary ;if _edbec .Filter !=nil {_cdfecd =_edbec .Filter .MakeStreamDict ();_aabfg .PdfObjectDictionary =_cdfecd ;
|
||
};_cdfecd .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));_cdfecd .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0049\u006d\u0061g\u0065"));_cdfecd .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (*(_edbec .Width )));
|
||
_cdfecd .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (*(_edbec .Height )));if _edbec .BitsPerComponent !=nil {_cdfecd .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (*(_edbec .BitsPerComponent )));
|
||
};if _edbec .ColorSpace !=nil {_cdfecd .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_edbec .ColorSpace .ToPdfObject ());};_cdfecd .SetIfNotNil ("\u0049\u006e\u0074\u0065\u006e\u0074",_edbec .Intent );_cdfecd .SetIfNotNil ("\u0049m\u0061\u0067\u0065\u004d\u0061\u0073k",_edbec .ImageMask );
|
||
_cdfecd .SetIfNotNil ("\u004d\u0061\u0073\u006b",_edbec .Mask );_eeaee :=_cdfecd .Get ("\u0044\u0065\u0063\u006f\u0064\u0065")!=nil ;if _edbec .Decode ==nil &&_eeaee {_cdfecd .Remove ("\u0044\u0065\u0063\u006f\u0064\u0065");}else if _edbec .Decode !=nil {_cdfecd .Set ("\u0044\u0065\u0063\u006f\u0064\u0065",_edbec .Decode );
|
||
};_cdfecd .SetIfNotNil ("I\u006e\u0074\u0065\u0072\u0070\u006f\u006c\u0061\u0074\u0065",_edbec .Interpolate );_cdfecd .SetIfNotNil ("\u0041\u006c\u0074e\u0072\u006e\u0061\u0074\u0069\u0076\u0065\u0073",_edbec .Alternatives );_cdfecd .SetIfNotNil ("\u0053\u004d\u0061s\u006b",_edbec .SMask );
|
||
_cdfecd .SetIfNotNil ("S\u004d\u0061\u0073\u006b\u0049\u006e\u0044\u0061\u0074\u0061",_edbec .SMaskInData );_cdfecd .SetIfNotNil ("\u004d\u0061\u0074t\u0065",_edbec .Matte );_cdfecd .SetIfNotNil ("\u004e\u0061\u006d\u0065",_edbec .Name );_cdfecd .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_edbec .StructParent );
|
||
_cdfecd .SetIfNotNil ("\u0049\u0044",_edbec .ID );_cdfecd .SetIfNotNil ("\u004f\u0050\u0049",_edbec .OPI );_cdfecd .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_edbec .Metadata );_cdfecd .SetIfNotNil ("\u004f\u0043",_edbec .OC );_cdfecd .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_edbec .Stream ))));
|
||
_aabfg .Stream =_edbec .Stream ;_edbec ._egdda =true ;return _aabfg ;};
|
||
|
||
// ToGoTime returns the date in time.Time format.
|
||
func (_ecega PdfDate )ToGoTime ()_cd .Time {_eeggef :=int (_ecega ._bbea *60*60+_ecega ._gdeac *60);switch _ecega ._fcdea {case '-':_eeggef =-_eeggef ;case 'Z':_eeggef =0;};_cgagcd :=_dc .Sprintf ("\u0055\u0054\u0043\u0025\u0063\u0025\u002e\u0032\u0064\u0025\u002e\u0032\u0064",_ecega ._fcdea ,_ecega ._bbea ,_ecega ._gdeac );
|
||
_dbfg :=_cd .FixedZone (_cgagcd ,_eeggef );return _cd .Date (int (_ecega ._bdaae ),_cd .Month (_ecega ._gbdf ),int (_ecega ._afcde ),int (_ecega ._bgagg ),int (_ecega ._gbgef ),int (_ecega ._cfdgb ),0,_dbfg );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dffe *PdfAnnotationStamp )ToPdfObject ()_fd .PdfObject {_dffe .PdfAnnotation .ToPdfObject ();_baef :=_dffe ._aeb ;_bbbe :=_baef .PdfObject .(*_fd .PdfObjectDictionary );_dffe .PdfAnnotationMarkup .appendToPdfDictionary (_bbbe );_bbbe .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0074\u0061m\u0070"));
|
||
_bbbe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_dffe .Name );return _baef ;};
|
||
|
||
// GetPreviousRevision returns the previous revision of PdfReader for the Pdf document
|
||
func (_bagee *PdfReader )GetPreviousRevision ()(*PdfReader ,error ){if _bagee ._faaf .GetRevisionNumber ()==0{return nil ,_ad .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 _dacae ,_ebdeb :=_bagee ._dbggb [_bagee ];_ebdeb {return _dacae ,nil ;};_aedcf ,_daebfa :=_bagee ._faaf .GetPreviousRevisionReadSeeker ();if _daebfa !=nil {return nil ,_daebfa ;};_decbd ,_daebfa :=_daab (_aedcf ,_bagee ._badf ,_bagee ._gaggbb ,"\u006do\u0064\u0065\u006c\u003aG\u0065\u0074\u0050\u0072\u0065v\u0069o\u0075s\u0052\u0065\u0076\u0069\u0073\u0069\u006fn");
|
||
if _daebfa !=nil {return nil ,_daebfa ;};_bagee ._afcee [_bagee ._faaf .GetRevisionNumber ()-1]=_decbd ;_bagee ._dbggb [_bagee ]=_decbd ;_decbd ._dbggb =_bagee ._dbggb ;return _decbd ,nil ;};
|
||
|
||
// IsRadio returns true if the button field represents a radio button, false otherwise.
|
||
func (_dbbc *PdfFieldButton )IsRadio ()bool {return _dbbc .GetType ()==ButtonTypeRadio };
|
||
|
||
// 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 (_febdg int ,_daeeg *PdfPage );func _dbeea (_cgddf _fd .PdfObject )(*PdfColorspaceSpecialIndexed ,error ){_dddab :=NewPdfColorspaceSpecialIndexed ();if _cegbe ,_eabe :=_cgddf .(*_fd .PdfIndirectObject );_eabe {_dddab ._ecdg =_cegbe ;
|
||
};_cgddf =_fd .TraceToDirectObject (_cgddf );_aefe ,_dfeb :=_cgddf .(*_fd .PdfObjectArray );if !_dfeb {return nil ,_dc .Errorf ("\u0074\u0079\u0070\u0065\u0020\u0065\u0072\u0072\u006f\u0072");};if _aefe .Len ()!=4{return nil ,_dc .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");
|
||
};_cgddf =_aefe .Get (0);_cbbaf ,_dfeb :=_cgddf .(*_fd .PdfObjectName );if !_dfeb {return nil ,_dc .Errorf ("\u0069n\u0064\u0065\u0078\u0065\u0064\u0020\u0043\u0053\u003a\u0020\u0069n\u0076\u0061\u006c\u0069\u0064\u0020\u006e\u0061\u006d\u0065");};if *_cbbaf !="\u0049n\u0064\u0065\u0078\u0065\u0064"{return nil ,_dc .Errorf ("\u0069\u006e\u0064\u0065xe\u0064\u0020\u0043\u0053\u003a\u0020\u0077\u0072\u006f\u006e\u0067\u0020\u006e\u0061m\u0065");
|
||
};_cgddf =_aefe .Get (1);_gfgfa ,_bcbd :=DetermineColorspaceNameFromPdfObject (_cgddf );if _bcbd !=nil {return nil ,_bcbd ;};if _gfgfa =="\u0049n\u0064\u0065\u0078\u0065\u0064"||_gfgfa =="\u0050a\u0074\u0074\u0065\u0072\u006e"{_ag .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",_gfgfa );
|
||
return nil ,_fbeg ;};_gfdc ,_bcbd :=NewPdfColorspaceFromPdfObject (_cgddf );if _bcbd !=nil {return nil ,_bcbd ;};_dddab .Base =_gfdc ;_cgddf =_aefe .Get (2);_efceb ,_bcbd :=_fd .GetNumberAsInt64 (_cgddf );if _bcbd !=nil {return nil ,_bcbd ;};if _efceb > 255{return nil ,_dc .Errorf ("\u0069n\u0064\u0065\u0078\u0065d\u0020\u0043\u0053\u003a\u0020I\u006ev\u0061l\u0069\u0064\u0020\u0068\u0069\u0076\u0061l");
|
||
};_dddab .HiVal =int (_efceb );_cgddf =_aefe .Get (3);_dddab .Lookup =_cgddf ;_cgddf =_fd .TraceToDirectObject (_cgddf );var _dbca []byte ;if _bcee ,_begc :=_cgddf .(*_fd .PdfObjectString );_begc {_dbca =_bcee .Bytes ();_ag .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",_dbca );
|
||
}else if _fbab ,_eddc :=_cgddf .(*_fd .PdfObjectStream );_eddc {_ag .Log .Trace ("\u0049n\u0064e\u0078\u0065\u0064\u0020\u0073t\u0072\u0065a\u006d\u003a\u0020\u0025\u0073",_cgddf .String ());_ag .Log .Trace ("\u0045\u006e\u0063\u006fde\u0064\u0020\u0028\u0025\u0064\u0029\u0020\u003a\u0020\u0025\u0023\u0020\u0078",len (_fbab .Stream ),_fbab .Stream );
|
||
_aagf ,_baee :=_fd .DecodeStream (_fbab );if _baee !=nil {return nil ,_baee ;};_ag .Log .Trace ("\u0044e\u0063o\u0064\u0065\u0064\u0020\u0028%\u0064\u0029 \u003a\u0020\u0025\u0020\u0058",len (_aagf ),_aagf );_dbca =_aagf ;}else {_ag .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cgddf );
|
||
return nil ,_dc .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 (_dbca )< _dddab .Base .GetNumComponents ()*(_dddab .HiVal +1){_ag .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");
|
||
_ag .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 (_dbca ),_dddab .Base .GetNumComponents (),_dddab .HiVal );
|
||
}else {_dbca =_dbca [:_dddab .Base .GetNumComponents ()*(_dddab .HiVal +1)];};_dddab ._fdac =_dbca ;return _dddab ,nil ;};
|
||
|
||
// NewPdfAnnotationMovie returns a new movie annotation.
|
||
func NewPdfAnnotationMovie ()*PdfAnnotationMovie {_gedc :=NewPdfAnnotation ();_gga :=&PdfAnnotationMovie {};_gga .PdfAnnotation =_gedc ;_gedc .SetContext (_gga );return _gga ;};
|
||
|
||
// Register registers (caches) a model to primitive object relationship.
|
||
func (_dacf *modelManager )Register (primitive _fd .PdfObject ,model PdfModel ){_dacf ._eeead [model ]=primitive ;_dacf ._aabd [primitive ]=model ;};
|
||
|
||
// ButtonType represents the subtype of a button field, can be one of:
|
||
// - Checkbox (ButtonTypeCheckbox)
|
||
// - PushButton (ButtonTypePushButton)
|
||
// - RadioButton (ButtonTypeRadioButton)
|
||
type ButtonType int ;
|
||
|
||
// 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 ,_fbbec :_fd .MakeDict (),ColorComponents :colorComponents };
|
||
};
|
||
|
||
// NewPdfColorPattern returns an empty color pattern.
|
||
func NewPdfColorPattern ()*PdfColorPattern {_cagd :=&PdfColorPattern {};return _cagd };func (_ddbg *PdfReader )flattenFieldsWithOpts (_dgce bool ,_bcfc FieldAppearanceGenerator ,_fecd *FieldFlattenOpts )error {if _fecd ==nil {_fecd =&FieldFlattenOpts {};
|
||
};var _cbbg bool ;_cabf :=map[*PdfAnnotation ]bool {};{var _abec []*PdfField ;_adad :=_ddbg .AcroForm ;if _adad !=nil {if _fecd .FilterFunc !=nil {_abec =_adad .filteredFields (_fecd .FilterFunc ,true );_cbbg =_adad .Fields !=nil &&len (*_adad .Fields )> 0;
|
||
}else {_abec =_adad .AllFields ();};};for _ ,_bbaa :=range _abec {if len (_bbaa .Annotations )< 1{_ag .Log .Debug ("\u004e\u006f\u0020\u0061\u006e\u006e\u006f\u0074\u0061\u0074\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006ed\u0020\u0066\u006f\u0072\u003a\u0020\u0025v\u002c\u0020\u006c\u006f\u006f\u006b\u0020\u0069\u006e\u0074\u006f \u004b\u0069\u0064\u0073\u0020\u004f\u0062\u006a\u0065\u0063\u0074",_bbaa .PartialName ());
|
||
for _gbaea ,_dgbd :=range _bbaa .Kids {for _ ,_gadag :=range _dgbd .Annotations {_cabf [_gadag .PdfAnnotation ]=_bbaa .V !=nil ;if _dgbd .V ==nil {_dgbd .V =_bbaa .V ;};if _dgbd .T ==nil {_dgbd .T =_fd .MakeString (_dc .Sprintf ("\u0025\u0073\u0023%\u0064",_bbaa .PartialName (),_gbaea ));
|
||
};if _bcfc !=nil {_beabb ,_cfccc :=_bcfc .GenerateAppearanceDict (_adad ,_dgbd ,_gadag );if _cfccc !=nil {return _cfccc ;};_gadag .AP =_beabb ;};};};};for _ ,_ebgdf :=range _bbaa .Annotations {_cabf [_ebgdf .PdfAnnotation ]=_bbaa .V !=nil ;if _bcfc !=nil {_aacf ,_ggecf :=_bcfc .GenerateAppearanceDict (_adad ,_bbaa ,_ebgdf );
|
||
if _ggecf !=nil {return _ggecf ;};_ebgdf .AP =_aacf ;};};};};if _dgce {for _ ,_afcg :=range _ddbg .PageList {_cebe ,_gcbe :=_afcg .GetAnnotations ();if _gcbe !=nil {return _gcbe ;};for _ ,_gbcdb :=range _cebe {_cabf [_gbcdb ]=true ;};};};for _ ,_daeg :=range _ddbg .PageList {_gecc :=_daeg .flattenFieldsWithOpts (_bcfc ,_fecd ,_cabf );
|
||
if _gecc !=nil {return _gecc ;};};if !_cbbg {_ddbg .AcroForm =nil ;};return nil ;};
|
||
|
||
// CheckAccessRights checks access rights and permissions for a specified password. If either user/owner
|
||
// password is specified, full rights are granted, otherwise the access rights are specified by the
|
||
// Permissions flag.
|
||
//
|
||
// The bool flag indicates that the user can access and view the file.
|
||
// The AccessPermissions shows what access the user has for editing etc.
|
||
// An error is returned if there was a problem performing the authentication.
|
||
func (_dcbbc *PdfReader )CheckAccessRights (password []byte )(bool ,_dfg .Permissions ,error ){return _dcbbc ._faaf .CheckAccessRights (password );};
|
||
|
||
// PdfAnnotationRichMedia represents Rich Media annotations.
|
||
type PdfAnnotationRichMedia struct{*PdfAnnotation ;RichMediaSettings _fd .PdfObject ;RichMediaContent _fd .PdfObject ;};
|
||
|
||
// PdfAnnotationText represents Text annotations.
|
||
// (Section 12.5.6.4 p. 402).
|
||
type PdfAnnotationText struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Open _fd .PdfObject ;Name _fd .PdfObject ;State _fd .PdfObject ;StateModel _fd .PdfObject ;};var _aegc =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":{}};
|
||
|
||
|
||
// GetAsShadingPattern returns a shading pattern. Check with IsShading() prior to using this.
|
||
func (_gcbgf *PdfPattern )GetAsShadingPattern ()*PdfShadingPattern {return _gcbgf ._dccfd .(*PdfShadingPattern );};
|
||
|
||
// 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 (_fbdd *PdfFieldButton )SetType (btype ButtonType ){_feeb :=uint32 (0);if _fbdd .Ff !=nil {_feeb =uint32 (*_fbdd .Ff );};switch btype {case ButtonTypePush :_feeb |=FieldFlagPushbutton .Mask ();case ButtonTypeRadio :_feeb |=FieldFlagRadio .Mask ();
|
||
};_fbdd .Ff =_fd .MakeInteger (int64 (_feeb ));};
|
||
|
||
// Flags returns the field flags for the field accounting for any inherited flags.
|
||
func (_cegd *PdfField )Flags ()FieldFlag {var _gdccg FieldFlag ;_adgba ,_gdgc :=_cegd .inherit (func (_bfggg *PdfField )bool {if _bfggg .Ff !=nil {_gdccg =FieldFlag (*_bfggg .Ff );return true ;};return false ;});if _gdgc !=nil {_ag .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",_gdgc );
|
||
};if !_adgba {_ag .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 _gdccg ;};
|
||
|
||
// ColorFromFloats returns a new PdfColor based on the input slice of color
|
||
// components.
|
||
func (_babb *PdfColorspaceICCBased )ColorFromFloats (vals []float64 )(PdfColor ,error ){if _babb .Alternate ==nil {if _babb .N ==1{_edeg :=NewPdfColorspaceDeviceGray ();return _edeg .ColorFromFloats (vals );}else if _babb .N ==3{_dccec :=NewPdfColorspaceDeviceRGB ();
|
||
return _dccec .ColorFromFloats (vals );}else if _babb .N ==4{_fbgd :=NewPdfColorspaceDeviceCMYK ();return _fbgd .ColorFromFloats (vals );}else {return nil ,_ad .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 _babb .Alternate .ColorFromFloats (vals );};func _adea (_egcgd _fd .PdfObject ,_eeffg *PdfReader )(*OutlineDest ,error ){_affbc ,_adafc :=_fd .GetArray (_egcgd );if !_adafc {return nil ,_ad .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");
|
||
};_aabbb :=_affbc .Len ();if _aabbb < 2{return nil ,_dc .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",_aabbb );
|
||
};_fdaeg :=&OutlineDest {Mode :"\u0046\u0069\u0074"};_cdgfac :=_affbc .Get (0);if _gfcc ,_eeceb :=_fd .GetIndirect (_cdgfac );_eeceb {if _ ,_bcebc ,_bddc :=_eeffg .PageFromIndirectObject (_gfcc );_bddc ==nil {_fdaeg .Page =int64 (_bcebc -1);}else {_ag .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",_gfcc );
|
||
};_fdaeg .PageObj =_gfcc ;}else if _bgcac ,_afbca :=_fd .GetIntVal (_cdgfac );_afbca {if _bgcac >=0&&_bgcac < len (_eeffg .PageList ){_fdaeg .PageObj =_eeffg .PageList [_bgcac ].GetPageAsIndirectObject ();}else {_ag .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",_bgcac );
|
||
};_fdaeg .Page =int64 (_bgcac );}else {return nil ,_dc .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",_cdgfac );};_bfadf ,_adafc :=_fd .GetNameVal (_affbc .Get (1));
|
||
if !_adafc {_ag .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",_affbc .Get (1));
|
||
return _fdaeg ,nil ;};switch _bfadf {case "\u0046\u0069\u0074","\u0046\u0069\u0074\u0042":case "\u0046\u0069\u0074\u0048","\u0046\u0069\u0074B\u0048":if _aabbb > 2{_fdaeg .Y ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (2)));};case "\u0046\u0069\u0074\u0056","\u0046\u0069\u0074B\u0056":if _aabbb > 2{_fdaeg .X ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (2)));
|
||
};case "\u0058\u0059\u005a":if _aabbb > 4{_fdaeg .X ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (2)));_fdaeg .Y ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (3)));_fdaeg .Zoom ,_ =_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_affbc .Get (4)));
|
||
};default:_bfadf ="\u0046\u0069\u0074";};_fdaeg .Mode =_bfadf ;return _fdaeg ,nil ;};
|
||
|
||
// NewPdfAnnotationSound returns a new sound annotation.
|
||
func NewPdfAnnotationSound ()*PdfAnnotationSound {_afc :=NewPdfAnnotation ();_gead :=&PdfAnnotationSound {};_gead .PdfAnnotation =_afc ;_gead .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_afc .SetContext (_gead );return _gead ;};
|
||
|
||
// ImageToRGB returns the passed in image. Method exists in order to satisfy
|
||
// the PdfColorspace interface.
|
||
func (_cefa *PdfColorspaceDeviceRGB )ImageToRGB (img Image )(Image ,error ){return img ,nil };
|
||
|
||
// NewPdfAnnotationFileAttachment returns a new file attachment annotation.
|
||
func NewPdfAnnotationFileAttachment ()*PdfAnnotationFileAttachment {_gfgc :=NewPdfAnnotation ();_defd :=&PdfAnnotationFileAttachment {};_defd .PdfAnnotation =_gfgc ;_defd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_gfgc .SetContext (_defd );return _defd ;
|
||
};func (_abef *pdfFontSimple )getFontEncoding ()(_fcdff string ,_agfdb map[_ee .CharCode ]_ee .GlyphName ,_bcgfa error ){_fcdff ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";if _efcfd ,_gfged :=_gfbc [_abef ._ffedb ];
|
||
_gfged {_fcdff =_efcfd ;}else if _abef .fontFlags ()&_fefd !=0{for _cecee ,_ccefb :=range _gfbc {if _gg .Contains (_abef ._ffedb ,_cecee ){_fcdff =_ccefb ;break ;};};};if _abef .Encoding ==nil {return _fcdff ,nil ,nil ;};switch _fbaabd :=_abef .Encoding .(type ){case *_fd .PdfObjectName :return string (*_fbaabd ),nil ,nil ;
|
||
case *_fd .PdfObjectDictionary :_ffdg ,_egbae :=_fd .GetName (_fbaabd .Get ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));if _egbae {_fcdff =_ffdg .String ();};if _bfed :=_fbaabd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073");
|
||
_bfed !=nil {_edccd ,_dbgfa :=_fd .GetArray (_bfed );if !_dbgfa {_ag .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",_fbaabd ,_fbaabd .Get ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073"));
|
||
return "",nil ,_fd .ErrTypeError ;};_agfdb ,_bcgfa =_ee .FromFontDifferences (_edccd );};return _fcdff ,_agfdb ,_bcgfa ;default:_ag .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",_abef .Encoding ,_abef .Encoding );
|
||
return "",nil ,_fd .ErrTypeError ;};};
|
||
|
||
// ToPdfObject returns a *PdfIndirectObject containing a *PdfObjectArray representation of the DeviceN colorspace.
|
||
/*
|
||
Format: [/DeviceN names alternateSpace tintTransform]
|
||
or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
*/
|
||
func (_gegd *PdfColorspaceDeviceN )ToPdfObject ()_fd .PdfObject {_bbab :=_fd .MakeArray (_fd .MakeName ("\u0044e\u0076\u0069\u0063\u0065\u004e"));_bbab .Append (_gegd .ColorantNames );_bbab .Append (_gegd .AlternateSpace .ToPdfObject ());_bbab .Append (_gegd .TintTransform .ToPdfObject ());
|
||
if _gegd .Attributes !=nil {_bbab .Append (_gegd .Attributes .ToPdfObject ());};if _gegd ._eebe !=nil {_gegd ._eebe .PdfObject =_bbab ;return _gegd ._eebe ;};return _bbab ;};
|
||
|
||
// GetPatternByName gets the pattern specified by keyName. Returns nil if not existing.
|
||
// The bool flag indicated whether it was found or not.
|
||
func (_dbdde *PdfPageResources )GetPatternByName (keyName _fd .PdfObjectName )(*PdfPattern ,bool ){if _dbdde .Pattern ==nil {return nil ,false ;};_cffb ,_ffcdc :=_fd .TraceToDirectObject (_dbdde .Pattern ).(*_fd .PdfObjectDictionary );if !_ffcdc {_ag .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",_dbdde .Pattern );
|
||
return nil ,false ;};if _edabe :=_cffb .Get (keyName );_edabe !=nil {_fdbeb ,_ebeg :=_ggfe (_edabe );if _ebeg !=nil {_ag .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",_ebeg );
|
||
return nil ,false ;};return _fdbeb ,true ;};return nil ,false ;};
|
||
|
||
// SetAnnotations sets the annotations list.
|
||
func (_ffdf *PdfPage )SetAnnotations (annotations []*PdfAnnotation ){_ffdf ._gbaf =annotations };
|
||
|
||
// NewPdfShadingType2 creates an empty shading type 2 dictionary.
|
||
func NewPdfShadingType2 ()*PdfShadingType2 {_cdeaf :=&PdfShadingType2 {};_cdeaf .PdfShading =&PdfShading {};_cdeaf .PdfShading ._cdgfd =_fd .MakeIndirectObject (_fd .MakeDict ());_cdeaf .PdfShading ._cgfce =_cdeaf ;return _cdeaf ;};
|
||
|
||
// GetXObjectByName returns the XObject with the specified keyName and the object type.
|
||
func (_gegaca *PdfPageResources )GetXObjectByName (keyName _fd .PdfObjectName )(*_fd .PdfObjectStream ,XObjectType ){if _gegaca .XObject ==nil {return nil ,XObjectTypeUndefined ;};_gfedb ,_cbgbd :=_fd .TraceToDirectObject (_gegaca .XObject ).(*_fd .PdfObjectDictionary );
|
||
if !_cbgbd {_ag .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",_fd .TraceToDirectObject (_gegaca .XObject ));
|
||
return nil ,XObjectTypeUndefined ;};if _eeeaf :=_gfedb .Get (keyName );_eeeaf !=nil {_bbgde ,_edbbf :=_fd .GetStream (_eeeaf );if !_edbbf {_ag .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",_eeeaf );
|
||
return nil ,XObjectTypeUndefined ;};_cacge :=_bbgde .PdfObjectDictionary ;_effag ,_edbbf :=_fd .TraceToDirectObject (_cacge .Get ("\u0053u\u0062\u0074\u0079\u0070\u0065")).(*_fd .PdfObjectName );if !_edbbf {_ag .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",_cacge .String ());
|
||
return nil ,XObjectTypeUndefined ;};if *_effag =="\u0049\u006d\u0061g\u0065"{return _bbgde ,XObjectTypeImage ;}else if *_effag =="\u0046\u006f\u0072\u006d"{return _bbgde ,XObjectTypeForm ;}else if *_effag =="\u0050\u0053"{return _bbgde ,XObjectTypePS ;
|
||
}else {_ag .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",*_effag );return nil ,XObjectTypeUndefined ;};}else {return nil ,XObjectTypeUndefined ;
|
||
};};
|
||
|
||
// AppendContentStream adds content stream by string. Appends to the last
|
||
// contentstream instance if many.
|
||
func (_egaef *PdfPage )AppendContentStream (contentStr string )error {_dabdg ,_bgecc :=_egaef .GetContentStreams ();if _bgecc !=nil {return _bgecc ;};if len (_dabdg )==0{_dabdg =[]string {contentStr };return _egaef .SetContentStreams (_dabdg ,_fd .NewFlateEncoder ());
|
||
};var _gefg _bf .Buffer ;_gefg .WriteString (_dabdg [len (_dabdg )-1]);_gefg .WriteString ("\u000a");_gefg .WriteString (contentStr );_dabdg [len (_dabdg )-1]=_gefg .String ();return _egaef .SetContentStreams (_dabdg ,_fd .NewFlateEncoder ());};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_ec *PdfActionGoToE )ToPdfObject ()_fd .PdfObject {_ec .PdfAction .ToPdfObject ();_fbc :=_ec ._bfb ;_acg :=_fbc .PdfObject .(*_fd .PdfObjectDictionary );_acg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoToE )));if _ec .F !=nil {_acg .Set ("\u0046",_ec .F .ToPdfObject ());
|
||
};_acg .SetIfNotNil ("\u0044",_ec .D );_acg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_ec .NewWindow );_acg .SetIfNotNil ("\u0054",_ec .T );return _fbc ;};
|
||
|
||
// GetContainingPdfObject returns the container of the image object (indirect object).
|
||
func (_cbcf *XObjectImage )GetContainingPdfObject ()_fd .PdfObject {return _cbcf ._bbcgd };
|
||
|
||
// GetOptimizer returns current PDF optimizer.
|
||
func (_dfcbd *PdfWriter )GetOptimizer ()Optimizer {return _dfcbd ._cffdf };func (_bcbb *LTV )validateSig (_bfeec *PdfSignature )error {if _bfeec ==nil ||_bfeec .Contents ==nil ||len (_bfeec .Contents .Bytes ())==0{return _dc .Errorf ("i\u006e\u0076\u0061\u006c\u0069\u0064 \u0073\u0069\u0067\u006e\u0061\u0074\u0075\u0072\u0065 \u0066\u0069\u0065l\u0064:\u0020\u0025\u0076",_bfeec );
|
||
};return nil ;};
|
||
|
||
// SignatureValidationResult defines the response from the signature validation handler.
|
||
type SignatureValidationResult struct{
|
||
|
||
// List of errors when validating the signature.
|
||
Errors []string ;IsSigned bool ;IsVerified bool ;IsTrusted bool ;Fields []*PdfField ;Name string ;Date PdfDate ;Reason string ;Location string ;ContactInfo string ;DiffResults *_gfg .DiffResults ;IsCrlFound bool ;IsOcspFound bool ;
|
||
|
||
// GeneralizedTime is the time at which the time-stamp token has been created by the TSA (RFC 3161).
|
||
GeneralizedTime _cd .Time ;};func (_acagc *PdfWriter )writeObjectsInStreams (_cdeff map[_fd .PdfObject ]bool )error {for _ ,_aegf :=range _acagc ._agfbf {if _efdee :=_cdeff [_aegf ];_efdee {continue ;};_dcbfe :=int64 (0);switch _bdagc :=_aegf .(type ){case *_fd .PdfIndirectObject :_dcbfe =_bdagc .ObjectNumber ;
|
||
case *_fd .PdfObjectStream :_dcbfe =_bdagc .ObjectNumber ;case *_fd .PdfObjectStreams :_dcbfe =_bdagc .ObjectNumber ;case *_fd .PdfObjectReference :_dcbfe =_bdagc .ObjectNumber ;case *_fd .PdfObjectDictionary ,*_fd .PdfObjectString :default:_ag .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020U\u006e\u0073\u0075p\u0070\u006f\u0072t\u0065\u0064 \u0074\u0079\u0070\u0065\u0020\u0069n\u0020wr\u0069\u0074\u0065\u0072\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u003a\u0020\u0025\u0054\u0020\u0028\u0074\u0079\u0070\u0065\u0020\u0025\u0054\u0029",_aegf ,_bdagc );
|
||
return ErrTypeCheck ;};if _acagc ._egadf !=nil &&_aegf !=_acagc ._abbcc {_faffe :=_acagc ._egadf .Encrypt (_aegf ,_dcbfe ,0);if _faffe !=nil {_ag .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",_faffe );
|
||
return _faffe ;};};_acagc .writeObject (int (_dcbfe ),_aegf );};return nil ;};var _daef =_ge .MustCompile ("\u005b\\\u006e\u005c\u0072\u005d\u002b");
|
||
|
||
// GetBorderWidth returns the border style's width.
|
||
func (_deg *PdfBorderStyle )GetBorderWidth ()float64 {if _deg .W ==nil {return 1;};return *_deg .W ;};
|
||
|
||
// ColorToRGB converts a DeviceN color to an RGB color.
|
||
func (_gcgc *PdfColorspaceDeviceN )ColorToRGB (color PdfColor )(PdfColor ,error ){if _gcgc .AlternateSpace ==nil {return nil ,_ad .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 _gcgc .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// GetNamedDestinations returns the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_effa *PdfReader )GetNamedDestinations ()(_fd .PdfObject ,error ){_egef :=_fd .ResolveReference (_effa ._gabca .Get ("\u0044\u0065\u0073t\u0073"));if _egef ==nil {return nil ,nil ;};if !_effa ._gfdda {_cbccc :=_effa .traverseObjectData (_egef );if _cbccc !=nil {return nil ,_cbccc ;
|
||
};};return _egef ,nil ;};
|
||
|
||
// GetSamples converts the raw byte slice into samples which are stored in a uint32 bit array.
|
||
// Each sample is represented by BitsPerComponent consecutive bits in the raw data.
|
||
// NOTE: The method resamples the image byte data before returning the result and
|
||
// this could lead to high memory usage, especially on large images. It should
|
||
// be avoided, when possible. It is recommended to access the Data field of the
|
||
// image directly or use the ColorAt method to extract individual pixels.
|
||
func (_cbacb *Image )GetSamples ()[]uint32 {_gbffc :=_bg .ResampleBytes (_cbacb .Data ,int (_cbacb .BitsPerComponent ));if _cbacb .BitsPerComponent < 8{_gbffc =_cbacb .samplesTrimPadding (_gbffc );};_ebgde :=int (_cbacb .Width )*int (_cbacb .Height )*_cbacb .ColorComponents ;
|
||
if len (_gbffc )< _ebgde {_ag .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 (_gbffc ),_ebgde );
|
||
return _gbffc ;}else if len (_gbffc )> _ebgde {_ag .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 (_gbffc ),_ebgde );
|
||
_gbffc =_gbffc [:_ebgde ];};return _gbffc ;};
|
||
|
||
// MergePageWith appends page content to source Pdf file page content.
|
||
func (_eee *PdfAppender )MergePageWith (pageNum int ,page *PdfPage )error {_aeda :=pageNum -1;var _aabg *PdfPage ;for _afdc ,_cgga :=range _eee ._gbca {if _afdc ==_aeda {_aabg =_cgga ;};};if _aabg ==nil {return _dc .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 _aabg ._fgcac !=nil &&_aabg ._fgcac .GetParser ()==_eee ._efec ._faaf {_aabg =_aabg .Duplicate ();_eee ._gbca [_aeda ]=_aabg ;};page =page .Duplicate ();_baeb (page );_bfbc :=_gebge (_aabg );_gfa :=_gebge (page );_ffag :=make (map[_fd .PdfObjectName ]_fd .PdfObjectName );
|
||
for _cggf :=range _gfa {if _ ,_faae :=_bfbc [_cggf ];_faae {for _ebc :=1;true ;_ebc ++{_gada :=_fd .PdfObjectName (string (_cggf )+_bd .Itoa (_ebc ));if _ ,_bgfc :=_bfbc [_gada ];!_bgfc {_ffag [_cggf ]=_gada ;break ;};};};};_cbff ,_abbce :=page .GetContentStreams ();
|
||
if _abbce !=nil {return _abbce ;};_gbag ,_abbce :=_aabg .GetContentStreams ();if _abbce !=nil {return _abbce ;};for _adaga ,_daae :=range _cbff {for _edbba ,_fgde :=range _ffag {_daae =_gg .Replace (_daae ,"\u002f"+string (_edbba ),"\u002f"+string (_fgde ),-1);
|
||
};_cbff [_adaga ]=_daae ;};_gbag =append (_gbag ,_cbff ...);if _aaec :=_aabg .SetContentStreams (_gbag ,_fd .NewFlateEncoder ());_aaec !=nil {return _aaec ;};_aabg ._gbaf =append (_aabg ._gbaf ,page ._gbaf ...);if _aabg .Resources ==nil {_aabg .Resources =NewPdfPageResources ();
|
||
};if page .Resources !=nil {_aabg .Resources .Font =_eee .mergeResources (_aabg .Resources .Font ,page .Resources .Font ,_ffag );_aabg .Resources .XObject =_eee .mergeResources (_aabg .Resources .XObject ,page .Resources .XObject ,_ffag );_aabg .Resources .Properties =_eee .mergeResources (_aabg .Resources .Properties ,page .Resources .Properties ,_ffag );
|
||
if _aabg .Resources .ProcSet ==nil {_aabg .Resources .ProcSet =page .Resources .ProcSet ;};_aabg .Resources .Shading =_eee .mergeResources (_aabg .Resources .Shading ,page .Resources .Shading ,_ffag );_aabg .Resources .ExtGState =_eee .mergeResources (_aabg .Resources .ExtGState ,page .Resources .ExtGState ,_ffag );
|
||
};_bdgb ,_abbce :=_aabg .GetMediaBox ();if _abbce !=nil {return _abbce ;};_dfd ,_abbce :=page .GetMediaBox ();if _abbce !=nil {return _abbce ;};var _cedb bool ;if _bdgb .Llx > _dfd .Llx {_bdgb .Llx =_dfd .Llx ;_cedb =true ;};if _bdgb .Lly > _dfd .Lly {_bdgb .Lly =_dfd .Lly ;
|
||
_cedb =true ;};if _bdgb .Urx < _dfd .Urx {_bdgb .Urx =_dfd .Urx ;_cedb =true ;};if _bdgb .Ury < _dfd .Ury {_bdgb .Ury =_dfd .Ury ;_cedb =true ;};if _cedb {_aabg .MediaBox =_bdgb ;};return nil ;};
|
||
|
||
// ToPdfObject converts the PdfPage to a dictionary within an indirect object container.
|
||
func (_cbffc *PdfPage )ToPdfObject ()_fd .PdfObject {_febec :=_cbffc ._fgcac ;_cbffc .GetPageDict ();return _febec ;};
|
||
|
||
// ImageToRGB returns an error since an image cannot be defined in a pattern colorspace.
|
||
func (_cfgd *PdfColorspaceSpecialPattern )ImageToRGB (img Image )(Image ,error ){_ag .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 ,_ad .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");};
|
||
|
||
// PdfAnnotationProjection represents Projection annotations.
|
||
type PdfAnnotationProjection struct{*PdfAnnotation ;*PdfAnnotationMarkup ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_eaacfb *PdfSignature )ToPdfObject ()_fd .PdfObject {_dabbd :=_eaacfb ._cbaga ;var _gacbe *_fd .PdfObjectDictionary ;if _aagg ,_eaagg :=_dabbd .PdfObject .(*pdfSignDictionary );_eaagg {_gacbe =_aagg .PdfObjectDictionary ;}else {_gacbe =_dabbd .PdfObject .(*_fd .PdfObjectDictionary );
|
||
};_gacbe .SetIfNotNil ("\u0054\u0079\u0070\u0065",_eaacfb .Type );_gacbe .SetIfNotNil ("\u0046\u0069\u006c\u0074\u0065\u0072",_eaacfb .Filter );_gacbe .SetIfNotNil ("\u0053u\u0062\u0046\u0069\u006c\u0074\u0065r",_eaacfb .SubFilter );_gacbe .SetIfNotNil ("\u0042y\u0074\u0065\u0052\u0061\u006e\u0067e",_eaacfb .ByteRange );
|
||
_gacbe .SetIfNotNil ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073",_eaacfb .Contents );_gacbe .SetIfNotNil ("\u0043\u0065\u0072\u0074",_eaacfb .Cert );_gacbe .SetIfNotNil ("\u004e\u0061\u006d\u0065",_eaacfb .Name );_gacbe .SetIfNotNil ("\u0052\u0065\u0061\u0073\u006f\u006e",_eaacfb .Reason );
|
||
_gacbe .SetIfNotNil ("\u004d",_eaacfb .M );_gacbe .SetIfNotNil ("\u0052e\u0066\u0065\u0072\u0065\u006e\u0063e",_eaacfb .Reference );_gacbe .SetIfNotNil ("\u0043h\u0061\u006e\u0067\u0065\u0073",_eaacfb .Changes );_gacbe .SetIfNotNil ("C\u006f\u006e\u0074\u0061\u0063\u0074\u0049\u006e\u0066\u006f",_eaacfb .ContactInfo );
|
||
return _dabbd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fdfe *PdfAnnotationSound )ToPdfObject ()_fd .PdfObject {_fdfe .PdfAnnotation .ToPdfObject ();_adbd :=_fdfe ._aeb ;_adge :=_adbd .PdfObject .(*_fd .PdfObjectDictionary );_fdfe .PdfAnnotationMarkup .appendToPdfDictionary (_adge );_adge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u006f\u0075n\u0064"));
|
||
_adge .SetIfNotNil ("\u0053\u006f\u0075n\u0064",_fdfe .Sound );_adge .SetIfNotNil ("\u004e\u0061\u006d\u0065",_fdfe .Name );return _adbd ;};func (_cedf *PdfAppender )updateObjectsDeep (_faga _fd .PdfObject ,_ddde map[_fd .PdfObject ]struct{}){if _ddde ==nil {_ddde =map[_fd .PdfObject ]struct{}{};
|
||
};if _ ,_bbgb :=_ddde [_faga ];_bbgb ||_faga ==nil {return ;};_ddde [_faga ]=struct{}{};_fca :=_fd .ResolveReferencesDeep (_faga ,_cedf ._bade );if _fca !=nil {_ag .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fca );};switch _dgff :=_faga .(type ){case *_fd .PdfIndirectObject :switch {case _dgff .GetParser ()==_cedf ._efec ._faaf :return ;
|
||
case _dgff .GetParser ()==_cedf .Reader ._faaf :_aecd ,_ :=_cedf ._efec .GetIndirectObjectByNumber (int (_dgff .ObjectNumber ));_ccbf ,_cdde :=_aecd .(*_fd .PdfIndirectObject );if _cdde &&_ccbf !=nil {if _ccbf .PdfObject !=_dgff .PdfObject &&_ccbf .PdfObject .WriteString ()!=_dgff .PdfObject .WriteString (){if _gg .Contains (_dgff .PdfObject .WriteString (),"\u002f\u0053\u0069\u0067")&&_gg .Contains (_dgff .PdfObject .WriteString (),"\u002f\u0053\u0075\u0062\u0074\u0079\u0070\u0065"){return ;
|
||
};_cedf .addNewObject (_faga );_cedf ._aceb [_faga ]=_dgff .ObjectNumber ;};};default:_cedf .addNewObject (_faga );};_cedf .updateObjectsDeep (_dgff .PdfObject ,_ddde );case *_fd .PdfObjectArray :for _ ,_bab :=range _dgff .Elements (){_cedf .updateObjectsDeep (_bab ,_ddde );
|
||
};case *_fd .PdfObjectDictionary :for _ ,_ccabg :=range _dgff .Keys (){_cedf .updateObjectsDeep (_dgff .Get (_ccabg ),_ddde );};case *_fd .PdfObjectStreams :if _dgff .GetParser ()!=_cedf ._efec ._faaf {for _ ,_adba :=range _dgff .Elements (){_cedf .updateObjectsDeep (_adba ,_ddde );
|
||
};};case *_fd .PdfObjectStream :switch {case _dgff .GetParser ()==_cedf ._efec ._faaf :return ;case _dgff .GetParser ()==_cedf .Reader ._faaf :if _cdeg ,_bfbb :=_cedf ._efec ._faaf .LookupByReference (_dgff .PdfObjectReference );_bfbb ==nil {var _edbb bool ;
|
||
if _addec ,_gbd :=_fd .GetStream (_cdeg );_gbd &&_bf .Equal (_addec .Stream ,_dgff .Stream ){_edbb =true ;};if _fagaa ,_egcf :=_fd .GetDict (_cdeg );_edbb &&_egcf {_edbb =_fagaa .WriteString ()==_dgff .PdfObjectDictionary .WriteString ();};if _edbb {return ;
|
||
};};if _dgff .ObjectNumber !=0{_cedf ._aceb [_faga ]=_dgff .ObjectNumber ;};default:if _ ,_fdgbd :=_cedf ._dbdc [_faga ];!_fdgbd {_cedf .addNewObject (_faga );};};_cedf .updateObjectsDeep (_dgff .PdfObjectDictionary ,_ddde );};};
|
||
|
||
// PdfAnnotationLine represents Line annotations.
|
||
// (Section 12.5.6.7).
|
||
type PdfAnnotationLine struct{*PdfAnnotation ;*PdfAnnotationMarkup ;L _fd .PdfObject ;BS _fd .PdfObject ;LE _fd .PdfObject ;IC _fd .PdfObject ;LL _fd .PdfObject ;LLE _fd .PdfObject ;Cap _fd .PdfObject ;IT _fd .PdfObject ;LLO _fd .PdfObject ;CP _fd .PdfObject ;
|
||
Measure _fd .PdfObject ;CO _fd .PdfObject ;};func (_gdffb *PdfWriter )addObjects (_feee _fd .PdfObject )error {_ag .Log .Trace ("\u0041d\u0064i\u006e\u0067\u0020\u006f\u0062\u006a\u0065\u0063\u0074\u0073\u0021");if _aacfd ,_bedc :=_feee .(*_fd .PdfIndirectObject );
|
||
_bedc {_ag .Log .Trace ("\u0049\u006e\u0064\u0069\u0072\u0065\u0063\u0074");_ag .Log .Trace ("\u002d \u0025\u0073\u0020\u0028\u0025\u0070)",_feee ,_aacfd );_ag .Log .Trace ("\u002d\u0020\u0025\u0073",_aacfd .PdfObject );if _gdffb .addObject (_aacfd ){_ggadc :=_gdffb .addObjects (_aacfd .PdfObject );
|
||
if _ggadc !=nil {return _ggadc ;};};return nil ;};if _abaee ,_cbabc :=_feee .(*_fd .PdfObjectStream );_cbabc {_ag .Log .Trace ("\u0053\u0074\u0072\u0065\u0061\u006d");_ag .Log .Trace ("\u002d \u0025\u0073\u0020\u0025\u0070",_feee ,_feee );if _gdffb .addObject (_abaee ){_fedb :=_gdffb .addObjects (_abaee .PdfObjectDictionary );
|
||
if _fedb !=nil {return _fedb ;};};return nil ;};if _bfgcc ,_fdffb :=_feee .(*_fd .PdfObjectDictionary );_fdffb {_ag .Log .Trace ("\u0044\u0069\u0063\u0074");_ag .Log .Trace ("\u002d\u0020\u0025\u0073",_feee );for _ ,_faed :=range _bfgcc .Keys (){_defgga :=_bfgcc .Get (_faed );
|
||
if _afbcc ,_fbea :=_defgga .(*_fd .PdfObjectReference );_fbea {_defgga =_afbcc .Resolve ();_bfgcc .Set (_faed ,_defgga );};if _faed !="\u0050\u0061\u0072\u0065\u006e\u0074"{if _gacba :=_gdffb .addObjects (_defgga );_gacba !=nil {return _gacba ;};}else {if _ ,_efdbb :=_defgga .(*_fd .PdfObjectNull );
|
||
_efdbb {continue ;};if _edcccc :=_gdffb .hasObject (_defgga );!_edcccc {_ag .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",_defgga ,_defgga ,_defgga );
|
||
_gdffb ._aaabd [_defgga ]=append (_gdffb ._aaabd [_defgga ],_bfgcc );};};};return nil ;};if _eefgb ,_ddaaf :=_feee .(*_fd .PdfObjectArray );_ddaaf {_ag .Log .Trace ("\u0041\u0072\u0072a\u0079");_ag .Log .Trace ("\u002d\u0020\u0025\u0073",_feee );if _eefgb ==nil {return _ad .New ("\u0061\u0072\u0072a\u0079\u0020\u0069\u0073\u0020\u006e\u0069\u006c");
|
||
};for _cagf ,_facdb :=range _eefgb .Elements (){if _fbbbb ,_abgbc :=_facdb .(*_fd .PdfObjectReference );_abgbc {_facdb =_fbbbb .Resolve ();_eefgb .Set (_cagf ,_facdb );};if _cbcaa :=_gdffb .addObjects (_facdb );_cbcaa !=nil {return _cbcaa ;};};return nil ;
|
||
};if _ ,_cddeb :=_feee .(*_fd .PdfObjectReference );_cddeb {_ag .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",_feee );
|
||
return _ad .New ("r\u0065\u0066\u0065\u0072en\u0063e\u0020\u006e\u006f\u0074\u0020a\u006c\u006c\u006f\u0077\u0065\u0064");};return nil ;};func (_dfaf *PdfReader )newPdfAnnotationPopupFromDict (_aegdg *_fd .PdfObjectDictionary )(*PdfAnnotationPopup ,error ){_aed :=PdfAnnotationPopup {};
|
||
_aed .Parent =_aegdg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");_aed .Open =_aegdg .Get ("\u004f\u0070\u0065\u006e");return &_aed ,nil ;};func (_cfd *PdfReader )newPdfActionSoundFromDict (_bafb *_fd .PdfObjectDictionary )(*PdfActionSound ,error ){return &PdfActionSound {Sound :_bafb .Get ("\u0053\u006f\u0075n\u0064"),Volume :_bafb .Get ("\u0056\u006f\u006c\u0075\u006d\u0065"),Synchronous :_bafb .Get ("S\u0079\u006e\u0063\u0068\u0072\u006f\u006e\u006f\u0075\u0073"),Repeat :_bafb .Get ("\u0052\u0065\u0070\u0065\u0061\u0074"),Mix :_bafb .Get ("\u004d\u0069\u0078")},nil ;
|
||
};
|
||
|
||
// SetCatalogViewerPreferences sets the catalog ViewerPreferences dictionary.
|
||
func (_gbdge *PdfWriter )SetCatalogViewerPreferences (pref _fd .PdfObject )error {if pref ==nil {_gbdge ._fdaca .Remove ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073");return nil ;};_gbdge .addObject (pref );
|
||
_gbdge ._fdaca .Set ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073",pref );return nil ;};func _cfddd (_gbbca *_fd .PdfObjectArray )(float64 ,error ){_baefed ,_adagf :=_gbbca .ToFloat64Array ();if _adagf !=nil {_ag .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",_gbbca ,_adagf );
|
||
};switch len (_baefed ){case 1:return _baefed [0],nil ;case 3:_aefff :=PdfColorspaceDeviceRGB {};_ffbf ,_acce :=_aefff .ColorFromFloats (_baefed );if _acce !=nil {return 0.0,_acce ;};return _ffbf .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;case 4:_gdegca :=PdfColorspaceDeviceCMYK {};
|
||
_cccadf ,_cbfff :=_gdegca .ColorFromFloats (_baefed );if _cbfff !=nil {return 0.0,_cbfff ;};_gcbeb ,_cbfff :=_gdegca .ColorToRGB (_cccadf .(*PdfColorDeviceCMYK ));if _cbfff !=nil {return 0.0,_cbfff ;};return _gcbeb .(*PdfColorDeviceRGB ).ToGray ().Val (),nil ;
|
||
};_adagf =_ad .New ("\u0062a\u0064 \u004d\u0061\u0074\u0074\u0065\u0020\u0063\u006f\u006c\u006f\u0072");_ag .Log .Error ("\u0074\u006f\u0047ra\u0079\u003a\u0020\u006d\u0061\u0074\u0074\u0065\u003d\u0025\u0073\u0020\u0065\u0072\u0072\u003d\u0025\u0076",_gbbca ,_adagf );
|
||
return 0.0,_adagf ;};func (_cdeb *pdfFontType0 )baseFields ()*fontCommon {return &_cdeb .fontCommon };
|
||
|
||
// NewPdfAnnotationHighlight returns a new text highlight annotation.
|
||
func NewPdfAnnotationHighlight ()*PdfAnnotationHighlight {_fbdf :=NewPdfAnnotation ();_bfgc :=&PdfAnnotationHighlight {};_bfgc .PdfAnnotation =_fbdf ;_bfgc .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_fbdf .SetContext (_bfgc );return _bfgc ;};
|
||
|
||
// WriteString outputs the object as it is to be written to file.
|
||
func (_gggf *PdfTransformParamsDocMDP )WriteString ()string {return _gggf .ToPdfObject ().WriteString ()};
|
||
|
||
// NewPdfAnnotationPrinterMark returns a new printermark annotation.
|
||
func NewPdfAnnotationPrinterMark ()*PdfAnnotationPrinterMark {_aagb :=NewPdfAnnotation ();_ecg :=&PdfAnnotationPrinterMark {};_ecg .PdfAnnotation =_aagb ;_aagb .SetContext (_ecg );return _ecg ;};
|
||
|
||
// NewPdfPage returns a new PDF page.
|
||
func NewPdfPage ()*PdfPage {_ceggb :=PdfPage {};_ceggb ._gaec =_fd .MakeDict ();_ceggb .Resources =NewPdfPageResources ();_fdba :=_fd .PdfIndirectObject {};_fdba .PdfObject =_ceggb ._gaec ;_ceggb ._fgcac =&_fdba ;_ceggb ._cadc =*_ceggb ._gaec ;return &_ceggb ;
|
||
};
|
||
|
||
// 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 (_fea *PdfAppender )Sign (pageNum int ,field *PdfFieldSignature )error {if field ==nil {return _ad .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");
|
||
};_eagaf :=field .V ;if _eagaf ==nil {return _ad .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");};_ddabe :=pageNum -1;
|
||
if _ddabe < 0||_ddabe > len (_fea ._gbca )-1{return _dc .Errorf ("\u0070\u0061\u0067\u0065\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064",pageNum );};_ecac :=_fea .Reader .PageList [_ddabe ];field .P =_ecac .ToPdfObject ();if field .T ==nil ||field .T .String ()==""{field .T =_fd .MakeString (_dc .Sprintf ("\u0053\u0069\u0067n\u0061\u0074\u0075\u0072\u0065\u0020\u0025\u0064",pageNum ));
|
||
};_ecac .AddAnnotation (field .PdfAnnotationWidget .PdfAnnotation );if _fea ._agfb ==_fea ._efec .AcroForm {_fea ._agfb =_fea .Reader .AcroForm ;};_fgad :=_fea ._agfb ;if _fgad ==nil {_fgad =NewPdfAcroForm ();};_fgad .SigFlags =_fd .MakeInteger (3);if _fgad .NeedAppearances !=nil {_fgad .NeedAppearances =nil ;
|
||
};_bfcf :=append (_fgad .AllFields (),field .PdfField );_fgad .Fields =&_bfcf ;_fea .ReplaceAcroForm (_fgad );_fea .UpdatePage (_ecac );_fea ._gbca [_ddabe ]=_ecac ;if _ ,_cgdd :=field .V .GetDocMDPPermission ();_cgdd {_fea ._daea =NewPermissions (field .V );
|
||
};return nil ;};func (_fbd *PdfReader )newPdfActionGotoEFromDict (_aac *_fd .PdfObjectDictionary )(*PdfActionGoToE ,error ){_gea ,_gbg :=_ece (_aac .Get ("\u0046"));if _gbg !=nil {return nil ,_gbg ;};return &PdfActionGoToE {D :_aac .Get ("\u0044"),NewWindow :_aac .Get ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw"),T :_aac .Get ("\u0054"),F :_gea },nil ;
|
||
};
|
||
|
||
// PdfColorPatternType2 represents a color shading pattern type 2 (Axial).
|
||
type PdfColorPatternType2 struct{Color PdfColor ;PatternName _fd .PdfObjectName ;};
|
||
|
||
// GetXHeight returns the XHeight of the font `descriptor`.
|
||
func (_cafa *PdfFontDescriptor )GetXHeight ()(float64 ,error ){return _fd .GetNumberAsFloat (_cafa .XHeight );};
|
||
|
||
// 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 (_agebf *PdfReader )RepairAcroForm (opts *AcroFormRepairOptions )error {var _faaaf []*PdfField ;_feebg :=map[*_fd .PdfIndirectObject ]struct{}{};for _ ,_gecda :=range _agebf .PageList {_gafde ,_afcgb :=_gecda .GetAnnotations ();if _afcgb !=nil {return _afcgb ;
|
||
};for _ ,_gaaga :=range _gafde {var _gbfcb *PdfField ;switch _bddac :=_gaaga .GetContext ().(type ){case *PdfAnnotationWidget :if _bddac ._eabc !=nil {_gbfcb =_bddac ._eabc ;break ;};if _edbbgc ,_caaee :=_fd .GetIndirect (_bddac .Parent );_caaee {_gbfcb ,_afcgb =_agebf .newPdfFieldFromIndirectObject (_edbbgc ,nil );
|
||
if _afcgb ==nil {break ;};_ag .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",_edbbgc ,_afcgb );
|
||
};if _bddac ._aeb !=nil {_gbfcb ,_afcgb =_agebf .newPdfFieldFromIndirectObject (_bddac ._aeb ,nil );if _afcgb ==nil {break ;};_ag .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",_bddac ._aeb ,_afcgb );
|
||
};};if _gbfcb ==nil {continue ;};if _ ,_dffccb :=_feebg [_gbfcb ._dffeb ];_dffccb {continue ;};_feebg [_gbfcb ._dffeb ]=struct{}{};_faaaf =append (_faaaf ,_gbfcb );};};if len (_faaaf )==0{return nil ;};if _agebf .AcroForm ==nil {_agebf .AcroForm =NewPdfAcroForm ();
|
||
};_agebf .AcroForm .Fields =&_faaaf ;return nil ;};
|
||
|
||
// StandardApplier is the interface that performs optimization of the whole PDF document.
|
||
// As a result an input document is being changed by the optimizer.
|
||
// The writer than takes back all it's parts and overwrites it.
|
||
// NOTE: This implementation is in experimental development state.
|
||
//
|
||
// Keep in mind that it might change in the subsequent minor versions.
|
||
type StandardApplier interface{ApplyStandard (_bcbaf *_ca .Document )error ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_caf *PdfAnnotationStrikeOut )ToPdfObject ()_fd .PdfObject {_caf .PdfAnnotation .ToPdfObject ();_fcfd :=_caf ._aeb ;_dfca :=_fcfd .PdfObject .(*_fd .PdfObjectDictionary );_caf .PdfAnnotationMarkup .appendToPdfDictionary (_dfca );_dfca .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053t\u0072\u0069\u006b\u0065\u004f\u0075t"));
|
||
_dfca .SetIfNotNil ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073",_caf .QuadPoints );return _fcfd ;};
|
||
|
||
// ToPdfObject converts the pdfCIDFontType2 to a PDF representation.
|
||
func (_fbdfc *pdfCIDFontType2 )ToPdfObject ()_fd .PdfObject {if _fbdfc ._bceb ==nil {_fbdfc ._bceb =&_fd .PdfIndirectObject {};};_ffcg :=_fbdfc .baseFields ().asPdfObjectDictionary ("\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0032");
|
||
_fbdfc ._bceb .PdfObject =_ffcg ;if _fbdfc .CIDSystemInfo !=nil {_ffcg .Set ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f",_fbdfc .CIDSystemInfo );};if _fbdfc .DW !=nil {_ffcg .Set ("\u0044\u0057",_fbdfc .DW );};if _fbdfc .DW2 !=nil {_ffcg .Set ("\u0044\u0057\u0032",_fbdfc .DW2 );
|
||
};if _fbdfc .W !=nil {_ffcg .Set ("\u0057",_fbdfc .W );};if _fbdfc .W2 !=nil {_ffcg .Set ("\u0057\u0032",_fbdfc .W2 );};if _fbdfc .CIDToGIDMap !=nil {_ffcg .Set ("C\u0049\u0044\u0054\u006f\u0047\u0049\u0044\u004d\u0061\u0070",_fbdfc .CIDToGIDMap );};return _fbdfc ._bceb ;
|
||
};
|
||
|
||
// ImageToRGB converts an Image in a given PdfColorspace to an RGB image.
|
||
func (_aeea *PdfColorspaceDeviceN )ImageToRGB (img Image )(Image ,error ){_dgfa :=_bg .NewReader (img .getBase ());_efae :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),img .ColorComponents ,nil ,img ._gfffd ,img ._cdbdc );
|
||
_dfdg :=_bg .NewWriter (_efae );_cbfbb :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_bbbeb :=_aeea .GetNumComponents ();_ffaa :=make ([]uint32 ,_bbbeb );_fcdee :=make ([]float64 ,_bbbeb );for {_gdea :=_dgfa .ReadSamples (_ffaa );if _gdea ==_bc .EOF {break ;
|
||
}else if _gdea !=nil {return img ,_gdea ;};for _fdacg :=0;_fdacg < _bbbeb ;_fdacg ++{_bcga :=float64 (_ffaa [_fdacg ])/_cbfbb ;_fcdee [_fdacg ]=_bcga ;};_dbeg ,_gdea :=_aeea .TintTransform .Evaluate (_fcdee );if _gdea !=nil {return img ,_gdea ;};for _ ,_addd :=range _dbeg {_addd =_af .Min (_af .Max (0,_addd ),1.0);
|
||
if _gdea =_dfdg .WriteSample (uint32 (_addd *_cbfbb ));_gdea !=nil {return img ,_gdea ;};};};return _aeea .AlternateSpace .ImageToRGB (_eeafa (&_efae ));};
|
||
|
||
// EncryptionAlgorithm is used in EncryptOptions to change the default algorithm used to encrypt the document.
|
||
type EncryptionAlgorithm int ;
|
||
|
||
// Normalize swaps (Llx,Urx) if Urx < Llx, and (Lly,Ury) if Ury < Lly.
|
||
func (_efga *PdfRectangle )Normalize (){if _efga .Llx > _efga .Urx {_efga .Llx ,_efga .Urx =_efga .Urx ,_efga .Llx ;};if _efga .Lly > _efga .Ury {_efga .Lly ,_efga .Ury =_efga .Ury ,_efga .Lly ;};};
|
||
|
||
// 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 ;_gfffd []byte ;_cdbdc []float64 ;};
|
||
|
||
// NewXObjectImageFromImageLazy creates a new XObject Image from an image object
|
||
// with default options. If encoder is nil, uses raw encoding (none).
|
||
// If lazy is true, then lazy mode is enabled for XObject.
|
||
// Lazy mode allows to reduce memory usage with the help of temporary files.
|
||
func NewXObjectImageFromImageLazy (img *Image ,cs PdfColorspace ,encoder _fd .StreamEncoder ,lazy bool )(*XObjectImage ,error ){_dgea :=NewXObjectImage ();if lazy {_abdeg ,_eddfac :=UpdateXObjectImageFromImage (_dgea ,img ,cs ,encoder );if _eddfac !=nil {return nil ,_eddfac ;
|
||
};_abdeg .ToPdfObject ();_eddfac =_abdeg ._bbcgd .MakeLazy ();if _eddfac !=nil {return nil ,_eddfac ;};_abdeg .Stream =nil ;return _abdeg ,nil ;};return UpdateXObjectImageFromImage (_dgea ,img ,cs ,encoder );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_edc *PdfActionResetForm )ToPdfObject ()_fd .PdfObject {_edc .PdfAction .ToPdfObject ();_ddf :=_edc ._bfb ;_cda :=_ddf .PdfObject .(*_fd .PdfObjectDictionary );_cda .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeResetForm )));_cda .SetIfNotNil ("\u0046\u0069\u0065\u006c\u0064\u0073",_edc .Fields );
|
||
_cda .SetIfNotNil ("\u0046\u006c\u0061g\u0073",_edc .Flags );return _ddf ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for CalRGB).
|
||
func (_baeg *PdfColorCalRGB )GetNumComponents ()int {return 3};func (_cfcg *PdfReader )newPdfActionRenditionFromDict (_gdf *_fd .PdfObjectDictionary )(*PdfActionRendition ,error ){return &PdfActionRendition {R :_gdf .Get ("\u0052"),AN :_gdf .Get ("\u0041\u004e"),OP :_gdf .Get ("\u004f\u0050"),JS :_gdf .Get ("\u004a\u0053")},nil ;
|
||
};
|
||
|
||
// ToPdfObject returns the PDF representation of the pattern.
|
||
func (_defba *PdfPattern )ToPdfObject ()_fd .PdfObject {_afadg :=_defba .getDict ();_afadg .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0050a\u0074\u0074\u0065\u0072\u006e"));_afadg .Set ("P\u0061\u0074\u0074\u0065\u0072\u006e\u0054\u0079\u0070\u0065",_fd .MakeInteger (_defba .PatternType ));
|
||
return _defba ._gcgba ;};
|
||
|
||
// PdfActionNamed represents a named action.
|
||
type PdfActionNamed struct{*PdfAction ;N _fd .PdfObject ;};
|
||
|
||
// PdfColorspaceDeviceGray represents a grayscale colorspace.
|
||
type PdfColorspaceDeviceGray struct{};func (_dgeb *PdfReader )newPdfAnnotationLinkFromDict (_dcbe *_fd .PdfObjectDictionary )(*PdfAnnotationLink ,error ){_daeb :=PdfAnnotationLink {};_daeb .A =_dcbe .Get ("\u0041");_daeb .Dest =_dcbe .Get ("\u0044\u0065\u0073\u0074");
|
||
_daeb .H =_dcbe .Get ("\u0048");_daeb .PA =_dcbe .Get ("\u0050\u0041");_daeb .QuadPoints =_dcbe .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");_daeb .BS =_dcbe .Get ("\u0042\u0053");return &_daeb ,nil ;};func (_dbdd *PdfReader )newPdfAnnotation3DFromDict (_deec *_fd .PdfObjectDictionary )(*PdfAnnotation3D ,error ){_dafc :=PdfAnnotation3D {};
|
||
_dafc .T3DD =_deec .Get ("\u0033\u0044\u0044");_dafc .T3DV =_deec .Get ("\u0033\u0044\u0056");_dafc .T3DA =_deec .Get ("\u0033\u0044\u0041");_dafc .T3DI =_deec .Get ("\u0033\u0044\u0049");_dafc .T3DB =_deec .Get ("\u0033\u0044\u0042");return &_dafc ,nil ;
|
||
};
|
||
|
||
// AddCustomInfo adds a custom info into document info dictionary.
|
||
func (_acegf *PdfInfo )AddCustomInfo (name string ,value string )error {if _acegf ._defeg ==nil {_acegf ._defeg =_fd .MakeDict ();};if _ ,_aaff :=_ccebb [name ];_aaff {return _dc .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 );
|
||
};_acegf ._defeg .SetIfNotNil (*_fd .MakeName (name ),_fd .MakeString (value ));return nil ;};
|
||
|
||
// SetImage updates XObject Image with new image data.
|
||
func (_begdd *XObjectImage )SetImage (img *Image ,cs PdfColorspace )error {_begdd .Filter .UpdateParams (img .GetParamsDict ());_cbcbe ,_afecd :=_begdd .Filter .EncodeBytes (img .Data );if _afecd !=nil {return _afecd ;};_begdd .Stream =_cbcbe ;_efgfdg :=img .Width ;
|
||
_begdd .Width =&_efgfdg ;_dcfdf :=img .Height ;_begdd .Height =&_dcfdf ;_bfefgf :=img .BitsPerComponent ;_begdd .BitsPerComponent =&_bfefgf ;if cs ==nil {if img .ColorComponents ==1{_begdd .ColorSpace =NewPdfColorspaceDeviceGray ();}else if img .ColorComponents ==3{_begdd .ColorSpace =NewPdfColorspaceDeviceRGB ();
|
||
}else if img .ColorComponents ==4{_begdd .ColorSpace =NewPdfColorspaceDeviceCMYK ();}else {return _ad .New ("c\u006fl\u006f\u0072\u0073\u0070\u0061\u0063\u0065\u0020u\u006e\u0064\u0065\u0066in\u0065\u0064");};}else {_begdd .ColorSpace =cs ;};return nil ;
|
||
};var _ pdfFont =(*pdfFontType0 )(nil );func (_dagae *PdfShading )getShadingDict ()(*_fd .PdfObjectDictionary ,error ){_cada :=_dagae ._cdgfd ;if _egeda ,_bddeg :=_cada .(*_fd .PdfIndirectObject );_bddeg {_edfeb ,_egfcfd :=_egeda .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_egfcfd {return nil ,_fd .ErrTypeError ;};return _edfeb ,nil ;}else if _bbfgd ,_dfadc :=_cada .(*_fd .PdfObjectStream );_dfadc {return _bbfgd .PdfObjectDictionary ,nil ;}else if _afgce ,_gagfg :=_cada .(*_fd .PdfObjectDictionary );_gagfg {return _afgce ,nil ;
|
||
}else {_ag .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 ,_fd .ErrTypeError ;};};func _eacbg (_cbgg _fd .PdfObject ){_ag .Log .Debug ("\u006f\u0062\u006a\u003a\u0020\u0025\u0054\u0020\u0025\u0073",_cbgg ,_cbgg .String ());
|
||
if _fafab ,_cccaf :=_cbgg .(*_fd .PdfObjectStream );_cccaf {_egbcb ,_fbga :=_fd .DecodeStream (_fafab );if _fbga !=nil {_ag .Log .Debug ("\u0045r\u0072\u006f\u0072\u003a\u0020\u0025v",_fbga );return ;};_ag .Log .Debug ("D\u0065\u0063\u006f\u0064\u0065\u0064\u003a\u0020\u0025\u0073",_egbcb );
|
||
}else if _ddge ,_fdegc :=_cbgg .(*_fd .PdfIndirectObject );_fdegc {_ag .Log .Debug ("\u0025\u0054\u0020%\u0076",_ddge .PdfObject ,_ddge .PdfObject );_ag .Log .Debug ("\u0025\u0073",_ddge .PdfObject .String ());};};
|
||
|
||
// SetPageLabels sets the PageLabels entry in the PDF catalog.
|
||
// See section 12.4.2 "Page Labels" (p. 382 PDF32000_2008).
|
||
func (_dbbf *PdfWriter )SetPageLabels (pageLabels _fd .PdfObject )error {if pageLabels ==nil {return nil ;};_ag .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");
|
||
_dbbf ._fdaca .Set ("\u0050\u0061\u0067\u0065\u004c\u0061\u0062\u0065\u006c\u0073",pageLabels );return _dbbf .addObjects (pageLabels );};func _cafce (_eeaf []byte )[]byte {const _ggdeg =52845;const _abdbg =22719;_efdfab :=55665;for _ ,_caeea :=range _eeaf [:4]{_efdfab =(int (_caeea )+_efdfab )*_ggdeg +_abdbg ;
|
||
};_ggfb :=make ([]byte ,len (_eeaf )-4);for _dfdf ,_gbfgd :=range _eeaf [4:]{_ggfb [_dfdf ]=byte (int (_gbfgd )^_efdfab >>8);_efdfab =(int (_gbfgd )+_efdfab )*_ggdeg +_abdbg ;};return _ggfb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dcc *PdfAction )ToPdfObject ()_fd .PdfObject {_bdb :=_dcc ._bfb ;_ac :=_bdb .PdfObject .(*_fd .PdfObjectDictionary );_ac .Clear ();_ac .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0041\u0063\u0074\u0069\u006f\u006e"));_ac .SetIfNotNil ("\u0053",_dcc .S );
|
||
_ac .SetIfNotNil ("\u004e\u0065\u0078\u0074",_dcc .Next );return _bdb ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_adgd *PdfActionTrans )ToPdfObject ()_fd .PdfObject {_adgd .PdfAction .ToPdfObject ();_eag :=_adgd ._bfb ;_bbd :=_eag .PdfObject .(*_fd .PdfObjectDictionary );_bbd .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeTrans )));_bbd .SetIfNotNil ("\u0054\u0072\u0061n\u0073",_adgd .Trans );
|
||
return _eag ;};
|
||
|
||
// NewLTV returns a new LTV client.
|
||
func NewLTV (appender *PdfAppender )(*LTV ,error ){_gfcg :=appender .Reader .DSS ;if _gfcg ==nil {_gfcg =NewDSS ();};if _agced :=_gfcg .GenerateHashMaps ();_agced !=nil {return nil ,_agced ;};return <V {CertClient :_ef .NewCertClient (),OCSPClient :_ef .NewOCSPClient (),CRLClient :_ef .NewCRLClient (),SkipExisting :true ,_gaggb :appender ,_fefa :_gfcg },nil ;
|
||
};
|
||
|
||
// ColorFromPdfObjects gets the color from a series of pdf objects (3 for rgb).
|
||
func (_dfab *PdfColorspaceDeviceRGB )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fagaab ,_fdgf :=_fd .GetNumbersAsFloat (objects );
|
||
if _fdgf !=nil {return nil ,_fdgf ;};return _dfab .ColorFromFloats (_fagaab );};func (_dfbae *XObjectImage )getParamsDict ()*_fd .PdfObjectDictionary {_cfbbc :=_fd .MakeDict ();_cfbbc .Set ("\u0057\u0069\u0064t\u0068",_fd .MakeInteger (*_dfbae .Width ));
|
||
_cfbbc .Set ("\u0048\u0065\u0069\u0067\u0068\u0074",_fd .MakeInteger (*_dfbae .Height ));_cfbbc .Set ("\u0043o\u006co\u0072\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074\u0073",_fd .MakeInteger (int64 (_dfbae .ColorSpace .GetNumComponents ())));
|
||
_cfbbc .Set ("\u0042\u0069t\u0073\u0050\u0065r\u0043\u006f\u006d\u0070\u006f\u006e\u0065\u006e\u0074",_fd .MakeInteger (*_dfbae .BitsPerComponent ));return _cfbbc ;};
|
||
|
||
// GetRuneMetrics returns the character metrics for the specified rune.
|
||
// A bool flag is returned to indicate whether or not the entry was found.
|
||
func (_cdac pdfFontType3 )GetRuneMetrics (r rune )(_cf .CharMetrics ,bool ){_ddabd :=_cdac .Encoder ();if _ddabd ==nil {_ag .Log .Debug ("\u004e\u006f\u0020en\u0063\u006f\u0064\u0065\u0072\u0020\u0066\u006f\u0072\u0020\u0066\u006f\u006e\u0074\u0073\u003d\u0025\u0073",_cdac );
|
||
return _cf .CharMetrics {},false ;};_bgfca ,_gfeec :=_ddabd .RuneToCharcode (r );if !_gfeec {if r !=' '{_ag .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 ,_cdac );
|
||
};return _cf .CharMetrics {},false ;};_ggff ,_dabga :=_cdac .GetCharMetrics (_bgfca );return _ggff ,_dabga ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the page resources.
|
||
func (_caeege *PdfPageResources )ToPdfObject ()_fd .PdfObject {_dggeb :=_caeege ._adegd ;_dggeb .SetIfNotNil ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e",_caeege .ExtGState );if _caeege ._agaf !=nil {_caeege .ColorSpace =_caeege ._agaf .ToPdfObject ();
|
||
};_dggeb .SetIfNotNil ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065",_caeege .ColorSpace );_dggeb .SetIfNotNil ("\u0050a\u0074\u0074\u0065\u0072\u006e",_caeege .Pattern );_dggeb .SetIfNotNil ("\u0053h\u0061\u0064\u0069\u006e\u0067",_caeege .Shading );
|
||
_dggeb .SetIfNotNil ("\u0058O\u0062\u006a\u0065\u0063\u0074",_caeege .XObject );_dggeb .SetIfNotNil ("\u0046\u006f\u006e\u0074",_caeege .Font );_dggeb .SetIfNotNil ("\u0050r\u006f\u0063\u0053\u0065\u0074",_caeege .ProcSet );_dggeb .SetIfNotNil ("\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073",_caeege .Properties );
|
||
return _dggeb ;};func (_adgfa *PdfReader )newPdfAnnotationCaretFromDict (_gce *_fd .PdfObjectDictionary )(*PdfAnnotationCaret ,error ){_abde :=PdfAnnotationCaret {};_agbg ,_gcdac :=_adgfa .newPdfAnnotationMarkupFromDict (_gce );if _gcdac !=nil {return nil ,_gcdac ;
|
||
};_abde .PdfAnnotationMarkup =_agbg ;_abde .RD =_gce .Get ("\u0052\u0044");_abde .Sy =_gce .Get ("\u0053\u0079");return &_abde ,nil ;};
|
||
|
||
// 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 (_dcfa *PdfColorspaceSpecialPattern )ColorToRGB (color PdfColor )(PdfColor ,error ){_ddfaac ,_cggab :=color .(*PdfColorPattern );if !_cggab {_ag .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 _ddfaac .Color ==nil {return color ,nil ;};if _dcfa .UnderlyingCS ==nil {return nil ,_ad .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};
|
||
return _dcfa .UnderlyingCS .ColorToRGB (_ddfaac .Color );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_dee *PdfActionGoToR )ToPdfObject ()_fd .PdfObject {_dee .PdfAction .ToPdfObject ();_eda :=_dee ._bfb ;_aeg :=_eda .PdfObject .(*_fd .PdfObjectDictionary );_aeg .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoToR )));if _dee .F !=nil {_aeg .Set ("\u0046",_dee .F .ToPdfObject ());
|
||
};_aeg .SetIfNotNil ("\u0044",_dee .D );_aeg .SetIfNotNil ("\u004ee\u0077\u0057\u0069\u006e\u0064\u006fw",_dee .NewWindow );return _eda ;};func (_gcbd *PdfReader )newPdfAnnotationSquareFromDict (_fbge *_fd .PdfObjectDictionary )(*PdfAnnotationSquare ,error ){_dacc :=PdfAnnotationSquare {};
|
||
_ddcg ,_eabcd :=_gcbd .newPdfAnnotationMarkupFromDict (_fbge );if _eabcd !=nil {return nil ,_eabcd ;};_dacc .PdfAnnotationMarkup =_ddcg ;_dacc .BS =_fbge .Get ("\u0042\u0053");_dacc .IC =_fbge .Get ("\u0049\u0043");_dacc .BE =_fbge .Get ("\u0042\u0045");
|
||
_dacc .RD =_fbge .Get ("\u0052\u0044");return &_dacc ,nil ;};
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline.
|
||
func (_bdfaf *Outline )ToPdfObject ()_fd .PdfObject {return _bdfaf .ToPdfOutline ().ToPdfObject ()};
|
||
|
||
// 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 (_aabc byte )byte ;
|
||
|
||
// ToInteger convert to an integer format.
|
||
func (_efcce *PdfColorCalGray )ToInteger (bits int )uint32 {_egge :=_af .Pow (2,float64 (bits ))-1;return uint32 (_egge *_efcce .Val ());};func (_agbgc *PdfReader )newPdfAnnotationRichMediaFromDict (_aeag *_fd .PdfObjectDictionary )(*PdfAnnotationRichMedia ,error ){_aad :=&PdfAnnotationRichMedia {};
|
||
_aad .RichMediaSettings =_aeag .Get ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073");_aad .RichMediaContent =_aeag .Get ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074");
|
||
return _aad ,nil ;};
|
||
|
||
// GetContext returns the action context which contains the specific type-dependent context.
|
||
// The context represents the subaction.
|
||
func (_ea *PdfAction )GetContext ()PdfModel {if _ea ==nil {return nil ;};return _ea ._ga ;};
|
||
|
||
// NewPdfColorDeviceGray returns a new grayscale color based on an input grayscale float value in range [0-1].
|
||
func NewPdfColorDeviceGray (grayVal float64 )*PdfColorDeviceGray {_egba :=PdfColorDeviceGray (grayVal );return &_egba ;};
|
||
|
||
// NewPdfActionImportData returns a new "import data" action.
|
||
func NewPdfActionImportData ()*PdfActionImportData {_fb :=NewPdfAction ();_dae :=&PdfActionImportData {};_dae .PdfAction =_fb ;_fb .SetContext (_dae );return _dae ;};
|
||
|
||
// ColorToRGB converts a CMYK32 color to an RGB color.
|
||
func (_feaf *PdfColorspaceDeviceCMYK )ColorToRGB (color PdfColor )(PdfColor ,error ){_beefc ,_acbc :=color .(*PdfColorDeviceCMYK );if !_acbc {_ag .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 ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_dffb :=_beefc .C ();_fccdf :=_beefc .M ();_gbac :=_beefc .Y ();_aega :=_beefc .K ();_dffb =_dffb *(1-_aega )+_aega ;_fccdf =_fccdf *(1-_aega )+_aega ;
|
||
_gbac =_gbac *(1-_aega )+_aega ;_aabgf :=1-_dffb ;_badb :=1-_fccdf ;_dffcc :=1-_gbac ;return NewPdfColorDeviceRGB (_aabgf ,_badb ,_dffcc ),nil ;};
|
||
|
||
// ToUnicode returns the name of the font's "ToUnicode" field if there is one, or "" if there isn't.
|
||
func (_cede *PdfFont )ToUnicode ()string {if _cede .baseFields ()._dgdg ==nil {return "";};return _cede .baseFields ()._dgdg .Name ();};func _abacge (_acdba []byte )bool {if len (_acdba )< 4{return true ;};for _ddbb :=range _acdba [:4]{_eafge :=rune (_ddbb );
|
||
if !_df .Is (_df .ASCII_Hex_Digit ,_eafge )&&!_df .IsSpace (_eafge ){return true ;};};return false ;};func (_bebda *PdfColorspaceCalGray )String ()string {return "\u0043a\u006c\u0047\u0072\u0061\u0079"};
|
||
|
||
// Set applies flag fl to the flag's bitmask and returns the combined flag.
|
||
func (_bcce FieldFlag )Set (fl FieldFlag )FieldFlag {return FieldFlag (_bcce .Mask ()|fl .Mask ())};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_abf *PdfActionURI )ToPdfObject ()_fd .PdfObject {_abf .PdfAction .ToPdfObject ();_edf :=_abf ._bfb ;_cc :=_edf .PdfObject .(*_fd .PdfObjectDictionary );_cc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeURI )));_cc .SetIfNotNil ("\u0055\u0052\u0049",_abf .URI );
|
||
_cc .SetIfNotNil ("\u0049\u0073\u004da\u0070",_abf .IsMap );return _edf ;};
|
||
|
||
// IsCheckbox returns true if the button field represents a checkbox, false otherwise.
|
||
func (_bfefb *PdfFieldButton )IsCheckbox ()bool {return _bfefb .GetType ()==ButtonTypeCheckbox };
|
||
|
||
// 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 ;
|
||
|
||
// 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 ,*_gbe .File ,error ){const _gded ="\u006d\u006f\u0064\u0065\u006c\u003a\u004e\u0065\u0077\u0050\u0064f\u0052\u0065\u0061\u0064\u0065\u0072\u0046\u0072\u006f\u006dF\u0069\u006c\u0065";
|
||
_ebfbg ,_ebaea :=_gbe .Open (pdfFile );if _ebaea !=nil {return nil ,nil ,_ebaea ;};_caag ,_ebaea :=_daab (_ebfbg ,opts ,true ,_gded );if _ebaea !=nil {_ebfbg .Close ();return nil ,nil ,_ebaea ;};return _caag ,_ebfbg ,nil ;};
|
||
|
||
// ToPdfObject returns the text field dictionary within an indirect object (container).
|
||
func (_gbcdf *PdfFieldText )ToPdfObject ()_fd .PdfObject {_gbcdf .PdfField .ToPdfObject ();_ceaa :=_gbcdf ._dffeb ;_dbcd :=_ceaa .PdfObject .(*_fd .PdfObjectDictionary );_dbcd .Set ("\u0046\u0054",_fd .MakeName ("\u0054\u0078"));if _gbcdf .DA !=nil {_dbcd .Set ("\u0044\u0041",_gbcdf .DA );
|
||
};if _gbcdf .Q !=nil {_dbcd .Set ("\u0051",_gbcdf .Q );};if _gbcdf .DS !=nil {_dbcd .Set ("\u0044\u0053",_gbcdf .DS );};if _gbcdf .RV !=nil {_dbcd .Set ("\u0052\u0056",_gbcdf .RV );};if _gbcdf .MaxLen !=nil {_dbcd .Set ("\u004d\u0061\u0078\u004c\u0065\u006e",_gbcdf .MaxLen );
|
||
};return _ceaa ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_fgdgg *PdfShadingType2 )ToPdfObject ()_fd .PdfObject {_fgdgg .PdfShading .ToPdfObject ();_eeccb ,_beafa :=_fgdgg .getShadingDict ();if _beafa !=nil {_ag .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 _eeccb ==nil {_ag .Log .Error ("\u0053\u0068\u0061\u0064in\u0067\u0020\u0064\u0069\u0063\u0074\u0020\u0069\u0073\u0020\u006e\u0069\u006c");return nil ;};if _fgdgg .Coords !=nil {_eeccb .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_fgdgg .Coords );
|
||
};if _fgdgg .Domain !=nil {_eeccb .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_fgdgg .Domain );};if _fgdgg .Function !=nil {if len (_fgdgg .Function )==1{_eeccb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_fgdgg .Function [0].ToPdfObject ());
|
||
}else {_acfdf :=_fd .MakeArray ();for _ ,_ecgef :=range _fgdgg .Function {_acfdf .Append (_ecgef .ToPdfObject ());};_eeccb .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_acfdf );};};if _fgdgg .Extend !=nil {_eeccb .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_fgdgg .Extend );
|
||
};return _fgdgg ._cdgfd ;};func _adgec (_caac *fontCommon )*pdfFontType0 {return &pdfFontType0 {fontCommon :*_caac }};
|
||
|
||
// 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 ;_abdg *_fd .PdfIndirectObject ;};
|
||
|
||
// BytesToCharcodes converts the bytes in a PDF string to character codes.
|
||
func (_dcbg *PdfFont )BytesToCharcodes (data []byte )[]_ee .CharCode {_ag .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 _fafe ,_gcfa :=_dcbg ._gbaac .(*pdfFontType0 );_gcfa &&_fafe ._bbbfb !=nil {if _cdge ,_cbaf :=_fafe .bytesToCharcodes (data );_cbaf {return _cdge ;};};var (_ebfg =make ([]_ee .CharCode ,0,len (data )+len (data )%2);_dfbg =_dcbg .baseFields (););if _dfbg ._dgdg !=nil {if _dccf ,_gfdca :=_dfbg ._dgdg .BytesToCharcodes (data );
|
||
_gfdca {for _ ,_bbdge :=range _dccf {_ebfg =append (_ebfg ,_ee .CharCode (_bbdge ));};return _ebfg ;};};if _dfbg .isCIDFont (){if len (data )==1{data =[]byte {0,data [0]};};if len (data )%2!=0{_ag .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 _dbgg :=0;_dbgg < len (data );_dbgg +=2{_gfgeb :=uint16 (data [_dbgg ])<<8|uint16 (data [_dbgg +1]);_ebfg =append (_ebfg ,_ee .CharCode (_gfgeb ));};}else {for _ ,_bagd :=range data {_ebfg =append (_ebfg ,_ee .CharCode (_bagd ));
|
||
};};return _ebfg ;};
|
||
|
||
// 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 (_aafc *PdfFont )GetRuneMetrics (r rune )(CharMetrics ,bool ){_eagea :=_aafc .actualFont ();if _eagea ==nil {_ag .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",_aafc ._gbaac );
|
||
return _cf .CharMetrics {},false ;};if _gcbee ,_ffabc :=_eagea .GetRuneMetrics (r );_ffabc {return _gcbee ,true ;};if _cbdab ,_gcdfb :=_aafc .GetFontDescriptor ();_gcdfb ==nil &&_cbdab !=nil {return _cf .CharMetrics {Wx :_cbdab ._gfbd },true ;};_ag .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",_aafc );
|
||
return _cf .CharMetrics {},false ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_cagcf *EmbeddedFile )ToPdfObject ()_fd .PdfObject {_cfce :=_fd .NewFlateEncoder ();_bfcbg ,_ageg :=_fd .MakeStream (_cagcf .Content ,_cfce );if _ageg !=nil {_ag .Log .Debug ("\u0046\u0061\u0069\u006c\u0065d\u0020\u0074\u006f\u0020\u0063\u0072\u0065\u0061\u0074\u0065\u0020\u0065\u006db\u0065\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076",_ageg );
|
||
return nil ;};_ggdb :=_bfcbg .PdfObjectDictionary ;_ggdb .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0045\u006d\u0062e\u0064\u0064\u0065\u0064\u0046\u0069\u006c\u0065"));_ggdb .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeEncodedString ("\u0074\u0065\u0078\u0074\u002f\u0070\u006c\u0061\u0069\u006e",true ));
|
||
_daebb :=_fd .MakeDict ();_daebb .Set ("\u0043\u0068\u0065\u0063\u006b\u0053\u0075\u006d",_fd .MakeString (_cagcf .Hash [:]));_daebb .Set ("\u0053\u0069\u007a\u0065",_fd .MakeInteger (int64 (len (_cagcf .Content ))));_bbcag :=_cagcf .CreationTime ;if _bbcag .IsZero (){_bbcag =_cd .Now ();
|
||
};_agbgcg :=_cagcf .ModTime ;if _agbgcg .IsZero (){_agbgcg =_bbcag ;};_cgeef ,_ageg :=NewPdfDateFromTime (_bbcag );if _ageg !=nil {_ag .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074o\u0020\u0063\u0072ea\u0074\u0065\u0020\u0065\u006d\u0062e\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0063\u0072\u0065\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0065\u003a \u0025\u0076",_ageg );
|
||
return nil ;};_fbade ,_ageg :=NewPdfDateFromTime (_agbgcg );if _ageg !=nil {_ag .Log .Debug ("\u0046\u0061\u0069\u006c\u0065\u0064\u0020\u0074o\u0020\u0063\u0072ea\u0074\u0065\u0020\u0065\u006d\u0062e\u0064\u0064\u0065\u0064\u0020\u0066\u0069\u006c\u0065\u0020\u0063\u0072\u0065\u0061\u0074i\u006f\u006e\u0020\u0064\u0061\u0074\u0065\u003a \u0025\u0076",_ageg );
|
||
return nil ;};_daebb .Set ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cgeef .ToPdfObject ());_daebb .Set ("\u004do\u0064\u0044\u0061\u0074\u0065",_fbade .ToPdfObject ());_ggdb .Set ("\u0050\u0061\u0072\u0061\u006d\u0073",_daebb );
|
||
_adbdg :=_fd .MakeDict ();_adbdg .Set (*_fd .MakeName ("\u0046"),_bfcbg );return _adbdg ;};
|
||
|
||
// SetDate sets the `M` field of the signature.
|
||
func (_dgcbd *PdfSignature )SetDate (date _cd .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";};_dgcbd .M =_fd .MakeString (date .Format (format ));
|
||
};
|
||
|
||
// GetDSS gets the DSS dictionary (ETSI TS 102 778-4 V1.1.1) of the current
|
||
// document revision.
|
||
func (_ecfa *PdfAppender )GetDSS ()(_eeed *DSS ){return _ecfa ._bgge };func (_dedgf *PdfWriter )writeString (_becfd string ){if _dedgf ._bgfb !=nil {return ;};_bdaea ,_dfdda :=_dedgf ._abgaac .WriteString (_becfd );_dedgf ._bbcab +=int64 (_bdaea );_dedgf ._bgfb =_dfdda ;
|
||
};
|
||
|
||
// 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 (_bbfae *PdfColorspaceDeviceGray )ColorFromFloats (vals []float64 )(PdfColor ,error ){if len (vals )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_ffe :=vals [0];if _ffe < 0.0||_ffe > 1.0{_ag .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 _ffe < 0.0{_ffe =0.0;}else if _ffe > 1.0{_ffe =1.0;};return NewPdfColorDeviceGray (_ffe ),nil ;};
|
||
|
||
// NewPdfAnnotationUnderline returns a new text underline annotation.
|
||
func NewPdfAnnotationUnderline ()*PdfAnnotationUnderline {_bcb :=NewPdfAnnotation ();_cfed :=&PdfAnnotationUnderline {};_cfed .PdfAnnotation =_bcb ;_cfed .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_bcb .SetContext (_cfed );return _cfed ;};
|
||
|
||
// ToGoImage converts the unidoc Image to a golang Image structure.
|
||
func (_fdabe *Image )ToGoImage ()(_gb .Image ,error ){_ag .Log .Trace ("\u0043\u006f\u006e\u0076er\u0074\u0069\u006e\u0067\u0020\u0074\u006f\u0020\u0067\u006f\u0020\u0069\u006d\u0061g\u0065");_ddgff ,_fcaa :=_gbed .NewImage (int (_fdabe .Width ),int (_fdabe .Height ),int (_fdabe .BitsPerComponent ),_fdabe .ColorComponents ,_fdabe .Data ,_fdabe ._gfffd ,_fdabe ._cdbdc );
|
||
if _fcaa !=nil {return nil ,_fcaa ;};return _ddgff ,nil ;};
|
||
|
||
// SetCatalogMetadata sets the catalog metadata (XMP) stream object.
|
||
func (_bcefd *PdfWriter )SetCatalogMetadata (meta _fd .PdfObject )error {if meta ==nil {_bcefd ._fdaca .Remove ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");return nil ;};_dfgcg ,_aegac :=_fd .GetStream (meta );if !_aegac {return _ad .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");
|
||
};_bcefd .addObject (_dfgcg );_bcefd ._fdaca .Set ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061",_dfgcg );return nil ;};
|
||
|
||
// ToPdfObject returns the choice field dictionary within an indirect object (container).
|
||
func (_debb *PdfFieldChoice )ToPdfObject ()_fd .PdfObject {_debb .PdfField .ToPdfObject ();_fbbde :=_debb ._dffeb ;_efge :=_fbbde .PdfObject .(*_fd .PdfObjectDictionary );_efge .Set ("\u0046\u0054",_fd .MakeName ("\u0043\u0068"));if _debb .Opt !=nil {_efge .Set ("\u004f\u0070\u0074",_debb .Opt );
|
||
};if _debb .TI !=nil {_efge .Set ("\u0054\u0049",_debb .TI );};if _debb .I !=nil {_efge .Set ("\u0049",_debb .I );};return _fbbde ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_bba *PdfAnnotationRichMedia )ToPdfObject ()_fd .PdfObject {_bba .PdfAnnotation .ToPdfObject ();_dcdg :=_bba ._aeb ;_acge :=_dcdg .PdfObject .(*_fd .PdfObjectDictionary );_acge .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0052i\u0063\u0068\u004d\u0065\u0064\u0069a"));
|
||
_acge .SetIfNotNil ("\u0052\u0069\u0063\u0068\u004d\u0065\u0064\u0069\u0061\u0053\u0065\u0074t\u0069\u006e\u0067\u0073",_bba .RichMediaSettings );_acge .SetIfNotNil ("\u0052\u0069c\u0068\u004d\u0065d\u0069\u0061\u0043\u006f\u006e\u0074\u0065\u006e\u0074",_bba .RichMediaContent );
|
||
return _dcdg ;};func (_feeace *PdfWriter )writeObjects (){_ag .Log .Trace ("\u0057\u0072\u0069\u0074\u0069\u006e\u0067\u0020\u0025d\u0020\u006f\u0062\u006a",len (_feeace ._agfbf ));_feeace ._bccbb =make (map[int ]crossReference );_feeace ._bccbb [0]=crossReference {Type :0,ObjectNumber :0,Generation :0xFFFF};
|
||
if _feeace ._aeffd .ObjectMap !=nil {for _ceaag ,_ebeag :=range _feeace ._aeffd .ObjectMap {if _ceaag ==0{continue ;};if _ebeag .XType ==_fd .XrefTypeObjectStream {_baaca :=crossReference {Type :2,ObjectNumber :_ebeag .OsObjNumber ,Index :_ebeag .OsObjIndex };
|
||
_feeace ._bccbb [_ceaag ]=_baaca ;};if _ebeag .XType ==_fd .XrefTypeTableEntry {_gcffg :=crossReference {Type :1,ObjectNumber :_ebeag .ObjectNumber ,Offset :_ebeag .Offset };_feeace ._bccbb [_ceaag ]=_gcffg ;};};};};func _bcbga (_caegd *fontCommon )*pdfCIDFontType2 {return &pdfCIDFontType2 {fontCommon :*_caegd }};
|
||
|
||
|
||
// GetAttachedFiles retrieves all the attached files info and content.
|
||
func (_cdecea *PdfReader )GetAttachedFiles ()([]*EmbeddedFile ,error ){_efcfa ,_befde :=_cdecea .GetNameDictionary ();if _befde !=nil {return nil ,_befde ;};_gfdab :=_gfac (_efcfa );if _gfdab .EmbeddedFiles ==nil {return nil ,nil ;};_bddag :=_gfdab .EmbeddedFiles .Get ("\u004e\u0061\u006de\u0073");
|
||
_dgfac ,_gfacc :=_bddag .(*_fd .PdfObjectArray );if !_gfacc {return nil ,_ad .New ("\u0049\u006e\u0076\u0061li\u0064\u0020\u004e\u0061\u006d\u0065\u0073\u0020\u0061\u0072\u0072\u0061\u0079");};_cebda :=[]*EmbeddedFile {};for _ggdecb :=1;_ggdecb < len (_dgfac .Elements ());
|
||
_ggdecb +=2{if _ggdecb %2!=0{_bbgbdc :=_dgfac .Get (_ggdecb );_bgddg ,_cffac :=NewPdfFilespecFromObj (_bbgbdc );if _cffac !=nil {return nil ,_cffac ;};_eddca ,_cffac :=NewEmbeddedFileFromObject (_bgddg .EF );if _cffac !=nil {return nil ,_cffac ;};_adedb ,_baab :=_bgddg .F .(*_fd .PdfObjectString );
|
||
if _baab {_eddca .Name =_adedb .Str ();};_eddca .Description =_bgddg .Desc .WriteString ();switch _bgddg .AFRelationship .WriteString (){case "\u0053\u006f\u0075\u0072\u0063\u0065":_eddca .Relationship =RelationshipSource ;case "\u0044\u0061\u0074\u0061":_eddca .Relationship =RelationshipData ;
|
||
case "A\u006c\u0074\u0065\u0072\u006e\u0061\u0074\u0069\u0076\u0065":_eddca .Relationship =RelationshipAlternative ;case "\u0053\u0075\u0070\u0070\u006c\u0065\u006d\u0065\u006e\u0074":_eddca .Relationship =RelationshipSupplement ;default:_eddca .Relationship =RelationshipUnspecified ;
|
||
};_cebda =append (_cebda ,_eddca );};};return _cebda ,nil ;};func _edeca ()string {_feadd .Lock ();defer _feadd .Unlock ();if len (_feebde )> 0{return _feebde ;};return "\u0055n\u0069\u0044\u006f\u0063 \u002d\u0020\u0068\u0074\u0074p\u003a/\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069o";
|
||
};
|
||
|
||
// AllFields returns a flattened list of all fields in the form.
|
||
func (_edad *PdfAcroForm )AllFields ()[]*PdfField {if _edad ==nil {return nil ;};var _dcag []*PdfField ;if _edad .Fields !=nil {for _ ,_cafbb :=range *_edad .Fields {_dcag =append (_dcag ,_cdba (_cafbb )...);};};return _dcag ;};func _fgcae (_abgefe *_fd .PdfObjectDictionary )(*PdfShadingType2 ,error ){_gffbb :=PdfShadingType2 {};
|
||
_adceg :=_abgefe .Get ("\u0043\u006f\u006f\u0072\u0064\u0073");if _adceg ==nil {_ag .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 ;};_bdgcg ,_cdgfde :=_adceg .(*_fd .PdfObjectArray );if !_cdgfde {_ag .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",_adceg );
|
||
return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};if _bdgcg .Len ()!=4{_ag .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",_bdgcg .Len ());
|
||
return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");};_gffbb .Coords =_bdgcg ;if _dcabgd :=_abgefe .Get ("\u0044\u006f\u006d\u0061\u0069\u006e");_dcabgd !=nil {_dcabgd =_fd .TraceToDirectObject (_dcabgd );
|
||
_aacbf ,_defca :=_dcabgd .(*_fd .PdfObjectArray );if !_defca {_ag .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",_dcabgd );return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_gffbb .Domain =_aacbf ;};_adceg =_abgefe .Get ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e");if _adceg ==nil {_ag .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 ;};_gffbb .Function =[]PdfFunction {};if _afbd ,_fgbed :=_adceg .(*_fd .PdfObjectArray );_fgbed {for _ ,_gbge :=range _afbd .Elements (){_fbece ,_ffggc :=_badad (_gbge );if _ffggc !=nil {_ag .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",_ffggc );
|
||
return nil ,_ffggc ;};_gffbb .Function =append (_gffbb .Function ,_fbece );};}else {_eccfg ,_fgcgf :=_badad (_adceg );if _fgcgf !=nil {_ag .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",_fgcgf );
|
||
return nil ,_fgcgf ;};_gffbb .Function =append (_gffbb .Function ,_eccfg );};if _bedea :=_abgefe .Get ("\u0045\u0078\u0074\u0065\u006e\u0064");_bedea !=nil {_bedea =_fd .TraceToDirectObject (_bedea );_eedbb ,_bafgf :=_bedea .(*_fd .PdfObjectArray );if !_bafgf {_ag .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",_bedea );
|
||
return nil ,_fd .ErrTypeError ;};if _eedbb .Len ()!=2{_ag .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",_eedbb .Len ());return nil ,ErrInvalidAttribute ;
|
||
};_gffbb .Extend =_eedbb ;};return &_gffbb ,nil ;};
|
||
|
||
// SetCatalogMarkInfo sets the catalog MarkInfo dictionary.
|
||
func (_ecfce *PdfWriter )SetCatalogMarkInfo (info _fd .PdfObject )error {if info ==nil {_ecfce ._fdaca .Remove ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f");return nil ;};_ecfce .addObject (info );_ecfce ._fdaca .Set ("\u004d\u0061\u0072\u006b\u0049\u006e\u0066\u006f",info );
|
||
return nil ;};
|
||
|
||
// PdfColorspaceDeviceN represents a DeviceN color space. DeviceN color spaces are similar to Separation color
|
||
// spaces, except they can contain an arbitrary number of color components.
|
||
/*
|
||
Format: [/DeviceN names alternateSpace tintTransform]
|
||
or: [/DeviceN names alternateSpace tintTransform attributes]
|
||
*/
|
||
type PdfColorspaceDeviceN struct{ColorantNames *_fd .PdfObjectArray ;AlternateSpace PdfColorspace ;TintTransform PdfFunction ;Attributes *PdfColorspaceDeviceNAttributes ;_eebe *_fd .PdfIndirectObject ;};func (_adeb *PdfReader )traverseObjectData (_cbbb _fd .PdfObject )error {return _fd .ResolveReferencesDeep (_cbbb ,_adeb ._cedebc );
|
||
};
|
||
|
||
// 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 (_affeb *Image )Resample (targetBitsPerComponent int64 ){if _affeb .BitsPerComponent ==targetBitsPerComponent {return ;};_egfcf :=_affeb .GetSamples ();if targetBitsPerComponent < _affeb .BitsPerComponent {_cgagg :=_affeb .BitsPerComponent -targetBitsPerComponent ;
|
||
for _bfea :=range _egfcf {_egfcf [_bfea ]>>=uint (_cgagg );};}else if targetBitsPerComponent > _affeb .BitsPerComponent {_ebbbf :=targetBitsPerComponent -_affeb .BitsPerComponent ;for _bfbg :=range _egfcf {_egfcf [_bfbg ]<<=uint (_ebbbf );};};_affeb .BitsPerComponent =targetBitsPerComponent ;
|
||
if _affeb .BitsPerComponent < 8{_affeb .resampleLowBits (_egfcf );return ;};_bfeb :=_gbed .BytesPerLine (int (_affeb .Width ),int (_affeb .BitsPerComponent ),_affeb .ColorComponents );_ffgb :=make ([]byte ,_bfeb *int (_affeb .Height ));var (_ggecc ,_daddg ,_ebfee ,_fffag int ;
|
||
_aecae uint32 ;);for _ebfee =0;_ebfee < int (_affeb .Height );_ebfee ++{_ggecc =_ebfee *_bfeb ;_daddg =(_ebfee +1)*_bfeb -1;_dfggd :=_bg .ResampleUint32 (_egfcf [_ggecc :_daddg ],int (targetBitsPerComponent ),8);for _fffag ,_aecae =range _dfggd {_ffgb [_fffag +_ggecc ]=byte (_aecae );
|
||
};};_affeb .Data =_ffgb ;};
|
||
|
||
// Clear clears flag fl from the flag and returns the resulting flag.
|
||
func (_bcfa FieldFlag )Clear (fl FieldFlag )FieldFlag {return FieldFlag (_bcfa .Mask ()&^fl .Mask ())};func _bdcba (_gdff *fontCommon )*pdfFontSimple {return &pdfFontSimple {fontCommon :*_gdff }};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_eeabf *PdfShadingType3 )ToPdfObject ()_fd .PdfObject {_eeabf .PdfShading .ToPdfObject ();_fdega ,_degdaa :=_eeabf .getShadingDict ();if _degdaa !=nil {_ag .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 _eeabf .Coords !=nil {_fdega .Set ("\u0043\u006f\u006f\u0072\u0064\u0073",_eeabf .Coords );};if _eeabf .Domain !=nil {_fdega .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_eeabf .Domain );};if _eeabf .Function !=nil {if len (_eeabf .Function )==1{_fdega .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_eeabf .Function [0].ToPdfObject ());
|
||
}else {_aeaf :=_fd .MakeArray ();for _ ,_gcdeb :=range _eeabf .Function {_aeaf .Append (_gcdeb .ToPdfObject ());};_fdega .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_aeaf );};};if _eeabf .Extend !=nil {_fdega .Set ("\u0045\u0078\u0074\u0065\u006e\u0064",_eeabf .Extend );
|
||
};return _eeabf ._cdgfd ;};
|
||
|
||
// GetContainingPdfObject returns the container of the resources object (indirect object).
|
||
func (_bedfb *PdfPageResources )GetContainingPdfObject ()_fd .PdfObject {return _bedfb ._adegd };
|
||
|
||
// GetFontDescriptor returns the font descriptor for `font`.
|
||
func (_dced PdfFont )GetFontDescriptor ()(*PdfFontDescriptor ,error ){return _dced ._gbaac .getFontDescriptor (),nil ;};
|
||
|
||
// NewBorderStyle returns an initialized PdfBorderStyle.
|
||
func NewBorderStyle ()*PdfBorderStyle {_dbfa :=&PdfBorderStyle {};return _dbfa };func (_acaf *pdfFontType0 )getFontDescriptor ()*PdfFontDescriptor {if _acaf ._babe ==nil &&_acaf .DescendantFont !=nil {return _acaf .DescendantFont .FontDescriptor ();};return _acaf ._babe ;
|
||
};func (_febgb *PdfWriter )makeOffSetReference (_abddg int64 ){_bafgc :=_dc .Sprintf ("\u0073\u0074\u0061\u0072\u0074\u0078\u0072\u0065\u0066\u000a\u0025\u0064\u000a",_abddg );_febgb .writeString (_bafgc );_febgb .writeString ("\u0025\u0025\u0045\u004f\u0046\u000a");
|
||
};
|
||
|
||
// ToPdfObject returns the PdfFontDescriptor as a PDF dictionary inside an indirect object.
|
||
func (_cfdce *PdfFontDescriptor )ToPdfObject ()_fd .PdfObject {_ccde :=_fd .MakeDict ();if _cfdce ._aefcd ==nil {_cfdce ._aefcd =&_fd .PdfIndirectObject {};};_cfdce ._aefcd .PdfObject =_ccde ;_ccde .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u006e\u0074\u0044\u0065\u0073\u0063\u0072i\u0070\u0074\u006f\u0072"));
|
||
if _cfdce .FontName !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cfdce .FontName );};if _cfdce .FontFamily !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0046\u0061\u006d\u0069\u006c\u0079",_cfdce .FontFamily );};if _cfdce .FontStretch !=nil {_ccde .Set ("F\u006f\u006e\u0074\u0053\u0074\u0072\u0065\u0074\u0063\u0068",_cfdce .FontStretch );
|
||
};if _cfdce .FontWeight !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0057\u0065\u0069\u0067\u0068\u0074",_cfdce .FontWeight );};if _cfdce .Flags !=nil {_ccde .Set ("\u0046\u006c\u0061g\u0073",_cfdce .Flags );};if _cfdce .FontBBox !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0042\u0042\u006f\u0078",_cfdce .FontBBox );
|
||
};if _cfdce .ItalicAngle !=nil {_ccde .Set ("I\u0074\u0061\u006c\u0069\u0063\u0041\u006e\u0067\u006c\u0065",_cfdce .ItalicAngle );};if _cfdce .Ascent !=nil {_ccde .Set ("\u0041\u0073\u0063\u0065\u006e\u0074",_cfdce .Ascent );};if _cfdce .Descent !=nil {_ccde .Set ("\u0044e\u0073\u0063\u0065\u006e\u0074",_cfdce .Descent );
|
||
};if _cfdce .Leading !=nil {_ccde .Set ("\u004ce\u0061\u0064\u0069\u006e\u0067",_cfdce .Leading );};if _cfdce .CapHeight !=nil {_ccde .Set ("\u0043a\u0070\u0048\u0065\u0069\u0067\u0068t",_cfdce .CapHeight );};if _cfdce .XHeight !=nil {_ccde .Set ("\u0058H\u0065\u0069\u0067\u0068\u0074",_cfdce .XHeight );
|
||
};if _cfdce .StemV !=nil {_ccde .Set ("\u0053\u0074\u0065m\u0056",_cfdce .StemV );};if _cfdce .StemH !=nil {_ccde .Set ("\u0053\u0074\u0065m\u0048",_cfdce .StemH );};if _cfdce .AvgWidth !=nil {_ccde .Set ("\u0041\u0076\u0067\u0057\u0069\u0064\u0074\u0068",_cfdce .AvgWidth );
|
||
};if _cfdce .MaxWidth !=nil {_ccde .Set ("\u004d\u0061\u0078\u0057\u0069\u0064\u0074\u0068",_cfdce .MaxWidth );};if _cfdce .MissingWidth !=nil {_ccde .Set ("\u004d\u0069\u0073s\u0069\u006e\u0067\u0057\u0069\u0064\u0074\u0068",_cfdce .MissingWidth );};if _cfdce .FontFile !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u0046\u0069\u006c\u0065",_cfdce .FontFile );
|
||
};if _cfdce .FontFile2 !=nil {_ccde .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00652",_cfdce .FontFile2 );};if _cfdce .FontFile3 !=nil {_ccde .Set ("\u0046o\u006e\u0074\u0046\u0069\u006c\u00653",_cfdce .FontFile3 );};if _cfdce .CharSet !=nil {_ccde .Set ("\u0043h\u0061\u0072\u0053\u0065\u0074",_cfdce .CharSet );
|
||
};if _cfdce .Style !=nil {_ccde .Set ("\u0046\u006f\u006e\u0074\u004e\u0061\u006d\u0065",_cfdce .FontName );};if _cfdce .Lang !=nil {_ccde .Set ("\u004c\u0061\u006e\u0067",_cfdce .Lang );};if _cfdce .FD !=nil {_ccde .Set ("\u0046\u0044",_cfdce .FD );};
|
||
if _cfdce .CIDSet !=nil {_ccde .Set ("\u0043\u0049\u0044\u0053\u0065\u0074",_cfdce .CIDSet );};return _cfdce ._aefcd ;};
|
||
|
||
// PdfWriter handles outputing PDF content.
|
||
type PdfWriter struct{_defdd *_fd .PdfIndirectObject ;_eecde *_fd .PdfIndirectObject ;_efed map[_fd .PdfObject ]struct{};_agfbf []_fd .PdfObject ;_agfaff map[_fd .PdfObject ]struct{};_bbebbe []*_fd .PdfIndirectObject ;_adfcff *PdfOutlineTreeNode ;_fdaca *_fd .PdfObjectDictionary ;
|
||
_cdef []_fd .PdfObject ;_ggdfa *_fd .PdfIndirectObject ;_abgaac *_b .Writer ;_bbcab int64 ;_bgfb error ;_egadf *_fd .PdfCrypt ;_dbecf *_fd .PdfObjectDictionary ;_abbcc *_fd .PdfIndirectObject ;_bgdef *_fd .PdfObjectArray ;_ggaddg _fd .Version ;_bgced *bool ;
|
||
_aaabd map[_fd .PdfObject ][]*_fd .PdfObjectDictionary ;_agdg *PdfAcroForm ;_gdabc *Names ;_cffdf Optimizer ;_fagbg StandardApplier ;_bccbb map[int ]crossReference ;_dfgae int64 ;ObjNumOffset int ;_fbgg bool ;_aeffd _fd .XrefTable ;_ecfc int64 ;_bfdbd int64 ;
|
||
_ddgad map[_fd .PdfObject ]int64 ;_bagca map[_fd .PdfObject ]struct{};_cdfgf string ;_adef []*PdfOutputIntent ;_cgde bool ;_gaeaa ,_cgaga string ;};func (_egab *PdfReader )newPdfAnnotationUnderlineFromDict (_dcd *_fd .PdfObjectDictionary )(*PdfAnnotationUnderline ,error ){_efcb :=PdfAnnotationUnderline {};
|
||
_cbba ,_bdd :=_egab .newPdfAnnotationMarkupFromDict (_dcd );if _bdd !=nil {return nil ,_bdd ;};_efcb .PdfAnnotationMarkup =_cbba ;_efcb .QuadPoints =_dcd .Get ("\u0051\u0075\u0061\u0064\u0050\u006f\u0069\u006e\u0074\u0073");return &_efcb ,nil ;};
|
||
|
||
// NewEmbeddedFileFromContent construct a new EmbeddedFile from supplied file content.
|
||
func NewEmbeddedFileFromContent (content []byte )(*EmbeddedFile ,error ){_aabgc :=_dff .Detect (content );_bdde :=_dad .Sum (content );_fdbg :=&EmbeddedFile {Name :"\u0061\u0074\u0074\u0061\u0063\u0068\u006d\u0065\u006e\u0074",Content :content ,FileType :_aabgc .String (),Hash :_f .EncodeToString (_bdde [:])};
|
||
return _fdbg ,nil ;};
|
||
|
||
// ToPdfObject returns the PDF representation of the shading dictionary.
|
||
func (_gbceb *PdfShadingType1 )ToPdfObject ()_fd .PdfObject {_gbceb .PdfShading .ToPdfObject ();_ffdac ,_cbafcb :=_gbceb .getShadingDict ();if _cbafcb !=nil {_ag .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 _gbceb .Domain !=nil {_ffdac .Set ("\u0044\u006f\u006d\u0061\u0069\u006e",_gbceb .Domain );};if _gbceb .Matrix !=nil {_ffdac .Set ("\u004d\u0061\u0074\u0072\u0069\u0078",_gbceb .Matrix );};if _gbceb .Function !=nil {if len (_gbceb .Function )==1{_ffdac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_gbceb .Function [0].ToPdfObject ());
|
||
}else {_bfde :=_fd .MakeArray ();for _ ,_ffddd :=range _gbceb .Function {_bfde .Append (_ffddd .ToPdfObject ());};_ffdac .Set ("\u0046\u0075\u006e\u0063\u0074\u0069\u006f\u006e",_bfde );};};return _gbceb ._cdgfd ;};
|
||
|
||
// NewPdfActionThread returns a new "thread" action.
|
||
func NewPdfActionThread ()*PdfActionThread {_add :=NewPdfAction ();_dac :=&PdfActionThread {};_dac .PdfAction =_add ;_add .SetContext (_dac );return _dac ;};
|
||
|
||
// GetCatalogViewerPreferences gets catalog ViewerPreferences object.
|
||
func (_bdfg *PdfReader )GetCatalogViewerPreferences ()(_fd .PdfObject ,bool ){if _bdfg ._gabca ==nil {return nil ,false ;};_afdd :=_bdfg ._gabca .Get ("\u0056\u0069\u0065\u0077\u0065\u0072\u0050\u0072\u0065\u0066\u0065\u0072e\u006e\u0063\u0065\u0073");
|
||
return _afdd ,_afdd !=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 (_afab *PdfColorspaceCalGray )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=1{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_gcbdb ,_ddgg :=_fd .GetNumbersAsFloat (objects );
|
||
if _ddgg !=nil {return nil ,_ddgg ;};return _afab .ColorFromFloats (_gcbdb );};
|
||
|
||
// 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 _gfafb (_fbfg []*_fd .PdfObjectStream )*_fd .PdfObjectArray {if len (_fbfg )==0{return nil ;};_bbce :=make ([]_fd .PdfObject ,0,len (_fbfg ));for _ ,_dddbdb :=range _fbfg {_bbce =append (_bbce ,_dddbdb );};return _fd .MakeArray (_bbce ...);
|
||
};var ErrColorOutOfRange =_ad .New ("\u0063o\u006co\u0072\u0020\u006f\u0075\u0074 \u006f\u0066 \u0072\u0061\u006e\u0067\u0065");func (_gfeb *PdfReader )newPdfPageFromDict (_dfdb *_fd .PdfObjectDictionary )(*PdfPage ,error ){_cggef :=NewPdfPage ();_cggef ._gaec =_dfdb ;
|
||
_cggef ._cadc =*_dfdb ;_decfd :=*_dfdb ;_aece ,_dcfdg :=_decfd .Get ("\u0054\u0079\u0070\u0065").(*_fd .PdfObjectName );if !_dcfdg {return nil ,_ad .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 *_aece !="\u0050\u0061\u0067\u0065"{return nil ,_ad .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 _gbafe :=_decfd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074");
|
||
_gbafe !=nil {_cggef .Parent =_gbafe ;};if _fgce :=_decfd .Get ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064");_fgce !=nil {_aaeed ,_aggdb :=_fd .GetString (_fgce );if !_aggdb {return nil ,_ad .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");
|
||
};_gbcbb ,_febce :=NewPdfDate (_aaeed .Str ());if _febce !=nil {return nil ,_febce ;};_cggef .LastModified =&_gbcbb ;};if _cgcd :=_decfd .Get ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s");_cgcd !=nil &&!_fd .IsNullObject (_cgcd ){_fgef ,_febg :=_fd .GetDict (_cgcd );
|
||
if !_febg {return nil ,_dc .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",_cgcd );};var _ggcc error ;_cggef .Resources ,_ggcc =NewPdfPageResourcesFromDict (_fgef );
|
||
if _ggcc !=nil {return nil ,_ggcc ;};}else {_fbgff ,_becab :=_cggef .getParentResources ();if _becab !=nil {return nil ,_becab ;};if _fbgff ==nil {_fbgff =NewPdfPageResources ();};_cggef .Resources =_fbgff ;};if _cabc :=_decfd .Get ("\u004d\u0065\u0064\u0069\u0061\u0042\u006f\u0078");
|
||
_cabc !=nil {_fabd ,_edbfc :=_fd .GetArray (_cabc );if !_edbfc {return nil ,_ad .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 _agfgg error ;
|
||
_cggef .MediaBox ,_agfgg =NewPdfRectangle (*_fabd );if _agfgg !=nil {return nil ,_agfgg ;};};if _gfgca :=_decfd .Get ("\u0043r\u006f\u0070\u0042\u006f\u0078");_gfgca !=nil {_bebdaf ,_cdagd :=_fd .GetArray (_gfgca );if !_cdagd {return nil ,_ad .New ("\u0070a\u0067\u0065\u0020\u0043r\u006f\u0070\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _gaed error ;_cggef .CropBox ,_gaed =NewPdfRectangle (*_bebdaf );if _gaed !=nil {return nil ,_gaed ;};};if _gdbad :=_decfd .Get ("\u0042\u006c\u0065\u0065\u0064\u0042\u006f\u0078");_gdbad !=nil {_geac ,_aabgca :=_fd .GetArray (_gdbad );if !_aabgca {return nil ,_ad .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 _cbcacc error ;_cggef .BleedBox ,_cbcacc =NewPdfRectangle (*_geac );if _cbcacc !=nil {return nil ,_cbcacc ;};};if _fdggd :=_decfd .Get ("\u0054r\u0069\u006d\u0042\u006f\u0078");_fdggd !=nil {_fgbbf ,_effd :=_fd .GetArray (_fdggd );if !_effd {return nil ,_ad .New ("\u0070a\u0067\u0065\u0020\u0054r\u0069\u006d\u0042\u006f\u0078 \u006eo\u0074 \u0061\u006e\u0020\u0061\u0072\u0072\u0061y");
|
||
};var _ebgf error ;_cggef .TrimBox ,_ebgf =NewPdfRectangle (*_fgbbf );if _ebgf !=nil {return nil ,_ebgf ;};};if _agcb :=_decfd .Get ("\u0041\u0072\u0074\u0042\u006f\u0078");_agcb !=nil {_aggcf ,_bbbea :=_fd .GetArray (_agcb );if !_bbbea {return nil ,_ad .New ("\u0070a\u0067\u0065\u0020\u0041\u0072\u0074\u0042\u006f\u0078\u0020\u006eo\u0074\u0020\u0061\u006e\u0020\u0061\u0072\u0072\u0061\u0079");
|
||
};var _cgbbd error ;_cggef .ArtBox ,_cgbbd =NewPdfRectangle (*_aggcf );if _cgbbd !=nil {return nil ,_cgbbd ;};};if _edeb :=_decfd .Get ("\u0042\u006f\u0078C\u006f\u006c\u006f\u0072\u0049\u006e\u0066\u006f");_edeb !=nil {_cggef .BoxColorInfo =_edeb ;};if _acaea :=_decfd .Get ("\u0043\u006f\u006e\u0074\u0065\u006e\u0074\u0073");
|
||
_acaea !=nil {_cggef .Contents =_acaea ;};if _cfgea :=_decfd .Get ("\u0052\u006f\u0074\u0061\u0074\u0065");_cfgea !=nil {_bdggb ,_dagcg :=_fd .GetNumberAsInt64 (_cfgea );if _dagcg !=nil {return nil ,_ad .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");
|
||
};_cggef .Rotate =&_bdggb ;};if _bgaeg :=_decfd .Get ("\u0047\u0072\u006fu\u0070");_bgaeg !=nil {_cggef .Group =_bgaeg ;};if _egagc :=_decfd .Get ("\u0054\u0068\u0075m\u0062");_egagc !=nil {_cggef .Thumb =_egagc ;};if _bgbaa :=_decfd .Get ("\u0042");_bgbaa !=nil {_cggef .B =_bgbaa ;
|
||
};if _cgecdf :=_decfd .Get ("\u0044\u0075\u0072");_cgecdf !=nil {_cggef .Dur =_cgecdf ;};if _dcgf :=_decfd .Get ("\u0054\u0072\u0061n\u0073");_dcgf !=nil {_cggef .Trans =_dcgf ;};if _eafc :=_decfd .Get ("\u0041\u0041");_eafc !=nil {_cggef .AA =_eafc ;};
|
||
if _dbeb :=_decfd .Get ("\u004d\u0065\u0074\u0061\u0064\u0061\u0074\u0061");_dbeb !=nil {_cggef .Metadata =_dbeb ;};if _gdfbc :=_decfd .Get ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o");_gdfbc !=nil {_cggef .PieceInfo =_gdfbc ;};if _gbea :=_decfd .Get ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073");
|
||
_gbea !=nil {_cggef .StructParents =_gbea ;};if _gbgf :=_decfd .Get ("\u0049\u0044");_gbgf !=nil {_cggef .ID =_gbgf ;};if _acegg :=_decfd .Get ("\u0050\u005a");_acegg !=nil {_cggef .PZ =_acegg ;};if _accc :=_decfd .Get ("\u0053\u0065\u0070\u0061\u0072\u0061\u0074\u0069\u006fn\u0049\u006e\u0066\u006f");
|
||
_accc !=nil {_cggef .SeparationInfo =_accc ;};if _agbege :=_decfd .Get ("\u0054\u0061\u0062\u0073");_agbege !=nil {_cggef .Tabs =_agbege ;};if _efccb :=_decfd .Get ("T\u0065m\u0070\u006c\u0061\u0074\u0065\u0049\u006e\u0073t\u0061\u006e\u0074\u0069at\u0065\u0064");
|
||
_efccb !=nil {_cggef .TemplateInstantiated =_efccb ;};if _efaecd :=_decfd .Get ("\u0050r\u0065\u0073\u0053\u0074\u0065\u0070s");_efaecd !=nil {_cggef .PresSteps =_efaecd ;};if _ffafg :=_decfd .Get ("\u0055\u0073\u0065\u0072\u0055\u006e\u0069\u0074");_ffafg !=nil {_cggef .UserUnit =_ffafg ;
|
||
};if _dcebe :=_decfd .Get ("\u0056\u0050");_dcebe !=nil {_cggef .VP =_dcebe ;};if _geegf :=_decfd .Get ("\u0041\u006e\u006e\u006f\u0074\u0073");_geegf !=nil {_cggef .Annots =_geegf ;};_cggef ._dfaff =_gfeb ;return _cggef ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the container of the outline item (indirect object).
|
||
func (_dggb *PdfOutlineItem )GetContainingPdfObject ()_fd .PdfObject {return _dggb ._ecga };
|
||
|
||
// IsValid checks if the given pdf output intent type is valid.
|
||
func (_ecbaf PdfOutputIntentType )IsValid ()bool {return _ecbaf >=PdfOutputIntentTypeA1 &&_ecbaf <=PdfOutputIntentTypeX ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_dbda pdfFontType0 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _dbda .DescendantFont ==nil {_ag .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",_dbda );
|
||
return _cf .CharMetrics {},false ;};return _dbda .DescendantFont .GetCharMetrics (code );};
|
||
|
||
// ToPdfObject converts the PdfFont object to its PDF representation.
|
||
func (_ddce *PdfFont )ToPdfObject ()_fd .PdfObject {if _ddce ._gbaac ==nil {_ag .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 _fd .MakeNull ();
|
||
};return _ddce ._gbaac .ToPdfObject ();};
|
||
|
||
// SetNamedDestinations sets the Dests entry in the PDF catalog.
|
||
// See section 12.3.2.3 "Named Destinations" (p. 367 PDF32000_2008).
|
||
func (_dfedb *PdfWriter )SetNamedDestinations (dests _fd .PdfObject )error {if dests ==nil {return nil ;};_ag .Log .Trace ("\u0053e\u0074\u0074\u0069\u006e\u0067\u0020\u0063\u0061\u0074\u0061\u006co\u0067\u0020\u0044\u0065\u0073\u0074\u0073\u002e\u002e\u002e");
|
||
_dfedb ._fdaca .Set ("\u0044\u0065\u0073t\u0073",dests );return _dfedb .addObjects (dests );};
|
||
|
||
// NewPdfColorspaceCalGray returns a new CalGray colorspace object.
|
||
func NewPdfColorspaceCalGray ()*PdfColorspaceCalGray {_accgd :=&PdfColorspaceCalGray {};_accgd .BlackPoint =[]float64 {0.0,0.0,0.0};_accgd .Gamma =1;return _accgd ;};func (_cfgg *PdfReader )newPdfAnnotationPrinterMarkFromDict (_dafe *_fd .PdfObjectDictionary )(*PdfAnnotationPrinterMark ,error ){_aaad :=PdfAnnotationPrinterMark {};
|
||
_aaad .MN =_dafe .Get ("\u004d\u004e");return &_aaad ,nil ;};
|
||
|
||
// ToPdfObject returns the button field dictionary within an indirect object.
|
||
func (_fafa *PdfFieldButton )ToPdfObject ()_fd .PdfObject {_fafa .PdfField .ToPdfObject ();_fegd :=_fafa ._dffeb ;_dcgc :=_fegd .PdfObject .(*_fd .PdfObjectDictionary );_dcgc .Set ("\u0046\u0054",_fd .MakeName ("\u0042\u0074\u006e"));if _fafa .Opt !=nil {_dcgc .Set ("\u004f\u0070\u0074",_fafa .Opt );
|
||
};return _fegd ;};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fbgf *PdfAnnotationSquare )ToPdfObject ()_fd .PdfObject {_fbgf .PdfAnnotation .ToPdfObject ();_dbab :=_fbgf ._aeb ;_ecf :=_dbab .PdfObject .(*_fd .PdfObjectDictionary );if _fbgf .PdfAnnotationMarkup !=nil {_fbgf .PdfAnnotationMarkup .appendToPdfDictionary (_ecf );
|
||
};_ecf .SetIfNotNil ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0053\u0071\u0075\u0061\u0072\u0065"));_ecf .SetIfNotNil ("\u0042\u0053",_fbgf .BS );_ecf .SetIfNotNil ("\u0049\u0043",_fbgf .IC );_ecf .SetIfNotNil ("\u0042\u0045",_fbgf .BE );
|
||
_ecf .SetIfNotNil ("\u0052\u0044",_fbgf .RD );return _dbab ;};func _cceab (_gccgg _fd .PdfObject )(*PdfShading ,error ){_gffge :=&PdfShading {};var _bfab *_fd .PdfObjectDictionary ;if _ddgggg ,_gccd :=_fd .GetIndirect (_gccgg );_gccd {_gffge ._cdgfd =_ddgggg ;
|
||
_dcggf ,_abcag :=_ddgggg .PdfObject .(*_fd .PdfObjectDictionary );if !_abcag {_ag .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 ,_fd .ErrTypeError ;
|
||
};_bfab =_dcggf ;}else if _gcag ,_becbe :=_fd .GetStream (_gccgg );_becbe {_gffge ._cdgfd =_gcag ;_bfab =_gcag .PdfObjectDictionary ;}else if _cbadg ,_cbgfe :=_fd .GetDict (_gccgg );_cbgfe {_gffge ._cdgfd =_cbadg ;_bfab =_cbadg ;}else {_ag .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",_gccgg );
|
||
return nil ,_fd .ErrTypeError ;};if _bfab ==nil {_ag .Log .Debug ("\u0044i\u0063t\u0069\u006f\u006e\u0061\u0072y\u0020\u006di\u0073\u0073\u0069\u006e\u0067");return nil ,_ad .New ("\u0064\u0069\u0063t\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");};
|
||
_gccgg =_bfab .Get ("S\u0068\u0061\u0064\u0069\u006e\u0067\u0054\u0079\u0070\u0065");if _gccgg ==nil {_ag .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 ;};_gccgg =_fd .TraceToDirectObject (_gccgg );_bfccc ,_ffbcb :=_gccgg .(*_fd .PdfObjectInteger );if !_ffbcb {_ag .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",_gccgg );
|
||
return nil ,_fd .ErrTypeError ;};if *_bfccc < 1||*_bfccc > 7{_ag .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",*_bfccc );
|
||
return nil ,_fd .ErrTypeError ;};_gffge .ShadingType =_bfccc ;_gccgg =_bfab .Get ("\u0043\u006f\u006c\u006f\u0072\u0053\u0070\u0061\u0063\u0065");if _gccgg ==nil {_ag .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 ;};_fggage ,_dccdg :=NewPdfColorspaceFromPdfObject (_gccgg );if _dccdg !=nil {_ag .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",_dccdg );
|
||
return nil ,_dccdg ;};_gffge .ColorSpace =_fggage ;_gccgg =_bfab .Get ("\u0042\u0061\u0063\u006b\u0067\u0072\u006f\u0075\u006e\u0064");if _gccgg !=nil {_gccgg =_fd .TraceToDirectObject (_gccgg );_bege ,_fgadcd :=_gccgg .(*_fd .PdfObjectArray );if !_fgadcd {_ag .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)",_gccgg );
|
||
return nil ,_fd .ErrTypeError ;};_gffge .Background =_bege ;};_gccgg =_bfab .Get ("\u0042\u0042\u006f\u0078");if _gccgg !=nil {_gccgg =_fd .TraceToDirectObject (_gccgg );_efcg ,_fdagd :=_gccgg .(*_fd .PdfObjectArray );if !_fdagd {_ag .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)",_gccgg );
|
||
return nil ,_fd .ErrTypeError ;};_bcdeb ,_fddb :=NewPdfRectangle (*_efcg );if _fddb !=nil {_ag .Log .Debug ("\u0042\u0042\u006f\u0078\u0020\u0065\u0072\u0072\u006fr\u003a\u0020\u0025\u0076",_fddb );return nil ,_fddb ;};_gffge .BBox =_bcdeb ;};_gccgg =_bfab .Get ("\u0041n\u0074\u0069\u0041\u006c\u0069\u0061s");
|
||
if _gccgg !=nil {_gccgg =_fd .TraceToDirectObject (_gccgg );_cfcbag ,_afgfbe :=_gccgg .(*_fd .PdfObjectBool );if !_afgfbe {_ag .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",_gccgg );
|
||
return nil ,_fd .ErrTypeError ;};_gffge .AntiAlias =_cfcbag ;};switch *_bfccc {case 1:_acfg ,_cefe :=_cdgfdg (_bfab );if _cefe !=nil {return nil ,_cefe ;};_acfg .PdfShading =_gffge ;_gffge ._cgfce =_acfg ;return _gffge ,nil ;case 2:_bebdd ,_edacd :=_fgcae (_bfab );
|
||
if _edacd !=nil {return nil ,_edacd ;};_bebdd .PdfShading =_gffge ;_gffge ._cgfce =_bebdd ;return _gffge ,nil ;case 3:_adgbb ,_afdb :=_fcaeg (_bfab );if _afdb !=nil {return nil ,_afdb ;};_adgbb .PdfShading =_gffge ;_gffge ._cgfce =_adgbb ;return _gffge ,nil ;
|
||
case 4:_fedfe ,_feeaa :=_gfbac (_bfab );if _feeaa !=nil {return nil ,_feeaa ;};_fedfe .PdfShading =_gffge ;_gffge ._cgfce =_fedfe ;return _gffge ,nil ;case 5:_egcae ,_efggfb :=_dacfd (_bfab );if _efggfb !=nil {return nil ,_efggfb ;};_egcae .PdfShading =_gffge ;
|
||
_gffge ._cgfce =_egcae ;return _gffge ,nil ;case 6:_adce ,_abbab :=_fdfgc (_bfab );if _abbab !=nil {return nil ,_abbab ;};_adce .PdfShading =_gffge ;_gffge ._cgfce =_adce ;return _gffge ,nil ;case 7:_gdfc ,_agdba :=_febfg (_bfab );if _agdba !=nil {return nil ,_agdba ;
|
||
};_gdfc .PdfShading =_gffge ;_gffge ._cgfce =_gdfc ;return _gffge ,nil ;};return nil ,_ad .New ("u\u006ek\u006e\u006f\u0077\u006e\u0020\u0073\u0068\u0061d\u0069\u006e\u0067\u0020ty\u0070\u0065");};
|
||
|
||
// NewPdfAnnotationWidget returns an initialized annotation widget.
|
||
func NewPdfAnnotationWidget ()*PdfAnnotationWidget {_fdgb :=NewPdfAnnotation ();_bde :=&PdfAnnotationWidget {};_bde .PdfAnnotation =_fdgb ;_fdgb .SetContext (_bde );return _bde ;};
|
||
|
||
// AddPage adds a page to the PDF file. The new page should be an indirect object.
|
||
func (_daefb *PdfWriter )AddPage (page *PdfPage )error {const _bcdag ="\u006d\u006f\u0064el\u003a\u0050\u0064\u0066\u0057\u0072\u0069\u0074\u0065\u0072\u002e\u0041\u0064\u0064\u0050\u0061\u0067\u0065";_baeb (page );_ggdebd :=page .ToPdfObject ();_ag .Log .Trace ("\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d");
|
||
_ag .Log .Trace ("\u0041p\u0070\u0065\u006e\u0064i\u006e\u0067\u0020\u0074\u006f \u0070a\u0067e\u0020\u006c\u0069\u0073\u0074\u0020\u0025T",_ggdebd );_adfdf ,_bagbf :=_fd .GetIndirect (_ggdebd );if !_bagbf {return _ad .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");
|
||
};_ag .Log .Trace ("\u0025\u0073",_adfdf );_ag .Log .Trace ("\u0025\u0073",_adfdf .PdfObject );_ddadd ,_bagbf :=_fd .GetDict (_adfdf .PdfObject );if !_bagbf {return _ad .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");
|
||
};_gbde ,_bagbf :=_fd .GetName (_ddadd .Get ("\u0054\u0079\u0070\u0065"));if !_bagbf {return _dc .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",_ddadd .Get ("\u0054\u0079\u0070\u0065"));
|
||
};if _gbde .String ()!="\u0050\u0061\u0067\u0065"{return _ad .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");};_eeacd :=[]_fd .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"};
|
||
_gdaeb ,_cecac :=_fd .GetIndirect (_ddadd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));_ag .Log .Trace ("P\u0061g\u0065\u0020\u0050\u0061\u0072\u0065\u006e\u0074:\u0020\u0025\u0054\u0020(%\u0076\u0029",_ddadd .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"),_cecac );
|
||
for _cecac {_ag .Log .Trace ("\u0050a\u0067e\u0020\u0050\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_gdaeb );_dggdg ,_aadfd :=_fd .GetDict (_gdaeb .PdfObject );if !_aadfd {return _ad .New ("i\u006e\u0076\u0061\u006cid\u0020P\u0061\u0072\u0065\u006e\u0074 \u006f\u0062\u006a\u0065\u0063\u0074");
|
||
};for _ ,_ffbdf :=range _eeacd {_ag .Log .Trace ("\u0046\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_ffbdf );if _ddadd .Get (_ffbdf )!=nil {_ag .Log .Trace ("\u002d \u0070a\u0067\u0065\u0020\u0068\u0061s\u0020\u0061l\u0072\u0065\u0061\u0064\u0079");continue ;
|
||
};if _fdccb :=_dggdg .Get (_ffbdf );_fdccb !=nil {_ag .Log .Trace ("\u0049\u006e\u0068\u0065ri\u0074\u0069\u006e\u0067\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u0025\u0073",_ffbdf );_ddadd .Set (_ffbdf ,_fdccb );};};_gdaeb ,_cecac =_fd .GetIndirect (_dggdg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));
|
||
_ag .Log .Trace ("\u004ee\u0078t\u0020\u0070\u0061\u0072\u0065\u006e\u0074\u003a\u0020\u0025\u0054",_dggdg .Get ("\u0050\u0061\u0072\u0065\u006e\u0074"));};_ag .Log .Trace ("\u0054\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c \u0064\u006f\u006e\u0065");
|
||
_ddadd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_daefb ._eecde );_adfdf .PdfObject =_ddadd ;_bfegg ,_bagbf :=_fd .GetDict (_daefb ._eecde .PdfObject );if !_bagbf {return _ad .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");
|
||
};_faee ,_bagbf :=_fd .GetArray (_bfegg .Get ("\u004b\u0069\u0064\u0073"));if !_bagbf {return _ad .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");
|
||
};_faee .Append (_adfdf );_daefb ._efed [_ddadd ]=struct{}{};_cdfbd ,_bagbf :=_fd .GetInt (_bfegg .Get ("\u0043\u006f\u0075n\u0074"));if !_bagbf {return _ad .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");
|
||
};*_cdfbd =*_cdfbd +1;if page ._dfaff ==nil {_cecfe :=_ae .Track (_daefb ._cdfgf ,_bcdag );if _cecfe !=nil {return _cecfe ;};}else {_ccfcaa :=_ae .Track (page ._dfaff ._ecbab ,_bcdag );if _ccfcaa !=nil {return _ccfcaa ;};};_daefb .addObject (_adfdf );_abacb :=_daefb .addObjects (_ddadd );
|
||
if _abacb !=nil {return _abacb ;};return nil ;};func _acgcc (_bddg _fd .PdfObject )(*PdfFunctionType2 ,error ){_cccgd :=&PdfFunctionType2 {};var _bdce *_fd .PdfObjectDictionary ;if _dfgdf ,_cfab :=_bddg .(*_fd .PdfIndirectObject );_cfab {_gggcd ,_fbdbg :=_dfgdf .PdfObject .(*_fd .PdfObjectDictionary );
|
||
if !_fbdbg {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");};_cccgd ._babf =_dfgdf ;_bdce =_gggcd ;}else if _dfgb ,_gabgf :=_bddg .(*_fd .PdfObjectDictionary );_gabgf {_bdce =_dfgb ;}else {return nil ,_ad .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
|
||
};_ag .Log .Trace ("\u0046U\u004e\u0043\u0032\u003a\u0020\u0025s",_bdce .String ());_ebdd ,_gdaff :=_fd .TraceToDirectObject (_bdce .Get ("\u0044\u006f\u006d\u0061\u0069\u006e")).(*_fd .PdfObjectArray );if !_gdaff {_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u006e\u006f\u0074\u0020s\u0070\u0065\u0063\u0069fi\u0065\u0064");
|
||
return nil ,_ad .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 _ebdd .Len ()< 0||_ebdd .Len ()%2!=0{_ag .Log .Error ("D\u006fm\u0061\u0069\u006e\u0020\u0072\u0061\u006e\u0067e\u0020\u0069\u006e\u0076al\u0069\u0064");
|
||
return nil ,_ad .New ("i\u006ev\u0061\u006c\u0069\u0064\u0020\u0064\u006f\u006da\u0069\u006e\u0020\u0072an\u0067\u0065");};_faca ,_dfec :=_ebdd .ToFloat64Array ();if _dfec !=nil {return nil ,_dfec ;};_cccgd .Domain =_faca ;_ebdd ,_gdaff =_fd .TraceToDirectObject (_bdce .Get ("\u0052\u0061\u006eg\u0065")).(*_fd .PdfObjectArray );
|
||
if _gdaff {if _ebdd .Len ()< 0||_ebdd .Len ()%2!=0{return nil ,_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0072\u0061\u006e\u0067\u0065");};_bggb ,_fcgc :=_ebdd .ToFloat64Array ();if _fcgc !=nil {return nil ,_fcgc ;};_cccgd .Range =_bggb ;
|
||
};_ebdd ,_gdaff =_fd .TraceToDirectObject (_bdce .Get ("\u0043\u0030")).(*_fd .PdfObjectArray );if _gdaff {_edfb ,_bebf :=_ebdd .ToFloat64Array ();if _bebf !=nil {return nil ,_bebf ;};_cccgd .C0 =_edfb ;};_ebdd ,_gdaff =_fd .TraceToDirectObject (_bdce .Get ("\u0043\u0031")).(*_fd .PdfObjectArray );
|
||
if _gdaff {_cfdbd ,_fggdc :=_ebdd .ToFloat64Array ();if _fggdc !=nil {return nil ,_fggdc ;};_cccgd .C1 =_cfdbd ;};if len (_cccgd .C0 )!=len (_cccgd .C1 ){_ag .Log .Error ("\u0043\u0030\u0020\u0061nd\u0020\u0043\u0031\u0020\u006e\u006f\u0074\u0020\u006d\u0061\u0074\u0063\u0068\u0069n\u0067");
|
||
return nil ,_fd .ErrRangeError ;};N ,_dfec :=_fd .GetNumberAsFloat (_fd .TraceToDirectObject (_bdce .Get ("\u004e")));if _dfec !=nil {_ag .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",_bdce .String ());
|
||
return nil ,_dfec ;};_cccgd .N =N ;return _cccgd ,nil ;};
|
||
|
||
// GetContainingPdfObject returns the page as a dictionary within an PdfIndirectObject.
|
||
func (_cgef *PdfPage )GetContainingPdfObject ()_fd .PdfObject {return _cgef ._fgcac };
|
||
|
||
// NewPdfColorspaceDeviceGray returns a new grayscale colorspace.
|
||
func NewPdfColorspaceDeviceGray ()*PdfColorspaceDeviceGray {return &PdfColorspaceDeviceGray {}};
|
||
|
||
// PdfColorspaceSpecialPattern is a Pattern colorspace.
|
||
// Can be defined either as /Pattern or with an underlying colorspace [/Pattern cs].
|
||
type PdfColorspaceSpecialPattern struct{UnderlyingCS PdfColorspace ;_gcgab *_fd .PdfIndirectObject ;};func (_dgged *PdfWriter )adjustXRefAffectedVersion (_aecag bool ){if _aecag &&_dgged ._ggaddg .Major ==1&&_dgged ._ggaddg .Minor < 5{_dgged ._ggaddg .Minor =5;
|
||
};};
|
||
|
||
// PdfShadingType5 is a Lattice-form Gouraud-shaded triangle mesh.
|
||
type PdfShadingType5 struct{*PdfShading ;BitsPerCoordinate *_fd .PdfObjectInteger ;BitsPerComponent *_fd .PdfObjectInteger ;VerticesPerRow *_fd .PdfObjectInteger ;Decode *_fd .PdfObjectArray ;Function []PdfFunction ;};func (_gcedd *pdfFontType0 )bytesToCharcodes (_aaea []byte )([]_ee .CharCode ,bool ){if _gcedd ._bbbfb ==nil {return nil ,false ;
|
||
};_deeef ,_bgecb :=_gcedd ._bbbfb .BytesToCharcodes (_aaea );if !_bgecb {return nil ,false ;};_caff :=make ([]_ee .CharCode ,len (_deeef ));for _fcab ,_decef :=range _deeef {_caff [_fcab ]=_ee .CharCode (_decef );};return _caff ,true ;};
|
||
|
||
// GetStandardApplier gets currently used StandardApplier..
|
||
func (_acdeb *PdfWriter )GetStandardApplier ()StandardApplier {return _acdeb ._fagbg };func (_begd *DSS )add (_ggbad *[]*_fd .PdfObjectStream ,_gfge map[string ]*_fd .PdfObjectStream ,_fcgd [][]byte )([]*_fd .PdfObjectStream ,error ){_gbbbc :=make ([]*_fd .PdfObjectStream ,0,len (_fcgd ));
|
||
for _ ,_caebf :=range _fcgd {_aecg ,_bddf :=_eagg (_caebf );if _bddf !=nil {return nil ,_bddf ;};_begba ,_cfbf :=_gfge [string (_aecg )];if !_cfbf {_begba ,_bddf =_fd .MakeStream (_caebf ,_fd .NewRawEncoder ());if _bddf !=nil {return nil ,_bddf ;};_gfge [string (_aecg )]=_begba ;
|
||
*_ggbad =append (*_ggbad ,_begba );};_gbbbc =append (_gbbbc ,_begba );};return _gbbbc ,nil ;};
|
||
|
||
// C returns the value of the C component of the color.
|
||
func (_bedbf *PdfColorCalRGB )C ()float64 {return _bedbf [2]};
|
||
|
||
// SetPdfProducer sets the Producer attribute of the output PDF.
|
||
func SetPdfProducer (producer string ){_feadd .Lock ();defer _feadd .Unlock ();_ecebc =producer };
|
||
|
||
// ImageToRGB converts image in CalGray color space to RGB (A, B, C -> X, Y, Z).
|
||
func (_cfgf *PdfColorspaceCalGray )ImageToRGB (img Image )(Image ,error ){_dgge :=_bg .NewReader (img .getBase ());_bgece :=_gbed .NewImageBase (int (img .Width ),int (img .Height ),int (img .BitsPerComponent ),3,nil ,nil ,nil );_cgagc :=_bg .NewWriter (_bgece );
|
||
_fefg :=_af .Pow (2,float64 (img .BitsPerComponent ))-1;_gdcb :=make ([]uint32 ,3);var (_fgeca uint32 ;ANorm ,X ,Y ,Z ,_cded ,_egee ,_feegb float64 ;_beag error ;);for {_fgeca ,_beag =_dgge .ReadSample ();if _beag ==_bc .EOF {break ;}else if _beag !=nil {return img ,_beag ;
|
||
};ANorm =float64 (_fgeca )/_fefg ;X =_cfgf .WhitePoint [0]*_af .Pow (ANorm ,_cfgf .Gamma );Y =_cfgf .WhitePoint [1]*_af .Pow (ANorm ,_cfgf .Gamma );Z =_cfgf .WhitePoint [2]*_af .Pow (ANorm ,_cfgf .Gamma );_cded =3.240479*X +-1.537150*Y +-0.498535*Z ;_egee =-0.969256*X +1.875992*Y +0.041556*Z ;
|
||
_feegb =0.055648*X +-0.204043*Y +1.057311*Z ;_cded =_af .Min (_af .Max (_cded ,0),1.0);_egee =_af .Min (_af .Max (_egee ,0),1.0);_feegb =_af .Min (_af .Max (_feegb ,0),1.0);_gdcb [0]=uint32 (_cded *_fefg );_gdcb [1]=uint32 (_egee *_fefg );_gdcb [2]=uint32 (_feegb *_fefg );
|
||
if _beag =_cgagc .WriteSamples (_gdcb );_beag !=nil {return img ,_beag ;};};return _eeafa (&_bgece ),nil ;};func (_bbbba *Image )samplesTrimPadding (_dbcgb []uint32 )[]uint32 {_cgbff :=_bbbba .ColorComponents *int (_bbbba .Width )*int (_bbbba .Height );
|
||
if len (_dbcgb )==_cgbff {return _dbcgb ;};_acage :=make ([]uint32 ,_cgbff );_dgefd :=int (_bbbba .Width )*_bbbba .ColorComponents ;var _ddfe ,_gcdea ,_gcedcd ,_ebagfe int ;_ggag :=_gbed .BytesPerLine (int (_bbbba .Width ),int (_bbbba .BitsPerComponent ),_bbbba .ColorComponents );
|
||
for _ddfe =0;_ddfe < int (_bbbba .Height );_ddfe ++{_gcdea =_ddfe *int (_bbbba .Width );_gcedcd =_ddfe *_ggag ;for _ebagfe =0;_ebagfe < _dgefd ;_ebagfe ++{_acage [_gcdea +_ebagfe ]=_dbcgb [_gcedcd +_ebagfe ];};};return _acage ;};func (_ffcef *PdfAppender )mergeResources (_bdcc ,_eefa _fd .PdfObject ,_adfa map[_fd .PdfObjectName ]_fd .PdfObjectName )_fd .PdfObject {if _eefa ==nil &&_bdcc ==nil {return nil ;
|
||
};if _eefa ==nil {return _bdcc ;};_bedf ,_egaf :=_fd .GetDict (_eefa );if !_egaf {return _bdcc ;};if _bdcc ==nil {_ddab :=_fd .MakeDict ();_ddab .Merge (_bedf );return _eefa ;};_bbeb ,_egaf :=_fd .GetDict (_bdcc );if !_egaf {_ag .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");
|
||
_bbeb =_fd .MakeDict ();};for _ ,_dffc :=range _bedf .Keys (){if _agc ,_gcce :=_adfa [_dffc ];_gcce {_bbeb .Set (_agc ,_bedf .Get (_dffc ));}else {_bbeb .Set (_dffc ,_bedf .Get (_dffc ));};};return _bbeb ;};func _dcaab (_cafad *_fd .PdfObjectDictionary )(*PdfShadingPattern ,error ){_eafcb :=&PdfShadingPattern {};
|
||
_gcbc :=_cafad .Get ("\u0053h\u0061\u0064\u0069\u006e\u0067");if _gcbc ==nil {_ag .Log .Debug ("\u0053h\u0061d\u0069\u006e\u0067\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067");return nil ,ErrRequiredAttributeMissing ;};_bdeef ,_bgbddf :=_cceab (_gcbc );
|
||
if _bgbddf !=nil {_ag .Log .Debug ("\u0045r\u0072\u006f\u0072\u0020l\u006f\u0061\u0064\u0069\u006eg\u0020s\u0068a\u0064\u0069\u006e\u0067\u003a\u0020\u0025v",_bgbddf );return nil ,_bgbddf ;};_eafcb .Shading =_bdeef ;if _aabag :=_cafad .Get ("\u004d\u0061\u0074\u0072\u0069\u0078");
|
||
_aabag !=nil {_eabgf ,_acaaa :=_aabag .(*_fd .PdfObjectArray );if !_acaaa {_ag .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",_aabag );
|
||
return nil ,_fd .ErrTypeError ;};_eafcb .Matrix =_eabgf ;};if _eadfc :=_cafad .Get ("\u0045x\u0074\u0047\u0053\u0074\u0061\u0074e");_eadfc !=nil {_eafcb .ExtGState =_eadfc ;};return _eafcb ,nil ;};
|
||
|
||
// PdfShadingPatternType2 is shading patterns that will use a Type 2 shading pattern (Axial).
|
||
type PdfShadingPatternType2 struct{*PdfPattern ;Shading *PdfShadingType2 ;Matrix *_fd .PdfObjectArray ;ExtGState _fd .PdfObject ;};
|
||
|
||
// ToPdfObject converts the font to a PDF representation.
|
||
func (_debf *pdfFontType0 )ToPdfObject ()_fd .PdfObject {if _debf ._ffead ==nil {_debf ._ffead =&_fd .PdfIndirectObject {};};_ddcb :=_debf .baseFields ().asPdfObjectDictionary ("\u0054\u0079\u0070e\u0030");_debf ._ffead .PdfObject =_ddcb ;if _debf .Encoding !=nil {_ddcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_debf .Encoding );
|
||
}else if _debf ._agbe !=nil {_ddcb .Set ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_debf ._agbe .ToPdfObject ());};if _debf .DescendantFont !=nil {_ddcb .Set ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073",_fd .MakeArray (_debf .DescendantFont .ToPdfObject ()));
|
||
};return _debf ._ffead ;};
|
||
|
||
// PdfAnnotationSound represents Sound annotations.
|
||
// (Section 12.5.6.16).
|
||
type PdfAnnotationSound struct{*PdfAnnotation ;*PdfAnnotationMarkup ;Sound _fd .PdfObject ;Name _fd .PdfObject ;};
|
||
|
||
// Reset sets the multi font encoder to its initial state.
|
||
func (_ggcg *MultipleFontEncoder )Reset (){_ggcg .CurrentFont =_ggcg ._ccbbf [0]};func (_agf *PdfReader )newPdfActionImportDataFromDict (_adcb *_fd .PdfObjectDictionary )(*PdfActionImportData ,error ){_ccb ,_gcde :=_ece (_adcb .Get ("\u0046"));if _gcde !=nil {return nil ,_gcde ;
|
||
};return &PdfActionImportData {F :_ccb },nil ;};func (_afddf *PdfWriter )writeDocumentVersion (){if _afddf ._fbgg {_afddf .writeString ("\u000a");}else {_afddf .writeString (_dc .Sprintf ("\u0025\u0025\u0050D\u0046\u002d\u0025\u0064\u002e\u0025\u0064\u000a",_afddf ._ggaddg .Major ,_afddf ._ggaddg .Minor ));
|
||
_afddf .writeString ("\u0025\u00e2\u00e3\u00cf\u00d3\u000a");};};
|
||
|
||
// IsColored specifies if the pattern is colored.
|
||
func (_gacgg *PdfTilingPattern )IsColored ()bool {if _gacgg .PaintType !=nil &&*_gacgg .PaintType ==1{return true ;};return false ;};var _ pdfFont =(*pdfCIDFontType0 )(nil );
|
||
|
||
// GetNumComponents returns the number of color components (3 for RGB).
|
||
func (_edbg *PdfColorDeviceRGB )GetNumComponents ()int {return 3};
|
||
|
||
// ColorToRGB converts a ICCBased color to an RGB color.
|
||
func (_beebg *PdfColorspaceICCBased )ColorToRGB (color PdfColor )(PdfColor ,error ){if _beebg .Alternate ==nil {_ag .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 _beebg .N ==1{_ag .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");
|
||
_ebcb :=NewPdfColorspaceDeviceGray ();return _ebcb .ColorToRGB (color );}else if _beebg .N ==3{_ag .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 _beebg .N ==4{_ag .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");
|
||
_cddd :=NewPdfColorspaceDeviceCMYK ();return _cddd .ColorToRGB (color );}else {return nil ,_ad .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");
|
||
};};_ag .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",_beebg );
|
||
return _beebg .Alternate .ColorToRGB (color );};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";);
|
||
|
||
// 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 _bc .ReadSeeker )(*PdfFont ,error ){const _gfdb =_ee .CharCode (32);const _bbdc =_ee .CharCode (255);_afbg ,_bcgad :=_gcb .ReadAll (r );if _bcgad !=nil {_ag .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",_bcgad );
|
||
return nil ,_bcgad ;};_cbeef ,_bcgad :=_cf .TtfParse (_bf .NewReader (_afbg ));if _bcgad !=nil {_ag .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",_bcgad );
|
||
return nil ,_bcgad ;};_gdgcb :=&pdfFontSimple {_bafeg :make (map[_ee .CharCode ]float64 ),fontCommon :fontCommon {_eded :"\u0054\u0072\u0075\u0065\u0054\u0079\u0070\u0065"}};_gdgcb ._dcfda =_ee .NewWinAnsiEncoder ();_gdgcb ._ffedb =_cbeef .PostScriptName ;
|
||
_gdgcb .FirstChar =_fd .MakeInteger (int64 (_gfdb ));_gdgcb .LastChar =_fd .MakeInteger (int64 (_bbdc ));_caggg :=1000.0/float64 (_cbeef .UnitsPerEm );if len (_cbeef .Widths )<=0{return nil ,_ad .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");
|
||
};_acad :=_caggg *float64 (_cbeef .Widths [0]);_cebfe :=make ([]float64 ,0,_bbdc -_gfdb +1);for _agbeg :=_gfdb ;_agbeg <=_bbdc ;_agbeg ++{_cbaac ,_fcddf :=_gdgcb .Encoder ().CharcodeToRune (_agbeg );if !_fcddf {_ag .Log .Debug ("\u0052u\u006e\u0065\u0020\u006eo\u0074\u0020\u0066\u006f\u0075n\u0064 \u0028c\u006f\u0064\u0065\u003a\u0020\u0025\u0064)",_agbeg );
|
||
_cebfe =append (_cebfe ,_acad );continue ;};_deac ,_gcge :=_cbeef .Chars [_cbaac ];if !_gcge {_ag .Log .Debug ("R\u0075\u006e\u0065\u0020no\u0074 \u0069\u006e\u0020\u0054\u0054F\u0020\u0043\u0068\u0061\u0072\u0073");_cebfe =append (_cebfe ,_acad );continue ;
|
||
};_badg :=_caggg *float64 (_cbeef .Widths [_deac ]);_cebfe =append (_cebfe ,_badg );};_gdgcb .Widths =_fd .MakeIndirectObject (_fd .MakeArrayFromFloats (_cebfe ));if len (_cebfe )< int (_bbdc -_gfdb +1){_ag .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 (_cebfe ),255-32+1);
|
||
return nil ,_fd .ErrRangeError ;};for _fcee :=_gfdb ;_fcee <=_bbdc ;_fcee ++{_gdgcb ._bafeg [_fcee ]=_cebfe [_fcee -_gfdb ];};_gdgcb .Encoding =_fd .MakeName ("\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_baac :=&PdfFontDescriptor {};
|
||
_baac .FontName =_fd .MakeName (_cbeef .PostScriptName );_baac .Ascent =_fd .MakeFloat (_caggg *float64 (_cbeef .TypoAscender ));_baac .Descent =_fd .MakeFloat (_caggg *float64 (_cbeef .TypoDescender ));_baac .CapHeight =_fd .MakeFloat (_caggg *float64 (_cbeef .CapHeight ));
|
||
_baac .FontBBox =_fd .MakeArrayFromFloats ([]float64 {_caggg *float64 (_cbeef .Xmin ),_caggg *float64 (_cbeef .Ymin ),_caggg *float64 (_cbeef .Xmax ),_caggg *float64 (_cbeef .Ymax )});_baac .ItalicAngle =_fd .MakeFloat (_cbeef .ItalicAngle );_baac .MissingWidth =_fd .MakeFloat (_caggg *float64 (_cbeef .Widths [0]));
|
||
_ggdbd ,_bcgad :=_fd .MakeStream (_afbg ,_fd .NewFlateEncoder ());if _bcgad !=nil {_ag .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",_bcgad );
|
||
return nil ,_bcgad ;};_ggdbd .PdfObjectDictionary .Set ("\u004ce\u006e\u0067\u0074\u0068\u0031",_fd .MakeInteger (int64 (len (_afbg ))));_baac .FontFile2 =_ggdbd ;if _cbeef .Bold {_baac .StemV =_fd .MakeInteger (120);}else {_baac .StemV =_fd .MakeInteger (70);
|
||
};_cdbca :=_gebb ;if _cbeef .IsFixedPitch {_cdbca |=_debadb ;};if _cbeef .ItalicAngle !=0{_cdbca |=_eaeg ;};_baac .Flags =_fd .MakeInteger (int64 (_cdbca ));_gdgcb ._babe =_baac ;_ffgd :=&PdfFont {_gbaac :_gdgcb };return _ffgd ,nil ;};
|
||
|
||
// GetNumComponents returns the number of color components (1 for CalGray).
|
||
func (_aefa *PdfColorCalGray )GetNumComponents ()int {return 1};func _ggacg (_ggcd _fd .PdfObject )(*PdfColorspaceDeviceN ,error ){_fgdd :=NewPdfColorspaceDeviceN ();if _gdfdc ,_efgfd :=_ggcd .(*_fd .PdfIndirectObject );_efgfd {_fgdd ._eebe =_gdfdc ;};
|
||
_ggcd =_fd .TraceToDirectObject (_ggcd );_gafef ,_fabe :=_ggcd .(*_fd .PdfObjectArray );if !_fabe {return nil ,_dc .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 _gafef .Len ()!=4&&_gafef .Len ()!=5{return nil ,_dc .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");};_ggcd =_gafef .Get (0);
|
||
_cdga ,_fabe :=_ggcd .(*_fd .PdfObjectName );if !_fabe {return nil ,_dc .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 *_cdga !="\u0044e\u0076\u0069\u0063\u0065\u004e"{return nil ,_dc .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");};_ggcd =_gafef .Get (1);
|
||
_ggcd =_fd .TraceToDirectObject (_ggcd );_afcd ,_fabe :=_ggcd .(*_fd .PdfObjectArray );if !_fabe {return nil ,_dc .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");
|
||
};_fgdd .ColorantNames =_afcd ;_ggcd =_gafef .Get (2);_gfc ,_bgabg :=NewPdfColorspaceFromPdfObject (_ggcd );if _bgabg !=nil {return nil ,_bgabg ;};_fgdd .AlternateSpace =_gfc ;_egff ,_bgabg :=_badad (_gafef .Get (3));if _bgabg !=nil {return nil ,_bgabg ;
|
||
};_fgdd .TintTransform =_egff ;if _gafef .Len ()==5{_dccb ,_ecaf :=_bcaa (_gafef .Get (4));if _ecaf !=nil {return nil ,_ecaf ;};_fgdd .Attributes =_dccb ;};return _fgdd ,nil ;};
|
||
|
||
// PdfAnnotationSquare represents Square annotations.
|
||
// (Section 12.5.6.8).
|
||
type PdfAnnotationSquare struct{*PdfAnnotation ;*PdfAnnotationMarkup ;BS _fd .PdfObject ;IC _fd .PdfObject ;BE _fd .PdfObject ;RD _fd .PdfObject ;};
|
||
|
||
// GetNumComponents returns the number of color components of the colorspace device.
|
||
// Returns 1 for a grayscale device.
|
||
func (_cfag *PdfColorspaceDeviceGray )GetNumComponents ()int {return 1};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_bgff pdfCIDFontType2 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _dega ,_acgc :=_bgff ._defb [code ];_acgc {return _cf .CharMetrics {Wx :_dega },true ;};_ggcaa :=rune (code );_bfgff ,_dfgf :=_bgff ._agbed [_ggcaa ];if !_dfgf {_bfgff =int (_bgff ._ebbc );
|
||
};return _cf .CharMetrics {Wx :float64 (_bfgff )},true ;};
|
||
|
||
// 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 (_deee *PdfReader )FlattenFieldsWithOpts (appgen FieldAppearanceGenerator ,opts *FieldFlattenOpts )error {return _deee .flattenFieldsWithOpts (false ,appgen ,opts );};
|
||
|
||
// PdfActionGoTo3DView represents a GoTo3DView action.
|
||
type PdfActionGoTo3DView struct{*PdfAction ;TA _fd .PdfObject ;V _fd .PdfObject ;};func (_cdfa *PdfAnnotationMarkup )appendToPdfDictionary (_ggeg *_fd .PdfObjectDictionary ){_ggeg .SetIfNotNil ("\u0054",_cdfa .T );if _cdfa .Popup !=nil {_ggeg .Set ("\u0050\u006f\u0070u\u0070",_cdfa .Popup .ToPdfObject ());
|
||
};_ggeg .SetIfNotNil ("\u0043\u0041",_cdfa .CA );_ggeg .SetIfNotNil ("\u0052\u0043",_cdfa .RC );_ggeg .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_cdfa .CreationDate );_ggeg .SetIfNotNil ("\u0049\u0052\u0054",_cdfa .IRT );
|
||
_ggeg .SetIfNotNil ("\u0053\u0075\u0062\u006a",_cdfa .Subj );_ggeg .SetIfNotNil ("\u0052\u0054",_cdfa .RT );_ggeg .SetIfNotNil ("\u0049\u0054",_cdfa .IT );_ggeg .SetIfNotNil ("\u0045\u0078\u0044\u0061\u0074\u0061",_cdfa .ExData );};func _afde (_fdbe *_fd .PdfObjectDictionary ,_cafd *fontCommon )(*pdfFontType0 ,error ){_gdadg ,_cfdb :=_fd .GetArray (_fdbe .Get ("\u0044e\u0073c\u0065\u006e\u0064\u0061\u006e\u0074\u0046\u006f\u006e\u0074\u0073"));
|
||
if !_cfdb {_ag .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",_cafd );
|
||
return nil ,_fd .ErrRangeError ;};if _gdadg .Len ()!=1{_ag .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",_gdadg .Len ());return nil ,_fd .ErrRangeError ;
|
||
};_bdcg ,_dgfeg :=_gabge (_gdadg .Get (0),false );if _dgfeg !=nil {_ag .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",_dgfeg ,_cafd );
|
||
return nil ,_dgfeg ;};_gdecg :=_fdbe .Get ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067");_aabf :="";_fbaee :=_adgec (_cafd );_fbaee .DescendantFont =_bdcg ;switch _cecc :=_gdecg .(type ){case *_fd .PdfObjectName :_aabf ,_cfdb =_fd .GetNameVal (_gdecg );
|
||
if _cfdb {if _aabf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0048"||_aabf =="\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u002d\u0056"{_fbaee ._agbe =_ee .NewIdentityTextEncoder (_aabf );}else if _gd .IsPredefinedCMap (_aabf ){_fbaee ._bbbfb ,_dgfeg =_gd .LoadPredefinedCMap (_aabf );
|
||
if _dgfeg !=nil {_ag .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",_aabf ,_dgfeg );
|
||
};}else {_ag .Log .Debug ("\u0055\u006e\u0068\u0061\u006e\u0064\u006c\u0065\u0064\u0020\u0063\u006da\u0070\u0020\u0025\u0071",_aabf );};};case *_fd .PdfObjectStream :if _fbaee ._eebbb ==nil {_gfca ,_bcffe :=_gd .NewCIDSystemInfo (_cecc .PdfObjectDictionary .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));
|
||
if _bcffe !=nil {_ag .Log .Debug ("\u0055\u006e\u0061b\u006c\u0065\u0020\u0074o\u0020\u0067\u0065\u0074\u0020\u0043\u0049D\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f\u003a\u0020\u0025\u0076",_bcffe );};_gbfb :=_dc .Sprintf ("\u0025\u0073\u002d\u0025\u0073\u002d\u0055\u0043\u0053\u0032",_gfca .Registry ,_gfca .Ordering );
|
||
if _gd .IsPredefinedCMap (_gbfb ){_fbaee ._bbbfb ,_bcffe =_gd .LoadPredefinedCMap (_gbfb );if _bcffe !=nil {_ag .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",_gbfb ,_bcffe );
|
||
};}else {_gbfb =_cecc .PdfObjectDictionary .Get ("\u0043\u004d\u0061\u0070\u004e\u0061\u006d\u0065").String ();_gfbdb ,_affaa :=_fd .DecodeStream (_cecc );if _affaa !=nil {_ag .Log .Debug ("U\u006e\u0061\u0062\u006c\u0065\u0020t\u006f\u0020\u0064\u0065\u0063\u006f\u0064\u0065\u0020s\u0074\u0072\u0065a\u006d:\u0020\u0025\u0076",_affaa );
|
||
return _fbaee ,_affaa ;};if _gbba :=_gbfb =="\u004f\u006ee\u0042\u0079\u0074e\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u0048"||_gbfb =="\u004f\u006ee\u0042\u0079\u0074e\u0049\u0064\u0065\u006e\u0074\u0069\u0074\u0079\u0056";_gbba {_fbaee ._bbbfb ,_affaa =_gd .LoadCmapFromData (_gfbdb ,_gbba );
|
||
if _affaa !=nil {_ag .Log .Debug ("\u0055\u006e\u0061\u0062\u006ce\u0020\u0074\u006f\u0020\u006c\u006f\u0061\u0064\u0020\u0043\u004d\u0061\u0070 \u0066\u0072\u006f\u006d\u0020\u0073\u0074\u0072\u0065\u0061\u006d\u003a\u0020\u0025\u0076\u0020\u002d\u002d\u0020\u0025\u0076",_affaa ,string (_gfbdb ));
|
||
return _fbaee ,_affaa ;};_bbfe :=make (map[_gd .CharCode ]rune ,256);for _gegg :=0x00;_gegg <=0xFF;_gegg ++{_bbfe [_gd .CharCode (_gegg )]=rune (_gegg );};_fbaee ._dgdg =_gd .NewToUnicodeCMap (_bbfe );};};};};if _dfad :=_bdcg .baseFields ()._dgdg ;_dfad !=nil {if _dabge :=_dfad .Name ();
|
||
_dabge =="\u0041d\u006fb\u0065\u002d\u0043\u004e\u0053\u0031\u002d\u0055\u0043\u0053\u0032"||_dabge =="\u0041\u0064\u006f\u0062\u0065\u002d\u0047\u0042\u0031-\u0055\u0043\u0053\u0032"||_dabge =="\u0041\u0064\u006f\u0062\u0065\u002d\u004a\u0061\u0070\u0061\u006e\u0031-\u0055\u0043\u0053\u0032"||_dabge =="\u0041\u0064\u006f\u0062\u0065\u002d\u004b\u006f\u0072\u0065\u0061\u0031-\u0055\u0043\u0053\u0032"{_fbaee ._agbe =_ee .NewCMapEncoder (_aabf ,_fbaee ._bbbfb ,_dfad );
|
||
};};return _fbaee ,nil ;};func _cdcc (_cfgeb *_fd .PdfObjectDictionary )(*PdfFieldText ,error ){_bddd :=&PdfFieldText {};_bddd .DA ,_ =_fd .GetString (_cfgeb .Get ("\u0044\u0041"));_bddd .Q ,_ =_fd .GetInt (_cfgeb .Get ("\u0051"));_bddd .DS ,_ =_fd .GetString (_cfgeb .Get ("\u0044\u0053"));
|
||
_bddd .RV =_cfgeb .Get ("\u0052\u0056");_bddd .MaxLen ,_ =_fd .GetInt (_cfgeb .Get ("\u004d\u0061\u0078\u004c\u0065\u006e"));return _bddd ,nil ;};
|
||
|
||
// M returns the value of the magenta component of the color.
|
||
func (_eaee *PdfColorDeviceCMYK )M ()float64 {return _eaee [1]};
|
||
|
||
// 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 (_fggdef *PdfReader )GetObjectNums ()[]int {return _fggdef ._faaf .GetObjectNums ()};
|
||
|
||
// DecodeArray returns the range of color component values in the Lab colorspace.
|
||
func (_edga *PdfColorspaceLab )DecodeArray ()[]float64 {_ececd :=[]float64 {0,100};if _edga .Range !=nil &&len (_edga .Range )==4{_ececd =append (_ececd ,_edga .Range ...);}else {_ececd =append (_ececd ,-100,100,-100,100);};return _ececd ;};
|
||
|
||
// PdfActionGoToE represents a GoToE action.
|
||
type PdfActionGoToE struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;NewWindow _fd .PdfObject ;T _fd .PdfObject ;};
|
||
|
||
// GetNumComponents returns the number of color components of the underlying
|
||
// colorspace device.
|
||
func (_accfb *PdfColorspaceSpecialPattern )GetNumComponents ()int {return _accfb .UnderlyingCS .GetNumComponents ();};func _ecafd (_gfab string )(map[_ee .CharCode ]_ee .GlyphName ,error ){_eedc :=_gg .Split (_gfab ,"\u000a");_bdaeb :=make (map[_ee .CharCode ]_ee .GlyphName );
|
||
for _ ,_daebf :=range _eedc {_ecbdf :=_bada .FindStringSubmatch (_daebf );if _ecbdf ==nil {continue ;};_gfgea ,_becaf :=_ecbdf [1],_ecbdf [2];_gaefa ,_bcbf :=_bd .Atoi (_gfgea );if _bcbf !=nil {_ag .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",_daebf );
|
||
return nil ,_fd .ErrTypeError ;};_bdaeb [_ee .CharCode (_gaefa )]=_ee .GlyphName (_becaf );};_ag .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",_bdaeb );
|
||
return _bdaeb ,nil ;};func (_bfce *PdfReader )buildPageList (_bafg *_fd .PdfIndirectObject ,_cdede *_fd .PdfIndirectObject ,_caeeg map[_fd .PdfObject ]struct{})error {if _bafg ==nil {return nil ;};if _ ,_bcfe :=_caeeg [_bafg ];_bcfe {_ag .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",_bafg .ObjectNumber );
|
||
return nil ;};_caeeg [_bafg ]=struct{}{};_fgbgd ,_fbdcc :=_bafg .PdfObject .(*_fd .PdfObjectDictionary );if !_fbdcc {return _ad .New ("n\u006f\u0064\u0065\u0020no\u0074 \u0061\u0020\u0064\u0069\u0063t\u0069\u006f\u006e\u0061\u0072\u0079");};_bbdadc ,_fbdcc :=(*_fgbgd ).Get ("\u0054\u0079\u0070\u0065").(*_fd .PdfObjectName );
|
||
if !_fbdcc {if _fgbgd .Get ("\u004b\u0069\u0064\u0073")==nil {return _ad .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");};_ag .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.");
|
||
_bbdadc =_fd .MakeName ("\u0050\u0061\u0067e\u0073");_fgbgd .Set ("\u0054\u0079\u0070\u0065",_bbdadc );};_ag .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",*_bbdadc ,_bafg );
|
||
if *_bbdadc =="\u0050\u0061\u0067\u0065"{_bbef ,_gafdcf :=_bfce .newPdfPageFromDict (_fgbgd );if _gafdcf !=nil {return _gafdcf ;};_bbef .setContainer (_bafg );if _cdede !=nil {_fgbgd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cdede );};_bfce ._bbfca =append (_bfce ._bbfca ,_bafg );
|
||
_bfce .PageList =append (_bfce .PageList ,_bbef );return nil ;};if *_bbdadc !="\u0050\u0061\u0067e\u0073"{_ag .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",_bbdadc );
|
||
return _ad .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 _cdede !=nil {_fgbgd .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_cdede );};if !_bfce ._gfdda {_dcge :=_bfce .traverseObjectData (_bafg );if _dcge !=nil {return _dcge ;};};_gcbfc ,_ebgdb :=_bfce ._faaf .Resolve (_fgbgd .Get ("\u004b\u0069\u0064\u0073"));
|
||
if _ebgdb !=nil {_ag .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 _ebgdb ;};var _abdcab *_fd .PdfObjectArray ;
|
||
_abdcab ,_fbdcc =_gcbfc .(*_fd .PdfObjectArray );if !_fbdcc {_cdee ,_gceae :=_gcbfc .(*_fd .PdfIndirectObject );if !_gceae {return _ad .New ("\u0069\u006e\u0076\u0061li\u0064\u0020\u004b\u0069\u0064\u0073\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_abdcab ,_fbdcc =_cdee .PdfObject .(*_fd .PdfObjectArray );
|
||
if !_fbdcc {return _ad .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");};};_ag .Log .Trace ("\u004b\u0069\u0064\u0073\u003a\u0020\u0025\u0073",_abdcab );
|
||
for _cdea ,_ddbdf :=range _abdcab .Elements (){_ceac ,_ggdd :=_fd .GetIndirect (_ddbdf );if !_ggdd {_ag .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",_ceac );
|
||
return _ad .New ("\u0070a\u0067\u0065\u0020\u006e\u006f\u0074\u0020\u0069\u006e\u0064\u0069r\u0065\u0063\u0074\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_abdcab .Set (_cdea ,_ceac );_ebgdb =_bfce .buildPageList (_ceac ,_bafg ,_caeeg );if _ebgdb !=nil {return _ebgdb ;
|
||
};};return nil ;};
|
||
|
||
// FullName returns the full name of the field as in rootname.parentname.partialname.
|
||
func (_gdeg *PdfField )FullName ()(string ,error ){var _fdde _bf .Buffer ;_eaebg :=[]string {};if _gdeg .T !=nil {_eaebg =append (_eaebg ,_gdeg .T .Decoded ());};_fgfcd :=map[*PdfField ]bool {};_fgfcd [_gdeg ]=true ;_eaed :=_gdeg .Parent ;for _eaed !=nil {if _ ,_dcbf :=_fgfcd [_eaed ];
|
||
_dcbf {return _fdde .String (),_ad .New ("\u0072\u0065\u0063\u0075rs\u0069\u0076\u0065\u0020\u0074\u0072\u0061\u0076\u0065\u0072\u0073\u0061\u006c");};if _eaed .T ==nil {return _fdde .String (),_ad .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");
|
||
};_eaebg =append (_eaebg ,_eaed .T .Decoded ());_fgfcd [_eaed ]=true ;_eaed =_eaed .Parent ;};for _efeg :=len (_eaebg )-1;_efeg >=0;_efeg --{_fdde .WriteString (_eaebg [_efeg ]);if _efeg > 0{_fdde .WriteString ("\u002e");};};return _fdde .String (),nil ;
|
||
};func (_aafeb *PdfReader )buildOutlineTree (_abeagc _fd .PdfObject ,_ccdg *PdfOutlineTreeNode ,_aagef *PdfOutlineTreeNode ,_agdag map[_fd .PdfObject ]struct{})(*PdfOutlineTreeNode ,*PdfOutlineTreeNode ,error ){if _agdag ==nil {_agdag =map[_fd .PdfObject ]struct{}{};
|
||
};_agdag [_abeagc ]=struct{}{};_fcfga ,_gbdc :=_abeagc .(*_fd .PdfIndirectObject );if !_gbdc {return nil ,nil ,_dc .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",_abeagc );
|
||
};_bdcee ,_baafce :=_fcfga .PdfObject .(*_fd .PdfObjectDictionary );if !_baafce {return nil ,nil ,_ad .New ("\u006e\u006f\u0074 a\u0020\u0064\u0069\u0063\u0074\u0069\u006f\u006e\u0061\u0072\u0079\u0020\u006f\u0062\u006a\u0065\u0063\u0074");};_ag .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",_bdcee ,_fcfga ,_fcfga );
|
||
if _ebbfe :=_bdcee .Get ("\u0054\u0069\u0074l\u0065");_ebbfe !=nil {_bfdgb ,_gacggg :=_aafeb .newPdfOutlineItemFromIndirectObject (_fcfga );if _gacggg !=nil {return nil ,nil ,_gacggg ;};_bfdgb .Parent =_ccdg ;_bfdgb .Prev =_aagef ;_aggfe :=_fd .ResolveReference (_bdcee .Get ("\u0046\u0069\u0072s\u0074"));
|
||
if _ ,_bdaca :=_agdag [_aggfe ];_aggfe !=nil &&_aggfe !=_fcfga &&!_bdaca {if !_fd .IsNullObject (_aggfe ){_bfefg ,_fafdg ,_edbfe :=_aafeb .buildOutlineTree (_aggfe ,&_bfdgb .PdfOutlineTreeNode ,nil ,_agdag );if _edbfe !=nil {_ag .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",_edbfe );
|
||
}else {_bfdgb .First =_bfefg ;_bfdgb .Last =_fafdg ;};};};_agdac :=_fd .ResolveReference (_bdcee .Get ("\u004e\u0065\u0078\u0074"));if _ ,_afadgf :=_agdag [_agdac ];_agdac !=nil &&_agdac !=_fcfga &&!_afadgf {if !_fd .IsNullObject (_agdac ){_bcbfe ,_eedfd ,_fecbc :=_aafeb .buildOutlineTree (_agdac ,_ccdg ,&_bfdgb .PdfOutlineTreeNode ,_agdag );
|
||
if _fecbc !=nil {_ag .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",_fecbc );
|
||
}else {_bfdgb .Next =_bcbfe ;return &_bfdgb .PdfOutlineTreeNode ,_eedfd ,nil ;};};};return &_bfdgb .PdfOutlineTreeNode ,&_bfdgb .PdfOutlineTreeNode ,nil ;};_ccabga ,_bagde :=_abgab (_fcfga );if _bagde !=nil {return nil ,nil ,_bagde ;};_ccabga .Parent =_ccdg ;
|
||
if _bbgd :=_bdcee .Get ("\u0046\u0069\u0072s\u0074");_bbgd !=nil {_bbgd =_fd .ResolveReference (_bbgd );if _ ,_eecdg :=_agdag [_bbgd ];_bbgd !=nil &&_bbgd !=_fcfga &&!_eecdg {_dffef :=_fd .TraceToDirectObject (_bbgd );if _ ,_cafba :=_dffef .(*_fd .PdfObjectNull );
|
||
!_cafba &&_dffef !=nil {_adbaa ,_beebff ,_ecca :=_aafeb .buildOutlineTree (_bbgd ,&_ccabga .PdfOutlineTreeNode ,nil ,_agdag );if _ecca !=nil {_ag .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",_ecca );
|
||
}else {_ccabga .First =_adbaa ;_ccabga .Last =_beebff ;};};};};return &_ccabga .PdfOutlineTreeNode ,&_ccabga .PdfOutlineTreeNode ,nil ;};type pdfSignDictionary struct{*_fd .PdfObjectDictionary ;_efeca *SignatureHandler ;_eeabe *PdfSignature ;_gedfg int64 ;
|
||
_cfdbb int ;_efcd int ;_cdfec int ;_cecea int ;};func (_gbcfa *PdfWriter )setHashIDs (_bdafd _a .Hash )error {_dafbg :=_bdafd .Sum (nil );if _gbcfa ._gaeaa ==""{_gbcfa ._gaeaa =_f .EncodeToString (_dafbg [:8]);};_gbcfa .setDocumentIDs (_gbcfa ._gaeaa ,_f .EncodeToString (_dafbg [8:]));
|
||
return nil ;};
|
||
|
||
// NewPdfAnnotationLink returns a new link annotation.
|
||
func NewPdfAnnotationLink ()*PdfAnnotationLink {_fddf :=NewPdfAnnotation ();_ccd :=&PdfAnnotationLink {};_ccd .PdfAnnotation =_fddf ;_fddf .SetContext (_ccd );return _ccd ;};
|
||
|
||
// NewPdfAnnotationPolyLine returns a new polyline annotation.
|
||
func NewPdfAnnotationPolyLine ()*PdfAnnotationPolyLine {_ebg :=NewPdfAnnotation ();_cge :=&PdfAnnotationPolyLine {};_cge .PdfAnnotation =_ebg ;_cge .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_ebg .SetContext (_cge );return _cge ;};
|
||
|
||
// Evaluate runs the function on the passed in slice and returns the results.
|
||
func (_daaf *PdfFunctionType2 )Evaluate (x []float64 )([]float64 ,error ){if len (x )!=1{_ag .Log .Error ("\u004f\u006e\u006c\u0079 o\u006e\u0065\u0020\u0069\u006e\u0070\u0075\u0074\u0020\u0061\u006c\u006c\u006f\u0077e\u0064");return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");
|
||
};_cbbgf :=[]float64 {0.0};if _daaf .C0 !=nil {_cbbgf =_daaf .C0 ;};_ecdgb :=[]float64 {1.0};if _daaf .C1 !=nil {_ecdgb =_daaf .C1 ;};var _bbbfbf []float64 ;for _ebed :=0;_ebed < len (_cbbgf );_ebed ++{_cdccg :=_cbbgf [_ebed ]+_af .Pow (x [0],_daaf .N )*(_ecdgb [_ebed ]-_cbbgf [_ebed ]);
|
||
_bbbfbf =append (_bbbfbf ,_cdccg );};return _bbbfbf ,nil ;};
|
||
|
||
// NewPdfOutlineTree returns an initialized PdfOutline tree.
|
||
func NewPdfOutlineTree ()*PdfOutline {_dggf :=NewPdfOutline ();_dggf ._gcgcg =&_dggf ;return _dggf };
|
||
|
||
// 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 *_fd .PdfObjectString ;Q *_fd .PdfObjectInteger ;DS *_fd .PdfObjectString ;RV _fd .PdfObject ;};
|
||
|
||
// GetContainingPdfObject returns the XObject Form's containing object (indirect object).
|
||
func (_bcebf *XObjectForm )GetContainingPdfObject ()_fd .PdfObject {return _bcebf ._cebfa };func (_fcde *PdfColorspaceSpecialIndexed )String ()string {return "\u0049n\u0064\u0065\u0078\u0065\u0064";};
|
||
|
||
// SetFillImage attach a model.Image to push button.
|
||
func (_cfba *PdfFieldButton )SetFillImage (image *Image ){if _cfba .IsPush (){_cfba ._daeaa =image ;};};var _ pdfFont =(*pdfCIDFontType2 )(nil );func (_dcacf *pdfFontType3 )baseFields ()*fontCommon {return &_dcacf .fontCommon };
|
||
|
||
// 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 (_gebf *PdfWriter )ApplyStandard (optimizer StandardApplier ){_gebf ._fagbg =optimizer };func (_fae *PdfReader )newPdfActionURIFromDict (_gbebd *_fd .PdfObjectDictionary )(*PdfActionURI ,error ){return &PdfActionURI {URI :_gbebd .Get ("\u0055\u0052\u0049"),IsMap :_gbebd .Get ("\u0049\u0073\u004da\u0070")},nil ;
|
||
};
|
||
|
||
// PdfAnnotationTrapNet represents TrapNet annotations.
|
||
// (Section 12.5.6.21).
|
||
type PdfAnnotationTrapNet struct{*PdfAnnotation };func _ddgd (_gbcac *[]*PdfField ,_bgbb FieldFilterFunc ,_fgfg bool )[]*PdfField {if _gbcac ==nil {return nil ;};_caea :=*_gbcac ;if len (*_gbcac )==0{return nil ;};_edbfb :=_caea [:0];if _bgbb ==nil {_bgbb =func (*PdfField )bool {return true };
|
||
};var _agbc []*PdfField ;for _ ,_acdbc :=range _caea {_bbfaa :=_bgbb (_acdbc );if _bbfaa {_agbc =append (_agbc ,_acdbc );if len (_acdbc .Kids )> 0{_agbc =append (_agbc ,_ddgd (&_acdbc .Kids ,_bgbb ,_fgfg )...);};};if !_fgfg ||!_bbfaa ||len (_acdbc .Kids )> 0{_edbfb =append (_edbfb ,_acdbc );
|
||
};};*_gbcac =_edbfb ;return _agbc ;};
|
||
|
||
// GetXObjectByName gets XObject by name.
|
||
func (_abfae *PdfPage )GetXObjectByName (name _fd .PdfObjectName )(_fd .PdfObject ,bool ){_eadd ,_efad :=_abfae .Resources .XObject .(*_fd .PdfObjectDictionary );if !_efad {return nil ,false ;};if _aaeefe :=_eadd .Get (name );_aaeefe !=nil {return _aaeefe ,true ;
|
||
};return nil ,false ;};
|
||
|
||
// ColorToRGB converts a color in Separation colorspace to RGB colorspace.
|
||
func (_edbf *PdfColorspaceSpecialSeparation )ColorToRGB (color PdfColor )(PdfColor ,error ){if _edbf .AlternateSpace ==nil {return nil ,_ad .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 _edbf .AlternateSpace .ColorToRGB (color );};
|
||
|
||
// 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 ;_facbf []byte ;_ebgce []uint32 ;_efff *_fd .PdfObjectStream ;};
|
||
|
||
// Encrypt encrypts the output file with a specified user/owner password.
|
||
func (_ceaef *PdfWriter )Encrypt (userPass ,ownerPass []byte ,options *EncryptOptions )error {_acbgg :=RC4_128bit ;if options !=nil {_acbgg =options .Algorithm ;};_cgeb :=_dfg .PermOwner ;if options !=nil {_cgeb =options .Permissions ;};var _bffdf _dce .Filter ;
|
||
switch _acbgg {case RC4_128bit :_bffdf =_dce .NewFilterV2 (16);case AES_128bit :_bffdf =_dce .NewFilterAESV2 ();case AES_256bit :_bffdf =_dce .NewFilterAESV3 ();default:return _dc .Errorf ("\u0075n\u0073\u0075\u0070\u0070o\u0072\u0074\u0065\u0064\u0020a\u006cg\u006fr\u0069\u0074\u0068\u006d\u003a\u0020\u0025v",options .Algorithm );
|
||
};_fggca ,_fedcb ,_fbgdf :=_fd .PdfCryptNewEncrypt (_bffdf ,userPass ,ownerPass ,_cgeb );if _fbgdf !=nil {return _fbgdf ;};_ceaef ._egadf =_fggca ;if _fedcb .Major !=0{_ceaef .SetVersion (_fedcb .Major ,_fedcb .Minor );};_ceaef ._dbecf =_fedcb .Encrypt ;
|
||
_ceaef ._gaeaa ,_ceaef ._cgaga =_fedcb .ID0 ,_fedcb .ID1 ;_abdd :=_fd .MakeIndirectObject (_fedcb .Encrypt );_ceaef ._abbcc =_abdd ;_ceaef .addObject (_abdd );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 _fd .StreamEncoder )(*XObjectImage ,error ){_gegc :=NewXObjectImage ();return UpdateXObjectImageFromImage (_gegc ,img ,cs ,encoder );};
|
||
|
||
// ToPdfObject implements interface PdfModel.
|
||
func (_fgc *PdfActionGoTo )ToPdfObject ()_fd .PdfObject {_fgc .PdfAction .ToPdfObject ();_gbb :=_fgc ._bfb ;_gdc :=_gbb .PdfObject .(*_fd .PdfObjectDictionary );_gdc .SetIfNotNil ("\u0053",_fd .MakeName (string (ActionTypeGoTo )));_gdc .SetIfNotNil ("\u0044",_fgc .D );
|
||
return _gbb ;};
|
||
|
||
// HasShadingByName checks whether a shading is defined by the specified keyName.
|
||
func (_aecda *PdfPageResources )HasShadingByName (keyName _fd .PdfObjectName )bool {_ ,_bfefde :=_aecda .GetShadingByName (keyName );return _bfefde ;};func (_beece *PdfFont )baseFields ()*fontCommon {if _beece ._gbaac ==nil {_ag .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 _beece ._gbaac .baseFields ();};func (_dfcaf *PdfAppender )replaceObject (_bacc ,_ebdb _fd .PdfObject ){switch _bgdf :=_bacc .(type ){case *_fd .PdfIndirectObject :_dfcaf ._aceb [_ebdb ]=_bgdf .ObjectNumber ;case *_fd .PdfObjectStream :_dfcaf ._aceb [_ebdb ]=_bgdf .ObjectNumber ;
|
||
};};func (_bfggd *PdfPage )setContainer (_fdaad *_fd .PdfIndirectObject ){_fdaad .PdfObject =_bfggd ._gaec ;_bfggd ._fgcac =_fdaad ;};func (_cdbee *PdfWriter )checkCrossReferenceStream ()bool {_bfbdg :=_cdbee ._ggaddg .Major > 1||(_cdbee ._ggaddg .Major ==1&&_cdbee ._ggaddg .Minor > 4);
|
||
if _cdbee ._bgced !=nil {_bfbdg =*_cdbee ._bgced ;};return _bfbdg ;};
|
||
|
||
// GetNumComponents returns the number of color components (3 for Lab).
|
||
func (_ffbc *PdfColorLab )GetNumComponents ()int {return 3};func (_caa *PdfReader )newPdfAnnotationMarkupFromDict (_cgd *_fd .PdfObjectDictionary )(*PdfAnnotationMarkup ,error ){_dbcc :=&PdfAnnotationMarkup {};if _dbf :=_cgd .Get ("\u0054");_dbf !=nil {_dbcc .T =_dbf ;
|
||
};if _cdaf :=_cgd .Get ("\u0050\u006f\u0070u\u0070");_cdaf !=nil {_gebgc ,_aea :=_cdaf .(*_fd .PdfIndirectObject );if !_aea {if _ ,_fcb :=_cdaf .(*_fd .PdfObjectNull );!_fcb {return nil ,_ad .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 {_fga ,_gaa :=_caa .newPdfAnnotationFromIndirectObject (_gebgc );if _gaa !=nil {return nil ,_gaa ;};if _fga !=nil {_gegf ,_accg :=_fga ._cfda .(*PdfAnnotationPopup );if !_accg {return nil ,_ad .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");
|
||
};_dbcc .Popup =_gegf ;};};};if _fgeeg :=_cgd .Get ("\u0043\u0041");_fgeeg !=nil {_dbcc .CA =_fgeeg ;};if _gfgcf :=_cgd .Get ("\u0052\u0043");_gfgcf !=nil {_dbcc .RC =_gfgcf ;};if _gacg :=_cgd .Get ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065");
|
||
_gacg !=nil {_dbcc .CreationDate =_gacg ;};if _cad :=_cgd .Get ("\u0049\u0052\u0054");_cad !=nil {_dbcc .IRT =_cad ;};if _gegfd :=_cgd .Get ("\u0053\u0075\u0062\u006a");_gegfd !=nil {_dbcc .Subj =_gegfd ;};if _fbb :=_cgd .Get ("\u0052\u0054");_fbb !=nil {_dbcc .RT =_fbb ;
|
||
};if _baa :=_cgd .Get ("\u0049\u0054");_baa !=nil {_dbcc .IT =_baa ;};if _cgg :=_cgd .Get ("\u0045\u0078\u0044\u0061\u0074\u0061");_cgg !=nil {_dbcc .ExData =_cgg ;};return _dbcc ,nil ;};
|
||
|
||
// ToPdfObject returns a stream object.
|
||
func (_abfeg *XObjectForm )ToPdfObject ()_fd .PdfObject {_eggf :=_abfeg ._cebfa ;_ebdde :=_eggf .PdfObjectDictionary ;if _abfeg .Filter !=nil {_ebdde =_abfeg .Filter .MakeStreamDict ();_eggf .PdfObjectDictionary =_ebdde ;};_ebdde .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u0058O\u0062\u006a\u0065\u0063\u0074"));
|
||
_ebdde .Set ("\u0053u\u0062\u0074\u0079\u0070\u0065",_fd .MakeName ("\u0046\u006f\u0072\u006d"));_ebdde .SetIfNotNil ("\u0046\u006f\u0072\u006d\u0054\u0079\u0070\u0065",_abfeg .FormType );_ebdde .SetIfNotNil ("\u0042\u0042\u006f\u0078",_abfeg .BBox );_ebdde .SetIfNotNil ("\u004d\u0061\u0074\u0072\u0069\u0078",_abfeg .Matrix );
|
||
if _abfeg .Resources !=nil {_ebdde .SetIfNotNil ("\u0052e\u0073\u006f\u0075\u0072\u0063\u0065s",_abfeg .Resources .ToPdfObject ());};_ebdde .SetIfNotNil ("\u0047\u0072\u006fu\u0070",_abfeg .Group );_ebdde .SetIfNotNil ("\u0052\u0065\u0066",_abfeg .Ref );
|
||
_ebdde .SetIfNotNil ("\u004d\u0065\u0074\u0061\u0044\u0061\u0074\u0061",_abfeg .MetaData );_ebdde .SetIfNotNil ("\u0050i\u0065\u0063\u0065\u0049\u006e\u0066o",_abfeg .PieceInfo );_ebdde .SetIfNotNil ("\u004c\u0061\u0073t\u004d\u006f\u0064\u0069\u0066\u0069\u0065\u0064",_abfeg .LastModified );
|
||
_ebdde .SetIfNotNil ("\u0053\u0074\u0072u\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074",_abfeg .StructParent );_ebdde .SetIfNotNil ("\u0053\u0074\u0072\u0075\u0063\u0074\u0050\u0061\u0072\u0065\u006e\u0074\u0073",_abfeg .StructParents );_ebdde .SetIfNotNil ("\u004f\u0050\u0049",_abfeg .OPI );
|
||
_ebdde .SetIfNotNil ("\u004f\u0043",_abfeg .OC );_ebdde .SetIfNotNil ("\u004e\u0061\u006d\u0065",_abfeg .Name );_ebdde .Set ("\u004c\u0065\u006e\u0067\u0074\u0068",_fd .MakeInteger (int64 (len (_abfeg .Stream ))));_eggf .Stream =_abfeg .Stream ;return _eggf ;
|
||
};
|
||
|
||
// NewPdfAnnotationRedact returns a new redact annotation.
|
||
func NewPdfAnnotationRedact ()*PdfAnnotationRedact {_dec :=NewPdfAnnotation ();_gbgd :=&PdfAnnotationRedact {};_gbgd .PdfAnnotation =_dec ;_gbgd .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dec .SetContext (_gbgd );return _gbgd ;};
|
||
|
||
// PdfShadingType2 is an Axial shading.
|
||
type PdfShadingType2 struct{*PdfShading ;Coords *_fd .PdfObjectArray ;Domain *_fd .PdfObjectArray ;Function []PdfFunction ;Extend *_fd .PdfObjectArray ;};
|
||
|
||
// ToPdfObject convert PdfInfo to pdf object.
|
||
func (_eagad *PdfInfo )ToPdfObject ()_fd .PdfObject {_bbbb :=_fd .MakeDict ();_bbbb .SetIfNotNil ("\u0054\u0069\u0074l\u0065",_eagad .Title );_bbbb .SetIfNotNil ("\u0041\u0075\u0074\u0068\u006f\u0072",_eagad .Author );_bbbb .SetIfNotNil ("\u0053u\u0062\u006a\u0065\u0063\u0074",_eagad .Subject );
|
||
_bbbb .SetIfNotNil ("\u004b\u0065\u0079\u0077\u006f\u0072\u0064\u0073",_eagad .Keywords );_bbbb .SetIfNotNil ("\u0043r\u0065\u0061\u0074\u006f\u0072",_eagad .Creator );_bbbb .SetIfNotNil ("\u0050\u0072\u006f\u0064\u0075\u0063\u0065\u0072",_eagad .Producer );
|
||
_bbbb .SetIfNotNil ("\u0054r\u0061\u0070\u0070\u0065\u0064",_eagad .Trapped );if _eagad .CreationDate !=nil {_bbbb .SetIfNotNil ("\u0043\u0072\u0065a\u0074\u0069\u006f\u006e\u0044\u0061\u0074\u0065",_eagad .CreationDate .ToPdfObject ());};if _eagad .ModifiedDate !=nil {_bbbb .SetIfNotNil ("\u004do\u0064\u0044\u0061\u0074\u0065",_eagad .ModifiedDate .ToPdfObject ());
|
||
};for _ ,_cdag :=range _eagad ._defeg .Keys (){_bbbb .SetIfNotNil (_cdag ,_eagad ._defeg .Get (_cdag ));};return _bbbb ;};
|
||
|
||
// NewPdfAnnotationPolygon returns a new polygon annotation.
|
||
func NewPdfAnnotationPolygon ()*PdfAnnotationPolygon {_dcg :=NewPdfAnnotation ();_afe :=&PdfAnnotationPolygon {};_afe .PdfAnnotation =_dcg ;_afe .PdfAnnotationMarkup =&PdfAnnotationMarkup {};_dcg .SetContext (_afe );return _afe ;};
|
||
|
||
// 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 (_aebc *PdfColorspaceSpecialPattern )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )< 1{return nil ,_ad .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");
|
||
};_fggde :=&PdfColorPattern {};_dbccg ,_dbbd :=objects [len (objects )-1].(*_fd .PdfObjectName );if !_dbbd {_ag .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 ;};_fggde .PatternName =*_dbccg ;if len (objects )> 1{_agbbd :=objects [0:len (objects )-1];if _aebc .UnderlyingCS ==nil {_ag .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 ,_ad .New ("\u0075n\u0064\u0065\u0072\u006cy\u0069\u006e\u0067\u0020\u0043S\u0020n\u006ft\u0020\u0064\u0065\u0066\u0069\u006e\u0065d");};_dcgg ,_gbbce :=_aebc .UnderlyingCS .ColorFromPdfObjects (_agbbd );if _gbbce !=nil {_ag .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",_gbbce );
|
||
return nil ,_gbbce ;};_fggde .Color =_dcgg ;};return _fggde ,nil ;};
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_ffceff pdfFontType3 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){if _aabae ,_fbfe :=_ffceff ._febf [code ];_fbfe {return _cf .CharMetrics {Wx :_aabae },true ;};if _cf .IsStdFont (_cf .StdFontName (_ffceff ._ffedb )){return _cf .CharMetrics {Wx :250},true ;
|
||
};return _cf .CharMetrics {},false ;};
|
||
|
||
// ToPdfObject return the CalGray colorspace as a PDF object (name dictionary).
|
||
func (_egdc *PdfColorspaceCalGray )ToPdfObject ()_fd .PdfObject {_aefc :=&_fd .PdfObjectArray {};_aefc .Append (_fd .MakeName ("\u0043a\u006c\u0047\u0072\u0061\u0079"));_abacg :=_fd .MakeDict ();if _egdc .WhitePoint !=nil {_abacg .Set ("\u0057\u0068\u0069\u0074\u0065\u0050\u006f\u0069\u006e\u0074",_fd .MakeArray (_fd .MakeFloat (_egdc .WhitePoint [0]),_fd .MakeFloat (_egdc .WhitePoint [1]),_fd .MakeFloat (_egdc .WhitePoint [2])));
|
||
}else {_ag .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 _egdc .BlackPoint !=nil {_abacg .Set ("\u0042\u006c\u0061\u0063\u006b\u0050\u006f\u0069\u006e\u0074",_fd .MakeArray (_fd .MakeFloat (_egdc .BlackPoint [0]),_fd .MakeFloat (_egdc .BlackPoint [1]),_fd .MakeFloat (_egdc .BlackPoint [2])));
|
||
};_abacg .Set ("\u0047\u0061\u006dm\u0061",_fd .MakeFloat (_egdc .Gamma ));_aefc .Append (_abacg );if _egdc ._gbaaf !=nil {_egdc ._gbaaf .PdfObject =_aefc ;return _egdc ._gbaaf ;};return _aefc ;};var (ErrRequiredAttributeMissing =_ad .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 =_ad .New ("\u0069\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u0061\u0074\u0074\u0072i\u0062\u0075\u0074\u0065");ErrTypeCheck =_ad .New ("\u0074\u0079\u0070\u0065\u0020\u0063\u0068\u0065\u0063\u006b");_fbeg =_ad .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
|
||
ErrEncrypted =_ad .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 =_ad .New ("\u0066\u006fn\u0074\u0020\u006eo\u0074\u0020\u0064\u0065\u0066\u0069\u006e\u0065\u0064");
|
||
ErrFontNotSupported =_ebb .Errorf ("u\u006e\u0073\u0075\u0070po\u0072t\u0065\u0064\u0020\u0066\u006fn\u0074\u0020\u0028\u0025\u0077\u0029",_fd .ErrNotSupported );ErrType1CFontNotSupported =_ebb .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",_fd .ErrNotSupported );
|
||
ErrType3FontNotSupported =_ebb .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",_fd .ErrNotSupported );
|
||
ErrTTCmapNotSupported =_ebb .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",_fd .ErrNotSupported );
|
||
ErrSignNotEnoughSpace =_ebb .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 =_ebb .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"););
|
||
|
||
// 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 (_bgbag *PdfPage )AppendContentBytes (cs []byte ,wrapContents bool )error {_bcdfc :=_bgbag .GetContentStreamObjs ();wrapContents =wrapContents &&len (_bcdfc )> 0;_bgagb :=_fd .NewFlateEncoder ();_eeda :=_fd .MakeArray ();if wrapContents {_bdace ,_adgffe :=_fd .MakeStream ([]byte ("\u0071\u000a"),_bgagb );
|
||
if _adgffe !=nil {return _adgffe ;};_eeda .Append (_bdace );};_eeda .Append (_bcdfc ...);if wrapContents {_dggbf ,_facea :=_fd .MakeStream ([]byte ("\u000a\u0051\u000a"),_bgagb );if _facea !=nil {return _facea ;};_eeda .Append (_dggbf );};_cedeb ,_dgfaf :=_fd .MakeStream (cs ,_bgagb );
|
||
if _dgfaf !=nil {return _dgfaf ;};_eeda .Append (_cedeb );_bgbag .Contents =_eeda ;return nil ;};
|
||
|
||
// 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 (_ffcf *PdfPage )Size ()(float64 ,float64 ,error ){_dccaa ,_gbbg :=_ffcf .GetMediaBox ();if _gbbg !=nil {return 0,0,_gbbg ;};_cagbb ,_bfcc :=_dccaa .Width (),_dccaa .Height ();_gagb ,_gbbg :=_ffcf .GetRotate ();if _gbbg !=nil {_ag .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",_gbbg .Error ());
|
||
};if _fefc :=_gagb ;_fefc %360!=0&&_fefc %90==0{if _gbbab :=(360+_fefc %360)%360;_gbbab ==90||_gbbab ==270{_cagbb ,_bfcc =_bfcc ,_cagbb ;};};return _cagbb ,_bfcc ,nil ;};
|
||
|
||
// 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 ;
|
||
|
||
// 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 ){_ebegf ,_caga :=_def .ParsePdfTime (dateStr );if _caga !=nil {return PdfDate {},_caga ;};return NewPdfDateFromTime (_ebegf );};
|
||
|
||
// PdfActionGoToR represents a GoToR action.
|
||
type PdfActionGoToR struct{*PdfAction ;F *PdfFilespec ;D _fd .PdfObject ;NewWindow _fd .PdfObject ;};
|
||
|
||
// Encoder returns the font's text encoder.
|
||
func (_acde pdfFontType0 )Encoder ()_ee .TextEncoder {return _acde ._agbe };func _feffd (_bbed *_fd .PdfObjectDictionary ,_aefcde *fontCommon )(*pdfCIDFontType0 ,error ){if _aefcde ._eded !="\u0043\u0049\u0044F\u006f\u006e\u0074\u0054\u0079\u0070\u0065\u0030"{_ag .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",_aefcde );
|
||
return nil ,_fd .ErrRangeError ;};_ebaab :=_deecg (_aefcde );_bbfga ,_dgedb :=_fd .GetDict (_bbed .Get ("\u0043\u0049\u0044\u0053\u0079\u0073\u0074\u0065\u006d\u0049\u006e\u0066\u006f"));if !_dgedb {_ag .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",_aefcde );
|
||
return nil ,ErrRequiredAttributeMissing ;};_ebaab .CIDSystemInfo =_bbfga ;_ebaab .DW =_bbed .Get ("\u0044\u0057");_ebaab .W =_bbed .Get ("\u0057");_ebaab .DW2 =_bbed .Get ("\u0044\u0057\u0032");_ebaab .W2 =_bbed .Get ("\u0057\u0032");_ebaab ._aaeef =1000.0;
|
||
if _ffba ,_gffbe :=_fd .GetNumberAsFloat (_ebaab .DW );_gffbe ==nil {_ebaab ._aaeef =_ffba ;};_ggdga ,_aeaee :=_gecgg (_ebaab .W );if _aeaee !=nil {return nil ,_aeaee ;};if _ggdga ==nil {_ggdga =map[_ee .CharCode ]float64 {};};_ebaab ._ccca =_ggdga ;return _ebaab ,nil ;
|
||
};
|
||
|
||
// NewOutlineItem returns a new outline item instance.
|
||
func NewOutlineItem (title string ,dest OutlineDest )*OutlineItem {return &OutlineItem {Title :title ,Dest :dest };};
|
||
|
||
// 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 (_bagf *PdfPageResources )GetColorspaces ()(*PdfPageResourcesColorspaces ,error ){if _bagf ._agaf !=nil {return _bagf ._agaf ,nil ;};if _bagf .ColorSpace ==nil {return nil ,nil ;};_bfbgd ,_ababf :=_dcfae (_bagf .ColorSpace );if _ababf !=nil {return nil ,_ababf ;
|
||
};_bagf ._agaf =_bfbgd ;return _bagf ._agaf ,nil ;};var _ pdfFont =(*pdfFontSimple )(nil );
|
||
|
||
// GetCharMetrics returns the char metrics for character code `code`.
|
||
func (_gdcf pdfCIDFontType0 )GetCharMetrics (code _ee .CharCode )(_cf .CharMetrics ,bool ){_adbdgb :=_gdcf ._aaeef ;if _cgdc ,_ebdbc :=_gdcf ._ccca [code ];_ebdbc {_adbdgb =_cgdc ;};return _cf .CharMetrics {Wx :_adbdgb },true ;};
|
||
|
||
// ToPdfObject recursively builds the Outline tree PDF object.
|
||
func (_gabgc *PdfOutline )ToPdfObject ()_fd .PdfObject {_eadg :=_gabgc ._fcef ;_gbce :=_eadg .PdfObject .(*_fd .PdfObjectDictionary );_gbce .Set ("\u0054\u0079\u0070\u0065",_fd .MakeName ("\u004f\u0075\u0074\u006c\u0069\u006e\u0065\u0073"));if _gabgc .First !=nil {_gbce .Set ("\u0046\u0069\u0072s\u0074",_gabgc .First .ToPdfObject ());
|
||
};if _gabgc .Last !=nil {_gbce .Set ("\u004c\u0061\u0073\u0074",_gabgc .Last .GetContext ().GetContainingPdfObject ());};if _gabgc .Parent !=nil {_gbce .Set ("\u0050\u0061\u0072\u0065\u006e\u0074",_gabgc .Parent .GetContext ().GetContainingPdfObject ());
|
||
};if _gabgc .Count !=nil {_gbce .Set ("\u0043\u006f\u0075n\u0074",_fd .MakeInteger (*_gabgc .Count ));};return _eadg ;};
|
||
|
||
// 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 _fd .StreamEncoder ;Intent _fd .PdfObject ;ImageMask _fd .PdfObject ;Mask _fd .PdfObject ;Matte _fd .PdfObject ;Decode _fd .PdfObject ;Interpolate _fd .PdfObject ;Alternatives _fd .PdfObject ;
|
||
SMask _fd .PdfObject ;SMaskInData _fd .PdfObject ;Name _fd .PdfObject ;StructParent _fd .PdfObject ;ID _fd .PdfObject ;OPI _fd .PdfObject ;Metadata _fd .PdfObject ;OC _fd .PdfObject ;Stream []byte ;_bbcgd *_fd .PdfObjectStream ;_egdda bool ;};
|
||
|
||
// XObjectType represents the type of an XObject.
|
||
type XObjectType int ;
|
||
|
||
// ToPdfObject returns a PDF object representation of the outline item.
|
||
func (_gggba *OutlineItem )ToPdfObject ()_fd .PdfObject {_bdbfc ,_ :=_gggba .ToPdfOutlineItem ();return _bdbfc .ToPdfObject ();};
|
||
|
||
// PdfAnnotationStrikeOut represents StrikeOut annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationStrikeOut struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .PdfObject ;};
|
||
|
||
// 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 (_eedge []_fd .PdfObject )([]_fd .PdfObject ,error );};
|
||
|
||
// PdfAnnotationSquiggly represents Squiggly annotations.
|
||
// (Section 12.5.6.10).
|
||
type PdfAnnotationSquiggly struct{*PdfAnnotation ;*PdfAnnotationMarkup ;QuadPoints _fd .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 ;};
|
||
|
||
// DecodeArray returns the component range values for the Indexed colorspace.
|
||
func (_bdeg *PdfColorspaceSpecialIndexed )DecodeArray ()[]float64 {return []float64 {0,float64 (_bdeg .HiVal )};};
|
||
|
||
// 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 (_ddda *PdfColorspaceLab )ColorFromPdfObjects (objects []_fd .PdfObject )(PdfColor ,error ){if len (objects )!=3{return nil ,_ad .New ("r\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b");};_fadb ,_efbcc :=_fd .GetNumbersAsFloat (objects );
|
||
if _efbcc !=nil {return nil ,_efbcc ;};return _ddda .ColorFromFloats (_fadb );};
|
||
|
||
// 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 ;
|
||
|
||
// AddCerts adds certificates to DSS.
|
||
func (_gffdf *DSS )AddCerts (certs [][]byte )([]*_fd .PdfObjectStream ,error ){return _gffdf .add (&_gffdf .Certs ,_gffdf ._ffbg ,certs );};
|
||
|
||
// 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 (_afccb *PdfFont )GetCharMetrics (code _ee .CharCode )(CharMetrics ,bool ){var _ebda _cf .CharMetrics ;switch _ggbaf :=_afccb ._gbaac .(type ){case *pdfFontSimple :if _dffd ,_cegdf :=_ggbaf .GetCharMetrics (code );_cegdf {return _dffd ,_cegdf ;};case *pdfFontType0 :if _cecge ,_fcgfb :=_ggbaf .GetCharMetrics (code );
|
||
_fcgfb {return _cecge ,_fcgfb ;};case *pdfCIDFontType0 :if _ebfeb ,_agaae :=_ggbaf .GetCharMetrics (code );_agaae {return _ebfeb ,_agaae ;};case *pdfCIDFontType2 :if _ecegg ,_addaa :=_ggbaf .GetCharMetrics (code );_addaa {return _ecegg ,_addaa ;};case *pdfFontType3 :if _ggge ,_fecaa :=_ggbaf .GetCharMetrics (code );
|
||
_fecaa {return _ggge ,_fecaa ;};default:_ag .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",_afccb ._gbaac );
|
||
return _ebda ,false ;};if _cgff ,_dddc :=_afccb .GetFontDescriptor ();_dddc ==nil &&_cgff !=nil {return _cf .CharMetrics {Wx :_cgff ._gfbd },true ;};_ag .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",_afccb );
|
||
return _ebda ,false ;};func (_fbfd *PdfReader )newPdfActionNamedFromDict (_ddd *_fd .PdfObjectDictionary )(*PdfActionNamed ,error ){return &PdfActionNamed {N :_ddd .Get ("\u004e")},nil ;};func _ddbf ()_cd .Time {_feadd .Lock ();defer _feadd .Unlock ();
|
||
return _gbfgb }; |