unipdf/render/render.go
2024-09-14 00:10:30 +00:00

207 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 (_e "errors";_de "fmt";_bd "github.com/adrg/sysfont";_gb "github.com/unidoc/unipdf/v3/annotator";_dc "github.com/unidoc/unipdf/v3/common";_ce "github.com/unidoc/unipdf/v3/contentstream";_fd "github.com/unidoc/unipdf/v3/contentstream/draw";
_bg "github.com/unidoc/unipdf/v3/core";_ff "github.com/unidoc/unipdf/v3/internal/license";_ed "github.com/unidoc/unipdf/v3/internal/transform";_be "github.com/unidoc/unipdf/v3/model";_egg "github.com/unidoc/unipdf/v3/render/internal/context";_gd "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
_a "golang.org/x/image/draw";_da "image";_b "image/color";_eg "image/draw";_g "image/jpeg";_c "image/png";_eb "math";_ea "os";_fc "path/filepath";_f "strings";);func _deac (_bbe string ,_cdde _da .Image ,_cdge int )error {_ebfc ,_aafc :=_ea .Create (_bbe );
if _aafc !=nil {return _aafc ;};defer _ebfc .Close ();return _g .Encode (_ebfc ,_cdde ,&_g .Options {Quality :_cdge });};func (_fcf renderer )processShading (_caad _egg .Context ,_dfda *_be .PdfShading )(_egg .Gradient ,*_bg .PdfObjectArray ,error ){_fdga :=int64 (*_dfda .ShadingType );
if _fdga ==int64 (ShadingTypeAxial ){return _fcf .processLinearShading (_caad ,_dfda );}else if _fdga ==int64 (ShadingTypeRadial ){return _fcf .processRadialShading (_caad ,_dfda );}else {_dc .Log .Debug (_de .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",_fdga ));
};return nil ,nil ,nil ;};func _cgbf (_faea *_be .Image ,_cbfe _b .Color )_da .Image {_dgb ,_cceg :=int (_faea .Width ),int (_faea .Height );_efga :=_da .NewRGBA (_da .Rect (0,0,_dgb ,_cceg ));for _beef :=0;_beef < _cceg ;_beef ++{for _bgab :=0;_bgab < _dgb ;
_bgab ++{_adg ,_ecdca :=_faea .ColorAt (_bgab ,_beef );if _ecdca !=nil {_dc .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",_bgab ,_beef );
continue ;};_fcgb ,_adaf ,_eeabg ,_ :=_adg .RGBA ();var _bce _b .Color ;if _fcgb +_adaf +_eeabg ==0{_bce =_cbfe ;}else {_bce =_b .Transparent ;};_efga .Set (_bgab ,_beef ,_bce );};};return _efga ;};
// Render converts the specified PDF page into an image, flattens annotations by default and returns the result.
func (_af *ImageDevice )Render (page *_be .PdfPage )(_da .Image ,error ){return _af .RenderWithOpts (page ,false );};func _ccecf (_cbec string ,_efdc _da .Image )error {_ede ,_dcda :=_ea .Create (_cbec );if _dcda !=nil {return _dcda ;};defer _ede .Close ();
return _c .Encode (_ede ,_efdc );};func _gcgf (_fcb _egg .Gradient ,_eecb *_be .PdfFunctionType3 ,_dda _be .PdfColorspace ,_ffd []float64 )(_egg .Gradient ,error ){var _afbe error ;for _fea :=0;_fea < len (_eecb .Functions );_fea ++{if _cdd ,_fddc :=_eecb .Functions [_fea ].(*_be .PdfFunctionType2 );
_fddc {_fcb ,_afbe =_bad (_fcb ,_cdd ,_dda ,_ffd [_fea +1],_fea ==0);if _afbe !=nil {return nil ,_afbe ;};};};return _fcb ,nil ;};func (_bge renderer )renderPage (_cg _egg .Context ,_eba *_be .PdfPage ,_eag _ed .Matrix ,_beb bool )error {if !_beb {_bb :=_be .FieldFlattenOpts {AnnotFilterFunc :func (_fa *_be .PdfAnnotation )bool {switch _fa .GetContext ().(type ){case *_be .PdfAnnotationLine :return true ;
case *_be .PdfAnnotationSquare :return true ;case *_be .PdfAnnotationCircle :return true ;case *_be .PdfAnnotationPolygon :return true ;case *_be .PdfAnnotationPolyLine :return true ;};return false ;}};_gbc :=_gb .FieldAppearance {};_df :=_eba .FlattenFieldsWithOpts (_gbc ,&_bb );
if _df !=nil {_dc .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",_df );};};_db ,_ac :=_eba .GetAllContentStreams ();
if _ac !=nil {return _ac ;};if _gbd :=_eag ;!_gbd .Identity (){_db =_de .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",_gbd [0],_gbd [1],_gbd [3],_gbd [4],_gbd [6],_gbd [7],_db );
};_cg .Translate (0,float64 (_cg .Height ()));_cg .Scale (1,-1);_cg .Push ();_cg .SetRGBA (1,1,1,1);_cg .DrawRectangle (0,0,float64 (_cg .Width ()),float64 (_cg .Height ()));_cg .Fill ();_cg .Pop ();_cg .SetLineWidth (1.0);_cg .SetRGBA (0,0,0,1);return _bge .renderContentStream (_cg ,_db ,_eba .Resources );
};var (_ffe =_e .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_fe =_e .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););func (_faf renderer )renderContentStream (_ca _egg .Context ,_ee string ,_abg *_be .PdfPageResources )error {_deg ,_cf :=_ce .NewContentStreamParser (_ee ).Parse ();
if _cf !=nil {return _cf ;};_ace :=_ca .TextState ();_ace .GlobalScale =_faf ._dg ;_ef :=map[string ]*_egg .TextFont {};_gge :=_bd .NewFinder (&_bd .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});var _cfa *_ce .ContentStreamOperation ;
_dbe :=_ce .NewContentStreamProcessor (*_deg );_dbe .AddHandler (_ce .HandlerConditionEnumAllOperands ,"",func (_gcf *_ce .ContentStreamOperation ,_efb _ce .GraphicsState ,_cef *_be .PdfPageResources )error {_dc .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_gcf .Operand );
switch _gcf .Operand {case "\u0071":_ca .Push ();case "\u0051":_ca .Pop ();_ace =_ca .TextState ();case "\u0063\u006d":if len (_gcf .Params )!=6{return _fe ;};_aag ,_cde :=_bg .GetNumbersAsFloat (_gcf .Params );if _cde !=nil {return _cde ;};_gcac :=_ed .NewMatrix (_aag [0],_aag [1],_aag [2],_aag [3],_aag [4],_aag [5]);
_dc .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",_gcac );_ca .SetMatrix (_ca .Matrix ().Mult (_gcac ));case "\u0077":if len (_gcf .Params )!=1{return _fe ;
};_ad ,_bed :=_bg .GetNumbersAsFloat (_gcf .Params );if _bed !=nil {return _bed ;};_ca .SetLineWidth (_ad [0]);case "\u004a":if len (_gcf .Params )!=1{return _fe ;};_bdf ,_ecf :=_bg .GetIntVal (_gcf .Params [0]);if !_ecf {return _ffe ;};switch _bdf {case 0:_ca .SetLineCap (_egg .LineCapButt );
case 1:_ca .SetLineCap (_egg .LineCapRound );case 2:_ca .SetLineCap (_egg .LineCapSquare );default:_dc .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",_bdf );
return _fe ;};case "\u006a":if len (_gcf .Params )!=1{return _fe ;};_ba ,_daf :=_bg .GetIntVal (_gcf .Params [0]);if !_daf {return _ffe ;};switch _ba {case 0:_ca .SetLineJoin (_egg .LineJoinBevel );case 1:_ca .SetLineJoin (_egg .LineJoinRound );case 2:_ca .SetLineJoin (_egg .LineJoinBevel );
default:_dc .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",_ba );return _fe ;};case "\u004d":if len (_gcf .Params )!=1{return _fe ;};_egb ,_gcb :=_bg .GetNumbersAsFloat (_gcf .Params );
if _gcb !=nil {return _gcb ;};_ =_egb ;_dc .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 (_gcf .Params )!=2{return _fe ;};_cgg ,_cdg :=_bg .GetArray (_gcf .Params [0]);
if !_cdg {return _ffe ;};_ebe ,_cdg :=_bg .GetIntVal (_gcf .Params [1]);if !_cdg {_ ,_dbea :=_bg .GetFloatVal (_gcf .Params [1]);if !_dbea {return _ffe ;};};_def ,_bga :=_bg .GetNumbersAsFloat (_cgg .Elements ());if _bga !=nil {return _bga ;};_ca .SetDash (_def ...);
_ =_ebe ;_dc .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":_dc .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":_dc .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 (_gcf .Params )!=1{return _fe ;
};_bgac ,_gdd :=_bg .GetName (_gcf .Params [0]);if !_gdd {return _ffe ;};if _bgac ==nil {return _fe ;};_ae ,_gdd :=_cef .GetExtGState (*_bgac );if !_gdd {_dc .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",*_bgac );
return _e .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_aff ,_gdd :=_bg .GetDict (_ae );if !_gdd {_dc .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 _ffe ;};_dc .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_aff .String ());_dcc :=_aff .Get ("\u0063\u0061");if _dcc !=nil {_eea ,_fg :=_bg .GetNumberAsFloat (_dcc );if _fg ==nil {_age ,_ga :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );
if _ga !=nil {_dc .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",_ga );return _ga ;};_ffg ,_add :=_age .(*_be .PdfColorDeviceRGB );if !_add {_dc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
return _ga ;};_ca .SetFillRGBA (_ffg .R (),_ffg .G (),_ffg .B (),_eea );};};case "\u006d":if len (_gcf .Params )!=2{_dc .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",_fe );
return nil ;};_addg ,_fab :=_bg .GetNumbersAsFloat (_gcf .Params );if _fab !=nil {return _fab ;};_dc .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_addg );_ca .NewSubPath ();_ca .MoveTo (_addg [0],_addg [1]);case "\u006c":if len (_gcf .Params )!=2{_dc .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",_fe );
return nil ;};_adb ,_cba :=_bg .GetNumbersAsFloat (_gcf .Params );if _cba !=nil {return _cba ;};_ca .LineTo (_adb [0],_adb [1]);case "\u0063":if len (_gcf .Params )!=6{return _fe ;};_gac ,_bdfb :=_bg .GetNumbersAsFloat (_gcf .Params );if _bdfb !=nil {return _bdfb ;
};_dc .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_gac );_ca .CubicTo (_gac [0],_gac [1],_gac [2],_gac [3],_gac [4],_gac [5]);case "\u0076","\u0079":if len (_gcf .Params )!=4{return _fe ;
};_eceb ,_edg :=_bg .GetNumbersAsFloat (_gcf .Params );if _edg !=nil {return _edg ;};_dc .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_eceb );_ca .QuadraticTo (_eceb [0],_eceb [1],_eceb [2],_eceb [3]);
case "\u0068":_ca .ClosePath ();_ca .NewSubPath ();case "\u0072\u0065":if len (_gcf .Params )!=4{return _fe ;};_cgf ,_fag :=_bg .GetNumbersAsFloat (_gcf .Params );if _fag !=nil {return _fag ;};_ca .DrawRectangle (_cgf [0],_cgf [1],_cgf [2],_cgf [3]);_ca .NewSubPath ();
case "\u0053":_gbde ,_beac :=_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );if _beac !=nil {_dc .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",_beac );
return _beac ;};_aec ,_afa :=_gbde .(*_be .PdfColorDeviceRGB );if !_afa {_dc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _beac ;};_ca .SetRGBA (_aec .R (),_aec .G (),_aec .B (),1);
_ca .Stroke ();case "\u0073":_aef ,_edc :=_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );if _edc !=nil {_dc .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",_edc );
return _edc ;};_dea ,_bgf :=_aef .(*_be .PdfColorDeviceRGB );if !_bgf {_dc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _edc ;};_ca .ClosePath ();_ca .NewSubPath ();
_ca .SetRGBA (_dea .R (),_dea .G (),_dea .B (),1);_ca .Stroke ();case "\u0066","\u0046":_bddc ,_eec :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );if _eec !=nil {_dc .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",_eec );
return _eec ;};switch _bde :=_bddc .(type ){case *_be .PdfColorDeviceRGB :_ca .SetRGBA (_bde .R (),_bde .G (),_bde .B (),1);_ca .SetFillRule (_egg .FillRuleWinding );_ca .Fill ();case *_be .PdfColorPattern :_ca .Fill ();};_dc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
case "\u0066\u002a":_eagb ,_agc :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );if _agc !=nil {_dc .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",_agc );
return _agc ;};_cda ,_bba :=_eagb .(*_be .PdfColorDeviceRGB );if !_bba {_dc .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _agc ;};_ca .SetRGBA (_cda .R (),_cda .G (),_cda .B (),1);
_ca .SetFillRule (_egg .FillRuleEvenOdd );_ca .Fill ();case "\u0042":_dfg ,_gae :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );if _gae !=nil {_dc .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",_gae );
return _gae ;};switch _beg :=_dfg .(type ){case *_be .PdfColorDeviceRGB :_ca .SetRGBA (_beg .R (),_beg .G (),_beg .B (),1);_ca .SetFillRule (_egg .FillRuleWinding );_ca .FillPreserve ();_dfg ,_gae =_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );
if _gae !=nil {_dc .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",_gae );return _gae ;};if _aab ,_faa :=_dfg .(*_be .PdfColorDeviceRGB );
_faa {_ca .SetRGBA (_aab .R (),_aab .G (),_aab .B (),1);_ca .Stroke ();};case *_be .PdfColorPattern :_ca .SetFillRule (_egg .FillRuleWinding );_ca .Fill ();_ca .StrokePattern ();};case "\u0042\u002a":_ebad ,_ggf :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );
if _ggf !=nil {_dc .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",_ggf );return _ggf ;};switch _dee :=_ebad .(type ){case *_be .PdfColorDeviceRGB :_ca .SetRGBA (_dee .R (),_dee .G (),_dee .B (),1);
_ca .SetFillRule (_egg .FillRuleEvenOdd );_ca .FillPreserve ();_ebad ,_ggf =_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );if _ggf !=nil {_dc .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",_ggf );
return _ggf ;};if _ffac ,_dead :=_ebad .(*_be .PdfColorDeviceRGB );_dead {_ca .SetRGBA (_ffac .R (),_ffac .G (),_ffac .B (),1);_ca .Stroke ();};case *_be .PdfColorPattern :_ca .SetFillRule (_egg .FillRuleEvenOdd );_ca .Fill ();_ca .StrokePattern ();};case "\u0062":_ca .ClosePath ();
_acg ,_adc :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );if _adc !=nil {_dc .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",_adc );
return _adc ;};switch _edf :=_acg .(type ){case *_be .PdfColorDeviceRGB :_ca .SetRGBA (_edf .R (),_edf .G (),_edf .B (),1);_ca .NewSubPath ();_ca .SetFillRule (_egg .FillRuleWinding );_ca .FillPreserve ();_acg ,_adc =_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );
if _adc !=nil {_dc .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",_adc );return _adc ;};if _agg ,_gag :=_acg .(*_be .PdfColorDeviceRGB );
_gag {_ca .SetRGBA (_agg .R (),_agg .G (),_agg .B (),1);_ca .Stroke ();};case *_be .PdfColorPattern :_ca .NewSubPath ();_ca .SetFillRule (_egg .FillRuleWinding );_ca .Fill ();_ca .StrokePattern ();};case "\u0062\u002a":_ca .ClosePath ();_ebadb ,_dbd :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );
if _dbd !=nil {_dc .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",_dbd );return _dbd ;};switch _bffe :=_ebadb .(type ){case *_be .PdfColorDeviceRGB :_ca .SetRGBA (_bffe .R (),_bffe .G (),_bffe .B (),1);
_ca .NewSubPath ();_ca .SetFillRule (_egg .FillRuleEvenOdd );_ca .FillPreserve ();_ebadb ,_dbd =_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );if _dbd !=nil {_dc .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",_dbd );
return _dbd ;};if _bc ,_cbf :=_ebadb .(*_be .PdfColorDeviceRGB );_cbf {_ca .SetRGBA (_bc .R (),_bc .G (),_bc .B (),1);_ca .Stroke ();};case *_be .PdfColorPattern :_ca .NewSubPath ();_ca .SetFillRule (_egg .FillRuleEvenOdd );_ca .Fill ();_ca .StrokePattern ();
};case "\u006e":_ca .ClearPath ();case "\u0057":_ca .SetFillRule (_egg .FillRuleWinding );_ca .ClipPreserve ();case "\u0057\u002a":_ca .SetFillRule (_egg .FillRuleEvenOdd );_ca .ClipPreserve ();case "\u0072\u0067":_gdc ,_cdac :=_efb .ColorNonStroking .(*_be .PdfColorDeviceRGB );
if !_cdac {_dc .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",_efb .ColorNonStroking );return nil ;};_ca .SetFillRGBA (_gdc .R (),_gdc .G (),_gdc .B (),1);
case "\u0052\u0047":_gab ,_bee :=_efb .ColorStroking .(*_be .PdfColorDeviceRGB );if !_bee {_dc .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",_efb .ColorStroking );
return nil ;};_ca .SetStrokeRGBA (_gab .R (),_gab .G (),_gab .B (),1);case "\u006b":_ccc ,_gda :=_efb .ColorNonStroking .(*_be .PdfColorDeviceCMYK );if !_gda {_dc .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",_efb .ColorNonStroking );
return nil ;};_cfad ,_agcg :=_efb .ColorspaceNonStroking .ColorToRGB (_ccc );if _agcg !=nil {_dc .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",_efb .ColorNonStroking );
return nil ;};_ccf ,_gda :=_cfad .(*_be .PdfColorDeviceRGB );if !_gda {_dc .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",_cfad );return nil ;
};_ca .SetFillRGBA (_ccf .R (),_ccf .G (),_ccf .B (),1);case "\u004b":_adca ,_dd :=_efb .ColorStroking .(*_be .PdfColorDeviceCMYK );if !_dd {_dc .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",_efb .ColorStroking );
return nil ;};_ada ,_egd :=_efb .ColorspaceStroking .ColorToRGB (_adca );if _egd !=nil {_dc .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",_efb .ColorStroking );
return nil ;};_fbb ,_dd :=_ada .(*_be .PdfColorDeviceRGB );if !_dd {_dc .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",_ada );return nil ;
};_ca .SetStrokeRGBA (_fbb .R (),_fbb .G (),_fbb .B (),1);case "\u0067":_ddc ,_bgb :=_efb .ColorNonStroking .(*_be .PdfColorDeviceGray );if !_bgb {_dc .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",_efb .ColorNonStroking );
return nil ;};_cbc ,_gddd :=_efb .ColorspaceNonStroking .ColorToRGB (_ddc );if _gddd !=nil {_dc .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",_efb .ColorNonStroking );
return nil ;};_fgg ,_bgb :=_cbc .(*_be .PdfColorDeviceRGB );if !_bgb {_dc .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",_cbc );return nil ;
};_ca .SetFillRGBA (_fgg .R (),_fgg .G (),_fgg .B (),1);case "\u0047":_bdef ,_cfe :=_efb .ColorStroking .(*_be .PdfColorDeviceGray );if !_cfe {_dc .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",_efb .ColorStroking );
return nil ;};_gbdg ,_egbf :=_efb .ColorspaceStroking .ColorToRGB (_bdef );if _egbf !=nil {_dc .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",_efb .ColorStroking );
return nil ;};_bbab ,_cfe :=_gbdg .(*_be .PdfColorDeviceRGB );if !_cfe {_dc .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",_gbdg );return nil ;
};_ca .SetStrokeRGBA (_bbab .R (),_bbab .G (),_bbab .B (),1);case "\u0063\u0073":if len (_gcf .Params )> 0{if _ffge ,_bgg :=_bg .GetName (_gcf .Params [0]);_bgg &&_ffge .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_affc ,_baa :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );
if _baa !=nil {_dc .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",_efb .ColorNonStroking );return nil ;};_ecd ,_cae :=_affc .(*_be .PdfColorDeviceRGB );
if !_cae {_dc .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",_affc );return nil ;};_ca .SetFillRGBA (_ecd .R (),_ecd .G (),_ecd .B (),1);
case "\u0073\u0063":_cca ,_edb :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );if _edb !=nil {_dc .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",_efb .ColorNonStroking );
return nil ;};_bda ,_eff :=_cca .(*_be .PdfColorDeviceRGB );if !_eff {_dc .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",_cca );return nil ;
};_ca .SetFillRGBA (_bda .R (),_bda .G (),_bda .B (),1);case "\u0073\u0063\u006e":if len (_gcf .Params )> 0&&len (_cfa .Params )> 0{if _deb ,_bag :=_bg .GetName (_cfa .Params [0]);_bag &&_deb .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _bae ,_efg :=_bg .GetName (_gcf .Params [0]);
_efg {_dbc ,_afae :=_faf .processGradient (_ca ,_gcf ,_cef ,_bae );if _afae !=nil {_dc .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",_afae );
break ;};if _dbc ==nil {_dc .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_ca .SetFillStyle (_dbc );_ca .SetStrokeStyle (_dbc );break ;};};};_ebd ,_cbac :=_efb .ColorspaceNonStroking .ColorToRGB (_efb .ColorNonStroking );
if _cbac !=nil {_dc .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",_efb .ColorNonStroking );return nil ;};_gbcb ,_dag :=_ebd .(*_be .PdfColorDeviceRGB );
if !_dag {_dc .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",_ebd );return nil ;};_ca .SetFillRGBA (_gbcb .R (),_gbcb .G (),_gbcb .B (),1);
case "\u0043\u0053":if len (_gcf .Params )> 0{if _bbf ,_edfe :=_bg .GetName (_gcf .Params [0]);_edfe &&_bbf .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_ecdc ,_dca :=_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );if _dca !=nil {_dc .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",_efb .ColorStroking );
return nil ;};_cee ,_cggc :=_ecdc .(*_be .PdfColorDeviceRGB );if !_cggc {_dc .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",_ecdc );return nil ;
};_ca .SetStrokeRGBA (_cee .R (),_cee .G (),_cee .B (),1);case "\u0053\u0043":_afb ,_beed :=_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );if _beed !=nil {_dc .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",_efb .ColorStroking );
return nil ;};_bdg ,_gaf :=_afb .(*_be .PdfColorDeviceRGB );if !_gaf {_dc .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",_afb );return nil ;
};_ca .SetStrokeRGBA (_bdg .R (),_bdg .G (),_bdg .B (),1);case "\u0053\u0043\u004e":if len (_gcf .Params )> 0&&len (_cfa .Params )> 0{if _ebdb ,_eaf :=_bg .GetName (_cfa .Params [0]);_eaf &&_ebdb .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _aga ,_dfc :=_bg .GetName (_gcf .Params [0]);
_dfc {_ega ,_aeb :=_faf .processGradient (_ca ,_gcf ,_cef ,_aga );if _aeb !=nil {_dc .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",_aeb );
break ;};if _ega ==nil {_dc .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_ca .SetFillStyle (_ega );_ca .SetStrokeStyle (_ega );break ;};};};_acge ,_afd :=_efb .ColorspaceStroking .ColorToRGB (_efb .ColorStroking );
if _afd !=nil {_dc .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",_efb .ColorStroking );return nil ;};_aac ,_fda :=_acge .(*_be .PdfColorDeviceRGB );
if !_fda {_dc .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",_acge );return nil ;};_ca .SetStrokeRGBA (_aac .R (),_aac .G (),_aac .B (),1);
case "\u0073\u0068":if len (_gcf .Params )!=1{_dc .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 ;};_bab ,_cgb :=_bg .GetName (_gcf .Params [0]);
if !_cgb {_dc .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 ;};_caa ,_cgb :=_cef .GetShadingByName (*_bab );if !_cgb {_dc .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 ;};_fef ,_eafg ,_fdc :=_faf .processShading (_ca ,_caa );if _fdc !=nil {_dc .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",_fdc );
break ;};if _fef ==nil {_dc .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_eed ,_fdc :=_eafg .ToFloat64Array ();if _fdc !=nil {_dc .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",_fdc );
break ;};_ca .DrawRectangle (_eed [0],_eed [1],_eed [2],_eed [3]);_ca .NewSubPath ();_ca .SetFillStyle (_fef );_ca .SetStrokeStyle (_fef );_ca .Fill ();case "\u0044\u006f":if len (_gcf .Params )!=1{return _fe ;};_baab ,_fed :=_bg .GetName (_gcf .Params [0]);
if !_fed {return _ffe ;};_ ,_beedg :=_cef .GetXObjectByName (*_baab );switch _beedg {case _be .XObjectTypeImage :_dc .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_baab .String ());_ggfg ,_gdf :=_cef .GetXObjectImageByName (*_baab );
if _gdf !=nil {return _gdf ;};_ead ,_gdf :=_ggfg .ToImage ();if _gdf !=nil {_dc .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",_gdf );
return nil ;};if _dfcf :=_ggfg .ColorSpace ;_dfcf !=nil {var _eadd bool ;switch _dfcf .(type ){case *_be .PdfColorspaceSpecialIndexed :_eadd =true ;};if _eadd {if _ebae ,_ccb :=_dfcf .ImageToRGB (*_ead );_ccb !=nil {_dc .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 {_ead =&_ebae ;};};};_edfg :=_ca .FillPattern ().ColorAt (0,0);var _cdga _da .Image ;if _ggfg .Mask !=nil {if _cdga ,_gdf =_gbaa (_ggfg .Mask ,_edfg );_gdf !=nil {_dc .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 _ggfg .SMask !=nil {if _cdga ,_gdf =_febf (_ggfg .SMask ,_edfg );_gdf !=nil {_dc .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 _aafe _da .Image ;if _egbg ,_ :=_bg .GetBoolVal (_ggfg .ImageMask );_egbg {_aafe =_cgbf (_ead ,_edfg );}else {_aafe ,_gdf =_ead .ToGoImage ();if _gdf !=nil {_dc .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",_gdf );
return nil ;};};if _cdga !=nil {_aafe =_dga (_aafe ,_cdga );};_edd :=_aafe .Bounds ();_ca .Push ();_ca .Scale (1.0/float64 (_edd .Dx ()),-1.0/float64 (_edd .Dy ()));_ca .DrawImageAnchored (_aafe ,0,0,0,1);_ca .Pop ();case _be .XObjectTypeForm :_dc .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_baab .String ());
_aed ,_fcg :=_cef .GetXObjectFormByName (*_baab );if _fcg !=nil {return _fcg ;};_ccd ,_fcg :=_aed .GetContentStream ();if _fcg !=nil {return _fcg ;};_ecc :=_aed .Resources ;if _ecc ==nil {_ecc =_cef ;};_ca .Push ();if _aed .Matrix !=nil {_cbd ,_ceg :=_bg .GetArray (_aed .Matrix );
if !_ceg {return _ffe ;};_edgb ,_acd :=_bg .GetNumbersAsFloat (_cbd .Elements ());if _acd !=nil {return _acd ;};if len (_edgb )!=6{return _fe ;};_bec :=_ed .NewMatrix (_edgb [0],_edgb [1],_edgb [2],_edgb [3],_edgb [4],_edgb [5]);_ca .SetMatrix (_ca .Matrix ().Mult (_bec ));
};if _aed .BBox !=nil {_adcc ,_bdde :=_bg .GetArray (_aed .BBox );if !_bdde {return _ffe ;};_cfd ,_ebb :=_bg .GetNumbersAsFloat (_adcc .Elements ());if _ebb !=nil {return _ebb ;};if len (_cfd )!=4{_dc .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_cfd ));
return _fe ;};_ca .DrawRectangle (_cfd [0],_cfd [1],_cfd [2]-_cfd [0],_cfd [3]-_cfd [1]);_ca .SetRGBA (1,0,0,1);_ca .Clip ();}else {_dc .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");
};_fcg =_faf .renderContentStream (_ca ,string (_ccd ),_ecc );if _fcg !=nil {return _fcg ;};_ca .Pop ();};case "\u0042\u0049":if len (_gcf .Params )!=1{return _fe ;};_bbfd ,_cfb :=_gcf .Params [0].(*_ce .ContentStreamInlineImage );if !_cfb {return nil ;
};_abgb ,_cea :=_bbfd .ToImage (_cef );if _cea !=nil {_dc .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",_cea );
return nil ;};_agcf ,_cea :=_abgb .ToGoImage ();if _cea !=nil {_dc .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",_cea );
return nil ;};_dcca :=_agcf .Bounds ();_ca .Push ();_ca .Scale (1.0/float64 (_dcca .Dx ()),-1.0/float64 (_dcca .Dy ()));_ca .DrawImageAnchored (_agcf ,0,0,0,1);_ca .Pop ();case "\u0042\u0054":_ace .Reset ();case "\u0045\u0054":_ace .Reset ();case "\u0054\u0072":if len (_gcf .Params )!=1{return _fe ;
};_cfae ,_efc :=_bg .GetNumberAsFloat (_gcf .Params [0]);if _efc !=nil {return _efc ;};_ace .Tr =_egg .TextRenderingMode (_cfae );case "\u0054\u004c":if len (_gcf .Params )!=1{return _fe ;};_aca ,_ecef :=_bg .GetNumberAsFloat (_gcf .Params [0]);if _ecef !=nil {return _ecef ;
};_ace .Tl =_aca ;case "\u0054\u0063":if len (_gcf .Params )!=1{return _fe ;};_faae ,_edbf :=_bg .GetNumberAsFloat (_gcf .Params [0]);if _edbf !=nil {return _edbf ;};_dc .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_faae );_ace .Tc =_faae ;case "\u0054\u0077":if len (_gcf .Params )!=1{return _fe ;
};_acb ,_afc :=_bg .GetNumberAsFloat (_gcf .Params [0]);if _afc !=nil {return _afc ;};_dc .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_acb );_ace .Tw =_acb ;case "\u0054\u007a":if len (_gcf .Params )!=1{return _fe ;};_fdg ,_bcd :=_bg .GetNumberAsFloat (_gcf .Params [0]);
if _bcd !=nil {return _bcd ;};_ace .Th =_fdg ;case "\u0054\u0073":if len (_gcf .Params )!=1{return _fe ;};_ecdf ,_cff :=_bg .GetNumberAsFloat (_gcf .Params [0]);if _cff !=nil {return _cff ;};_ace .Ts =_ecdf ;case "\u0054\u0064":if len (_gcf .Params )!=2{return _fe ;
};_bfdc ,_gbb :=_bg .GetNumbersAsFloat (_gcf .Params );if _gbb !=nil {return _gbb ;};_dc .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_bfdc );_ace .ProcTd (_bfdc [0],_bfdc [1]);case "\u0054\u0044":if len (_gcf .Params )!=2{return _fe ;};_cce ,_ggg :=_bg .GetNumbersAsFloat (_gcf .Params );
if _ggg !=nil {return _ggg ;};_dc .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_cce );_ace .ProcTD (_cce [0],_cce [1]);case "\u0054\u002a":_ace .ProcTStar ();case "\u0054\u006d":if len (_gcf .Params )!=6{return _fe ;};_dcd ,_dfd :=_bg .GetNumbersAsFloat (_gcf .Params );
if _dfd !=nil {return _dfd ;};_dc .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_dcd );_ace .ProcTm (_dcd [0],_dcd [1],_dcd [2],_dcd [3],_dcd [4],_dcd [5]);case "\u0027":if len (_gcf .Params )!=1{return _fe ;
};_babc ,_aecc :=_bg .GetStringBytes (_gcf .Params [0]);if !_aecc {return _ffe ;};_dc .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_babc ));_ace .ProcQ (_babc ,_ca );case "\u0022":if len (_gcf .Params )!=3{return _fe ;
};_aad ,_afcb :=_bg .GetNumberAsFloat (_gcf .Params [0]);if _afcb !=nil {return _afcb ;};_bef ,_afcb :=_bg .GetNumberAsFloat (_gcf .Params [1]);if _afcb !=nil {return _afcb ;};_dbdd ,_fce :=_bg .GetStringBytes (_gcf .Params [2]);if !_fce {return _ffe ;
};_ace .ProcDQ (_dbdd ,_aad ,_bef ,_ca );case "\u0054\u006a":if len (_gcf .Params )!=1{return _fe ;};_cfbc ,_dgf :=_bg .GetStringBytes (_gcf .Params [0]);if !_dgf {return _ffe ;};_dc .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_cfbc ));
_ace .ProcTj (_cfbc ,_ca );case "\u0054\u004a":if len (_gcf .Params )!=1{return _fe ;};_cbb ,_bac :=_bg .GetArray (_gcf .Params [0]);if !_bac {_dc .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_cbb );return _ffe ;};_dc .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_cbb );
for _ ,_eeae :=range _cbb .Elements (){switch _ffaf :=_eeae .(type ){case *_bg .PdfObjectString :if _ffaf !=nil {_ace .ProcTj (_ffaf .Bytes (),_ca );};case *_bg .PdfObjectFloat ,*_bg .PdfObjectInteger :_egbb ,_cfda :=_bg .GetNumberAsFloat (_ffaf );if _cfda ==nil {_ace .Translate (-_egbb *0.001*_ace .Tf .Size *_ace .Th /100.0,0);
};};};case "\u0054\u0066":if len (_gcf .Params )!=2{return _fe ;};_dc .Log .Debug ("\u0025\u0023\u0076",_gcf .Params );_aedc ,_afg :=_bg .GetName (_gcf .Params [0]);if !_afg ||_aedc ==nil {_dc .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",_gcf .Params [0]);
return _ffe ;};_dc .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_aedc .String ());_aee ,_adf :=_bg .GetNumberAsFloat (_gcf .Params [1]);if _adf !=nil {_dc .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",_gcf .Params [1]);
return _ffe ;};_dc .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_aee );_afag ,_dfcc :=_cef .GetFontByName (*_aedc );if !_dfcc {_dc .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_aedc .String ());
return _e .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_dc .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_afag );_cdgg ,_afg :=_bg .GetDict (_afag );if !_afg {_dc .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 _ffe ;};_daa ,_adf :=_be .NewPdfFontFromPdfObject (_cdgg );if _adf !=nil {_dc .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 _adf ;};_cac :=_daa .BaseFont ();if _cac ==""{_cac =_aedc .String ();};_beedb ,_afg :=_ef [_cac ];if !_afg {_beedb ,_adf =_egg .NewTextFont (_daa ,_aee );if _adf !=nil {_dc .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_adf );};};if _beedb ==nil {if len (_cac )> 7&&_cac [6]=='+'{_cac =_cac [7:];
};_ecff :=[]string {_cac ,"\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 _ ,_cdb :=range _ecff {_dc .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",_cdb );
if _beedb ,_afg =_ef [_cdb ];_afg {break ;};_dcge :=_gge .Match (_cdb );if _dcge ==nil {_dc .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",_cdb );
continue ;};_beedb ,_adf =_egg .NewTextFontFromPath (_dcge .Filename ,_aee );if _adf !=nil {_dc .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",_dcge .Filename );
continue ;};_dc .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",_cac ,_dcge .Name ,_dcge .Filename );
_ef [_cdb ]=_beedb ;break ;};};if _beedb ==nil {_dc .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 _e .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");};_ace .ProcTf (_beedb .WithSize (_aee ,_daa ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_dc .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",_gcf .Operand );
};_cfa =_gcf ;return nil ;});_cf =_dbe .Process (_abg );if _cf !=nil {return _cf ;};return nil ;};
// PdfShadingType defines PDF shading types.
// Source: PDF32000_2008.pdf. Chapter 8.7.4.5
type PdfShadingType int64 ;func _bad (_gdag _egg .Gradient ,_bgga *_be .PdfFunctionType2 ,_fdab _be .PdfColorspace ,_bcc float64 ,_cge bool )(_egg .Gradient ,error ){switch _fdab .(type ){case *_be .PdfColorspaceDeviceRGB :if len (_bgga .C0 )!=3||len (_bgga .C1 )!=3{return nil ,_e .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");
};_ccec :=_bgga .C0 ;_bbac :=_bgga .C1 ;if _cge {_gdag .AddColorStop (0.0,_b .RGBA {R :uint8 (_ccec [0]*255),G :uint8 (_ccec [1]*255),B :uint8 (_ccec [2]*255),A :255});};_gdag .AddColorStop (_bcc ,_b .RGBA {R :uint8 (_bbac [0]*255),G :uint8 (_bbac [1]*255),B :uint8 (_bbac [2]*255),A :255});
case *_be .PdfColorspaceDeviceCMYK :if len (_bgga .C0 )!=4||len (_bgga .C1 )!=4{return nil ,_e .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");
};_abc :=_bgga .C0 ;_adae :=_bgga .C1 ;if _cge {_gdag .AddColorStop (0.0,_b .CMYK {C :uint8 (_abc [0]*255),M :uint8 (_abc [1]*255),Y :uint8 (_abc [2]*255),K :uint8 (_abc [3]*255)});};_gdag .AddColorStop (_bcc ,_b .CMYK {C :uint8 (_adae [0]*255),M :uint8 (_adae [1]*255),Y :uint8 (_adae [2]*255),K :uint8 (_adae [3]*255)});
default:return nil ,_de .Errorf ("u\u006e\u0073\u0075\u0070\u0070\u006fr\u0074\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072 \u0073\u0070\u0061c\u0065:\u0020\u0025\u0073",_fdab .String ());};return _gdag ,nil ;};func _dga (_dgfe ,_fbf _da .Image )_da .Image {_ddf ,_ddag :=_fbf .Bounds ().Size (),_dgfe .Bounds ().Size ();
_edgc ,_acbc :=_ddf .X ,_ddf .Y ;if _ddag .X > _edgc {_edgc =_ddag .X ;};if _ddag .Y > _acbc {_acbc =_ddag .Y ;};_cbcg :=_da .Rect (0,0,_edgc ,_acbc );if _ddf .X !=_edgc ||_ddf .Y !=_acbc {_debf :=_da .NewRGBA (_cbcg );_a .BiLinear .Scale (_debf ,_cbcg ,_dgfe ,_fbf .Bounds (),_a .Over ,nil );
_fbf =_debf ;};if _ddag .X !=_edgc ||_ddag .Y !=_acbc {_bbee :=_da .NewRGBA (_cbcg );_a .BiLinear .Scale (_bbee ,_cbcg ,_dgfe ,_dgfe .Bounds (),_a .Over ,nil );_dgfe =_bbee ;};_dbb :=_da .NewRGBA (_cbcg );_a .DrawMask (_dbb ,_cbcg ,_dgfe ,_da .Point {},_fbf ,_da .Point {},_a .Over );
return _dbb ;};
// NewImageDevice returns a new image device.
func NewImageDevice ()*ImageDevice {const _bf ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_ff .TrackUse (_bf );return &ImageDevice {};};func _gbaa (_egbbf _bg .PdfObject ,_adda _b .Color )(_da .Image ,error ){_aded ,_bddf :=_bg .GetStream (_egbbf );
if !_bddf {return nil ,nil ;};_efcc ,_fedg :=_be .NewXObjectImageFromStream (_aded );if _fedg !=nil {return nil ,_fedg ;};_ebfg ,_fedg :=_efcc .ToImage ();if _fedg !=nil {return nil ,_fedg ;};return _cgbf (_ebfg ,_adda ),nil ;};func (_gce renderer )processRadialShading (_bbae _egg .Context ,_bacc *_be .PdfShading )(_egg .Gradient ,*_bg .PdfObjectArray ,error ){_dac :=_bacc .GetContext ().(*_be .PdfShadingType3 );
if len (_dac .Function )==0{return nil ,nil ,_e .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");
};_aeaa ,_ege :=_dac .Coords .ToFloat64Array ();if _ege !=nil {return nil ,nil ,_e .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");
};_cad :=_bacc .ColorSpace ;_dgd :=_bg .MakeArrayFromFloats ([]float64 {0,0,1,1});var _bdb ,_bggf ,_babcd ,_ffaa ,_ged ,_dff float64 ;_bdb ,_bggf =_bbae .Matrix ().Transform (_aeaa [0],_aeaa [1]);_babcd ,_ffaa =_bbae .Matrix ().Transform (_aeaa [3],_aeaa [4]);
_ged ,_ =_bbae .Matrix ().Transform (_aeaa [2],0);_dff ,_ =_bbae .Matrix ().Transform (_aeaa [5],0);_dfe ,_ :=_bbae .Matrix ().Translation ();_ged -=_dfe ;_dff -=_dfe ;for _cfc ,_dgda :=range _aeaa {if _cfc ==2||_cfc ==5{continue ;};if _dgda > 1.0{_fac :=_eb .Min (_bdb -_ged ,_babcd -_dff );
_agea :=_eb .Min (_bggf -_ged ,_ffaa -_dff );_cdf :=_eb .Max (_bdb +_ged ,_babcd +_dff );_acf :=_eb .Max (_bggf +_ged ,_ffaa +_dff );_ddbc :=_cdf -_fac ;_aeab :=_agea -_acf ;_dgd =_bg .MakeArrayFromFloats ([]float64 {_fac ,_agea ,_ddbc ,_aeab });break ;
};};_eafd :=_gd .NewRadialGradient (_bdb ,_bggf ,_ged ,_babcd ,_ffaa ,_dff );if _becd ,_bged :=_dac .Function [0].(*_be .PdfFunctionType2 );_bged {_eafd ,_ege =_bad (_eafd ,_becd ,_cad ,1.0,true );}else if _edgd ,_fca :=_dac .Function [0].(*_be .PdfFunctionType3 );
_fca {_cbff :=append ([]float64 {0},_edgd .Bounds ...);_cbff =append (_cbff ,1.0);_eafd ,_ege =_gcgf (_eafd ,_edgd ,_cad ,_cbff );};if _ege !=nil {return nil ,nil ,_ege ;};return _eafd ,_dgd ,nil ;};func (_ggd renderer )processGradient (_cbg _egg .Context ,_cfadf *_ce .ContentStreamOperation ,_ddb *_be .PdfPageResources ,_bggg *_bg .PdfObjectName )(_egg .Gradient ,error ){if _ffgeb ,_cega :=_ddb .GetPatternByName (*_bggg );
_cega &&_ffgeb .IsShading (){_fge :=_ffgeb .GetAsShadingPattern ().Shading ;_ade ,_ ,_ebag :=_ggd .processShading (_cbg ,_fge );if _ebag !=nil {return nil ,_ebag ;};return _ade ,nil ;};return nil ,nil ;};type renderer struct{_dg float64 };const (ShadingTypeFunctionBased PdfShadingType =1;
ShadingTypeAxial PdfShadingType =2;ShadingTypeRadial PdfShadingType =3;ShadingTypeFreeForm PdfShadingType =4;ShadingTypeLatticeForm PdfShadingType =5;ShadingTypeCoons PdfShadingType =6;ShadingTypeTensorProduct PdfShadingType =7;);func _febf (_eeb _bg .PdfObject ,_eegf _b .Color )(_da .Image ,error ){_bgbe ,_cgd :=_bg .GetStream (_eeb );
if !_cgd {return nil ,nil ;};_cbag ,_dgg :=_be .NewXObjectImageFromStream (_bgbe );if _dgg !=nil {return nil ,_dgg ;};_bfc ,_dgg :=_cbag .ToImage ();if _dgg !=nil {return nil ,_dgg ;};return _edbc (_bfc ,_eegf ),nil ;};
// RenderToPath converts the specified PDF page into an image and saves the
// result at the specified location.
func (_ffa *ImageDevice )RenderToPath (page *_be .PdfPage ,outputPath string )error {_ggb ,_gcc :=_ffa .Render (page );if _gcc !=nil {return _gcc ;};_cbe :=_f .ToLower (_fc .Ext (outputPath ));if _cbe ==""{return _e .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 _cbe {case "\u002e\u0070\u006e\u0067":return _ccecf (outputPath ,_ggb );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _deac (outputPath ,_ggb ,100);};return _de .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",_cbe );
};func _edbc (_bade *_be .Image ,_bgea _b .Color )_da .Image {_cgfb ,_dace :=int (_bade .Width ),int (_bade .Height );_edcg :=_da .NewRGBA (_da .Rect (0,0,_cgfb ,_dace ));for _gabf :=0;_gabf < _dace ;_gabf ++{for _bdfd :=0;_bdfd < _cgfb ;_bdfd ++{_afcf ,_gbdf :=_bade .ColorAt (_bdfd ,_gabf );
if _gbdf !=nil {_dc .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",_bdfd ,_gabf );
continue ;};_adgc ,_aedb ,_adfe ,_ :=_afcf .RGBA ();var _bgfe _b .Color ;if _adgc +_aedb +_adfe ==0{_bgfe =_b .Transparent ;}else {_bgfe =_bgea ;};_edcg .Set (_bdfd ,_gabf ,_bgfe );};};return _edcg ;};func (_bddeb renderer )processLinearShading (_eae _egg .Context ,_cbfd *_be .PdfShading )(_egg .Gradient ,*_bg .PdfObjectArray ,error ){_gba :=_cbfd .GetContext ().(*_be .PdfShadingType2 );
if len (_gba .Function )==0{return nil ,nil ,_e .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");
};_egf ,_feg :=_gba .Coords .ToFloat64Array ();if _feg !=nil {return nil ,nil ,_e .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");
};_cec :=_cbfd .ColorSpace ;_bddee ,_fdae :=_eae .Matrix ().Transform (_egf [0],_egf [1]);_dafe ,_ddg :=_eae .Matrix ().Transform (_egf [2],_egf [3]);_ebf :=_gd .NewLinearGradient (_bddee ,_fdae ,_dafe ,_ddg );_feb :=_bg .MakeArrayFromFloats ([]float64 {0,0,1,1});
for _ ,_ebac :=range _egf {if _ebac > 1{_feb =_gba .Coords ;break ;};};if _dgc ,_abf :=_gba .Function [0].(*_be .PdfFunctionType2 );_abf {_ebf ,_feg =_bad (_ebf ,_dgc ,_cec ,1.0,true );}else if _bgd ,_dfca :=_gba .Function [0].(*_be .PdfFunctionType3 );
_dfca {_efd :=append ([]float64 {0},_bgd .Bounds ...);_efd =append (_efd ,1.0);_ebf ,_feg =_gcgf (_ebf ,_bgd ,_cec ,_efd );};return _ebf ,_feb ,_feg ;};
// RenderWithOpts converts the specified PDF page into an image, optionally flattens annotations and returns the result.
func (_gc *ImageDevice )RenderWithOpts (page *_be .PdfPage ,skipFlattening bool )(_da .Image ,error ){_aa ,_cb :=page .GetMediaBox ();if _cb !=nil {return nil ,_cb ;};_aa .Normalize ();_ge :=page .CropBox ;var _ab ,_gf float64 ;if _ge !=nil {_ge .Normalize ();
_ab ,_gf =_ge .Width (),_ge .Height ();};_ec :=page .Rotate ;_fb ,_cc ,_ece ,_ceb :=_aa .Llx ,_aa .Lly ,_aa .Width (),_aa .Height ();_bdd :=_ed .IdentityMatrix ();if _ec !=nil &&*_ec %360!=0&&*_ec %90==0{_aaa :=-float64 (*_ec );_gfg :=_effd (_ece ,_ceb ,_aaa );
_bdd =_bdd .Translate ((_gfg .Width -_ece )/2+_ece /2,(_gfg .Height -_ceb )/2+_ceb /2).Rotate (_aaa *_eb .Pi /180).Translate (-_ece /2,-_ceb /2);_ece ,_ceb =_gfg .Width ,_gfg .Height ;if _ge !=nil {_fdb :=_effd (_ab ,_gf ,_aaa );_ab ,_gf =_fdb .Width ,_fdb .Height ;
};};if _fb !=0||_cc !=0{_bdd =_bdd .Translate (-_fb ,-_cc );};_gc ._dg =1.0;if _gc .OutputWidth !=0{_fdd :=_ece ;if _ge !=nil {_fdd =_ab ;};_gc ._dg =float64 (_gc .OutputWidth )/_fdd ;_ece ,_ceb ,_ab ,_gf =_ece *_gc ._dg ,_ceb *_gc ._dg ,_ab *_gc ._dg ,_gf *_gc ._dg ;
_bdd =_ed .ScaleMatrix (_gc ._dg ,_gc ._dg ).Mult (_bdd );};_cd :=_gd .NewContext (int (_ece ),int (_ceb ));if _gcg :=_gc .renderPage (_cd ,page ,_bdd ,skipFlattening );_gcg !=nil {return nil ,_gcg ;};_gg :=_cd .Image ();if _ge !=nil {_gca ,_dcg :=(_ge .Llx -_fb )*_gc ._dg ,(_ge .Lly -_cc )*_gc ._dg ;
_bfd :=_da .Rect (0,0,int (_ab ),int (_gf ));_bff :=_da .Pt (int (_gca ),int (_ceb -_dcg -_gf ));_ag :=_da .NewRGBA (_bfd );_eg .Draw (_ag ,_bfd ,_gg ,_bff ,_eg .Src );_gg =_ag ;};return _gg ,nil ;};func _effd (_adff ,_aggg ,_cag float64 )_fd .BoundingBox {return _fd .Path {Points :[]_fd .Point {_fd .NewPoint (0,0).Rotate (_cag ),_fd .NewPoint (_adff ,0).Rotate (_cag ),_fd .NewPoint (0,_aggg ).Rotate (_cag ),_fd .NewPoint (_adff ,_aggg ).Rotate (_cag )}}.GetBoundingBox ();
};
// 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 ;};