unipdf/render/render.go
2023-06-30 13:19:48 +00:00

197 lines
52 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 (_gc "errors";_ee "fmt";_gbf "github.com/adrg/sysfont";_gbd "github.com/unidoc/unipdf/v3/common";_ef "github.com/unidoc/unipdf/v3/contentstream";_cb "github.com/unidoc/unipdf/v3/contentstream/draw";_bb "github.com/unidoc/unipdf/v3/core";
_ge "github.com/unidoc/unipdf/v3/internal/license";_ed "github.com/unidoc/unipdf/v3/internal/transform";_aa "github.com/unidoc/unipdf/v3/model";_ec "github.com/unidoc/unipdf/v3/render/internal/context";_ga "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
_dc "golang.org/x/image/draw";_f "image";_gb "image/color";_de "image/draw";_df "image/jpeg";_b "image/png";_a "math";_c "os";_d "path/filepath";_e "strings";);func (_afa renderer )renderContentStream (_fcc _ec .Context ,_bf string ,_cdg *_aa .PdfPageResources )error {_dd ,_ff :=_ef .NewContentStreamParser (_bf ).Parse ();
if _ff !=nil {return _ff ;};_agf :=_fcc .TextState ();_agf .GlobalScale =_afa ._egg ;_bd :=map[string ]*_ec .TextFont {};_ca :=_gbf .NewFinder (&_gbf .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});var _gba *_ef .ContentStreamOperation ;
_bdf :=_ef .NewContentStreamProcessor (*_dd );_bdf .AddHandler (_ef .HandlerConditionEnumAllOperands ,"",func (_dcd *_ef .ContentStreamOperation ,_cbc _ef .GraphicsState ,_dff *_aa .PdfPageResources )error {_gbd .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_dcd .Operand );
switch _dcd .Operand {case "\u0071":_fcc .Push ();case "\u0051":_fcc .Pop ();_agf =_fcc .TextState ();case "\u0063\u006d":if len (_dcd .Params )!=6{return _egb ;};_dce ,_ba :=_bb .GetNumbersAsFloat (_dcd .Params );if _ba !=nil {return _ba ;};_ada :=_ed .NewMatrix (_dce [0],_dce [1],_dce [2],_dce [3],_dce [4],_dce [5]);
_gbd .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",_ada );_fcc .SetMatrix (_fcc .Matrix ().Mult (_ada ));case "\u0077":if len (_dcd .Params )!=1{return _egb ;
};_fdb ,_cgc :=_bb .GetNumbersAsFloat (_dcd .Params );if _cgc !=nil {return _cgc ;};_fcc .SetLineWidth (_fdb [0]);case "\u004a":if len (_dcd .Params )!=1{return _egb ;};_gfa ,_gec :=_bb .GetIntVal (_dcd .Params [0]);if !_gec {return _gcc ;};switch _gfa {case 0:_fcc .SetLineCap (_ec .LineCapButt );
case 1:_fcc .SetLineCap (_ec .LineCapRound );case 2:_fcc .SetLineCap (_ec .LineCapSquare );default:_gbd .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",_gfa );
return _egb ;};case "\u006a":if len (_dcd .Params )!=1{return _egb ;};_afd ,_ffe :=_bb .GetIntVal (_dcd .Params [0]);if !_ffe {return _gcc ;};switch _afd {case 0:_fcc .SetLineJoin (_ec .LineJoinBevel );case 1:_fcc .SetLineJoin (_ec .LineJoinRound );case 2:_fcc .SetLineJoin (_ec .LineJoinBevel );
default:_gbd .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",_afd );return _egb ;};case "\u004d":if len (_dcd .Params )!=1{return _egb ;};_bdc ,_cbca :=_bb .GetNumbersAsFloat (_dcd .Params );
if _cbca !=nil {return _cbca ;};_ =_bdc ;_gbd .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 (_dcd .Params )!=2{return _egb ;};_cda ,_eb :=_bb .GetArray (_dcd .Params [0]);
if !_eb {return _gcc ;};_ace ,_eb :=_bb .GetIntVal (_dcd .Params [1]);if !_eb {_ ,_eed :=_bb .GetFloatVal (_dcd .Params [1]);if !_eed {return _gcc ;};};_fge ,_baa :=_bb .GetNumbersAsFloat (_cda .Elements ());if _baa !=nil {return _baa ;};_fcc .SetDash (_fge ...);
_ =_ace ;_gbd .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":_gbd .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":_gbd .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 (_dcd .Params )!=1{return _egb ;
};_cac ,_ebg :=_bb .GetName (_dcd .Params [0]);if !_ebg {return _gcc ;};if _cac ==nil {return _egb ;};_dg ,_ebg :=_dff .GetExtGState (*_cac );if !_ebg {_gbd .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",*_cac );
return _gc .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_cga ,_ebg :=_bb .GetDict (_dg );if !_ebg {_gbd .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 _gcc ;};_gbd .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_cga .String ());case "\u006d":if len (_dcd .Params )!=2{_gbd .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",_egb );
return nil ;};_da ,_gff :=_bb .GetNumbersAsFloat (_dcd .Params );if _gff !=nil {return _gff ;};_gbd .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_da );_fcc .NewSubPath ();_fcc .MoveTo (_da [0],_da [1]);case "\u006c":if len (_dcd .Params )!=2{_gbd .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",_egb );
return nil ;};_bag ,_acf :=_bb .GetNumbersAsFloat (_dcd .Params );if _acf !=nil {return _acf ;};_fcc .LineTo (_bag [0],_bag [1]);case "\u0063":if len (_dcd .Params )!=6{return _egb ;};_gfe ,_gg :=_bb .GetNumbersAsFloat (_dcd .Params );if _gg !=nil {return _gg ;
};_gbd .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_gfe );_fcc .CubicTo (_gfe [0],_gfe [1],_gfe [2],_gfe [3],_gfe [4],_gfe [5]);case "\u0076","\u0079":if len (_dcd .Params )!=4{return _egb ;
};_acc ,_fce :=_bb .GetNumbersAsFloat (_dcd .Params );if _fce !=nil {return _fce ;};_gbd .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_acc );_fcc .QuadraticTo (_acc [0],_acc [1],_acc [2],_acc [3]);
case "\u0068":_fcc .ClosePath ();_fcc .NewSubPath ();case "\u0072\u0065":if len (_dcd .Params )!=4{return _egb ;};_fe ,_eca :=_bb .GetNumbersAsFloat (_dcd .Params );if _eca !=nil {return _eca ;};_fcc .DrawRectangle (_fe [0],_fe [1],_fe [2],_fe [3]);_fcc .NewSubPath ();
case "\u0053":_cgg ,_gac :=_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );if _gac !=nil {_gbd .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",_gac );
return _gac ;};_ffd ,_eba :=_cgg .(*_aa .PdfColorDeviceRGB );if !_eba {_gbd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gac ;};_fcc .SetRGBA (_ffd .R (),_ffd .G (),_ffd .B (),1);
_fcc .Stroke ();case "\u0073":_afe ,_gfg :=_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );if _gfg !=nil {_gbd .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",_gfg );
return _gfg ;};_acd ,_cbdg :=_afe .(*_aa .PdfColorDeviceRGB );if !_cbdg {_gbd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gfg ;};_fcc .ClosePath ();_fcc .NewSubPath ();
_fcc .SetRGBA (_acd .R (),_acd .G (),_acd .B (),1);_fcc .Stroke ();case "\u0066","\u0046":_cce ,_be :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );if _be !=nil {_gbd .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",_be );
return _be ;};switch _dec :=_cce .(type ){case *_aa .PdfColorDeviceRGB :_fcc .SetRGBA (_dec .R (),_dec .G (),_dec .B (),1);_fcc .SetFillRule (_ec .FillRuleWinding );_fcc .Fill ();case *_aa .PdfColorPattern :_fcc .Fill ();};_gbd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");
case "\u0066\u002a":_afaf ,_ebgc :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );if _ebgc !=nil {_gbd .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",_ebgc );
return _ebgc ;};_cee ,_gbdf :=_afaf .(*_aa .PdfColorDeviceRGB );if !_gbdf {_gbd .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _ebgc ;};_fcc .SetRGBA (_cee .R (),_cee .G (),_cee .B (),1);
_fcc .SetFillRule (_ec .FillRuleEvenOdd );_fcc .Fill ();case "\u0042":_dge ,_fa :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );if _fa !=nil {_gbd .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",_fa );
return _fa ;};switch _ab :=_dge .(type ){case *_aa .PdfColorDeviceRGB :_fcc .SetRGBA (_ab .R (),_ab .G (),_ab .B (),1);_fcc .SetFillRule (_ec .FillRuleWinding );_fcc .FillPreserve ();_dge ,_fa =_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );
if _fa !=nil {_gbd .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",_fa );return _fa ;};if _gfc ,_cbf :=_dge .(*_aa .PdfColorDeviceRGB );_cbf {_fcc .SetRGBA (_gfc .R (),_gfc .G (),_gfc .B (),1);
_fcc .Stroke ();};case *_aa .PdfColorPattern :_fcc .SetFillRule (_ec .FillRuleWinding );_fcc .Fill ();_fcc .StrokePattern ();};case "\u0042\u002a":_bec ,_fbf :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );if _fbf !=nil {_gbd .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",_fbf );
return _fbf ;};switch _fgd :=_bec .(type ){case *_aa .PdfColorDeviceRGB :_fcc .SetRGBA (_fgd .R (),_fgd .G (),_fgd .B (),1);_fcc .SetFillRule (_ec .FillRuleEvenOdd );_fcc .FillPreserve ();_bec ,_fbf =_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );
if _fbf !=nil {_gbd .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",_fbf );return _fbf ;};if _bfe ,_fcd :=_bec .(*_aa .PdfColorDeviceRGB );
_fcd {_fcc .SetRGBA (_bfe .R (),_bfe .G (),_bfe .B (),1);_fcc .Stroke ();};case *_aa .PdfColorPattern :_fcc .SetFillRule (_ec .FillRuleEvenOdd );_fcc .Fill ();_fcc .StrokePattern ();};case "\u0062":_fcc .ClosePath ();_dfc ,_afg :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );
if _afg !=nil {_gbd .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",_afg );return _afg ;};switch _bdg :=_dfc .(type ){case *_aa .PdfColorDeviceRGB :_fcc .SetRGBA (_bdg .R (),_bdg .G (),_bdg .B (),1);
_fcc .NewSubPath ();_fcc .SetFillRule (_ec .FillRuleWinding );_fcc .FillPreserve ();_dfc ,_afg =_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );if _afg !=nil {_gbd .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",_afg );
return _afg ;};if _ddf ,_aab :=_dfc .(*_aa .PdfColorDeviceRGB );_aab {_fcc .SetRGBA (_ddf .R (),_ddf .G (),_ddf .B (),1);_fcc .Stroke ();};case *_aa .PdfColorPattern :_fcc .NewSubPath ();_fcc .SetFillRule (_ec .FillRuleWinding );_fcc .Fill ();_fcc .StrokePattern ();
};case "\u0062\u002a":_fcc .ClosePath ();_ae ,_cbe :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );if _cbe !=nil {_gbd .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",_cbe );
return _cbe ;};switch _gcg :=_ae .(type ){case *_aa .PdfColorDeviceRGB :_fcc .SetRGBA (_gcg .R (),_gcg .G (),_gcg .B (),1);_fcc .NewSubPath ();_fcc .SetFillRule (_ec .FillRuleEvenOdd );_fcc .FillPreserve ();_ae ,_cbe =_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );
if _cbe !=nil {_gbd .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",_cbe );return _cbe ;};if _fdg ,_fgf :=_ae .(*_aa .PdfColorDeviceRGB );
_fgf {_fcc .SetRGBA (_fdg .R (),_fdg .G (),_fdg .B (),1);_fcc .Stroke ();};case *_aa .PdfColorPattern :_fcc .NewSubPath ();_fcc .SetFillRule (_ec .FillRuleEvenOdd );_fcc .Fill ();_fcc .StrokePattern ();};case "\u006e":_fcc .ClearPath ();case "\u0057":_fcc .SetFillRule (_ec .FillRuleWinding );
_fcc .ClipPreserve ();case "\u0057\u002a":_fcc .SetFillRule (_ec .FillRuleEvenOdd );_fcc .ClipPreserve ();case "\u0072\u0067":_ebb ,_fff :=_cbc .ColorNonStroking .(*_aa .PdfColorDeviceRGB );if !_fff {_gbd .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 .ColorNonStroking );
return nil ;};_fcc .SetFillRGBA (_ebb .R (),_ebb .G (),_ebb .B (),1);case "\u0052\u0047":_bda ,_bgb :=_cbc .ColorStroking .(*_aa .PdfColorDeviceRGB );if !_bgb {_gbd .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 .ColorStroking );
return nil ;};_fcc .SetStrokeRGBA (_bda .R (),_bda .G (),_bda .B (),1);case "\u006b":_fdf ,_bge :=_cbc .ColorNonStroking .(*_aa .PdfColorDeviceCMYK );if !_bge {_gbd .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 .ColorNonStroking );
return nil ;};_ffc ,_cfc :=_cbc .ColorspaceNonStroking .ColorToRGB (_fdf );if _cfc !=nil {_gbd .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 .ColorNonStroking );
return nil ;};_dfb ,_bge :=_ffc .(*_aa .PdfColorDeviceRGB );if !_bge {_gbd .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",_ffc );return nil ;
};_fcc .SetFillRGBA (_dfb .R (),_dfb .G (),_dfb .B (),1);case "\u004b":_ddc ,_aeg :=_cbc .ColorStroking .(*_aa .PdfColorDeviceCMYK );if !_aeg {_gbd .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 .ColorStroking );
return nil ;};_feb ,_cag :=_cbc .ColorspaceStroking .ColorToRGB (_ddc );if _cag !=nil {_gbd .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 .ColorStroking );
return nil ;};_cgce ,_aeg :=_feb .(*_aa .PdfColorDeviceRGB );if !_aeg {_gbd .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",_feb );return nil ;
};_fcc .SetStrokeRGBA (_cgce .R (),_cgce .G (),_cgce .B (),1);case "\u0067":_fbd ,_ceg :=_cbc .ColorNonStroking .(*_aa .PdfColorDeviceGray );if !_ceg {_gbd .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 .ColorNonStroking );
return nil ;};_aac ,_cgbb :=_cbc .ColorspaceNonStroking .ColorToRGB (_fbd );if _cgbb !=nil {_gbd .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 .ColorNonStroking );
return nil ;};_ggb ,_ceg :=_aac .(*_aa .PdfColorDeviceRGB );if !_ceg {_gbd .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",_aac );return nil ;
};_fcc .SetFillRGBA (_ggb .R (),_ggb .G (),_ggb .B (),1);case "\u0047":_db ,_dgg :=_cbc .ColorStroking .(*_aa .PdfColorDeviceGray );if !_dgg {_gbd .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 .ColorStroking );
return nil ;};_egf ,_eff :=_cbc .ColorspaceStroking .ColorToRGB (_db );if _eff !=nil {_gbd .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 .ColorStroking );
return nil ;};_fgcf ,_dgg :=_egf .(*_aa .PdfColorDeviceRGB );if !_dgg {_gbd .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",_egf );return nil ;
};_fcc .SetStrokeRGBA (_fgcf .R (),_fgcf .G (),_fgcf .B (),1);case "\u0063\u0073":if len (_dcd .Params )> 0{if _cae ,_ea :=_bb .GetName (_dcd .Params [0]);_ea &&_cae .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_dgb ,_ddfc :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );
if _ddfc !=nil {_gbd .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 .ColorNonStroking );return nil ;};_gcgc ,_ebaf :=_dgb .(*_aa .PdfColorDeviceRGB );
if !_ebaf {_gbd .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",_dgb );return nil ;};_fcc .SetFillRGBA (_gcgc .R (),_gcgc .G (),_gcgc .B (),1);
case "\u0073\u0063":_bef ,_ebf :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );if _ebf !=nil {_gbd .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 .ColorNonStroking );
return nil ;};_aeb ,_cgac :=_bef .(*_aa .PdfColorDeviceRGB );if !_cgac {_gbd .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",_bef );return nil ;
};_fcc .SetFillRGBA (_aeb .R (),_aeb .G (),_aeb .B (),1);case "\u0073\u0063\u006e":if len (_dcd .Params )> 0&&len (_gba .Params )> 0{if _cdf ,_gd :=_bb .GetName (_gba .Params [0]);_gd &&_cdf .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _bbg ,_afad :=_bb .GetName (_dcd .Params [0]);
_afad {_gead ,_faa :=_afa .processGradient (_fcc ,_dcd ,_dff ,_bbg );if _faa !=nil {_gbd .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",_faa );
break ;};if _gead ==nil {_gbd .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_fcc .SetFillStyle (_gead );_fcc .SetStrokeStyle (_gead );break ;};};};_fbdc ,_aded :=_cbc .ColorspaceNonStroking .ColorToRGB (_cbc .ColorNonStroking );
if _aded !=nil {_gbd .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 .ColorNonStroking );return nil ;};_fcg ,_acb :=_fbdc .(*_aa .PdfColorDeviceRGB );
if !_acb {_gbd .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",_fbdc );return nil ;};_fcc .SetFillRGBA (_fcg .R (),_fcg .G (),_fcg .B (),1);
case "\u0043\u0053":if len (_dcd .Params )> 0{if _ege ,_gfgc :=_bb .GetName (_dcd .Params [0]);_gfgc &&_ege .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{break ;};};_abc ,_ddb :=_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );if _ddb !=nil {_gbd .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 .ColorStroking );
return nil ;};_fgcg ,_bfc :=_abc .(*_aa .PdfColorDeviceRGB );if !_bfc {_gbd .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",_abc );return nil ;
};_fcc .SetStrokeRGBA (_fgcg .R (),_fgcg .G (),_fgcg .B (),1);case "\u0053\u0043":_aage ,_aaee :=_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );if _aaee !=nil {_gbd .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 .ColorStroking );
return nil ;};_fee ,_eaa :=_aage .(*_aa .PdfColorDeviceRGB );if !_eaa {_gbd .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",_aage );return nil ;
};_fcc .SetStrokeRGBA (_fee .R (),_fee .G (),_fee .B (),1);case "\u0053\u0043\u004e":if len (_dcd .Params )> 0&&len (_gba .Params )> 0{if _fag ,_gcfc :=_bb .GetName (_gba .Params [0]);_gcfc &&_fag .String ()=="\u0050a\u0074\u0074\u0065\u0072\u006e"{if _ggg ,_cagd :=_bb .GetName (_dcd .Params [0]);
_cagd {_aaa ,_cef :=_afa .processGradient (_fcc ,_dcd ,_dff ,_ggg );if _cef !=nil {_gbd .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",_cef );
break ;};if _aaa ==nil {_gbd .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_fcc .SetFillStyle (_aaa );_fcc .SetStrokeStyle (_aaa );break ;};};};_dad ,_dbd :=_cbc .ColorspaceStroking .ColorToRGB (_cbc .ColorStroking );
if _dbd !=nil {_gbd .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 .ColorStroking );return nil ;};_dea ,_ecc :=_dad .(*_aa .PdfColorDeviceRGB );
if !_ecc {_gbd .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",_dad );return nil ;};_fcc .SetStrokeRGBA (_dea .R (),_dea .G (),_dea .B (),1);
case "\u0073\u0068":if len (_dcd .Params )!=1{_gbd .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 ;};_gcd ,_decc :=_bb .GetName (_dcd .Params [0]);
if !_decc {_gbd .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 ;};_aaec ,_decc :=_dff .GetShadingByName (*_gcd );if !_decc {_gbd .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 ,_gcee ,_acg :=_afa .processShading (_fcc ,_aaec );if _acg !=nil {_gbd .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",_acg );
break ;};if _gce ==nil {_gbd .Log .Debug ("\u0055\u006ek\u006e\u006f\u0077n\u0020\u0067\u0072\u0061\u0064\u0069\u0065\u006e\u0074");break ;};_fae ,_acg :=_gcee .ToFloat64Array ();if _acg !=nil {_gbd .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",_acg );
break ;};_fcc .DrawRectangle (_fae [0],_fae [1],_fae [2],_fae [3]);_fcc .NewSubPath ();_fcc .SetFillStyle (_gce );_fcc .SetStrokeStyle (_gce );_fcc .Fill ();case "\u0044\u006f":if len (_dcd .Params )!=1{return _egb ;};_gef ,_fcf :=_bb .GetName (_dcd .Params [0]);
if !_fcf {return _gcc ;};_ ,_fad :=_dff .GetXObjectByName (*_gef );switch _fad {case _aa .XObjectTypeImage :_gbd .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_gef .String ());_acfg ,_deab :=_dff .GetXObjectImageByName (*_gef );
if _deab !=nil {return _deab ;};_dbe ,_deab :=_acfg .ToImage ();if _deab !=nil {return _deab ;};if _bdae :=_acfg .ColorSpace ;_bdae !=nil {var _bgef bool ;switch _bdae .(type ){case *_aa .PdfColorspaceSpecialIndexed :_bgef =true ;};if _bgef {if _acdg ,_eae :=_bdae .ImageToRGB (*_dbe );
_eae !=nil {_gbd .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 {_dbe =&_acdg ;};};};_acbf :=_fcc .FillPattern ().ColorAt (0,0);var _acfe _f .Image ;if _acfg .Mask !=nil {if _acfe ,_deab =_bae (_acfg .Mask ,_acbf );_deab !=nil {_gbd .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 _acfg .SMask !=nil {if _acfe ,_deab =_cgfa (_acfg .SMask ,_acbf );_deab !=nil {_gbd .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 _bfb _f .Image ;if _bc ,_ :=_bb .GetBoolVal (_acfg .ImageMask );_bc {_bfb =_egc (_dbe ,_acbf );}else {_bfb ,_deab =_dbe .ToGoImage ();if _deab !=nil {return _deab ;};};if _acfe !=nil {_bfb =_gda (_bfb ,_acfe );};_deb :=_bfb .Bounds ();_fcc .Push ();
_fcc .Scale (1.0/float64 (_deb .Dx ()),-1.0/float64 (_deb .Dy ()));_fcc .DrawImageAnchored (_bfb ,0,0,0,1);_fcc .Pop ();case _aa .XObjectTypeForm :_gbd .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_gef .String ());
_dgd ,_bbb :=_dff .GetXObjectFormByName (*_gef );if _bbb !=nil {return _bbb ;};_gbfa ,_bbb :=_dgd .GetContentStream ();if _bbb !=nil {return _bbb ;};_gacd :=_dgd .Resources ;if _gacd ==nil {_gacd =_dff ;};_fcc .Push ();if _dgd .Matrix !=nil {_fgg ,_dda :=_bb .GetArray (_dgd .Matrix );
if !_dda {return _gcc ;};_fgda ,_eeb :=_bb .GetNumbersAsFloat (_fgg .Elements ());if _eeb !=nil {return _eeb ;};if len (_fgda )!=6{return _egb ;};_fbfb :=_ed .NewMatrix (_fgda [0],_fgda [1],_fgda [2],_fgda [3],_fgda [4],_fgda [5]);_fcc .SetMatrix (_fcc .Matrix ().Mult (_fbfb ));
};if _dgd .BBox !=nil {_abe ,_gccc :=_bb .GetArray (_dgd .BBox );if !_gccc {return _gcc ;};_feee ,_gge :=_bb .GetNumbersAsFloat (_abe .Elements ());if _gge !=nil {return _gge ;};if len (_feee )!=4{_gbd .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_feee ));
return _egb ;};_fcc .DrawRectangle (_feee [0],_feee [1],_feee [2]-_feee [0],_feee [3]-_feee [1]);_fcc .SetRGBA (1,0,0,1);_fcc .Clip ();}else {_gbd .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");
};_bbb =_afa .renderContentStream (_fcc ,string (_gbfa ),_gacd );if _bbb !=nil {return _bbb ;};_fcc .Pop ();};case "\u0042\u0049":if len (_dcd .Params )!=1{return _egb ;};_cegf ,_afde :=_dcd .Params [0].(*_ef .ContentStreamInlineImage );if !_afde {return nil ;
};_eea ,_bgd :=_cegf .ToImage (_dff );if _bgd !=nil {return _bgd ;};_ede ,_bgd :=_eea .ToGoImage ();if _bgd !=nil {return _bgd ;};_dab :=_ede .Bounds ();_fcc .Push ();_fcc .Scale (1.0/float64 (_dab .Dx ()),-1.0/float64 (_dab .Dy ()));_fcc .DrawImageAnchored (_ede ,0,0,0,1);
_fcc .Pop ();case "\u0042\u0054":_agf .Reset ();case "\u0045\u0054":_agf .Reset ();case "\u0054\u0072":if len (_dcd .Params )!=1{return _egb ;};_ebc ,_cddc :=_bb .GetNumberAsFloat (_dcd .Params [0]);if _cddc !=nil {return _cddc ;};_agf .Tr =_ec .TextRenderingMode (_ebc );
case "\u0054\u004c":if len (_dcd .Params )!=1{return _egb ;};_eac ,_fcdf :=_bb .GetNumberAsFloat (_dcd .Params [0]);if _fcdf !=nil {return _fcdf ;};_agf .Tl =_eac ;case "\u0054\u0063":if len (_dcd .Params )!=1{return _egb ;};_daf ,_bbd :=_bb .GetNumberAsFloat (_dcd .Params [0]);
if _bbd !=nil {return _bbd ;};_gbd .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_daf );_agf .Tc =_daf ;case "\u0054\u0077":if len (_dcd .Params )!=1{return _egb ;};_bab ,_acdge :=_bb .GetNumberAsFloat (_dcd .Params [0]);if _acdge !=nil {return _acdge ;
};_gbd .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_bab );_agf .Tw =_bab ;case "\u0054\u007a":if len (_dcd .Params )!=1{return _egb ;};_abd ,_dbg :=_bb .GetNumberAsFloat (_dcd .Params [0]);if _dbg !=nil {return _dbg ;};_agf .Th =_abd ;case "\u0054\u0073":if len (_dcd .Params )!=1{return _egb ;
};_gcb ,_acbe :=_bb .GetNumberAsFloat (_dcd .Params [0]);if _acbe !=nil {return _acbe ;};_agf .Ts =_gcb ;case "\u0054\u0064":if len (_dcd .Params )!=2{return _egb ;};_ceb ,_dag :=_bb .GetNumbersAsFloat (_dcd .Params );if _dag !=nil {return _dag ;};_gbd .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_ceb );
_agf .ProcTd (_ceb [0],_ceb [1]);case "\u0054\u0044":if len (_dcd .Params )!=2{return _egb ;};_eee ,_eccg :=_bb .GetNumbersAsFloat (_dcd .Params );if _eccg !=nil {return _eccg ;};_gbd .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_eee );_agf .ProcTD (_eee [0],_eee [1]);
case "\u0054\u002a":_agf .ProcTStar ();case "\u0054\u006d":if len (_dcd .Params )!=6{return _egb ;};_gfgg ,_acdc :=_bb .GetNumbersAsFloat (_dcd .Params );if _acdc !=nil {return _acdc ;};_gbd .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_gfgg );
_agf .ProcTm (_gfgg [0],_gfgg [1],_gfgg [2],_gfgg [3],_gfgg [4],_gfgg [5]);case "\u0027":if len (_dcd .Params )!=1{return _egb ;};_gbag ,_dae :=_bb .GetStringBytes (_dcd .Params [0]);if !_dae {return _gcc ;};_gbd .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_gbag ));
_agf .ProcQ (_gbag ,_fcc );case "\u0022":if len (_dcd .Params )!=3{return _egb ;};_bcb ,_bed :=_bb .GetNumberAsFloat (_dcd .Params [0]);if _bed !=nil {return _bed ;};_edg ,_bed :=_bb .GetNumberAsFloat (_dcd .Params [1]);if _bed !=nil {return _bed ;};_bdb ,_ccg :=_bb .GetStringBytes (_dcd .Params [2]);
if !_ccg {return _gcc ;};_agf .ProcDQ (_bdb ,_bcb ,_edg ,_fcc );case "\u0054\u006a":if len (_dcd .Params )!=1{return _egb ;};_cff ,_aaaf :=_bb .GetStringBytes (_dcd .Params [0]);if !_aaaf {return _gcc ;};_gbd .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_cff ));
_agf .ProcTj (_cff ,_fcc );case "\u0054\u004a":if len (_dcd .Params )!=1{return _egb ;};_gcba ,_eggg :=_bb .GetArray (_dcd .Params [0]);if !_eggg {_gbd .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_gcba );return _gcc ;};_gbd .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_gcba );
for _ ,_cea :=range _gcba .Elements (){switch _gecc :=_cea .(type ){case *_bb .PdfObjectString :if _gecc !=nil {_agf .ProcTj (_gecc .Bytes (),_fcc );};case *_bb .PdfObjectFloat ,*_bb .PdfObjectInteger :_aef ,_faf :=_bb .GetNumberAsFloat (_gecc );if _faf ==nil {_agf .Translate (-_aef *0.001*_agf .Tf .Size *_agf .Th /100.0,0);
};};};case "\u0054\u0066":if len (_dcd .Params )!=2{return _egb ;};_gbd .Log .Debug ("\u0025\u0023\u0076",_dcd .Params );_cbg ,_afdd :=_bb .GetName (_dcd .Params [0]);if !_afdd ||_cbg ==nil {_gbd .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",_dcd .Params [0]);
return _gcc ;};_gbd .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_cbg .String ());_cec ,_gceec :=_bb .GetNumberAsFloat (_dcd .Params [1]);if _gceec !=nil {_gbd .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",_dcd .Params [1]);
return _gcc ;};_gbd .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_cec );_eef ,_afc :=_dff .GetFontByName (*_cbg );if !_afc {_gbd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_cbg .String ());
return _gc .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_gbd .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_eef );_gdc ,_afdd :=_bb .GetDict (_eef );if !_afdd {_gbd .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 _gcc ;};_gbg ,_gceec :=_aa .NewPdfFontFromPdfObject (_gdc );if _gceec !=nil {_gbd .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 _gceec ;};_fcdfe :=_gbg .BaseFont ();if _fcdfe ==""{_fcdfe =_cbg .String ();};_bbgf ,_afdd :=_bd [_fcdfe ];if !_afdd {_bbgf ,_gceec =_ec .NewTextFont (_gbg ,_cec );if _gceec !=nil {_gbd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gceec );
};};if _bbgf ==nil {if len (_fcdfe )> 7&&_fcdfe [6]=='+'{_fcdfe =_fcdfe [7:];};_dfe :=[]string {_fcdfe ,"\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 _ ,_cba :=range _dfe {_gbd .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",_cba );if _bbgf ,_afdd =_bd [_cba ];
_afdd {break ;};_gdf :=_ca .Match (_cba );if _gdf ==nil {_gbd .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",_cba );continue ;};_bbgf ,_gceec =_ec .NewTextFontFromPath (_gdf .Filename ,_cec );
if _gceec !=nil {_gbd .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",_gdf .Filename );continue ;};_gbd .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",_fcdfe ,_gdf .Name ,_gdf .Filename );
_bd [_cba ]=_bbgf ;break ;};};if _bbgf ==nil {_gbd .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 _gc .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");};_agf .ProcTf (_bbgf .WithSize (_cec ,_gbg ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_gbd .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",_dcd .Operand );
};_gba =_dcd ;return nil ;});_ff =_bdf .Process (_cdg );if _ff !=nil {return _ff ;};return nil ;};func _fged (_fabb ,_eedb ,_aacc float64 )_cb .BoundingBox {return _cb .Path {Points :[]_cb .Point {_cb .NewPoint (0,0).Rotate (_aacc ),_cb .NewPoint (_fabb ,0).Rotate (_aacc ),_cb .NewPoint (0,_eedb ).Rotate (_aacc ),_cb .NewPoint (_fabb ,_eedb ).Rotate (_aacc )}}.GetBoundingBox ();
};
// RenderToPath converts the specified PDF page into an image and saves the
// result at the specified location.
func (_cgb *ImageDevice )RenderToPath (page *_aa .PdfPage ,outputPath string )error {_aag ,_gea :=_cgb .Render (page );if _gea !=nil {return _gea ;};_fbg :=_e .ToLower (_d .Ext (outputPath ));if _fbg ==""{return _gc .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 _fbg {case "\u002e\u0070\u006e\u0067":return _ddaa (outputPath ,_aag );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _ggge (outputPath ,_aag ,100);};return _ee .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",_fbg );
};func _cgfa (_gedf _bb .PdfObject ,_cdbe _gb .Color )(_f .Image ,error ){_gdd ,_eaaa :=_bb .GetStream (_gedf );if !_eaaa {return nil ,nil ;};_cdc ,_daeba :=_aa .NewXObjectImageFromStream (_gdd );if _daeba !=nil {return nil ,_daeba ;};_cfa ,_daeba :=_cdc .ToImage ();
if _daeba !=nil {return nil ,_daeba ;};return _fafg (_cfa ,_cdbe ),nil ;};func _bcbc (_accb _ec .Gradient ,_fbgf *_aa .PdfFunctionType2 ,_cgge _aa .PdfColorspace ,_ddd float64 ,_agae bool )(_ec .Gradient ,error ){switch _cgge .(type ){case *_aa .PdfColorspaceDeviceRGB :if len (_fbgf .C0 )!=3||len (_fbgf .C1 )!=3{return nil ,_gc .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");
};_eag :=_fbgf .C0 ;_aaafg :=_fbgf .C1 ;if _agae {_accb .AddColorStop (0.0,_gb .RGBA {R :uint8 (_eag [0]*255),G :uint8 (_eag [1]*255),B :uint8 (_eag [2]*255),A :255});};_accb .AddColorStop (_ddd ,_gb .RGBA {R :uint8 (_aaafg [0]*255),G :uint8 (_aaafg [1]*255),B :uint8 (_aaafg [2]*255),A :255});
case *_aa .PdfColorspaceDeviceCMYK :if len (_fbgf .C0 )!=4||len (_fbgf .C1 )!=4{return nil ,_gc .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");
};_dcf :=_fbgf .C0 ;_fbce :=_fbgf .C1 ;if _agae {_accb .AddColorStop (0.0,_gb .CMYK {C :uint8 (_dcf [0]*255),M :uint8 (_dcf [1]*255),Y :uint8 (_dcf [2]*255),K :uint8 (_dcf [3]*255)});};_accb .AddColorStop (_ddd ,_gb .CMYK {C :uint8 (_fbce [0]*255),M :uint8 (_fbce [1]*255),Y :uint8 (_fbce [2]*255),K :uint8 (_fbce [3]*255)});
default:return nil ,_ee .Errorf ("u\u006e\u0073\u0075\u0070\u0070\u006fr\u0074\u0065\u0064\u0020\u0063\u006f\u006c\u006f\u0072 \u0073\u0070\u0061c\u0065:\u0020\u0025\u0073",_cgge .String ());};return _accb ,nil ;};func _egc (_bgda *_aa .Image ,_dga _gb .Color )_f .Image {_eggd ,_dcaa :=int (_bgda .Width ),int (_bgda .Height );
_bdgg :=_f .NewRGBA (_f .Rect (0,0,_eggd ,_dcaa ));for _fde :=0;_fde < _dcaa ;_fde ++{for _cbgc :=0;_cbgc < _eggd ;_cbgc ++{_cbfc ,_cafcf :=_bgda .ColorAt (_cbgc ,_fde );if _cafcf !=nil {_gbd .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",_cbgc ,_fde );
continue ;};_cegc ,_gffg ,_dgf ,_ :=_cbfc .RGBA ();var _bece _gb .Color ;if _cegc +_gffg +_dgf ==0{_bece =_dga ;}else {_bece =_gb .Transparent ;};_bdgg .Set (_cbgc ,_fde ,_bece );};};return _bdgg ;};const (ShadingTypeFunctionBased PdfShadingType =1;ShadingTypeAxial PdfShadingType =2;
ShadingTypeRadial PdfShadingType =3;ShadingTypeFreeForm PdfShadingType =4;ShadingTypeLatticeForm PdfShadingType =5;ShadingTypeCoons PdfShadingType =6;ShadingTypeTensorProduct PdfShadingType =7;);func _dca (_cdb _ec .Gradient ,_dbc *_aa .PdfFunctionType3 ,_fgfe _aa .PdfColorspace ,_dac []float64 )(_ec .Gradient ,error ){var _egd error ;
for _bafe :=0;_bafe < len (_dbc .Functions );_bafe ++{if _fcef ,_cbdgc :=_dbc .Functions [_bafe ].(*_aa .PdfFunctionType2 );_cbdgc {_cdb ,_egd =_bcbc (_cdb ,_fcef ,_fgfe ,_dac [_bafe +1],_bafe ==0);if _egd !=nil {return nil ,_egd ;};};};return _cdb ,nil ;
};func _bae (_fab _bb .PdfObject ,_cecc _gb .Color )(_f .Image ,error ){_gfcb ,_gbc :=_bb .GetStream (_fab );if !_gbc {return nil ,nil ;};_eagd ,_aece :=_aa .NewXObjectImageFromStream (_gfcb );if _aece !=nil {return nil ,_aece ;};_febg ,_aece :=_eagd .ToImage ();
if _aece !=nil {return nil ,_aece ;};return _egc (_febg ,_cecc ),nil ;};var (_gcc =_gc .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");_egb =_gc .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072");
);
// PdfShadingType defines PDF shading types.
// Source: PDF32000_2008.pdf. Chapter 8.7.4.5
type PdfShadingType int64 ;
// 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 ;};func (_bg renderer )renderPage (_gaf _ec .Context ,_fgc *_aa .PdfPage ,_cdd _ed .Matrix )error {_ac ,_ce :=_fgc .GetAllContentStreams ();if _ce !=nil {return _ce ;};if _cbd :=_cdd ;!_cbd .Identity (){_ac =_ee .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",_cbd [0],_cbd [1],_cbd [3],_cbd [4],_cbd [6],_cbd [7],_ac );
};_gaf .Translate (0,float64 (_gaf .Height ()));_gaf .Scale (1,-1);_gaf .Push ();_gaf .SetRGBA (1,1,1,1);_gaf .DrawRectangle (0,0,float64 (_gaf .Width ()),float64 (_gaf .Height ()));_gaf .Fill ();_gaf .Pop ();_gaf .SetLineWidth (1.0);_gaf .SetRGBA (0,0,0,1);
return _bg .renderContentStream (_gaf ,_ac ,_fgc .Resources );};func _ggge (_age string ,_gggd _f .Image ,_ddda int )error {_gfed ,_bbbg :=_c .Create (_age );if _bbbg !=nil {return _bbbg ;};defer _gfed .Close ();return _df .Encode (_gfed ,_gggd ,&_df .Options {Quality :_ddda });
};func (_bee renderer )processRadialShading (_ffda _ec .Context ,_edf *_aa .PdfShading )(_ec .Gradient ,*_bb .PdfObjectArray ,error ){_ebba :=_edf .GetContext ().(*_aa .PdfShadingType3 );if len (_ebba .Function )==0{return nil ,nil ,_gc .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");
};_ged ,_gca :=_ebba .Coords .ToFloat64Array ();if _gca !=nil {return nil ,nil ,_gc .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");
};_fbb :=_edf .ColorSpace ;_baf :=_bb .MakeArrayFromFloats ([]float64 {0,0,1,1});var _eda ,_bafb ,_bfg ,_gee ,_cgaa ,_eec float64 ;_eda ,_bafb =_ffda .Matrix ().Transform (_ged [0],_ged [1]);_bfg ,_gee =_ffda .Matrix ().Transform (_ged [3],_ged [4]);_cgaa ,_ =_ffda .Matrix ().Transform (_ged [2],0);
_eec ,_ =_ffda .Matrix ().Transform (_ged [5],0);_dbf ,_ :=_ffda .Matrix ().Translation ();_cgaa -=_dbf ;_eec -=_dbf ;for _fba ,_gfef :=range _ged {if _fba ==2||_fba ==5{continue ;};if _gfef > 1.0{_daeb :=_a .Min (_eda -_cgaa ,_bfg -_eec );_geca :=_a .Min (_bafb -_cgaa ,_gee -_eec );
_cafa :=_a .Max (_eda +_cgaa ,_bfg +_eec );_eeed :=_a .Max (_bafb +_cgaa ,_gee +_eec );_bdgc :=_cafa -_daeb ;_fcce :=_geca -_eeed ;_baf =_bb .MakeArrayFromFloats ([]float64 {_daeb ,_geca ,_bdgc ,_fcce });break ;};};_fafc :=_ga .NewRadialGradient (_eda ,_bafb ,_cgaa ,_bfg ,_gee ,_eec );
if _bbe ,_bac :=_ebba .Function [0].(*_aa .PdfFunctionType2 );_bac {_fafc ,_gca =_bcbc (_fafc ,_bbe ,_fbb ,1.0,true );}else if _bga ,_aec :=_ebba .Function [0].(*_aa .PdfFunctionType3 );_aec {_fdbf :=append ([]float64 {0},_bga .Bounds ...);_fdbf =append (_fdbf ,1.0);
_fafc ,_gca =_dca (_fafc ,_bga ,_fbb ,_fdbf );};if _gca !=nil {return nil ,nil ,_gca ;};return _fafc ,_baf ,nil ;};func _gda (_bbda ,_cggeg _f .Image )_f .Image {_fac ,_gfea :=_cggeg .Bounds ().Size (),_bbda .Bounds ().Size ();_efac ,_afec :=_fac .X ,_fac .Y ;
if _gfea .X > _efac {_efac =_gfea .X ;};if _gfea .Y > _afec {_afec =_gfea .Y ;};_cbaf :=_f .Rect (0,0,_efac ,_afec );if _fac .X !=_efac ||_fac .Y !=_afec {_eaad :=_f .NewRGBA (_cbaf );_dc .BiLinear .Scale (_eaad ,_cbaf ,_bbda ,_cggeg .Bounds (),_dc .Over ,nil );
_cggeg =_eaad ;};if _gfea .X !=_efac ||_gfea .Y !=_afec {_dabbc :=_f .NewRGBA (_cbaf );_dc .BiLinear .Scale (_dabbc ,_cbaf ,_bbda ,_bbda .Bounds (),_dc .Over ,nil );_bbda =_dabbc ;};_ebce :=_f .NewRGBA (_cbaf );_dc .DrawMask (_ebce ,_cbaf ,_bbda ,_f .Point {},_cggeg ,_f .Point {},_dc .Over );
return _ebce ;};
// Render converts the specified PDF page into an image and returns the result.
func (_fd *ImageDevice )Render (page *_aa .PdfPage )(_f .Image ,error ){_fb ,_ad :=page .GetMediaBox ();if _ad !=nil {return nil ,_ad ;};_fb .Normalize ();_cd :=page .CropBox ;var _af ,_aae float64 ;if _cd !=nil {_cd .Normalize ();_af ,_aae =_cd .Width (),_cd .Height ();
};_adc :=page .Rotate ;_ade ,_cc ,_fc ,_cg :=_fb .Llx ,_fb .Lly ,_fb .Width (),_fb .Height ();_ecf :=_ed .IdentityMatrix ();if _adc !=nil &&*_adc %360!=0&&*_adc %90==0{_gaa :=-float64 (*_adc );_gae :=_fged (_fc ,_cg ,_gaa );_ecf =_ecf .Translate ((_gae .Width -_fc )/2+_fc /2,(_gae .Height -_cg )/2+_cg /2).Rotate (_gaa *_a .Pi /180).Translate (-_fc /2,-_cg /2);
_fc ,_cg =_gae .Width ,_gae .Height ;if _cd !=nil {_adg :=_fged (_af ,_aae ,_gaa );_af ,_aae =_adg .Width ,_adg .Height ;};};if _ade !=0||_cc !=0{_ecf =_ecf .Translate (-_ade ,-_cc );};_fd ._egg =1.0;if _fd .OutputWidth !=0{_gcf :=_fc ;if _cd !=nil {_gcf =_af ;
};_fd ._egg =float64 (_fd .OutputWidth )/_gcf ;_fc ,_cg ,_af ,_aae =_fc *_fd ._egg ,_cg *_fd ._egg ,_af *_fd ._egg ,_aae *_fd ._egg ;_ecf =_ed .ScaleMatrix (_fd ._egg ,_fd ._egg ).Mult (_ecf );};_efa :=_ga .NewContext (int (_fc ),int (_cg ));if _eg :=_fd .renderPage (_efa ,page ,_ecf );
_eg !=nil {return nil ,_eg ;};_fbc :=_efa .Image ();if _cd !=nil {_fg ,_gf :=(_cd .Llx -_ade )*_fd ._egg ,(_cd .Lly -_cc )*_fd ._egg ;_efc :=_f .Rect (0,0,int (_af ),int (_aae ));_aga :=_f .Pt (int (_fg ),int (_cg -_gf -_aae ));_ccf :=_f .NewRGBA (_efc );
_de .Draw (_ccf ,_efc ,_fbc ,_aga ,_de .Src );_fbc =_ccf ;};return _fbc ,nil ;};func (_ffcd renderer )processGradient (_fdd _ec .Context ,_dcg *_ef .ContentStreamOperation ,_bdaa *_aa .PdfPageResources ,_bbf *_bb .PdfObjectName )(_ec .Gradient ,error ){if _caa ,_bfd :=_bdaa .GetPatternByName (*_bbf );
_bfd &&_caa .IsShading (){_dfff :=_caa .GetAsShadingPattern ().Shading ;_cafc ,_ ,_gefe :=_ffcd .processShading (_fdd ,_dfff );if _gefe !=nil {return nil ,_gefe ;};return _cafc ,nil ;};return nil ,nil ;};func _ddaa (_adb string ,_beg _f .Image )error {_effd ,_aba :=_c .Create (_adb );
if _aba !=nil {return _aba ;};defer _effd .Close ();return _b .Encode (_effd ,_beg );};type renderer struct{_egg float64 };
// NewImageDevice returns a new image device.
func NewImageDevice ()*ImageDevice {const _ag ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_ge .TrackUse (_ag );return &ImageDevice {};};func (_gaab renderer )processLinearShading (_febd _ec .Context ,_aacg *_aa .PdfShading )(_ec .Gradient ,*_bb .PdfObjectArray ,error ){_edb :=_aacg .GetContext ().(*_aa .PdfShadingType2 );
if len (_edb .Function )==0{return nil ,nil ,_gc .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");
};_bdd ,_aegb :=_edb .Coords .ToFloat64Array ();if _aegb !=nil {return nil ,nil ,_gc .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");
};_bbgg :=_aacg .ColorSpace ;_cebg ,_bbfg :=_febd .Matrix ().Transform (_bdd [0],_bdd [1]);_ecaa ,_aaf :=_febd .Matrix ().Transform (_bdd [2],_bdd [3]);_dgdg :=_ga .NewLinearGradient (_cebg ,_bbfg ,_ecaa ,_aaf );_dabb :=_bb .MakeArrayFromFloats ([]float64 {0,0,1,1});
for _ ,_cfg :=range _bdd {if _cfg > 1{_dabb =_edb .Coords ;break ;};};if _cbcg ,_defe :=_edb .Function [0].(*_aa .PdfFunctionType2 );_defe {_dgdg ,_aegb =_bcbc (_dgdg ,_cbcg ,_bbgg ,1.0,true );}else if _dfba ,_gdg :=_edb .Function [0].(*_aa .PdfFunctionType3 );
_gdg {_fgdad :=append ([]float64 {0},_dfba .Bounds ...);_fgdad =append (_fgdad ,1.0);_dgdg ,_aegb =_dca (_dgdg ,_dfba ,_bbgg ,_fgdad );};return _dgdg ,_dabb ,_aegb ;};func _fafg (_ddfb *_aa .Image ,_dffg _gb .Color )_f .Image {_aaag ,_gafd :=int (_ddfb .Width ),int (_ddfb .Height );
_bbfe :=_f .NewRGBA (_f .Rect (0,0,_aaag ,_gafd ));for _ggc :=0;_ggc < _gafd ;_ggc ++{for _fagd :=0;_fagd < _aaag ;_fagd ++{_egcd ,_afdeg :=_ddfb .ColorAt (_fagd ,_ggc );if _afdeg !=nil {_gbd .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",_fagd ,_ggc );
continue ;};_aed ,_gbfg ,_bdce ,_ :=_egcd .RGBA ();var _ffg _gb .Color ;if _aed +_gbfg +_bdce ==0{_ffg =_gb .Transparent ;}else {_ffg =_dffg ;};_bbfe .Set (_fagd ,_ggc ,_ffg );};};return _bbfe ;};func (_afcc renderer )processShading (_acde _ec .Context ,_cfb *_aa .PdfShading )(_ec .Gradient ,*_bb .PdfObjectArray ,error ){_gggc :=int64 (*_cfb .ShadingType );
if _gggc ==int64 (ShadingTypeAxial ){return _afcc .processLinearShading (_acde ,_cfb );}else if _gggc ==int64 (ShadingTypeRadial ){return _afcc .processRadialShading (_acde ,_cfb );}else {_gbd .Log .Debug (_ee .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",_gggc ));
};return nil ,nil ,nil ;};