unipdf/render/render.go
2024-03-27 22:34:33 +00:00

204 lines
54 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 (_g "errors";_ce "fmt";_ga "github.com/adrg/sysfont";_ba "github.com/unidoc/unipdf/v3/annotator";_e "github.com/unidoc/unipdf/v3/common";_fb "github.com/unidoc/unipdf/v3/contentstream";_ag "github.com/unidoc/unipdf/v3/contentstream/draw";
_bd "github.com/unidoc/unipdf/v3/core";_gbg "github.com/unidoc/unipdf/v3/internal/license";_cf "github.com/unidoc/unipdf/v3/internal/transform";_bdb "github.com/unidoc/unipdf/v3/model";_afa "github.com/unidoc/unipdf/v3/render/internal/context";_dg "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
_dc "golang.org/x/image/draw";_d "image";_fc "image/color";_b "image/draw";_gg "image/jpeg";_af "image/png";_a "math";_gd "os";_gb "path/filepath";_f "strings";);
// RenderWithOpts converts the specified PDF page into an image, optionally flattens annotations and returns the result.
func (_ae *ImageDevice )RenderWithOpts (page *_bdb .PdfPage ,skipFlattening bool )(_d .Image ,error ){_agg ,_gae :=page .GetMediaBox ();if _gae !=nil {return nil ,_gae ;};_agg .Normalize ();_aa :=page .CropBox ;var _dgc ,_gdb float64 ;if _aa !=nil {_aa .Normalize ();
_dgc ,_gdb =_aa .Width (),_aa .Height ();};_ceb :=page .Rotate ;_dfd ,_dd ,_ad ,_gaf :=_agg .Llx ,_agg .Lly ,_agg .Width (),_agg .Height ();_bf :=_cf .IdentityMatrix ();if _ceb !=nil &&*_ceb %360!=0&&*_ceb %90==0{_eb :=-float64 (*_ceb );_aff :=_cege (_ad ,_gaf ,_eb );
_bf =_bf .Translate ((_aff .Width -_ad )/2+_ad /2,(_aff .Height -_gaf )/2+_gaf /2).Rotate (_eb *_a .Pi /180).Translate (-_ad /2,-_gaf /2);_ad ,_gaf =_aff .Width ,_aff .Height ;if _aa !=nil {_bb :=_cege (_dgc ,_gdb ,_eb );_dgc ,_gdb =_bb .Width ,_bb .Height ;
};};if _dfd !=0||_dd !=0{_bf =_bf .Translate (-_dfd ,-_dd );};_ae ._bdd =1.0;if _ae .OutputWidth !=0{_ff :=_ad ;if _aa !=nil {_ff =_dgc ;};_ae ._bdd =float64 (_ae .OutputWidth )/_ff ;_ad ,_gaf ,_dgc ,_gdb =_ad *_ae ._bdd ,_gaf *_ae ._bdd ,_dgc *_ae ._bdd ,_gdb *_ae ._bdd ;
_bf =_cf .ScaleMatrix (_ae ._bdd ,_ae ._bdd ).Mult (_bf );};_da :=_dg .NewContext (int (_ad ),int (_gaf ));if _bg :=_ae .renderPage (_da ,page ,_bf ,skipFlattening );_bg !=nil {return nil ,_bg ;};_bgc :=_da .Image ();if _aa !=nil {_ea ,_cfe :=(_aa .Llx -_dfd )*_ae ._bdd ,(_aa .Lly -_dd )*_ae ._bdd ;
_fe :=_d .Rect (0,0,int (_dgc ),int (_gdb ));_fce :=_d .Pt (int (_ea ),int (_gaf -_cfe -_gdb ));_ac :=_d .NewRGBA (_fe );_b .Draw (_ac ,_fe ,_bgc ,_fce ,_b .Src );_bgc =_ac ;};return _bgc ,nil ;};func _fdg (_acg *_bdb .Image ,_aegg _fc .Color )_d .Image {_bdg ,_egeg :=int (_acg .Width ),int (_acg .Height );
_egg :=_d .NewRGBA (_d .Rect (0,0,_bdg ,_egeg ));for _gcdf :=0;_gcdf < _egeg ;_gcdf ++{for _cacg :=0;_cacg < _bdg ;_cacg ++{_aacc ,_cfcc :=_acg .ColorAt (_cacg ,_gcdf );if _cfcc !=nil {_e .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",_cacg ,_gcdf );
continue ;};_degd ,_gfad ,_fbf ,_ :=_aacc .RGBA ();var _gggcb _fc .Color ;if _degd +_gfad +_fbf ==0{_gggcb =_aegg ;}else {_gggcb =_fc .Transparent ;};_egg .Set (_cacg ,_gcdf ,_gggcb );};};return _egg ;};type renderer struct{_bdd float64 };func _aefb (_gbgb _afa .Gradient ,_adg *_bdb .PdfFunctionType3 ,_fada _bdb .PdfColorspace ,_ceag []float64 )(_afa .Gradient ,error ){var _gcee error ;
for _fcd :=0;_fcd < len (_adg .Functions );_fcd ++{if _ffd ,_ageb :=_adg .Functions [_fcd ].(*_bdb .PdfFunctionType2 );_ageb {_gbgb ,_gcee =_dcd (_gbgb ,_ffd ,_fada ,_ceag [_fcd +1],_fcd ==0);if _gcee !=nil {return nil ,_gcee ;};};};return _gbgb ,nil ;
};func (_geb renderer )renderContentStream (_dda _afa .Context ,_aee string ,_fec *_bdb .PdfPageResources )error {_gag ,_dcb :=_fb .NewContentStreamParser (_aee ).Parse ();if _dcb !=nil {return _dcb ;};_ee :=_dda .TextState ();_ee .GlobalScale =_geb ._bdd ;
_gdd :=map[string ]*_afa .TextFont {};_bc :=_ga .NewFinder (&_ga .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});var _fa *_fb .ContentStreamOperation ;_de :=_fb .NewContentStreamProcessor (*_gag );_de .AddHandler (_fb .HandlerConditionEnumAllOperands ,"",func (_gef *_fb .ContentStreamOperation ,_gff _fb .GraphicsState ,_acf *_bdb .PdfPageResources )error {_e .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_gef .Operand );
switch _gef .Operand {case "\u0071":_dda .Push ();case "\u0051":_dda .Pop ();_ee =_dda .TextState ();case "\u0063\u006d":if len (_gef .Params )!=6{return _ab ;};_gefd ,_ddea :=_bd .GetNumbersAsFloat (_gef .Params );if _ddea !=nil {return _ddea ;};_ca :=_cf .NewMatrix (_gefd [0],_gefd [1],_gefd [2],_gefd [3],_gefd [4],_gefd [5]);
_e .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",_ca );_dda .SetMatrix (_dda .Matrix ().Mult (_ca ));case "\u0077":if len (_gef .Params )!=1{return _ab ;
};_ggb ,_aeb :=_bd .GetNumbersAsFloat (_gef .Params );if _aeb !=nil {return _aeb ;};_dda .SetLineWidth (_ggb [0]);case "\u004a":if len (_gef .Params )!=1{return _ab ;};_fcf ,_gdbf :=_bd .GetIntVal (_gef .Params [0]);if !_gdbf {return _afag ;};switch _fcf {case 0:_dda .SetLineCap (_afa .LineCapButt );
case 1:_dda .SetLineCap (_afa .LineCapRound );case 2:_dda .SetLineCap (_afa .LineCapSquare );default:_e .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",_fcf );
return _ab ;};case "\u006a":if len (_gef .Params )!=1{return _ab ;};_aag ,_bdf :=_bd .GetIntVal (_gef .Params [0]);if !_bdf {return _afag ;};switch _aag {case 0:_dda .SetLineJoin (_afa .LineJoinBevel );case 1:_dda .SetLineJoin (_afa .LineJoinRound );case 2:_dda .SetLineJoin (_afa .LineJoinBevel );
default:_e .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",_aag );return _ab ;};case "\u004d":if len (_gef .Params )!=1{return _ab ;};_db ,_egd :=_bd .GetNumbersAsFloat (_gef .Params );
if _egd !=nil {return _egd ;};_ =_db ;_e .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 (_gef .Params )!=2{return _ab ;};_gfa ,_gec :=_bd .GetArray (_gef .Params [0]);
if !_gec {return _afag ;};_fab ,_gec :=_bd .GetIntVal (_gef .Params [1]);if !_gec {_ ,_ef :=_bd .GetFloatVal (_gef .Params [1]);if !_ef {return _afag ;};};_cg ,_cb :=_bd .GetNumbersAsFloat (_gfa .Elements ());if _cb !=nil {return _cb ;};_dda .SetDash (_cg ...);
_ =_fab ;_e .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":_e .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":_e .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 (_gef .Params )!=1{return _ab ;
};_gcc ,_eac :=_bd .GetName (_gef .Params [0]);if !_eac {return _afag ;};if _gcc ==nil {return _ab ;};_efe ,_eac :=_acf .GetExtGState (*_gcc );if !_eac {_e .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",*_gcc );
return _g .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_aga ,_eac :=_bd .GetDict (_efe );if !_eac {_e .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 _afag ;};_e .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_aga .String ());case "\u006d":if len (_gef .Params )!=2{_e .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",_ab );
return nil ;};_cga ,_cgg :=_bd .GetNumbersAsFloat (_gef .Params );if _cgg !=nil {return _cgg ;};_e .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_cga );_dda .NewSubPath ();_dda .MoveTo (_cga [0],_cga [1]);case "\u006c":if len (_gef .Params )!=2{_e .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",_ab );
return nil ;};_feb ,_dab :=_bd .GetNumbersAsFloat (_gef .Params );if _dab !=nil {return _dab ;};_dda .LineTo (_feb [0],_feb [1]);case "\u0063":if len (_gef .Params )!=6{return _ab ;};_bfc ,_cac :=_bd .GetNumbersAsFloat (_gef .Params );if _cac !=nil {return _cac ;
};_e .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_bfc );_dda .CubicTo (_bfc [0],_bfc [1],_bfc [2],_bfc [3],_bfc [4],_bfc [5]);case "\u0076","\u0079":if len (_gef .Params )!=4{return _ab ;
};_gefe ,_fgb :=_bd .GetNumbersAsFloat (_gef .Params );if _fgb !=nil {return _fgb ;};_e .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_gefe );_dda .QuadraticTo (_gefe [0],_gefe [1],_gefe [2],_gefe [3]);
case "\u0068":_dda .ClosePath ();_dda .NewSubPath ();case "\u0072\u0065":if len (_gef .Params )!=4{return _ab ;};_efd ,_bcc :=_bd .GetNumbersAsFloat (_gef .Params );if _bcc !=nil {return _bcc ;};_dda .DrawRectangle (_efd [0],_efd [1],_efd [2],_efd [3]);
_dda .NewSubPath ();case "\u0053":_dfe ,_deg :=_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );if _deg !=nil {_e .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",_deg );
return _deg ;};_fgc ,_eae :=_dfe .(*_bdb .PdfColorDeviceRGB );if !_eae {_e .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _deg ;};_dda .SetRGBA (_fgc .R (),_fgc .G (),_fgc .B (),1);
_dda .Stroke ();case "\u0073":_bga ,_cebd :=_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );if _cebd !=nil {_e .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",_cebd );
return _cebd ;};_bde ,_efb :=_bga .(*_bdb .PdfColorDeviceRGB );if !_efb {_e .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _cebd ;};_dda .ClosePath ();_dda .NewSubPath ();
_dda .SetRGBA (_bde .R (),_bde .G (),_bde .B (),1);_dda .Stroke ();case "\u0066","\u0046":_cde ,_ege :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );if _ege !=nil {_e .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",_ege );
return _ege ;};switch _bbb :=_cde .(type ){case *_bdb .PdfColorDeviceRGB :_dda .SetRGBA (_bbb .R (),_bbb .G (),_bbb .B (),1);_dda .SetFillRule (_afa .FillRuleWinding );_dda .Fill ();case *_bdb .PdfColorPattern :_dda .Fill ();};_e .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
case "\u0066\u002a":_egde ,_dfc :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );if _dfc !=nil {_e .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",_dfc );
return _dfc ;};_cfd ,_ccg :=_egde .(*_bdb .PdfColorDeviceRGB );if !_ccg {_e .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _dfc ;};_dda .SetRGBA (_cfd .R (),_cfd .G (),_cfd .B (),1);
_dda .SetFillRule (_afa .FillRuleEvenOdd );_dda .Fill ();case "\u0042":_ccf ,_ebb :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );if _ebb !=nil {_e .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",_ebb );
return _ebb ;};switch _edg :=_ccf .(type ){case *_bdb .PdfColorDeviceRGB :_dda .SetRGBA (_edg .R (),_edg .G (),_edg .B (),1);_dda .SetFillRule (_afa .FillRuleWinding );_dda .FillPreserve ();_ccf ,_ebb =_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );
if _ebb !=nil {_e .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",_ebb );return _ebb ;};if _afc ,_dbd :=_ccf .(*_bdb .PdfColorDeviceRGB );
_dbd {_dda .SetRGBA (_afc .R (),_afc .G (),_afc .B (),1);_dda .Stroke ();};case *_bdb .PdfColorPattern :_dda .SetFillRule (_afa .FillRuleWinding );_dda .Fill ();_dda .StrokePattern ();};case "\u0042\u002a":_badb ,_gcf :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );
if _gcf !=nil {_e .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",_gcf );return _gcf ;};switch _edb :=_badb .(type ){case *_bdb .PdfColorDeviceRGB :_dda .SetRGBA (_edb .R (),_edb .G (),_edb .B (),1);
_dda .SetFillRule (_afa .FillRuleEvenOdd );_dda .FillPreserve ();_badb ,_gcf =_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );if _gcf !=nil {_e .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",_gcf );
return _gcf ;};if _eee ,_gda :=_badb .(*_bdb .PdfColorDeviceRGB );_gda {_dda .SetRGBA (_eee .R (),_eee .G (),_eee .B (),1);_dda .Stroke ();};case *_bdb .PdfColorPattern :_dda .SetFillRule (_afa .FillRuleEvenOdd );_dda .Fill ();_dda .StrokePattern ();};
case "\u0062":_dda .ClosePath ();_cdf ,_dea :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );if _dea !=nil {_e .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",_dea );
return _dea ;};switch _gfe :=_cdf .(type ){case *_bdb .PdfColorDeviceRGB :_dda .SetRGBA (_gfe .R (),_gfe .G (),_gfe .B (),1);_dda .NewSubPath ();_dda .SetFillRule (_afa .FillRuleWinding );_dda .FillPreserve ();_cdf ,_dea =_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );
if _dea !=nil {_e .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",_dea );return _dea ;};if _abg ,_gbgd :=_cdf .(*_bdb .PdfColorDeviceRGB );
_gbgd {_dda .SetRGBA (_abg .R (),_abg .G (),_abg .B (),1);_dda .Stroke ();};case *_bdb .PdfColorPattern :_dda .NewSubPath ();_dda .SetFillRule (_afa .FillRuleWinding );_dda .Fill ();_dda .StrokePattern ();};case "\u0062\u002a":_dda .ClosePath ();_abe ,_gfc :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );
if _gfc !=nil {_e .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",_gfc );return _gfc ;};switch _gffa :=_abe .(type ){case *_bdb .PdfColorDeviceRGB :_dda .SetRGBA (_gffa .R (),_gffa .G (),_gffa .B (),1);
_dda .NewSubPath ();_dda .SetFillRule (_afa .FillRuleEvenOdd );_dda .FillPreserve ();_abe ,_gfc =_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );if _gfc !=nil {_e .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",_gfc );
return _gfc ;};if _acc ,_bgd :=_abe .(*_bdb .PdfColorDeviceRGB );_bgd {_dda .SetRGBA (_acc .R (),_acc .G (),_acc .B (),1);_dda .Stroke ();};case *_bdb .PdfColorPattern :_dda .NewSubPath ();_dda .SetFillRule (_afa .FillRuleEvenOdd );_dda .Fill ();_dda .StrokePattern ();
};case "\u006e":_dda .ClearPath ();case "\u0057":_dda .SetFillRule (_afa .FillRuleWinding );_dda .ClipPreserve ();case "\u0057\u002a":_dda .SetFillRule (_afa .FillRuleEvenOdd );_dda .ClipPreserve ();case "\u0072\u0067":_gca ,_cbc :=_gff .ColorNonStroking .(*_bdb .PdfColorDeviceRGB );
if !_cbc {_e .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",_gff .ColorNonStroking );return nil ;};_dda .SetFillRGBA (_gca .R (),_gca .G (),_gca .B (),1);
case "\u0052\u0047":_bdbe ,_bccg :=_gff .ColorStroking .(*_bdb .PdfColorDeviceRGB );if !_bccg {_e .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",_gff .ColorStroking );
return nil ;};_dda .SetStrokeRGBA (_bdbe .R (),_bdbe .G (),_bdbe .B (),1);case "\u006b":_aebc ,_ede :=_gff .ColorNonStroking .(*_bdb .PdfColorDeviceCMYK );if !_ede {_e .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",_gff .ColorNonStroking );
return nil ;};_fda ,_bfcd :=_gff .ColorspaceNonStroking .ColorToRGB (_aebc );if _bfcd !=nil {_e .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",_gff .ColorNonStroking );
return nil ;};_ccb ,_ede :=_fda .(*_bdb .PdfColorDeviceRGB );if !_ede {_e .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",_fda );return nil ;
};_dda .SetFillRGBA (_ccb .R (),_ccb .G (),_ccb .B (),1);case "\u004b":_cca ,_adb :=_gff .ColorStroking .(*_bdb .PdfColorDeviceCMYK );if !_adb {_e .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",_gff .ColorStroking );
return nil ;};_eda ,_ec :=_gff .ColorspaceStroking .ColorToRGB (_cca );if _ec !=nil {_e .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",_gff .ColorStroking );
return nil ;};_be ,_adb :=_eda .(*_bdb .PdfColorDeviceRGB );if !_adb {_e .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",_eda );return nil ;
};_dda .SetStrokeRGBA (_be .R (),_be .G (),_be .B (),1);case "\u0067":_egc ,_fgg :=_gff .ColorNonStroking .(*_bdb .PdfColorDeviceGray );if !_fgg {_e .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",_gff .ColorNonStroking );
return nil ;};_ece ,_bee :=_gff .ColorspaceNonStroking .ColorToRGB (_egc );if _bee !=nil {_e .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",_gff .ColorNonStroking );
return nil ;};_bef ,_fgg :=_ece .(*_bdb .PdfColorDeviceRGB );if !_fgg {_e .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 nil ;
};_dda .SetFillRGBA (_bef .R (),_bef .G (),_bef .B (),1);case "\u0047":_dgd ,_dbf :=_gff .ColorStroking .(*_bdb .PdfColorDeviceGray );if !_dbf {_e .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",_gff .ColorStroking );
return nil ;};_fdf ,_gab :=_gff .ColorspaceStroking .ColorToRGB (_dgd );if _gab !=nil {_e .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",_gff .ColorStroking );
return nil ;};_dff ,_dbf :=_fdf .(*_bdb .PdfColorDeviceRGB );if !_dbf {_e .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",_fdf );return nil ;
};_dda .SetStrokeRGBA (_dff .R (),_dff .G (),_dff .B (),1);case "\u0063\u0073":if len (_gef .Params )> 0{if _add ,_fdfb :=_bd .GetName (_gef .Params [0]);_fdfb &&_add .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_ebf ,_afbb :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );
if _afbb !=nil {_e .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",_gff .ColorNonStroking );return nil ;};_ada ,_cdd :=_ebf .(*_bdb .PdfColorDeviceRGB );
if !_cdd {_e .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",_ebf );return nil ;};_dda .SetFillRGBA (_ada .R (),_ada .G (),_ada .B (),1);case "\u0073\u0063":_acd ,_bgde :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );
if _bgde !=nil {_e .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",_gff .ColorNonStroking );return nil ;};_dabe ,_cgd :=_acd .(*_bdb .PdfColorDeviceRGB );
if !_cgd {_e .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",_acd );return nil ;};_dda .SetFillRGBA (_dabe .R (),_dabe .G (),_dabe .B (),1);
case "\u0073\u0063\u006e":if len (_gef .Params )> 0&&len (_fa .Params )> 0{if _age ,_dbg :=_bd .GetName (_fa .Params [0]);_dbg &&_age .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _ace ,_cbb :=_bd .GetName (_gef .Params [0]);_cbb {_fbg ,_aae :=_geb .processGradient (_dda ,_gef ,_acf ,_ace );
if _aae !=nil {_e .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",_aae );
break ;};if _fbg ==nil {_e .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_dda .SetFillStyle (_fbg );_dda .SetStrokeStyle (_fbg );break ;};};};_efa ,_eec :=_gff .ColorspaceNonStroking .ColorToRGB (_gff .ColorNonStroking );
if _eec !=nil {_e .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",_gff .ColorNonStroking );return nil ;};_cggd ,_faa :=_efa .(*_bdb .PdfColorDeviceRGB );
if !_faa {_e .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",_efa );return nil ;};_dda .SetFillRGBA (_cggd .R (),_cggd .G (),_cggd .B (),1);
case "\u0043\u0053":if len (_gef .Params )> 0{if _edbf ,_dca :=_bd .GetName (_gef .Params [0]);_dca &&_edbf .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_ddf ,_adde :=_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );if _adde !=nil {_e .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",_gff .ColorStroking );
return nil ;};_ddeag ,_cfb :=_ddf .(*_bdb .PdfColorDeviceRGB );if !_cfb {_e .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",_ddf );return nil ;
};_dda .SetStrokeRGBA (_ddeag .R (),_ddeag .G (),_ddeag .B (),1);case "\u0053\u0043":_gbd ,_abgg :=_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );if _abgg !=nil {_e .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",_gff .ColorStroking );
return nil ;};_cgf ,_gcg :=_gbd .(*_bdb .PdfColorDeviceRGB );if !_gcg {_e .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",_gbd );return nil ;
};_dda .SetStrokeRGBA (_cgf .R (),_cgf .G (),_cgf .B (),1);case "\u0053\u0043\u004e":if len (_gef .Params )> 0&&len (_fa .Params )> 0{if _gafg ,_cgde :=_bd .GetName (_fa .Params [0]);_cgde &&_gafg .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _bdc ,_gdg :=_bd .GetName (_gef .Params [0]);
_gdg {_ead ,_cee :=_geb .processGradient (_dda ,_gef ,_acf ,_bdc );if _cee !=nil {_e .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",_cee );
break ;};if _ead ==nil {_e .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_dda .SetFillStyle (_ead );_dda .SetStrokeStyle (_ead );break ;};};};_fdae ,_degf :=_gff .ColorspaceStroking .ColorToRGB (_gff .ColorStroking );
if _degf !=nil {_e .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",_gff .ColorStroking );return nil ;};_ecg ,_ecd :=_fdae .(*_bdb .PdfColorDeviceRGB );
if !_ecd {_e .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",_fdae );return nil ;};_dda .SetStrokeRGBA (_ecg .R (),_ecg .G (),_ecg .B (),1);
case "\u0073\u0068":if len (_gef .Params )!=1{_e .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 ;};_bgda ,_dcad :=_bd .GetName (_gef .Params [0]);
if !_dcad {_e .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 ;};_gece ,_dcad :=_acf .GetShadingByName (*_bgda );if !_dcad {_e .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 ;};_gce ,_gecc ,_fff :=_geb .processShading (_dda ,_gece );if _fff !=nil {_e .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",_fff );
break ;};if _gce ==nil {_e .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_fed ,_fff :=_gecc .ToFloat64Array ();if _fff !=nil {_e .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",_fff );
break ;};_dda .DrawRectangle (_fed [0],_fed [1],_fed [2],_fed [3]);_dda .NewSubPath ();_dda .SetFillStyle (_gce );_dda .SetStrokeStyle (_gce );_dda .Fill ();case "\u0044\u006f":if len (_gef .Params )!=1{return _ab ;};_ccfd ,_cec :=_bd .GetName (_gef .Params [0]);
if !_cec {return _afag ;};_ ,_cag :=_acf .GetXObjectByName (*_ccfd );switch _cag {case _bdb .XObjectTypeImage :_e .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_ccfd .String ());_dgdc ,_aeg :=_acf .GetXObjectImageByName (*_ccfd );
if _aeg !=nil {return _aeg ;};_feba ,_aeg :=_dgdc .ToImage ();if _aeg !=nil {_e .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",_aeg );
return nil ;};if _cfg :=_dgdc .ColorSpace ;_cfg !=nil {var _fbd bool ;switch _cfg .(type ){case *_bdb .PdfColorspaceSpecialIndexed :_fbd =true ;};if _fbd {if _aac ,_bdfe :=_cfg .ImageToRGB (*_feba );_bdfe !=nil {_e .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 {_feba =&_aac ;};};};_baf :=_dda .FillPattern ().ColorAt (0,0);var _egcf _d .Image ;if _dgdc .Mask !=nil {if _egcf ,_aeg =_eggc (_dgdc .Mask ,_baf );_aeg !=nil {_e .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 _dgdc .SMask !=nil {if _egcf ,_aeg =_fcae (_dgdc .SMask ,_baf );_aeg !=nil {_e .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 _bag _d .Image ;if _bdfg ,_ :=_bd .GetBoolVal (_dgdc .ImageMask );_bdfg {_bag =_fdg (_feba ,_baf );}else {_bag ,_aeg =_feba .ToGoImage ();if _aeg !=nil {_e .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",_aeg );
return nil ;};};if _egcf !=nil {_bag =_gecb (_bag ,_egcf );};_fae :=_bag .Bounds ();_dda .Push ();_dda .Scale (1.0/float64 (_fae .Dx ()),-1.0/float64 (_fae .Dy ()));_dda .DrawImageAnchored (_bag ,0,0,0,1);_dda .Pop ();case _bdb .XObjectTypeForm :_e .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_ccfd .String ());
_ded ,_efg :=_acf .GetXObjectFormByName (*_ccfd );if _efg !=nil {return _efg ;};_fgf ,_efg :=_ded .GetContentStream ();if _efg !=nil {return _efg ;};_beg :=_ded .Resources ;if _beg ==nil {_beg =_acf ;};_dda .Push ();if _ded .Matrix !=nil {_dfg ,_cbe :=_bd .GetArray (_ded .Matrix );
if !_cbe {return _afag ;};_bbbe ,_dbc :=_bd .GetNumbersAsFloat (_dfg .Elements ());if _dbc !=nil {return _dbc ;};if len (_bbbe )!=6{return _ab ;};_dgb :=_cf .NewMatrix (_bbbe [0],_bbbe [1],_bbbe [2],_bbbe [3],_bbbe [4],_bbbe [5]);_dda .SetMatrix (_dda .Matrix ().Mult (_dgb ));
};if _ded .BBox !=nil {_dfa ,_defd :=_bd .GetArray (_ded .BBox );if !_defd {return _afag ;};_ccff ,_gaad :=_bd .GetNumbersAsFloat (_dfa .Elements ());if _gaad !=nil {return _gaad ;};if len (_ccff )!=4{_e .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_ccff ));
return _ab ;};_dda .DrawRectangle (_ccff [0],_ccff [1],_ccff [2]-_ccff [0],_ccff [3]-_ccff [1]);_dda .SetRGBA (1,0,0,1);_dda .Clip ();}else {_e .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");
};_efg =_geb .renderContentStream (_dda ,string (_fgf ),_beg );if _efg !=nil {return _efg ;};_dda .Pop ();};case "\u0042\u0049":if len (_gef .Params )!=1{return _ab ;};_efef ,_bcb :=_gef .Params [0].(*_fb .ContentStreamInlineImage );if !_bcb {return nil ;
};_fcg ,_agf :=_efef .ToImage (_acf );if _agf !=nil {_e .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",_agf );
return nil ;};_afbf ,_agf :=_fcg .ToGoImage ();if _agf !=nil {_e .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",_agf );
return nil ;};_eaed :=_afbf .Bounds ();_dda .Push ();_dda .Scale (1.0/float64 (_eaed .Dx ()),-1.0/float64 (_eaed .Dy ()));_dda .DrawImageAnchored (_afbf ,0,0,0,1);_dda .Pop ();case "\u0042\u0054":_ee .Reset ();case "\u0045\u0054":_ee .Reset ();case "\u0054\u0072":if len (_gef .Params )!=1{return _ab ;
};_cbd ,_aebf :=_bd .GetNumberAsFloat (_gef .Params [0]);if _aebf !=nil {return _aebf ;};_ee .Tr =_afa .TextRenderingMode (_cbd );case "\u0054\u004c":if len (_gef .Params )!=1{return _ab ;};_dad ,_bdbg :=_bd .GetNumberAsFloat (_gef .Params [0]);if _bdbg !=nil {return _bdbg ;
};_ee .Tl =_dad ;case "\u0054\u0063":if len (_gef .Params )!=1{return _ab ;};_cdc ,_dfcb :=_bd .GetNumberAsFloat (_gef .Params [0]);if _dfcb !=nil {return _dfcb ;};_e .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_cdc );_ee .Tc =_cdc ;case "\u0054\u0077":if len (_gef .Params )!=1{return _ab ;
};_bgdg ,_eaa :=_bd .GetNumberAsFloat (_gef .Params [0]);if _eaa !=nil {return _eaa ;};_e .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_bgdg );_ee .Tw =_bgdg ;case "\u0054\u007a":if len (_gef .Params )!=1{return _ab ;};_agd ,_dgcb :=_bd .GetNumberAsFloat (_gef .Params [0]);
if _dgcb !=nil {return _dgcb ;};_ee .Th =_agd ;case "\u0054\u0073":if len (_gef .Params )!=1{return _ab ;};_agc ,_bce :=_bd .GetNumberAsFloat (_gef .Params [0]);if _bce !=nil {return _bce ;};_ee .Ts =_agc ;case "\u0054\u0064":if len (_gef .Params )!=2{return _ab ;
};_ecb ,_ceg :=_bd .GetNumbersAsFloat (_gef .Params );if _ceg !=nil {return _ceg ;};_e .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_ecb );_ee .ProcTd (_ecb [0],_ecb [1]);case "\u0054\u0044":if len (_gef .Params )!=2{return _ab ;};_bbe ,_ggbg :=_bd .GetNumbersAsFloat (_gef .Params );
if _ggbg !=nil {return _ggbg ;};_e .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_bbe );_ee .ProcTD (_bbe [0],_bbe [1]);case "\u0054\u002a":_ee .ProcTStar ();case "\u0054\u006d":if len (_gef .Params )!=6{return _ab ;};_ade ,_bbd :=_bd .GetNumbersAsFloat (_gef .Params );
if _bbd !=nil {return _bbd ;};_e .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_ade );_ee .ProcTm (_ade [0],_ade [1],_ade [2],_ade [3],_ade [4],_ade [5]);case "\u0027":if len (_gef .Params )!=1{return _ab ;
};_ddb ,_cbdg :=_bd .GetStringBytes (_gef .Params [0]);if !_cbdg {return _afag ;};_e .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_ddb ));_ee .ProcQ (_ddb ,_dda );case "\u0022":if len (_gef .Params )!=3{return _ab ;
};_eaaf ,_dga :=_bd .GetNumberAsFloat (_gef .Params [0]);if _dga !=nil {return _dga ;};_abeb ,_dga :=_bd .GetNumberAsFloat (_gef .Params [1]);if _dga !=nil {return _dga ;};_dcadd ,_fee :=_bd .GetStringBytes (_gef .Params [2]);if !_fee {return _afag ;};
_ee .ProcDQ (_dcadd ,_eaaf ,_abeb ,_dda );case "\u0054\u006a":if len (_gef .Params )!=1{return _ab ;};_fbe ,_geg :=_bd .GetStringBytes (_gef .Params [0]);if !_geg {return _afag ;};_e .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_fbe ));
_ee .ProcTj (_fbe ,_dda );case "\u0054\u004a":if len (_gef .Params )!=1{return _ab ;};_abgf ,_bbeb :=_bd .GetArray (_gef .Params [0]);if !_bbeb {_e .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_abgf );return _afag ;};_e .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_abgf );
for _ ,_bcf :=range _abgf .Elements (){switch _dgdg :=_bcf .(type ){case *_bd .PdfObjectString :if _dgdg !=nil {_ee .ProcTj (_dgdg .Bytes (),_dda );};case *_bd .PdfObjectFloat ,*_bd .PdfObjectInteger :_eeb ,_eacc :=_bd .GetNumberAsFloat (_dgdg );if _eacc ==nil {_ee .Translate (-_eeb *0.001*_ee .Tf .Size *_ee .Th /100.0,0);
};};};case "\u0054\u0066":if len (_gef .Params )!=2{return _ab ;};_e .Log .Debug ("\u0025\u0023\u0076",_gef .Params );_fga ,_ggf :=_bd .GetName (_gef .Params [0]);if !_ggf ||_fga ==nil {_e .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",_gef .Params [0]);
return _afag ;};_e .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_fga .String ());_ebg ,_efgg :=_bd .GetNumberAsFloat (_gef .Params [1]);if _efgg !=nil {_e .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",_gef .Params [1]);
return _afag ;};_e .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_ebg );_dgf ,_ggbc :=_acf .GetFontByName (*_fga );if !_ggbc {_e .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_fga .String ());
return _g .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_e .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_dgf );_bac ,_ggf :=_bd .GetDict (_dgf );if !_ggf {_e .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 _afag ;};_bbea ,_efgg :=_bdb .NewPdfFontFromPdfObject (_bac );if _efgg !=nil {_e .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 _efgg ;};_cdde :=_bbea .BaseFont ();if _cdde ==""{_cdde =_fga .String ();};_dfcbf ,_ggf :=_gdd [_cdde ];if !_ggf {_dfcbf ,_efgg =_afa .NewTextFont (_bbea ,_ebg );if _efgg !=nil {_e .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_efgg );
};};if _dfcbf ==nil {if len (_cdde )> 7&&_cdde [6]=='+'{_cdde =_cdde [7:];};_adc :=[]string {_cdde ,"\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 _ ,_agdb :=range _adc {_e .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",_agdb );if _dfcbf ,_ggf =_gdd [_agdb ];
_ggf {break ;};_bbf :=_bc .Match (_agdb );if _bbf ==nil {_e .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",_agdb );continue ;};_dfcbf ,_efgg =_afa .NewTextFontFromPath (_bbf .Filename ,_ebg );
if _efgg !=nil {_e .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",_bbf .Filename );continue ;};_e .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",_cdde ,_bbf .Name ,_bbf .Filename );
_gdd [_agdb ]=_dfcbf ;break ;};};if _dfcbf ==nil {_e .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 _g .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");};_ee .ProcTf (_dfcbf .WithSize (_ebg ,_bbea ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_e .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",_gef .Operand );
};_fa =_gef ;return nil ;});_dcb =_de .Process (_fec );if _dcb !=nil {return _dcb ;};return nil ;};
// NewImageDevice returns a new image device.
func NewImageDevice ()*ImageDevice {const _df ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_gbg .TrackUse (_df );return &ImageDevice {};};func _dce (_bgdga *_bdb .Image ,_edcc _fc .Color )_d .Image {_aebfb ,_eeed :=int (_bgdga .Width ),int (_bgdga .Height );
_becg :=_d .NewRGBA (_d .Rect (0,0,_aebfb ,_eeed ));for _aded :=0;_aded < _eeed ;_aded ++{for _dcbe :=0;_dcbe < _aebfb ;_dcbe ++{_bbbc ,_dba :=_bgdga .ColorAt (_dcbe ,_aded );if _dba !=nil {_e .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",_dcbe ,_aded );
continue ;};_dfge ,_fefa ,_cfa ,_ :=_bbbc .RGBA ();var _aab _fc .Color ;if _dfge +_fefa +_cfa ==0{_aab =_fc .Transparent ;}else {_aab =_edcc ;};_becg .Set (_dcbe ,_aded ,_aab );};};return _becg ;};func (_ddg renderer )processLinearShading (_agga _afa .Context ,_bdbge *_bdb .PdfShading )(_afa .Gradient ,*_bd .PdfObjectArray ,error ){_gagfd :=_bdbge .GetContext ().(*_bdb .PdfShadingType2 );
if len (_gagfd .Function )==0{return nil ,nil ,_g .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");
};_gbc ,_bccb :=_gagfd .Coords .ToFloat64Array ();if _bccb !=nil {return nil ,nil ,_g .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");
};_agfc :=_bdbge .ColorSpace ;_aef ,_eeec :=_agga .Matrix ().Transform (_gbc [0],_gbc [1]);_degg ,_acca :=_agga .Matrix ().Transform (_gbc [2],_gbc [3]);_abf :=_dg .NewLinearGradient (_aef ,_eeec ,_degg ,_acca );_bea :=_bd .MakeArrayFromFloats ([]float64 {0,0,1,1});
for _ ,_dead :=range _gbc {if _dead > 1{_bea =_gagfd .Coords ;break ;};};if _gecec ,_egdd :=_gagfd .Function [0].(*_bdb .PdfFunctionType2 );_egdd {_abf ,_bccb =_dcd (_abf ,_gecec ,_agfc ,1.0,true );}else if _adda ,_cdec :=_gagfd .Function [0].(*_bdb .PdfFunctionType3 );
_cdec {_dcbf :=append ([]float64 {0},_adda .Bounds ...);_dcbf =append (_dcbf ,1.0);_abf ,_bccb =_aefb (_abf ,_adda ,_agfc ,_dcbf );};return _abf ,_bea ,_bccb ;};func _cege (_dcf ,_ceaa ,_gggff float64 )_ag .BoundingBox {return _ag .Path {Points :[]_ag .Point {_ag .NewPoint (0,0).Rotate (_gggff ),_ag .NewPoint (_dcf ,0).Rotate (_gggff ),_ag .NewPoint (0,_ceaa ).Rotate (_gggff ),_ag .NewPoint (_dcf ,_ceaa ).Rotate (_gggff )}}.GetBoundingBox ();
};
// RenderToPath converts the specified PDF page into an image and saves the
// result at the specified location.
func (_ed *ImageDevice )RenderToPath (page *_bdb .PdfPage ,outputPath string )error {_gaa ,_cd :=_ed .Render (page );if _cd !=nil {return _cd ;};_ggg :=_f .ToLower (_gb .Ext (outputPath ));if _ggg ==""{return _g .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 _ggg {case "\u002e\u0070\u006e\u0067":return _dbcb (outputPath ,_gaa );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _gbf (outputPath ,_gaa ,100);};return _ce .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",_ggg );
};func _gbf (_fdfc string ,_cfdc _d .Image ,_bfcf int )error {_gdgc ,_gad :=_gd .Create (_fdfc );if _gad !=nil {return _gad ;};defer _gdgc .Close ();return _gg .Encode (_gdgc ,_cfdc ,&_gg .Options {Quality :_bfcf });};func _fcae (_ecgb _bd .PdfObject ,_eff _fc .Color )(_d .Image ,error ){_cfbb ,_gbeg :=_bd .GetStream (_ecgb );
if !_gbeg {return nil ,nil ;};_bbdg ,_fabf :=_bdb .NewXObjectImageFromStream (_cfbb );if _fabf !=nil {return nil ,_fabf ;};_gaedg ,_fabf :=_bbdg .ToImage ();if _fabf !=nil {return nil ,_fabf ;};return _dce (_gaedg ,_eff ),nil ;};func _gecb (_dbe ,_gdbfd _d .Image )_d .Image {_edc ,_dagg :=_gdbfd .Bounds ().Size (),_dbe .Bounds ().Size ();
_fgfa ,_adbb :=_edc .X ,_edc .Y ;if _dagg .X > _fgfa {_fgfa =_dagg .X ;};if _dagg .Y > _adbb {_adbb =_dagg .Y ;};_bdcb :=_d .Rect (0,0,_fgfa ,_adbb );if _edc .X !=_fgfa ||_edc .Y !=_adbb {_bddf :=_d .NewRGBA (_bdcb );_dc .BiLinear .Scale (_bddf ,_bdcb ,_dbe ,_gdbfd .Bounds (),_dc .Over ,nil );
_gdbfd =_bddf ;};if _dagg .X !=_fgfa ||_dagg .Y !=_adbb {_aaef :=_d .NewRGBA (_bdcb );_dc .BiLinear .Scale (_aaef ,_bdcb ,_dbe ,_dbe .Bounds (),_dc .Over ,nil );_dbe =_aaef ;};_bca :=_d .NewRGBA (_bdcb );_dc .DrawMask (_bca ,_bdcb ,_dbe ,_d .Point {},_gdbfd ,_d .Point {},_dc .Over );
return _bca ;};func _dcd (_bgae _afa .Gradient ,_fced *_bdb .PdfFunctionType2 ,_fdbc _bdb .PdfColorspace ,_fad float64 ,_fbga bool )(_afa .Gradient ,error ){switch _fdbc .(type ){case *_bdb .PdfColorspaceDeviceRGB :if len (_fced .C0 )!=3||len (_fced .C1 )!=3{return nil ,_g .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");
};_aba :=_fced .C0 ;_gea :=_fced .C1 ;if _fbga {_bgae .AddColorStop (0.0,_fc .RGBA {R :uint8 (_aba [0]*255),G :uint8 (_aba [1]*255),B :uint8 (_aba [2]*255),A :255});};_bgae .AddColorStop (_fad ,_fc .RGBA {R :uint8 (_gea [0]*255),G :uint8 (_gea [1]*255),B :uint8 (_gea [2]*255),A :255});
case *_bdb .PdfColorspaceDeviceCMYK :if len (_fced .C0 )!=4||len (_fced .C1 )!=4{return nil ,_g .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");
};_agfa :=_fced .C0 ;_bed :=_fced .C1 ;if _fbga {_bgae .AddColorStop (0.0,_fc .CMYK {C :uint8 (_agfa [0]*255),M :uint8 (_agfa [1]*255),Y :uint8 (_agfa [2]*255),K :uint8 (_agfa [3]*255)});};_bgae .AddColorStop (_fad ,_fc .CMYK {C :uint8 (_bed [0]*255),M :uint8 (_bed [1]*255),Y :uint8 (_bed [2]*255),K :uint8 (_bed [3]*255)});
default:return nil ,_ce .Errorf ("u\u006e\u0073\u0075\u0070\u0070\u006fr\u0074\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072 \u0073\u0070\u0061c\u0065:\u0020\u0025\u0073",_fdbc .String ());};return _bgae ,nil ;};
// 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 ;};
// Render converts the specified PDF page into an image, flattens annotations by default and returns the result.
func (_fd *ImageDevice )Render (page *_bdb .PdfPage )(_d .Image ,error ){return _fd .RenderWithOpts (page ,false );};func (_gegf renderer )processGradient (_ddac _afa .Context ,_efad *_fb .ContentStreamOperation ,_egcc *_bdb .PdfPageResources ,_bfg *_bd .PdfObjectName )(_afa .Gradient ,error ){if _gcec ,_eag :=_egcc .GetPatternByName (*_bfg );
_eag &&_gcec .IsShading (){_ddff :=_gcec .GetAsShadingPattern ().Shading ;_ggfc ,_ ,_befa :=_gegf .processShading (_ddac ,_ddff );if _befa !=nil {return nil ,_befa ;};return _ggfc ,nil ;};return nil ,nil ;};func _dbcb (_bfa string ,_fca _d .Image )error {_dadc ,_aec :=_gd .Create (_bfa );
if _aec !=nil {return _aec ;};defer _dadc .Close ();return _af .Encode (_dadc ,_fca );};var (_afag =_g .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_ab =_g .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
);func _eggc (_cdb _bd .PdfObject ,_fef _fc .Color )(_d .Image ,error ){_edgb ,_cecf :=_bd .GetStream (_cdb );if !_cecf {return nil ,nil ;};_bec ,_eef :=_bdb .NewXObjectImageFromStream (_edgb );if _eef !=nil {return nil ,_eef ;};_aaccb ,_eef :=_bec .ToImage ();
if _eef !=nil {return nil ,_eef ;};return _fdg (_aaccb ,_fef ),nil ;};
// PdfShadingType defines PDF shading types.
// Source: PDF32000_2008.pdf. Chapter 8.7.4.5
type PdfShadingType int64 ;func (_gdag renderer )processRadialShading (_eeea _afa .Context ,_ddeb *_bdb .PdfShading )(_afa .Gradient ,*_bd .PdfObjectArray ,error ){_dfgb :=_ddeb .GetContext ().(*_bdb .PdfShadingType3 );if len (_dfgb .Function )==0{return nil ,nil ,_g .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");
};_fedf ,_gcgc :=_dfgb .Coords .ToFloat64Array ();if _gcgc !=nil {return nil ,nil ,_g .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");
};_dbcc :=_ddeb .ColorSpace ;_bba :=_bd .MakeArrayFromFloats ([]float64 {0,0,1,1});var _dgca ,_afd ,_dag ,_fdb ,_gaae ,_bcd float64 ;_dgca ,_afd =_eeea .Matrix ().Transform (_fedf [0],_fedf [1]);_dag ,_fdb =_eeea .Matrix ().Transform (_fedf [3],_fedf [4]);
_gaae ,_ =_eeea .Matrix ().Transform (_fedf [2],0);_bcd ,_ =_eeea .Matrix ().Transform (_fedf [5],0);_cbeg ,_ :=_eeea .Matrix ().Translation ();_gaae -=_cbeg ;_bcd -=_cbeg ;for _bcdd ,_dfdd :=range _fedf {if _bcdd ==2||_bcdd ==5{continue ;};if _dfdd > 1.0{_beb :=_a .Min (_dgca -_gaae ,_dag -_bcd );
_gbe :=_a .Min (_afd -_gaae ,_fdb -_bcd );_dgbb :=_a .Max (_dgca +_gaae ,_dag +_bcd );_cab :=_a .Max (_afd +_gaae ,_fdb +_bcd );_bgca :=_dgbb -_beb ;_gcgg :=_gbe -_cab ;_bba =_bd .MakeArrayFromFloats ([]float64 {_beb ,_gbe ,_bgca ,_gcgg });break ;};};_bcce :=_dg .NewRadialGradient (_dgca ,_afd ,_gaae ,_dag ,_fdb ,_bcd );
if _gcd ,_edbe :=_dfgb .Function [0].(*_bdb .PdfFunctionType2 );_edbe {_bcce ,_gcgc =_dcd (_bcce ,_gcd ,_dbcc ,1.0,true );}else if _ddad ,_feca :=_dfgb .Function [0].(*_bdb .PdfFunctionType3 );_feca {_gggf :=append ([]float64 {0},_ddad .Bounds ...);_gggf =append (_gggf ,1.0);
_bcce ,_gcgc =_aefb (_bcce ,_ddad ,_dbcc ,_gggf );};if _gcgc !=nil {return nil ,nil ,_gcgc ;};return _bcce ,_bba ,nil ;};const (ShadingTypeFunctionBased PdfShadingType =1;ShadingTypeAxial PdfShadingType =2;ShadingTypeRadial PdfShadingType =3;ShadingTypeFreeForm PdfShadingType =4;
ShadingTypeLatticeForm PdfShadingType =5;ShadingTypeCoons PdfShadingType =6;ShadingTypeTensorProduct PdfShadingType =7;);func (_gggc renderer )renderPage (_afb _afa .Context ,_gc *_bdb .PdfPage ,_gf _cf .Matrix ,_bad bool )error {if !_bad {_eg :=_bdb .FieldFlattenOpts {AnnotFilterFunc :func (_cfc *_bdb .PdfAnnotation )bool {switch _cfc .GetContext ().(type ){case *_bdb .PdfAnnotationLine :return true ;
case *_bdb .PdfAnnotationSquare :return true ;case *_bdb .PdfAnnotationCircle :return true ;case *_bdb .PdfAnnotationPolygon :return true ;case *_bdb .PdfAnnotationPolyLine :return true ;};return false ;}};_cef :=_ba .FieldAppearance {};_cc :=_gc .FlattenFieldsWithOpts (_cef ,&_eg );
if _cc !=nil {_e .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",_cc );};};_dfb ,_ge :=_gc .GetAllContentStreams ();
if _ge !=nil {return _ge ;};if _dde :=_gf ;!_dde .Identity (){_dfb =_ce .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",_dde [0],_dde [1],_dde [3],_dde [4],_dde [6],_dde [7],_dfb );
};_afb .Translate (0,float64 (_afb .Height ()));_afb .Scale (1,-1);_afb .Push ();_afb .SetRGBA (1,1,1,1);_afb .DrawRectangle (0,0,float64 (_afb .Width ()),float64 (_afb .Height ()));_afb .Fill ();_afb .Pop ();_afb .SetLineWidth (1.0);_afb .SetRGBA (0,0,0,1);
return _gggc .renderContentStream (_afb ,_dfb ,_gc .Resources );};func (_aca renderer )processShading (_gaed _afa .Context ,_gagf *_bdb .PdfShading )(_afa .Gradient ,*_bd .PdfObjectArray ,error ){_abc :=int64 (*_gagf .ShadingType );if _abc ==int64 (ShadingTypeAxial ){return _aca .processLinearShading (_gaed ,_gagf );
}else if _abc ==int64 (ShadingTypeRadial ){return _aca .processRadialShading (_gaed ,_gagf );}else {_e .Log .Debug (_ce .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",_abc ));
};return nil ,nil ,nil ;};