unipdf/render/render.go
2024-06-27 16:15:49 +00:00

206 lines
55 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 render ;import (_a "errors";_e "fmt";_ba "github.com/adrg/sysfont";_df "github.com/unidoc/unipdf/v3/annotator";_ef "github.com/unidoc/unipdf/v3/common";_dgb "github.com/unidoc/unipdf/v3/contentstream";_gc "github.com/unidoc/unipdf/v3/contentstream/draw";
_b "github.com/unidoc/unipdf/v3/core";_aa "github.com/unidoc/unipdf/v3/internal/license";_bag "github.com/unidoc/unipdf/v3/internal/transform";_dcd "github.com/unidoc/unipdf/v3/model";_dgbf "github.com/unidoc/unipdf/v3/render/internal/context";_eg "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
_dc "golang.org/x/image/draw";_cd "image";_ab "image/color";_ga "image/draw";_dg "image/jpeg";_ff "image/png";_cb "math";_c "os";_g "path/filepath";_f "strings";);
// Render converts the specified PDF page into an image, flattens annotations by default and returns the result.
func (_be *ImageDevice )Render (page *_dcd .PdfPage )(_cd .Image ,error ){return _be .RenderWithOpts (page ,false );};const (ShadingTypeFunctionBased PdfShadingType =1;ShadingTypeAxial PdfShadingType =2;ShadingTypeRadial PdfShadingType =3;ShadingTypeFreeForm PdfShadingType =4;
ShadingTypeLatticeForm PdfShadingType =5;ShadingTypeCoons PdfShadingType =6;ShadingTypeTensorProduct PdfShadingType =7;);
// RenderWithOpts converts the specified PDF page into an image, optionally flattens annotations and returns the result.
func (_cbc *ImageDevice )RenderWithOpts (page *_dcd .PdfPage ,skipFlattening bool )(_cd .Image ,error ){_dd ,_bf :=page .GetMediaBox ();if _bf !=nil {return nil ,_bf ;};_dd .Normalize ();_ea :=page .CropBox ;var _ec ,_fd float64 ;if _ea !=nil {_ea .Normalize ();
_ec ,_fd =_ea .Width (),_ea .Height ();};_da :=page .Rotate ;_cbg ,_cf ,_fa ,_gce :=_dd .Llx ,_dd .Lly ,_dd .Width (),_dd .Height ();_cdg :=_bag .IdentityMatrix ();if _da !=nil &&*_da %360!=0&&*_da %90==0{_ad :=-float64 (*_da );_bd :=_cbf (_fa ,_gce ,_ad );
_cdg =_cdg .Translate ((_bd .Width -_fa )/2+_fa /2,(_bd .Height -_gce )/2+_gce /2).Rotate (_ad *_cb .Pi /180).Translate (-_fa /2,-_gce /2);_fa ,_gce =_bd .Width ,_bd .Height ;if _ea !=nil {_ac :=_cbf (_ec ,_fd ,_ad );_ec ,_fd =_ac .Width ,_ac .Height ;
};};if _cbg !=0||_cf !=0{_cdg =_cdg .Translate (-_cbg ,-_cf );};_cbc ._bb =1.0;if _cbc .OutputWidth !=0{_cbe :=_fa ;if _ea !=nil {_cbe =_ec ;};_cbc ._bb =float64 (_cbc .OutputWidth )/_cbe ;_fa ,_gce ,_ec ,_fd =_fa *_cbc ._bb ,_gce *_cbc ._bb ,_ec *_cbc ._bb ,_fd *_cbc ._bb ;
_cdg =_bag .ScaleMatrix (_cbc ._bb ,_cbc ._bb ).Mult (_cdg );};_bee :=_eg .NewContext (int (_fa ),int (_gce ));if _ega :=_cbc .renderPage (_bee ,page ,_cdg ,skipFlattening );_ega !=nil {return nil ,_ega ;};_fc :=_bee .Image ();if _ea !=nil {_ecc ,_bc :=(_ea .Llx -_cbg )*_cbc ._bb ,(_ea .Lly -_cf )*_cbc ._bb ;
_cbef :=_cd .Rect (0,0,int (_ec ),int (_fd ));_abe :=_cd .Pt (int (_ecc ),int (_gce -_bc -_fd ));_bfb :=_cd .NewRGBA (_cbef );_ga .Draw (_bfb ,_cbef ,_fc ,_abe ,_ga .Src );_fc =_bfb ;};return _fc ,nil ;};func (_cba renderer )renderPage (_db _dgbf .Context ,_ged *_dcd .PdfPage ,_eca _bag .Matrix ,_dbg bool )error {if !_dbg {_daa :=_dcd .FieldFlattenOpts {AnnotFilterFunc :func (_de *_dcd .PdfAnnotation )bool {switch _de .GetContext ().(type ){case *_dcd .PdfAnnotationLine :return true ;
case *_dcd .PdfAnnotationSquare :return true ;case *_dcd .PdfAnnotationCircle :return true ;case *_dcd .PdfAnnotationPolygon :return true ;case *_dcd .PdfAnnotationPolyLine :return true ;};return false ;}};_dcg :=_df .FieldAppearance {};_gee :=_ged .FlattenFieldsWithOpts (_dcg ,&_daa );
if _gee !=nil {_ef .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u0064u\u0072\u0069n\u0067\u0020\u0061\u006e\u006e\u006f\u0074\u0061t\u0069\u006f\u006e\u0020\u0066\u006c\u0061\u0074\u0074\u0065\u006e\u0069n\u0067\u0020\u0025\u0076",_gee );};};_gad ,_cg :=_ged .GetAllContentStreams ();
if _cg !=nil {return _cg ;};if _gg :=_eca ;!_gg .Identity (){_gad =_e .Sprintf ("%\u002e\u0032\u0066\u0020\u0025\u002e2\u0066\u0020\u0025\u002e\u0032\u0066 \u0025\u002e\u0032\u0066\u0020\u0025\u002e2\u0066\u0020\u0025\u002e\u0032\u0066\u0020\u0063\u006d\u0020%\u0073",_gg [0],_gg [1],_gg [3],_gg [4],_gg [6],_gg [7],_gad );
};_db .Translate (0,float64 (_db .Height ()));_db .Scale (1,-1);_db .Push ();_db .SetRGBA (1,1,1,1);_db .DrawRectangle (0,0,float64 (_db .Width ()),float64 (_db .Height ()));_db .Fill ();_db .Pop ();_db .SetLineWidth (1.0);_db .SetRGBA (0,0,0,1);return _cba .renderContentStream (_db ,_gad ,_ged .Resources );
};
// ImageDevice is used to render PDF pages to image targets.
type ImageDevice struct{renderer ;
// OutputWidth represents the width of the rendered images in pixels.
// The heights of the output images are calculated based on the selected
// width and the original height of each rendered page.
OutputWidth int ;};
// PdfShadingType defines PDF shading types.
// Source: PDF32000_2008.pdf. Chapter 8.7.4.5
type PdfShadingType int64 ;func (_bbb renderer )renderContentStream (_geb _dgbf .Context ,_gea string ,_bg *_dcd .PdfPageResources )error {_aab ,_dce :=_dgb .NewContentStreamParser (_gea ).Parse ();if _dce !=nil {return _dce ;};_ada :=_geb .TextState ();
_ada .GlobalScale =_bbb ._bb ;_abd :=map[string ]*_dgbf .TextFont {};_cdf :=_ba .NewFinder (&_ba .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});var _cgd *_dgb .ContentStreamOperation ;_ecb :=_dgb .NewContentStreamProcessor (*_aab );
_ecb .AddHandler (_dgb .HandlerConditionEnumAllOperands ,"",func (_bge *_dgb .ContentStreamOperation ,_cgc _dgb .GraphicsState ,_bca *_dcd .PdfPageResources )error {_ef .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_bge .Operand );
switch _bge .Operand {case "\u0071":_geb .Push ();case "\u0051":_geb .Pop ();_ada =_geb .TextState ();case "\u0063\u006d":if len (_bge .Params )!=6{return _ge ;};_aabd ,_bcf :=_b .GetNumbersAsFloat (_bge .Params );if _bcf !=nil {return _bcf ;};_bfeg :=_bag .NewMatrix (_aabd [0],_aabd [1],_aabd [2],_aabd [3],_aabd [4],_aabd [5]);
_ef .Log .Debug ("\u0047\u0072\u0061\u0070\u0068\u0069\u0063\u0073\u0020\u0073\u0074a\u0074\u0065\u0020\u006d\u0061\u0074\u0072\u0069\u0078\u003a \u0025\u002b\u0076",_bfeg );_geb .SetMatrix (_geb .Matrix ().Mult (_bfeg ));case "\u0077":if len (_bge .Params )!=1{return _ge ;
};_gb ,_dfe :=_b .GetNumbersAsFloat (_bge .Params );if _dfe !=nil {return _dfe ;};_geb .SetLineWidth (_gb [0]);case "\u004a":if len (_bge .Params )!=1{return _ge ;};_ca ,_abef :=_b .GetIntVal (_bge .Params [0]);if !_abef {return _bfe ;};switch _ca {case 0:_geb .SetLineCap (_dgbf .LineCapButt );
case 1:_geb .SetLineCap (_dgbf .LineCapRound );case 2:_geb .SetLineCap (_dgbf .LineCapSquare );default:_ef .Log .Debug ("\u0049\u006e\u0076\u0061\u006c\u0069\u0064\u0020\u006c\u0069\u006ee\u0020\u0063\u0061\u0070\u0020\u0073\u0074\u0079\u006c\u0065:\u0020\u0025\u0064",_ca );
return _ge ;};case "\u006a":if len (_bge .Params )!=1{return _ge ;};_fdg ,_gf :=_b .GetIntVal (_bge .Params [0]);if !_gf {return _bfe ;};switch _fdg {case 0:_geb .SetLineJoin (_dgbf .LineJoinBevel );case 1:_geb .SetLineJoin (_dgbf .LineJoinRound );case 2:_geb .SetLineJoin (_dgbf .LineJoinBevel );
default:_ef .Log .Debug ("I\u006e\u0076\u0061\u006c\u0069\u0064 \u006c\u0069\u006e\u0065\u0020\u006a\u006f\u0069\u006e \u0073\u0074\u0079l\u0065:\u0020\u0025\u0064",_fdg );return _ge ;};case "\u004d":if len (_bge .Params )!=1{return _ge ;};_daae ,_bged :=_b .GetNumbersAsFloat (_bge .Params );
if _bged !=nil {return _bged ;};_ =_daae ;_ef .Log .Debug ("\u004di\u0074\u0065\u0072\u0020l\u0069\u006d\u0069\u0074\u0020n\u006ft\u0020s\u0075\u0070\u0070\u006f\u0072\u0074\u0065d");case "\u0064":if len (_bge .Params )!=2{return _ge ;};_fce ,_abf :=_b .GetArray (_bge .Params [0]);
if !_abf {return _bfe ;};_bcad ,_abf :=_b .GetIntVal (_bge .Params [1]);if !_abf {_ ,_bea :=_b .GetFloatVal (_bge .Params [1]);if !_bea {return _bfe ;};};_cc ,_cbec :=_b .GetNumbersAsFloat (_fce .Elements ());if _cbec !=nil {return _cbec ;};_geb .SetDash (_cc ...);
_ =_bcad ;_ef .Log .Debug ("\u004c\u0069n\u0065\u0020\u0064\u0061\u0073\u0068\u0020\u0070\u0068\u0061\u0073\u0065\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006frt\u0065\u0064");case "\u0072\u0069":_ef .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020i\u006e\u0074\u0065\u006e\u0074\u0020\u006eo\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");
case "\u0069":_ef .Log .Debug ("\u0046\u006c\u0061\u0074\u006e\u0065\u0073\u0073\u0020\u0074\u006f\u006c\u0065\u0072\u0061n\u0063e\u0020\u006e\u006f\u0074\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064");case "\u0067\u0073":if len (_bge .Params )!=1{return _ge ;
};_eb ,_ag :=_b .GetName (_bge .Params [0]);if !_ag {return _bfe ;};if _eb ==nil {return _ge ;};_bcb ,_ag :=_bca .GetExtGState (*_eb );if !_ag {_ef .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006eo\u0074 \u0066i\u006ed\u0020\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u003a\u0020\u0025\u0073",*_eb );
return _a .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_bcfb ,_ag :=_b .GetDict (_bcb );if !_ag {_ef .Log .Debug ("\u0045\u0052RO\u0052\u003a\u0020c\u006f\u0075\u006c\u0064 ge\u0074 g\u0072\u0061\u0070\u0068\u0069\u0063\u0073 s\u0074\u0061\u0074\u0065\u0020\u0064\u0069c\u0074");
return _bfe ;};_ef .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_bcfb .String ());_bgc :=_bcfb .Get ("\u0063\u0061");if _bgc !=nil {_aae ,_fca :=_b .GetNumberAsFloat (_bgc );if _fca ==nil {_fec ,_bgg :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );
if _bgg !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bgg );return _bgg ;};_dda ,_af :=_fec .(*_dcd .PdfColorDeviceRGB );if !_af {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
return _bgg ;};_geb .SetFillRGBA (_dda .R (),_dda .G (),_dda .B (),_aae );};};case "\u006d":if len (_bge .Params )!=2{_ef .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006d\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_ge );
return nil ;};_dcdg ,_ccb :=_b .GetNumbersAsFloat (_bge .Params );if _ccb !=nil {return _ccb ;};_ef .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_dcdg );_geb .NewSubPath ();_geb .MoveTo (_dcdg [0],_dcdg [1]);case "\u006c":if len (_bge .Params )!=2{_ef .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0065\u0072\u0072o\u0072\u0020\u0077\u0068\u0069\u006c\u0065\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0060\u006c\u0060\u0020o\u0070\u0065r\u0061\u0074o\u0072\u003a\u0020\u0025\u0073\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074 m\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e",_ge );
return nil ;};_cdgg ,_dcgg :=_b .GetNumbersAsFloat (_bge .Params );if _dcgg !=nil {return _dcgg ;};_geb .LineTo (_cdgg [0],_cdgg [1]);case "\u0063":if len (_bge .Params )!=6{return _ge ;};_bdg ,_afe :=_b .GetNumbersAsFloat (_bge .Params );if _afe !=nil {return _afe ;
};_ef .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_bdg );_geb .CubicTo (_bdg [0],_bdg [1],_bdg [2],_bdg [3],_bdg [4],_bdg [5]);case "\u0076","\u0079":if len (_bge .Params )!=4{return _ge ;
};_ce ,_def :=_b .GetNumbersAsFloat (_bge .Params );if _def !=nil {return _def ;};_ef .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ce );_geb .QuadraticTo (_ce [0],_ce [1],_ce [2],_ce [3]);
case "\u0068":_geb .ClosePath ();_geb .NewSubPath ();case "\u0072\u0065":if len (_bge .Params )!=4{return _ge ;};_bcc ,_ed :=_b .GetNumbersAsFloat (_bge .Params );if _ed !=nil {return _ed ;};_geb .DrawRectangle (_bcc [0],_bcc [1],_bcc [2],_bcc [3]);_geb .NewSubPath ();
case "\u0053":_ddb ,_aee :=_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );if _aee !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_aee );
return _aee ;};_fgf ,_acg :=_ddb .(*_dcd .PdfColorDeviceRGB );if !_acg {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _aee ;};_geb .SetRGBA (_fgf .R (),_fgf .G (),_fgf .B (),1);
_geb .Stroke ();case "\u0073":_eaa ,_dee :=_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );if _dee !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_dee );
return _dee ;};_bed ,_adc :=_eaa .(*_dcd .PdfColorDeviceRGB );if !_adc {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _dee ;};_geb .ClosePath ();_geb .NewSubPath ();
_geb .SetRGBA (_bed .R (),_bed .G (),_bed .B (),1);_geb .Stroke ();case "\u0066","\u0046":_dbb ,_bfg :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );if _bfg !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_bfg );
return _bfg ;};switch _edd :=_dbb .(type ){case *_dcd .PdfColorDeviceRGB :_geb .SetRGBA (_edd .R (),_edd .G (),_edd .B (),1);_geb .SetFillRule (_dgbf .FillRuleWinding );_geb .Fill ();case *_dcd .PdfColorPattern :_geb .Fill ();};_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
case "\u0066\u002a":_fcag ,_fcc :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );if _fcc !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fcc );
return _fcc ;};_dab ,_dga :=_fcag .(*_dcd .PdfColorDeviceRGB );if !_dga {_ef .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fcc ;};_geb .SetRGBA (_dab .R (),_dab .G (),_dab .B (),1);
_geb .SetFillRule (_dgbf .FillRuleEvenOdd );_geb .Fill ();case "\u0042":_deed ,_ece :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );if _ece !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ece );
return _ece ;};switch _gfb :=_deed .(type ){case *_dcd .PdfColorDeviceRGB :_geb .SetRGBA (_gfb .R (),_gfb .G (),_gfb .B (),1);_geb .SetFillRule (_dgbf .FillRuleWinding );_geb .FillPreserve ();_deed ,_ece =_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );
if _ece !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ece );return _ece ;};if _cdc ,_eae :=_deed .(*_dcd .PdfColorDeviceRGB );
_eae {_geb .SetRGBA (_cdc .R (),_cdc .G (),_cdc .B (),1);_geb .Stroke ();};case *_dcd .PdfColorPattern :_geb .SetFillRule (_dgbf .FillRuleWinding );_geb .Fill ();_geb .StrokePattern ();};case "\u0042\u002a":_gaa ,_cec :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );
if _cec !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cec );return _cec ;};switch _bbbd :=_gaa .(type ){case *_dcd .PdfColorDeviceRGB :_geb .SetRGBA (_bbbd .R (),_bbbd .G (),_bbbd .B (),1);
_geb .SetFillRule (_dgbf .FillRuleEvenOdd );_geb .FillPreserve ();_gaa ,_cec =_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );if _cec !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cec );
return _cec ;};if _beea ,_eff :=_gaa .(*_dcd .PdfColorDeviceRGB );_eff {_geb .SetRGBA (_beea .R (),_beea .G (),_beea .B (),1);_geb .Stroke ();};case *_dcd .PdfColorPattern :_geb .SetFillRule (_dgbf .FillRuleEvenOdd );_geb .Fill ();_geb .StrokePattern ();
};case "\u0062":_geb .ClosePath ();_fcaa ,_ee :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );if _ee !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ee );
return _ee ;};switch _bgd :=_fcaa .(type ){case *_dcd .PdfColorDeviceRGB :_geb .SetRGBA (_bgd .R (),_bgd .G (),_bgd .B (),1);_geb .NewSubPath ();_geb .SetFillRule (_dgbf .FillRuleWinding );_geb .FillPreserve ();_fcaa ,_ee =_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );
if _ee !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_ee );return _ee ;};if _bcff ,_gef :=_fcaa .(*_dcd .PdfColorDeviceRGB );
_gef {_geb .SetRGBA (_bcff .R (),_bcff .G (),_bcff .B (),1);_geb .Stroke ();};case *_dcd .PdfColorPattern :_geb .NewSubPath ();_geb .SetFillRule (_dgbf .FillRuleWinding );_geb .Fill ();_geb .StrokePattern ();};case "\u0062\u002a":_geb .ClosePath ();_dde ,_cge :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );
if _cge !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cge );return _cge ;};switch _bef :=_dde .(type ){case *_dcd .PdfColorDeviceRGB :_geb .SetRGBA (_bef .R (),_bef .G (),_bef .B (),1);
_geb .NewSubPath ();_geb .SetFillRule (_dgbf .FillRuleEvenOdd );_geb .FillPreserve ();_dde ,_cge =_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );if _cge !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cge );
return _cge ;};if _gaf ,_gcd :=_dde .(*_dcd .PdfColorDeviceRGB );_gcd {_geb .SetRGBA (_gaf .R (),_gaf .G (),_gaf .B (),1);_geb .Stroke ();};case *_dcd .PdfColorPattern :_geb .NewSubPath ();_geb .SetFillRule (_dgbf .FillRuleEvenOdd );_geb .Fill ();_geb .StrokePattern ();
};case "\u006e":_geb .ClearPath ();case "\u0057":_geb .SetFillRule (_dgbf .FillRuleWinding );_geb .ClipPreserve ();case "\u0057\u002a":_geb .SetFillRule (_dgbf .FillRuleEvenOdd );_geb .ClipPreserve ();case "\u0072\u0067":_acb ,_deb :=_cgc .ColorNonStroking .(*_dcd .PdfColorDeviceRGB );
if !_deb {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );return nil ;};_geb .SetFillRGBA (_acb .R (),_acb .G (),_acb .B (),1);
case "\u0052\u0047":_dae ,_effe :=_cgc .ColorStroking .(*_dcd .PdfColorDeviceRGB );if !_effe {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );
return nil ;};_geb .SetStrokeRGBA (_dae .R (),_dae .G (),_dae .B (),1);case "\u006b":_fac ,_gbe :=_cgc .ColorNonStroking .(*_dcd .PdfColorDeviceCMYK );if !_gbe {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );
return nil ;};_effb ,_ccd :=_cgc .ColorspaceNonStroking .ColorToRGB (_fac );if _ccd !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );
return nil ;};_dbe ,_gbe :=_effb .(*_dcd .PdfColorDeviceRGB );if !_gbe {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_effb );return nil ;
};_geb .SetFillRGBA (_dbe .R (),_dbe .G (),_dbe .B (),1);case "\u004b":_agb ,_bff :=_cgc .ColorStroking .(*_dcd .PdfColorDeviceCMYK );if !_bff {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );
return nil ;};_cae ,_aad :=_cgc .ColorspaceStroking .ColorToRGB (_agb );if _aad !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );
return nil ;};_fae ,_bff :=_cae .(*_dcd .PdfColorDeviceRGB );if !_bff {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cae );return nil ;
};_geb .SetStrokeRGBA (_fae .R (),_fae .G (),_fae .B (),1);case "\u0067":_fge ,_dcc :=_cgc .ColorNonStroking .(*_dcd .PdfColorDeviceGray );if !_dcc {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );
return nil ;};_cbecf ,_bdf :=_cgc .ColorspaceNonStroking .ColorToRGB (_fge );if _bdf !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );
return nil ;};_bba ,_dcc :=_cbecf .(*_dcd .PdfColorDeviceRGB );if !_dcc {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cbecf );return nil ;
};_geb .SetFillRGBA (_bba .R (),_bba .G (),_bba .B (),1);case "\u0047":_aeg ,_ecad :=_cgc .ColorStroking .(*_dcd .PdfColorDeviceGray );if !_ecad {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );
return nil ;};_fcac ,_bffc :=_cgc .ColorspaceStroking .ColorToRGB (_aeg );if _bffc !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );
return nil ;};_adg ,_ecad :=_fcac .(*_dcd .PdfColorDeviceRGB );if !_ecad {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fcac );return nil ;
};_geb .SetStrokeRGBA (_adg .R (),_adg .G (),_adg .B (),1);case "\u0063\u0073":if len (_bge .Params )> 0{if _fb ,_aega :=_b .GetName (_bge .Params [0]);_aega &&_fb .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_fdc ,_aced :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );
if _aced !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );return nil ;};_daf ,_aege :=_fdc .(*_dcd .PdfColorDeviceRGB );
if !_aege {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fdc );return nil ;};_geb .SetFillRGBA (_daf .R (),_daf .G (),_daf .B (),1);
case "\u0073\u0063":_dcga ,_ced :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );if _ced !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );
return nil ;};_egf ,_cde :=_dcga .(*_dcd .PdfColorDeviceRGB );if !_cde {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_dcga );return nil ;
};_geb .SetFillRGBA (_egf .R (),_egf .G (),_egf .B (),1);case "\u0073\u0063\u006e":if len (_bge .Params )> 0&&len (_cgd .Params )> 0{if _bgf ,_cedf :=_b .GetName (_cgd .Params [0]);_cedf &&_bgf .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _dbgb ,_fccf :=_b .GetName (_bge .Params [0]);
_fccf {_defa ,_dbed :=_bbb .processGradient (_geb ,_bge ,_bca ,_dbgb );if _dbed !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072o\u0063\u0065\u0073\u0073\u0069\u006eg\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074\u0020\u0064\u0061\u0074a\u003a\u0020\u0025\u0076",_dbed );
break ;};if _defa ==nil {_ef .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_geb .SetFillStyle (_defa );_geb .SetStrokeStyle (_defa );break ;};};};_dac ,_bfbe :=_cgc .ColorspaceNonStroking .ColorToRGB (_cgc .ColorNonStroking );
if _bfbe !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorNonStroking );return nil ;};_fde ,_cgb :=_dac .(*_dcd .PdfColorDeviceRGB );
if !_cgb {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_dac );return nil ;};_geb .SetFillRGBA (_fde .R (),_fde .G (),_fde .B (),1);
case "\u0043\u0053":if len (_bge .Params )> 0{if _fcd ,_dfec :=_b .GetName (_bge .Params [0]);_dfec &&_fcd .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_dcgc ,_bedg :=_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );if _bedg !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );
return nil ;};_gag ,_eceb :=_dcgc .(*_dcd .PdfColorDeviceRGB );if !_eceb {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_dcgc );return nil ;
};_geb .SetStrokeRGBA (_gag .R (),_gag .G (),_gag .B (),1);case "\u0053\u0043":_fcca ,_gae :=_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );if _gae !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );
return nil ;};_cee ,_cfb :=_fcca .(*_dcd .PdfColorDeviceRGB );if !_cfb {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_fcca );return nil ;
};_geb .SetStrokeRGBA (_cee .R (),_cee .G (),_cee .B (),1);case "\u0053\u0043\u004e":if len (_bge .Params )> 0&&len (_cgd .Params )> 0{if _efd ,_eef :=_b .GetName (_cgd .Params [0]);_eef &&_efd .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _fbg ,_deg :=_b .GetName (_bge .Params [0]);
_deg {_dafg ,_fdb :=_bbb .processGradient (_geb ,_bge ,_bca ,_fbg );if _fdb !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072o\u0063\u0065\u0073\u0073\u0069\u006eg\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074\u0020\u0064\u0061\u0074a\u003a\u0020\u0025\u0076",_fdb );
break ;};if _dafg ==nil {_ef .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_geb .SetFillStyle (_dafg );_geb .SetStrokeStyle (_dafg );break ;};};};_egg ,_cbgc :=_cgc .ColorspaceStroking .ColorToRGB (_cgc .ColorStroking );
if _cbgc !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_cgc .ColorStroking );return nil ;};_afa ,_gfg :=_egg .(*_dcd .PdfColorDeviceRGB );
if !_gfg {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_egg );return nil ;};_geb .SetStrokeRGBA (_afa .R (),_afa .G (),_afa .B (),1);
case "\u0073\u0068":if len (_bge .Params )!=1{_ef .Log .Debug ("\u0049n\u0076\u0061\u006c\u0069\u0064\u0020\u0073\u0068\u0020\u0070\u0061r\u0061\u006d\u0073\u0020\u0066\u006f\u0072\u006d\u0061\u0074");break ;};_efe ,_gafa :=_b .GetName (_bge .Params [0]);
if !_gafa {_ef .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020g\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006eg\u0020n\u0061\u006d\u0065");break ;};_aga ,_gafa :=_bca .GetShadingByName (*_efe );if !_gafa {_ef .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020g\u0065\u0074\u0074\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006eg\u0020d\u0061\u0074\u0061");
break ;};_abg ,_baa ,_geaa :=_bbb .processShading (_geb ,_aga );if _geaa !=nil {_ef .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0077\u0068\u0065\u006e\u0020\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0073\u0068a\u0064\u0069\u006e\u0067\u0020d\u0061\u0074a\u003a\u0020\u0025\u0076",_geaa );
break ;};if _abg ==nil {_ef .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_fee ,_geaa :=_baa .ToFloat64Array ();if _geaa !=nil {_ef .Log .Debug ("\u0045\u0072r\u006f\u0072\u0020\u0070\u0061\u0072\u0073\u0069\u006e\u0067\u0020\u0063\u006f\u006f\u0072\u0064\u0069\u006e\u0061\u0074\u0065\u0073: \u0025\u0076",_geaa );
break ;};_geb .DrawRectangle (_fee [0],_fee [1],_fee [2],_fee [3]);_geb .NewSubPath ();_geb .SetFillStyle (_abg );_geb .SetStrokeStyle (_abg );_geb .Fill ();case "\u0044\u006f":if len (_bge .Params )!=1{return _ge ;};_bdgb ,_cce :=_b .GetName (_bge .Params [0]);
if !_cce {return _bfe ;};_ ,_gcf :=_bca .GetXObjectByName (*_bdgb );switch _gcf {case _dcd .XObjectTypeImage :_ef .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_bdgb .String ());_daec ,_gfa :=_bca .GetXObjectImageByName (*_bdgb );
if _gfa !=nil {return _gfa ;};_dgf ,_gfa :=_daec .ToImage ();if _gfa !=nil {_ef .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020\u0072\u0065\u0073\u0075\u006c\u0074\u0020\u006day\u0020b\u0065\u0020\u0069\u006e\u0063\u006f\u006d\u0070\u006c\u0065\u0074\u0065.\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gfa );
return nil ;};if _beb :=_daec .ColorSpace ;_beb !=nil {var _aaeb bool ;switch _beb .(type ){case *_dcd .PdfColorspaceSpecialIndexed :_aaeb =true ;};if _aaeb {if _gfe ,_dcf :=_beb .ImageToRGB (*_dgf );_dcf !=nil {_ef .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0063\u006fnv\u0065r\u0074\u0020\u0069\u006d\u0061\u0067\u0065\u0020\u0074\u006f\u0020\u0052G\u0042\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020i\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
}else {_dgf =&_gfe ;};};};_ecd :=_geb .FillPattern ().ColorAt (0,0);var _efde _cd .Image ;if _daec .Mask !=nil {if _efde ,_gfa =_eea (_daec .Mask ,_ecd );_gfa !=nil {_ef .Log .Debug ("\u0057\u0041\u0052\u004e\u003a \u0063\u006f\u0075\u006c\u0064 \u006eo\u0074\u0020\u0067\u0065\u0074\u0020\u0065\u0078\u0070\u006c\u0069\u0063\u0069\u0074\u0020\u0069\u006d\u0061\u0067e\u0020\u006d\u0061\u0073\u006b\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063o\u0072\u0072\u0065\u0063\u0074\u002e");
};}else if _daec .SMask !=nil {if _efde ,_gfa =_dade (_daec .SMask ,_ecd );_gfa !=nil {_ef .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0067\u0065\u0074\u0020\u0073\u006f\u0066\u0074\u0020\u0069\u006da\u0067e\u0020\u006d\u0061\u0073k\u002e\u0020O\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
};};var _cad _cd .Image ;if _gfag ,_ :=_b .GetBoolVal (_daec .ImageMask );_gfag {_cad =_cagd (_dgf ,_ecd );}else {_cad ,_gfa =_dgf .ToGoImage ();if _gfa !=nil {_ef .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020\u0072\u0065\u0073\u0075\u006c\u0074\u0020\u006day\u0020b\u0065\u0020\u0069\u006e\u0063\u006f\u006d\u0070\u006c\u0065\u0074\u0065.\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_gfa );
return nil ;};};if _efde !=nil {_cad =_dbgd (_cad ,_efde );};_gcfc :=_cad .Bounds ();_geb .Push ();_geb .Scale (1.0/float64 (_gcfc .Dx ()),-1.0/float64 (_gcfc .Dy ()));_geb .DrawImageAnchored (_cad ,0,0,0,1);_geb .Pop ();case _dcd .XObjectTypeForm :_ef .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_bdgb .String ());
_afec ,_gga :=_bca .GetXObjectFormByName (*_bdgb );if _gga !=nil {return _gga ;};_cfd ,_gga :=_afec .GetContentStream ();if _gga !=nil {return _gga ;};_cgde :=_afec .Resources ;if _cgde ==nil {_cgde =_bca ;};_geb .Push ();if _afec .Matrix !=nil {_eaaa ,_aea :=_b .GetArray (_afec .Matrix );
if !_aea {return _bfe ;};_cgec ,_bad :=_b .GetNumbersAsFloat (_eaaa .Elements ());if _bad !=nil {return _bad ;};if len (_cgec )!=6{return _ge ;};_bdc :=_bag .NewMatrix (_cgec [0],_cgec [1],_cgec [2],_cgec [3],_cgec [4],_cgec [5]);_geb .SetMatrix (_geb .Matrix ().Mult (_bdc ));
};if _afec .BBox !=nil {_ccc ,_adb :=_b .GetArray (_afec .BBox );if !_adb {return _bfe ;};_ccee ,_cccg :=_b .GetNumbersAsFloat (_ccc .Elements ());if _cccg !=nil {return _cccg ;};if len (_ccee )!=4{_ef .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_ccee ));
return _ge ;};_geb .DrawRectangle (_ccee [0],_ccee [1],_ccee [2]-_ccee [0],_ccee [3]-_ccee [1]);_geb .SetRGBA (1,0,0,1);_geb .Clip ();}else {_ef .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u0052\u0065q\u0075\u0069\u0072e\u0064\u0020\u0042\u0042\u006f\u0078\u0020\u006d\u0069ss\u0069\u006e\u0067 \u006f\u006e \u0058\u004f\u0062\u006a\u0065\u0063t\u0020\u0046o\u0072\u006d");
};_gga =_bbb .renderContentStream (_geb ,string (_cfd ),_cgde );if _gga !=nil {return _gga ;};_geb .Pop ();};case "\u0042\u0049":if len (_bge .Params )!=1{return _ge ;};_ggd ,_dcfg :=_bge .Params [0].(*_dgb .ContentStreamInlineImage );if !_dcfg {return nil ;
};_aff ,_ead :=_ggd .ToImage (_bca );if _ead !=nil {_ef .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020\u0072\u0065\u0073\u0075\u006c\u0074\u0020\u006day\u0020b\u0065\u0020\u0069\u006e\u0063\u006f\u006d\u0070\u006c\u0065\u0074\u0065.\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ead );
return nil ;};_gaea ,_ead :=_aff .ToGoImage ();if _ead !=nil {_ef .Log .Debug ("\u0052\u0065\u006e\u0064\u0065\u0072\u0069\u006e\u0067\u0020\u0072\u0065\u0073\u0075\u006c\u0074\u0020\u006day\u0020b\u0065\u0020\u0069\u006e\u0063\u006f\u006d\u0070\u006c\u0065\u0074\u0065.\u0020\u0049\u006d\u0061\u0067\u0065\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e \u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0076",_ead );
return nil ;};_dgc :=_gaea .Bounds ();_geb .Push ();_geb .Scale (1.0/float64 (_dgc .Dx ()),-1.0/float64 (_dgc .Dy ()));_geb .DrawImageAnchored (_gaea ,0,0,0,1);_geb .Pop ();case "\u0042\u0054":_ada .Reset ();case "\u0045\u0054":_ada .Reset ();case "\u0054\u0072":if len (_bge .Params )!=1{return _ge ;
};_cgdc ,_efee :=_b .GetNumberAsFloat (_bge .Params [0]);if _efee !=nil {return _efee ;};_ada .Tr =_dgbf .TextRenderingMode (_cgdc );case "\u0054\u004c":if len (_bge .Params )!=1{return _ge ;};_fgb ,_dag :=_b .GetNumberAsFloat (_bge .Params [0]);if _dag !=nil {return _dag ;
};_ada .Tl =_fgb ;case "\u0054\u0063":if len (_bge .Params )!=1{return _ge ;};_dge ,_cgda :=_b .GetNumberAsFloat (_bge .Params [0]);if _cgda !=nil {return _cgda ;};_ef .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_dge );_ada .Tc =_dge ;case "\u0054\u0077":if len (_bge .Params )!=1{return _ge ;
};_bcade ,_faee :=_b .GetNumberAsFloat (_bge .Params [0]);if _faee !=nil {return _faee ;};_ef .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_bcade );_ada .Tw =_bcade ;case "\u0054\u007a":if len (_bge .Params )!=1{return _ge ;};_ddee ,_abgb :=_b .GetNumberAsFloat (_bge .Params [0]);
if _abgb !=nil {return _abgb ;};_ada .Th =_ddee ;case "\u0054\u0073":if len (_bge .Params )!=1{return _ge ;};_aegf ,_eba :=_b .GetNumberAsFloat (_bge .Params [0]);if _eba !=nil {return _eba ;};_ada .Ts =_aegf ;case "\u0054\u0064":if len (_bge .Params )!=2{return _ge ;
};_eed ,_gd :=_b .GetNumbersAsFloat (_bge .Params );if _gd !=nil {return _gd ;};_ef .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_eed );_ada .ProcTd (_eed [0],_eed [1]);case "\u0054\u0044":if len (_bge .Params )!=2{return _ge ;};_aag ,_ddf :=_b .GetNumbersAsFloat (_bge .Params );
if _ddf !=nil {return _ddf ;};_ef .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_aag );_ada .ProcTD (_aag [0],_aag [1]);case "\u0054\u002a":_ada .ProcTStar ();case "\u0054\u006d":if len (_bge .Params )!=6{return _ge ;};_dbf ,_ecea :=_b .GetNumbersAsFloat (_bge .Params );
if _ecea !=nil {return _ecea ;};_ef .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_dbf );_ada .ProcTm (_dbf [0],_dbf [1],_dbf [2],_dbf [3],_dbf [4],_dbf [5]);case "\u0027":if len (_bge .Params )!=1{return _ge ;
};_gec ,_gde :=_b .GetStringBytes (_bge .Params [0]);if !_gde {return _bfe ;};_ef .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_gec ));_ada .ProcQ (_gec ,_geb );case "\u0022":if len (_bge .Params )!=3{return _ge ;
};_ecdc ,_ebad :=_b .GetNumberAsFloat (_bge .Params [0]);if _ebad !=nil {return _ebad ;};_feg ,_ebad :=_b .GetNumberAsFloat (_bge .Params [1]);if _ebad !=nil {return _ebad ;};_dbgc ,_agd :=_b .GetStringBytes (_bge .Params [2]);if !_agd {return _bfe ;};
_ada .ProcDQ (_dbgc ,_ecdc ,_feg ,_geb );case "\u0054\u006a":if len (_bge .Params )!=1{return _ge ;};_ddaa ,_ffg :=_b .GetStringBytes (_bge .Params [0]);if !_ffg {return _bfe ;};_ef .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_ddaa ));
_ada .ProcTj (_ddaa ,_geb );case "\u0054\u004a":if len (_bge .Params )!=1{return _ge ;};_gfed ,_eccc :=_b .GetArray (_bge .Params [0]);if !_eccc {_ef .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_gfed );return _bfe ;};_ef .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_gfed );
for _ ,_ggg :=range _gfed .Elements (){switch _faa :=_ggg .(type ){case *_b .PdfObjectString :if _faa !=nil {_ada .ProcTj (_faa .Bytes (),_geb );};case *_b .PdfObjectFloat ,*_b .PdfObjectInteger :_dcb ,_gcdf :=_b .GetNumberAsFloat (_faa );if _gcdf ==nil {_ada .Translate (-_dcb *0.001*_ada .Tf .Size *_ada .Th /100.0,0);
};};};case "\u0054\u0066":if len (_bge .Params )!=2{return _ge ;};_ef .Log .Debug ("\u0025\u0023\u0076",_bge .Params );_fdef ,_bfc :=_b .GetName (_bge .Params [0]);if !_bfc ||_fdef ==nil {_ef .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u006e\u0061m\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_bge .Params [0]);
return _bfe ;};_ef .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_fdef .String ());_cga ,_afag :=_b .GetNumberAsFloat (_bge .Params [1]);if _afag !=nil {_ef .Log .Debug ("\u0069\u006e\u0076\u0061l\u0069\u0064\u0020\u0066\u006f\u006e\u0074\u0020\u0073\u0069z\u0065 \u006f\u0062\u006a\u0065\u0063\u0074\u003a \u0025\u0076",_bge .Params [1]);
return _bfe ;};_ef .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_cga );_adbc ,_dded :=_bca .GetFontByName (*_fdef );if !_dded {_ef .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_fdef .String ());
return _a .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_ef .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_adbc );_edf ,_bfc :=_b .GetDict (_adbc );if !_bfc {_ef .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075l\u0064\u0020\u006e\u006f\u0074\u0020\u0067e\u0074\u0020\u0066\u006f\u006e\u0074\u0020\u0064\u0069\u0063\u0074");
return _bfe ;};_afac ,_afag :=_dcd .NewPdfFontFromPdfObject (_edf );if _afag !=nil {_ef .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066\u0072\u006fm\u0020\u006fb\u006a\u0065\u0063\u0074");
return _afag ;};_gcb :=_afac .BaseFont ();if _gcb ==""{_gcb =_fdef .String ();};_fbd ,_bfc :=_abd [_gcb ];if !_bfc {_fbd ,_afag =_dgbf .NewTextFont (_afac ,_cga );if _afag !=nil {_ef .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_afag );};
};if _fbd ==nil {if len (_gcb )> 7&&_gcb [6]=='+'{_gcb =_gcb [7:];};_ceb :=[]string {_gcb ,"\u0054i\u006de\u0073\u0020\u004e\u0065\u0077\u0020\u0052\u006f\u006d\u0061\u006e","\u0041\u0072\u0069a\u006c","D\u0065\u006a\u0061\u0056\u0075\u0020\u0053\u0061\u006e\u0073"};
for _ ,_geea :=range _ceb {_ef .Log .Debug ("\u0044\u0045\u0042\u0055\u0047\u003a \u0073\u0065\u0061\u0072\u0063\u0068\u0069\u006e\u0067\u0020\u0073\u0079\u0073t\u0065\u006d\u0020\u0066\u006f\u006e\u0074 \u0060\u0025\u0073\u0060",_geea );if _fbd ,_bfc =_abd [_geea ];
_bfc {break ;};_egfb :=_cdf .Match (_geea );if _egfb ==nil {_ef .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u0066\u0069\u006e\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_geea );continue ;};_fbd ,_afag =_dgbf .NewTextFontFromPath (_egfb .Filename ,_cga );
if _afag !=nil {_ef .Log .Debug ("c\u006f\u0075\u006c\u0064\u0020\u006eo\u0074\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006fn\u0074\u0020\u0066i\u006ce\u0020\u0025\u0073",_egfb .Filename );continue ;};_ef .Log .Debug ("\u0053\u0075\u0062\u0073\u0074\u0069t\u0075\u0074\u0069\u006e\u0067\u0020\u0066\u006f\u006e\u0074\u0020\u0025\u0073 \u0077\u0069\u0074\u0068\u0020\u0025\u0073 \u0028\u0025\u0073\u0029",_gcb ,_egfb .Name ,_egfb .Filename );
_abd [_geea ]=_fbd ;break ;};};if _fbd ==nil {_ef .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0063\u006f\u0075\u006c\u0064\u0020n\u006f\u0074\u0020\u0066\u0069\u006ed\u0020\u0061\u006e\u0079\u0020\u0073\u0075\u0069\u0074\u0061\u0062\u006c\u0065 \u0066\u006f\u006e\u0074");
return _a .New ("\u0063\u006f\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0066\u0069\u006e\u0064\u0020a\u006ey\u0020\u0073\u0075\u0069\u0074\u0061\u0062\u006c\u0065\u0020\u0066\u006f\u006e\u0074");};_ada .ProcTf (_fbd .WithSize (_cga ,_afac ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_ef .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u0075\u006e\u0073u\u0070\u0070\u006f\u0072\u0074\u0065\u0064 \u006f\u0070\u0065\u0072\u0061\u006e\u0064\u003a\u0020\u0025\u0073",_bge .Operand );
};_cgd =_bge ;return nil ;});_dce =_ecb .Process (_bg );if _dce !=nil {return _dce ;};return nil ;};func _ddd (_cdcb _dgbf .Gradient ,_abb *_dcd .PdfFunctionType3 ,_eac _dcd .PdfColorspace ,_afgd []float64 )(_dgbf .Gradient ,error ){var _geca error ;for _ggge :=0;
_ggge < len (_abb .Functions );_ggge ++{if _ebaa ,_dcee :=_abb .Functions [_ggge ].(*_dcd .PdfFunctionType2 );_dcee {_cdcb ,_geca =_gdg (_cdcb ,_ebaa ,_eac ,_afgd [_ggge +1],_ggge ==0);if _geca !=nil {return nil ,_geca ;};};};return _cdcb ,nil ;};
// RenderToPath converts the specified PDF page into an image and saves the
// result at the specified location.
func (_ace *ImageDevice )RenderToPath (page *_dcd .PdfPage ,outputPath string )error {_eab ,_fcf :=_ace .Render (page );if _fcf !=nil {return _fcf ;};_fg :=_f .ToLower (_g .Ext (outputPath ));if _fg ==""{return _a .New ("\u0063\u006ful\u0064\u0020\u006eo\u0074\u0020\u0072\u0065cog\u006eiz\u0065\u0020\u006f\u0075\u0074\u0070\u0075t \u0066\u0069\u006c\u0065\u0020\u0074\u0079p\u0065");
};switch _fg {case "\u002e\u0070\u006e\u0067":return _aed (outputPath ,_eab );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _cagb (outputPath ,_eab ,100);};return _e .Errorf ("\u0075\u006e\u0072\u0065\u0063\u006fg\u006e\u0069\u007a\u0065\u0064\u0020\u006f\u0075\u0074\u0070\u0075\u0074\u0020f\u0069\u006c\u0065\u0020\u0074\u0079\u0070e\u003a\u0020\u0025\u0073",_fg );
};func _aed (_dbag string ,_ecebg _cd .Image )error {_eaf ,_cdb :=_c .Create (_dbag );if _cdb !=nil {return _cdb ;};defer _eaf .Close ();return _ff .Encode (_eaf ,_ecebg );};func _dade (_efed _b .PdfObject ,_cbaf _ab .Color )(_cd .Image ,error ){_dadc ,_bceb :=_b .GetStream (_efed );
if !_bceb {return nil ,nil ;};_ceda ,_fcfc :=_dcd .NewXObjectImageFromStream (_dadc );if _fcfc !=nil {return nil ,_fcfc ;};_cbde ,_fcfc :=_ceda .ToImage ();if _fcfc !=nil {return nil ,_fcfc ;};return _badd (_cbde ,_cbaf ),nil ;};
// NewImageDevice returns a new image device.
func NewImageDevice ()*ImageDevice {const _fe ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_aa .TrackUse (_fe );return &ImageDevice {};};func (_dad renderer )processGradient (_gcde _dgbf .Context ,_dba *_dgb .ContentStreamOperation ,_fba *_dcd .PdfPageResources ,_ggb *_b .PdfObjectName )(_dgbf .Gradient ,error ){if _daff ,_bdgg :=_fba .GetPatternByName (*_ggb );
_bdgg &&_daff .IsShading (){_bfcc :=_daff .GetAsShadingPattern ().Shading ;_bda ,_ ,_ddbd :=_dad .processShading (_gcde ,_bfcc );if _ddbd !=nil {return nil ,_ddbd ;};return _bda ,nil ;};return nil ,nil ;};func (_bae renderer )processRadialShading (_aadf _dgbf .Context ,_afg *_dcd .PdfShading )(_dgbf .Gradient ,*_b .PdfObjectArray ,error ){_dafc :=_afg .GetContext ().(*_dcd .PdfShadingType3 );
if len (_dafc .Function )==0{return nil ,nil ,_a .New ("\u006e\u006f\u0020\u0067\u0072\u0061\u0064i\u0065\u006e\u0074 \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006e\u0064\u002c\u0020\u0073\u006b\u0069\u0070\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
};_cfc ,_ffge :=_dafc .Coords .ToFloat64Array ();if _ffge !=nil {return nil ,nil ,_a .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020\u0073h\u0061\u0064\u0069\u006e\u0067\u0020\u0070\u006f\u0073\u0069\u0074\u0069\u006f\u006e");
};_efg :=_afg .ColorSpace ;_cbd :=_b .MakeArrayFromFloats ([]float64 {0,0,1,1});var _dbd ,_beae ,_effba ,_ebg ,_cgdf ,_dabc float64 ;_dbd ,_beae =_aadf .Matrix ().Transform (_cfc [0],_cfc [1]);_effba ,_ebg =_aadf .Matrix ().Transform (_cfc [3],_cfc [4]);
_cgdf ,_ =_aadf .Matrix ().Transform (_cfc [2],0);_dabc ,_ =_aadf .Matrix ().Transform (_cfc [5],0);_gba ,_ :=_aadf .Matrix ().Translation ();_cgdf -=_gba ;_dabc -=_gba ;for _bbac ,_eadf :=range _cfc {if _bbac ==2||_bbac ==5{continue ;};if _eadf > 1.0{_ddae :=_cb .Min (_dbd -_cgdf ,_effba -_dabc );
_fad :=_cb .Min (_beae -_cgdf ,_ebg -_dabc );_agc :=_cb .Max (_dbd +_cgdf ,_effba +_dabc );_dfg :=_cb .Max (_beae +_cgdf ,_ebg +_dabc );_gda :=_agc -_ddae ;_edde :=_fad -_dfg ;_cbd =_b .MakeArrayFromFloats ([]float64 {_ddae ,_fad ,_gda ,_edde });break ;
};};_dbgcg :=_eg .NewRadialGradient (_dbd ,_beae ,_cgdf ,_effba ,_ebg ,_dabc );if _cgg ,_bce :=_dafc .Function [0].(*_dcd .PdfFunctionType2 );_bce {_dbgcg ,_ffge =_gdg (_dbgcg ,_cgg ,_efg ,1.0,true );}else if _cfcb ,_gead :=_dafc .Function [0].(*_dcd .PdfFunctionType3 );
_gead {_afc :=append ([]float64 {0},_cfcb .Bounds ...);_afc =append (_afc ,1.0);_dbgcg ,_ffge =_ddd (_dbgcg ,_cfcb ,_efg ,_afc );};if _ffge !=nil {return nil ,nil ,_ffge ;};return _dbgcg ,_cbd ,nil ;};func _gdg (_abeb _dgbf .Gradient ,_cfcf *_dcd .PdfFunctionType2 ,_cdgb _dcd .PdfColorspace ,_cag float64 ,_cafg bool )(_dgbf .Gradient ,error ){switch _cdgb .(type ){case *_dcd .PdfColorspaceDeviceRGB :if len (_cfcf .C0 )!=3||len (_cfcf .C1 )!=3{return nil ,_a .New ("\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u0020\u0052\u0047\u0042\u0020\u0063o\u006co\u0072\u0020\u0061\u0072\u0072\u0061\u0079\u0020\u006c\u0065\u006e\u0067\u0074\u0068");
};_bffe :=_cfcf .C0 ;_gff :=_cfcf .C1 ;if _cafg {_abeb .AddColorStop (0.0,_ab .RGBA {R :uint8 (_bffe [0]*255),G :uint8 (_bffe [1]*255),B :uint8 (_bffe [2]*255),A :255});};_abeb .AddColorStop (_cag ,_ab .RGBA {R :uint8 (_gff [0]*255),G :uint8 (_gff [1]*255),B :uint8 (_gff [2]*255),A :255});
case *_dcd .PdfColorspaceDeviceCMYK :if len (_cfcf .C0 )!=4||len (_cfcf .C1 )!=4{return nil ,_a .New ("\u0069\u006e\u0063\u006f\u0072\u0072e\u0063\u0074\u0020\u0043\u004d\u0059\u004b\u0020\u0063\u006f\u006c\u006f\u0072 \u0061\u0072\u0072\u0061\u0079\u0020\u006ce\u006e\u0067\u0074\u0068");
};_eag :=_cfcf .C0 ;_faeee :=_cfcf .C1 ;if _cafg {_abeb .AddColorStop (0.0,_ab .CMYK {C :uint8 (_eag [0]*255),M :uint8 (_eag [1]*255),Y :uint8 (_eag [2]*255),K :uint8 (_eag [3]*255)});};_abeb .AddColorStop (_cag ,_ab .CMYK {C :uint8 (_faeee [0]*255),M :uint8 (_faeee [1]*255),Y :uint8 (_faeee [2]*255),K :uint8 (_faeee [3]*255)});
default:return nil ,_e .Errorf ("u\u006e\u0073\u0075\u0070\u0070\u006fr\u0074\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072 \u0073\u0070\u0061c\u0065:\u0020\u0025\u0073",_cdgb .String ());};return _abeb ,nil ;};func _cbf (_gaec ,_aece ,_bcebc float64 )_gc .BoundingBox {return _gc .Path {Points :[]_gc .Point {_gc .NewPoint (0,0).Rotate (_bcebc ),_gc .NewPoint (_gaec ,0).Rotate (_bcebc ),_gc .NewPoint (0,_aece ).Rotate (_bcebc ),_gc .NewPoint (_gaec ,_aece ).Rotate (_bcebc )}}.GetBoundingBox ();
};type renderer struct{_bb float64 };func _badd (_aec *_dcd .Image ,_cdd _ab .Color )_cd .Image {_eabe ,_bfbc :=int (_aec .Width ),int (_aec .Height );_dfc :=_cd .NewRGBA (_cd .Rect (0,0,_eabe ,_bfbc ));for _dgae :=0;_dgae < _bfbc ;_dgae ++{for _cdbf :=0;
_cdbf < _eabe ;_cdbf ++{_baaf ,_cca :=_aec .ColorAt (_cdbf ,_dgae );if _cca !=nil {_ef .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0074\u0072\u0069\u0065v\u0065 \u0069\u006d\u0061\u0067\u0065\u0020m\u0061\u0073\u006b\u0020\u0076\u0061\u006cu\u0065\u0020\u0061\u0074\u0020\u0028\u0025\u0064\u002c\u0020\u0025\u0064\u0029\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006da\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063t\u002e",_cdbf ,_dgae );
continue ;};_cagbg ,_bdac ,_eadg ,_ :=_baaf .RGBA ();var _bgcb _ab .Color ;if _cagbg +_bdac +_eadg ==0{_bgcb =_ab .Transparent ;}else {_bgcb =_cdd ;};_dfc .Set (_cdbf ,_dgae ,_bgcb );};};return _dfc ;};func _dbgd (_ffd ,_fdee _cd .Image )_cd .Image {_gcdc ,_fcg :=_fdee .Bounds ().Size (),_ffd .Bounds ().Size ();
_dafgb ,_agfa :=_gcdc .X ,_gcdc .Y ;if _fcg .X > _dafgb {_dafgb =_fcg .X ;};if _fcg .Y > _agfa {_agfa =_fcg .Y ;};_ecce :=_cd .Rect (0,0,_dafgb ,_agfa );if _gcdc .X !=_dafgb ||_gcdc .Y !=_agfa {_acc :=_cd .NewRGBA (_ecce );_dc .BiLinear .Scale (_acc ,_ecce ,_ffd ,_fdee .Bounds (),_dc .Over ,nil );
_fdee =_acc ;};if _fcg .X !=_dafgb ||_fcg .Y !=_agfa {_afecg :=_cd .NewRGBA (_ecce );_dc .BiLinear .Scale (_afecg ,_ecce ,_ffd ,_ffd .Bounds (),_dc .Over ,nil );_ffd =_afecg ;};_fgd :=_cd .NewRGBA (_ecce );_dc .DrawMask (_fgd ,_ecce ,_ffd ,_cd .Point {},_fdee ,_cd .Point {},_dc .Over );
return _fgd ;};func (_cbca renderer )processShading (_egc _dgbf .Context ,_fgfg *_dcd .PdfShading )(_dgbf .Gradient ,*_b .PdfObjectArray ,error ){_cfe :=int64 (*_fgfg .ShadingType );if _cfe ==int64 (ShadingTypeAxial ){return _cbca .processLinearShading (_egc ,_fgfg );
}else if _cfe ==int64 (ShadingTypeRadial ){return _cbca .processRadialShading (_egc ,_fgfg );}else {_ef .Log .Debug (_e .Sprintf ("\u0050r\u006f\u0063e\u0073\u0073\u0069n\u0067\u0020\u0067\u0072\u0061\u0064\u0069e\u006e\u0074\u0020\u0074\u0079\u0070e\u0020\u0025\u0064\u0020\u006e\u006f\u0074\u0020\u0079\u0065\u0074 \u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064",_cfe ));
};return nil ,nil ,nil ;};func (_ccf renderer )processLinearShading (_gbd _dgbf .Context ,_gdf *_dcd .PdfShading )(_dgbf .Gradient ,*_b .PdfObjectArray ,error ){_bcae :=_gdf .GetContext ().(*_dcd .PdfShadingType2 );if len (_bcae .Function )==0{return nil ,nil ,_a .New ("\u006e\u006f\u0020\u0067\u0072\u0061\u0064i\u0065\u006e\u0074 \u0066\u0075\u006e\u0063t\u0069\u006f\u006e\u0020\u0066\u006f\u0075\u006e\u0064\u002c\u0020\u0073\u006b\u0069\u0070\u0020\u0063\u006f\u006e\u0076\u0065\u0072\u0073\u0069\u006f\u006e");
};_eeb ,_cff :=_bcae .Coords .ToFloat64Array ();if _cff !=nil {return nil ,nil ,_a .New ("\u0066\u0061\u0069l\u0065\u0064\u0020\u0067e\u0074\u0074\u0069\u006e\u0067\u0020\u0073h\u0061\u0064\u0069\u006e\u0067\u0020\u0070\u006f\u0073\u0069\u0074\u0069\u006f\u006e");
};_bbg :=_gdf .ColorSpace ;_eddc ,_ddg :=_gbd .Matrix ().Transform (_eeb [0],_eeb [1]);_ecee ,_ebb :=_gbd .Matrix ().Transform (_eeb [2],_eeb [3]);_age :=_eg .NewLinearGradient (_eddc ,_ddg ,_ecee ,_ebb );_fbdg :=_b .MakeArrayFromFloats ([]float64 {0,0,1,1});
for _ ,_cgbf :=range _eeb {if _cgbf > 1{_fbdg =_bcae .Coords ;break ;};};if _acf ,_faed :=_bcae .Function [0].(*_dcd .PdfFunctionType2 );_faed {_age ,_cff =_gdg (_age ,_acf ,_bbg ,1.0,true );}else if _edg ,_gccc :=_bcae .Function [0].(*_dcd .PdfFunctionType3 );
_gccc {_bfed :=append ([]float64 {0},_edg .Bounds ...);_bfed =append (_bfed ,1.0);_age ,_cff =_ddd (_age ,_edg ,_bbg ,_bfed );};return _age ,_fbdg ,_cff ;};var (_bfe =_a .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
_ge =_a .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func _eea (_dca _b .PdfObject ,_dccc _ab .Color )(_cd .Image ,error ){_ffe ,_agf :=_b .GetStream (_dca );if !_agf {return nil ,nil ;};_agfc ,_adf :=_dcd .NewXObjectImageFromStream (_ffe );
if _adf !=nil {return nil ,_adf ;};_aegb ,_adf :=_agfc .ToImage ();if _adf !=nil {return nil ,_adf ;};return _cagd (_aegb ,_dccc ),nil ;};func _cagb (_fdeb string ,_fcea _cd .Image ,_cea int )error {_fdcg ,_gecf :=_c .Create (_fdeb );if _gecf !=nil {return _gecf ;
};defer _fdcg .Close ();return _dg .Encode (_fdcg ,_fcea ,&_dg .Options {Quality :_cea });};func _cagd (_bbbb *_dcd .Image ,_aca _ab .Color )_cd .Image {_geadd ,_bfa :=int (_bbbb .Width ),int (_bbbb .Height );_fea :=_cd .NewRGBA (_cd .Rect (0,0,_geadd ,_bfa ));
for _agaa :=0;_agaa < _bfa ;_agaa ++{for _gbb :=0;_gbb < _geadd ;_gbb ++{_feef ,_bec :=_bbbb .ColorAt (_gbb ,_agaa );if _bec !=nil {_ef .Log .Debug ("\u0057\u0041\u0052\u004e\u003a\u0020\u0063o\u0075\u006c\u0064\u0020\u006e\u006f\u0074\u0020\u0072\u0065\u0074\u0072\u0069\u0065v\u0065 \u0069\u006d\u0061\u0067\u0065\u0020m\u0061\u0073\u006b\u0020\u0076\u0061\u006cu\u0065\u0020\u0061\u0074\u0020\u0028\u0025\u0064\u002c\u0020\u0025\u0064\u0029\u002e\u0020\u004f\u0075\u0074\u0070\u0075\u0074\u0020\u006da\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063t\u002e",_gbb ,_agaa );
continue ;};_geg ,_aeea ,_adcf ,_ :=_feef .RGBA ();var _dfd _ab .Color ;if _geg +_aeea +_adcf ==0{_dfd =_aca ;}else {_dfd =_ab .Transparent ;};_fea .Set (_gbb ,_agaa ,_dfd );};};return _fea ;};