unipdf/render/render.go
2022-09-10 15:35:04 +00:00

147 lines
38 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 (_b "errors";_da "fmt";_fb "github.com/adrg/sysfont";_ge "github.com/unidoc/unipdf/v3/common";_be "github.com/unidoc/unipdf/v3/contentstream";_af "github.com/unidoc/unipdf/v3/contentstream/draw";_ac "github.com/unidoc/unipdf/v3/core";
_aed "github.com/unidoc/unipdf/v3/internal/license";_bc "github.com/unidoc/unipdf/v3/internal/transform";_c "github.com/unidoc/unipdf/v3/model";_ace "github.com/unidoc/unipdf/v3/render/internal/context";_e "github.com/unidoc/unipdf/v3/render/internal/context/imagerender";
_ga "golang.org/x/image/draw";_dbg "image";_g "image/color";_bad "image/draw";_db "image/jpeg";_ae "image/png";_fa "math";_d "os";_f "path/filepath";_ba "strings";);func (_facg renderer )renderContentStream (_ec _ace .Context ,_ebb string ,_cba *_c .PdfPageResources )error {_eef ,_gae :=_be .NewContentStreamParser (_ebb ).Parse ();
if _gae !=nil {return _gae ;};_dd :=_ec .TextState ();_dd .GlobalScale =_facg ._dee ;_facgc :=map[string ]*_ace .TextFont {};_bge :=_fb .NewFinder (&_fb .FinderOpts {Extensions :[]string {"\u002e\u0074\u0074\u0066","\u002e\u0074\u0074\u0063"}});_ecb :=_be .NewContentStreamProcessor (*_eef );
_ecb .AddHandler (_be .HandlerConditionEnumAllOperands ,"",func (_ff *_be .ContentStreamOperation ,_fae _be .GraphicsState ,_ecd *_c .PdfPageResources )error {_ge .Log .Debug ("\u0050\u0072\u006f\u0063\u0065\u0073\u0073\u0069\u006e\u0067\u0020\u0025\u0073",_ff .Operand );
switch _ff .Operand {case "\u0071":_ec .Push ();case "\u0051":_ec .Pop ();_dd =_ec .TextState ();case "\u0063\u006d":if len (_ff .Params )!=6{return _cg ;};_ccd ,_cee :=_ac .GetNumbersAsFloat (_ff .Params );if _cee !=nil {return _cee ;};_def :=_bc .NewMatrix (_ccd [0],_ccd [1],_ccd [2],_ccd [3],_ccd [4],_ccd [5]);
_ge .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",_def );_ec .SetMatrix (_ec .Matrix ().Mult (_def ));case "\u0077":if len (_ff .Params )!=1{return _cg ;
};_bcfg ,_gaee :=_ac .GetNumbersAsFloat (_ff .Params );if _gaee !=nil {return _gaee ;};_ec .SetLineWidth (_bcfg [0]);case "\u004a":if len (_ff .Params )!=1{return _cg ;};_ecdb ,_gfb :=_ac .GetIntVal (_ff .Params [0]);if !_gfb {return _aa ;};switch _ecdb {case 0:_ec .SetLineCap (_ace .LineCapButt );
case 1:_ec .SetLineCap (_ace .LineCapRound );case 2:_ec .SetLineCap (_ace .LineCapSquare );default:_ge .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",_ecdb );
return _cg ;};case "\u006a":if len (_ff .Params )!=1{return _cg ;};_ca ,_dbb :=_ac .GetIntVal (_ff .Params [0]);if !_dbb {return _aa ;};switch _ca {case 0:_ec .SetLineJoin (_ace .LineJoinBevel );case 1:_ec .SetLineJoin (_ace .LineJoinRound );case 2:_ec .SetLineJoin (_ace .LineJoinBevel );
default:_ge .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",_ca );return _cg ;};case "\u004d":if len (_ff .Params )!=1{return _cg ;};_dfd ,_ffb :=_ac .GetNumbersAsFloat (_ff .Params );
if _ffb !=nil {return _ffb ;};_ =_dfd ;_ge .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 (_ff .Params )!=2{return _cg ;};_gfa ,_gab :=_ac .GetArray (_ff .Params [0]);
if !_gab {return _aa ;};_bde ,_gab :=_ac .GetIntVal (_ff .Params [1]);if !_gab {return _aa ;};_bce ,_dfdd :=_ac .GetNumbersAsFloat (_gfa .Elements ());if _dfdd !=nil {return _dfdd ;};_ec .SetDash (_bce ...);_ =_bde ;_ge .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":_ge .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":_ge .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 (_ff .Params )!=1{return _cg ;};_gfe ,_ecg :=_ac .GetName (_ff .Params [0]);if !_ecg {return _aa ;};if _gfe ==nil {return _cg ;};_deb ,_ecg :=_ecd .GetExtGState (*_gfe );if !_ecg {_ge .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",*_gfe );
return _b .New ("\u0072e\u0073o\u0075\u0072\u0063\u0065\u0020n\u006f\u0074 \u0066\u006f\u0075\u006e\u0064");};_bdee ,_ecg :=_ac .GetDict (_deb );if !_ecg {_ge .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 _aa ;};_ge .Log .Debug ("G\u0053\u0020\u0064\u0069\u0063\u0074\u003a\u0020\u0025\u0073",_bdee .String ());case "\u006d":if len (_ff .Params )!=2{_ge .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",_cg );
return nil ;};_cbad ,_ddb :=_ac .GetNumbersAsFloat (_ff .Params );if _ddb !=nil {return _ddb ;};_ge .Log .Debug ("M\u006f\u0076\u0065\u0020\u0074\u006f\u003a\u0020\u0025\u0076",_cbad );_ec .NewSubPath ();_ec .MoveTo (_cbad [0],_cbad [1]);case "\u006c":if len (_ff .Params )!=2{_ge .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",_cg );
return nil ;};_fcb ,_aef :=_ac .GetNumbersAsFloat (_ff .Params );if _aef !=nil {return _aef ;};_ec .LineTo (_fcb [0],_fcb [1]);case "\u0063":if len (_ff .Params )!=6{return _cg ;};_bgd ,_bcd :=_ac .GetNumbersAsFloat (_ff .Params );if _bcd !=nil {return _bcd ;
};_ge .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_bgd );_ec .CubicTo (_bgd [0],_bgd [1],_bgd [2],_bgd [3],_bgd [4],_bgd [5]);case "\u0076","\u0079":if len (_ff .Params )!=4{return _cg ;
};_ade ,_dad :=_ac .GetNumbersAsFloat (_ff .Params );if _dad !=nil {return _dad ;};_ge .Log .Debug ("\u0043u\u0062\u0069\u0063\u0020\u0062\u0065\u007a\u0069\u0065\u0072\u0020p\u0061\u0072\u0061\u006d\u0073\u003a\u0020\u0025\u002b\u0076",_ade );_ec .QuadraticTo (_ade [0],_ade [1],_ade [2],_ade [3]);
case "\u0068":_ec .ClosePath ();_ec .NewSubPath ();case "\u0072\u0065":if len (_ff .Params )!=4{return _cg ;};_cgg ,_bfe :=_ac .GetNumbersAsFloat (_ff .Params );if _bfe !=nil {return _bfe ;};_ec .DrawRectangle (_cgg [0],_cgg [1],_cgg [2],_cgg [3]);_ec .NewSubPath ();
case "\u0053":_ada ,_facf :=_fae .ColorspaceStroking .ColorToRGB (_fae .ColorStroking );if _facf !=nil {_ge .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",_facf );
return _facf ;};_fg ,_geda :=_ada .(*_c .PdfColorDeviceRGB );if !_geda {_ge .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _facf ;};_ec .SetRGBA (_fg .R (),_fg .G (),_fg .B (),1);
_ec .Stroke ();case "\u0073":_deg ,_fe :=_fae .ColorspaceStroking .ColorToRGB (_fae .ColorStroking );if _fe !=nil {_ge .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",_fe );
return _fe ;};_gfac ,_gfc :=_deg .(*_c .PdfColorDeviceRGB );if !_gfc {_ge .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _fe ;};_ec .ClosePath ();_ec .NewSubPath ();
_ec .SetRGBA (_gfac .R (),_gfac .G (),_gfac .B (),1);_ec .Stroke ();case "\u0066","\u0046":_ccg ,_gad :=_fae .ColorspaceNonStroking .ColorToRGB (_fae .ColorNonStroking );if _gad !=nil {_ge .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",_gad );
return _gad ;};_fcg ,_fdg :=_ccg .(*_c .PdfColorDeviceRGB );if !_fdg {_ge .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _gad ;};_ec .SetRGBA (_fcg .R (),_fcg .G (),_fcg .B (),1);
_ec .SetFillRule (_ace .FillRuleWinding );_ec .Fill ();case "\u0066\u002a":_cdd ,_cdb :=_fae .ColorspaceNonStroking .ColorToRGB (_fae .ColorNonStroking );if _cdb !=nil {_ge .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",_cdb );
return _cdb ;};_ef ,_gb :=_cdd .(*_c .PdfColorDeviceRGB );if !_gb {_ge .Log .Debug ("\u0045\u0072\u0072\u006fr \u0063\u006f\u006e\u0076\u0065\u0072\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006co\u0072");return _cdb ;};_ec .SetRGBA (_ef .R (),_ef .G (),_ef .B (),1);
_ec .SetFillRule (_ace .FillRuleEvenOdd );_ec .Fill ();case "\u0042":_cad ,_bcc :=_fae .ColorspaceNonStroking .ColorToRGB (_fae .ColorNonStroking );if _bcc !=nil {_ge .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",_bcc );
return _bcc ;};_cf :=_cad .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_cf .R (),_cf .G (),_cf .B (),1);_ec .SetFillRule (_ace .FillRuleWinding );_ec .FillPreserve ();_cad ,_bcc =_fae .ColorspaceStroking .ColorToRGB (_fae .ColorStroking );if _bcc !=nil {_ge .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",_bcc );
return _bcc ;};_cf =_cad .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_cf .R (),_cf .G (),_cf .B (),1);_ec .Stroke ();case "\u0042\u002a":_aff ,_ed :=_fae .ColorspaceNonStroking .ColorToRGB (_fae .ColorNonStroking );if _ed !=nil {_ge .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",_ed );
return _ed ;};_eff :=_aff .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_eff .R (),_eff .G (),_eff .B (),1);_ec .SetFillRule (_ace .FillRuleEvenOdd );_ec .FillPreserve ();_aff ,_ed =_fae .ColorspaceStroking .ColorToRGB (_fae .ColorStroking );if _ed !=nil {_ge .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",_ed );
return _ed ;};_eff =_aff .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_eff .R (),_eff .G (),_eff .B (),1);_ec .Stroke ();case "\u0062":_cddf ,_cgb :=_fae .ColorspaceNonStroking .ColorToRGB (_fae .ColorNonStroking );if _cgb !=nil {_ge .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",_cgb );
return _cgb ;};_affb :=_cddf .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_affb .R (),_affb .G (),_affb .B (),1);_ec .ClosePath ();_ec .NewSubPath ();_ec .SetFillRule (_ace .FillRuleWinding );_ec .FillPreserve ();_cddf ,_cgb =_fae .ColorspaceStroking .ColorToRGB (_fae .ColorStroking );
if _cgb !=nil {_ge .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",_cgb );return _cgb ;};_affb =_cddf .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_affb .R (),_affb .G (),_affb .B (),1);
_ec .Stroke ();case "\u0062\u002a":_ec .ClosePath ();_cga ,_affd :=_fae .ColorspaceNonStroking .ColorToRGB (_fae .ColorNonStroking );if _affd !=nil {_ge .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",_affd );
return _affd ;};_dfc :=_cga .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_dfc .R (),_dfc .G (),_dfc .B (),1);_ec .NewSubPath ();_ec .SetFillRule (_ace .FillRuleEvenOdd );_ec .FillPreserve ();_cga ,_affd =_fae .ColorspaceStroking .ColorToRGB (_fae .ColorStroking );
if _affd !=nil {_ge .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",_affd );return _affd ;};_dfc =_cga .(*_c .PdfColorDeviceRGB );_ec .SetRGBA (_dfc .R (),_dfc .G (),_dfc .B (),1);
_ec .Stroke ();case "\u006e":_ec .ClearPath ();case "\u0057":_ec .SetFillRule (_ace .FillRuleWinding );_ec .ClipPreserve ();case "\u0057\u002a":_ec .SetFillRule (_ace .FillRuleEvenOdd );_ec .ClipPreserve ();case "\u0072\u0067":_caf ,_bgc :=_fae .ColorNonStroking .(*_c .PdfColorDeviceRGB );
if !_bgc {_ge .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",_fae .ColorNonStroking );return nil ;};_ec .SetFillRGBA (_caf .R (),_caf .G (),_caf .B (),1);
case "\u0052\u0047":_bfb ,_cff :=_fae .ColorStroking .(*_c .PdfColorDeviceRGB );if !_cff {_ge .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",_fae .ColorStroking );
return nil ;};_ec .SetStrokeRGBA (_bfb .R (),_bfb .G (),_bfb .B (),1);case "\u006b":_cbc ,_gde :=_fae .ColorNonStroking .(*_c .PdfColorDeviceCMYK );if !_gde {_ge .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",_fae .ColorNonStroking );
return nil ;};_gag ,_cda :=_fae .ColorspaceNonStroking .ColorToRGB (_cbc );if _cda !=nil {_ge .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",_fae .ColorNonStroking );
return nil ;};_gaf ,_gde :=_gag .(*_c .PdfColorDeviceRGB );if !_gde {_ge .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",_gag );return nil ;
};_ec .SetFillRGBA (_gaf .R (),_gaf .G (),_gaf .B (),1);case "\u004b":_cbe ,_ccc :=_fae .ColorStroking .(*_c .PdfColorDeviceCMYK );if !_ccc {_ge .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",_fae .ColorStroking );
return nil ;};_bag ,_afd :=_fae .ColorspaceStroking .ColorToRGB (_cbe );if _afd !=nil {_ge .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",_fae .ColorStroking );
return nil ;};_gcc ,_ccc :=_bag .(*_c .PdfColorDeviceRGB );if !_ccc {_ge .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",_bag );return nil ;
};_ec .SetStrokeRGBA (_gcc .R (),_gcc .G (),_gcc .B (),1);case "\u0067":_fff ,_afb :=_fae .ColorNonStroking .(*_c .PdfColorDeviceGray );if !_afb {_ge .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",_fae .ColorNonStroking );
return nil ;};_cea ,_dff :=_fae .ColorspaceNonStroking .ColorToRGB (_fff );if _dff !=nil {_ge .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",_fae .ColorNonStroking );
return nil ;};_ccge ,_afb :=_cea .(*_c .PdfColorDeviceRGB );if !_afb {_ge .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",_cea );return nil ;
};_ec .SetFillRGBA (_ccge .R (),_ccge .G (),_ccge .B (),1);case "\u0047":_cdbg ,_ceb :=_fae .ColorStroking .(*_c .PdfColorDeviceGray );if !_ceb {_ge .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",_fae .ColorStroking );
return nil ;};_cgd ,_ccf :=_fae .ColorspaceStroking .ColorToRGB (_cdbg );if _ccf !=nil {_ge .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",_fae .ColorStroking );
return nil ;};_cbge ,_ceb :=_cgd .(*_c .PdfColorDeviceRGB );if !_ceb {_ge .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",_cgd );return nil ;
};_ec .SetStrokeRGBA (_cbge .R (),_cbge .G (),_cbge .B (),1);case "\u0063\u0073","\u0073\u0063","\u0073\u0063\u006e":_ecbf ,_bac :=_fae .ColorspaceNonStroking .ColorToRGB (_fae .ColorNonStroking );if _bac !=nil {_ge .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",_fae .ColorNonStroking );
return nil ;};_gfcg ,_dg :=_ecbf .(*_c .PdfColorDeviceRGB );if !_dg {_ge .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",_ecbf );return nil ;
};_ec .SetFillRGBA (_gfcg .R (),_gfcg .G (),_gfcg .B (),1);case "\u0043\u0053","\u0053\u0043","\u0053\u0043\u004e":_efa ,_fdf :=_fae .ColorspaceStroking .ColorToRGB (_fae .ColorStroking );if _fdf !=nil {_ge .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",_fae .ColorStroking );
return nil ;};_gfbd ,_bebg :=_efa .(*_c .PdfColorDeviceRGB );if !_bebg {_ge .Log .Debug ("\u0045\u0072\u0072\u006f\u0072\u0020\u0063\u006f\u006e\u0076\u0065r\u0074\u0069\u006e\u0067\u0020\u0063\u006f\u006c\u006f\u0072:\u0020\u0025\u0076",_efa );return nil ;
};_ec .SetStrokeRGBA (_gfbd .R (),_gfbd .G (),_gfbd .B (),1);case "\u0044\u006f":if len (_ff .Params )!=1{return _cg ;};_cfb ,_gcd :=_ac .GetName (_ff .Params [0]);if !_gcd {return _aa ;};_ ,_ea :=_ecd .GetXObjectByName (*_cfb );switch _ea {case _c .XObjectTypeImage :_ge .Log .Debug ("\u0058\u004f\u0062\u006a\u0065\u0063\u0074\u0020\u0069\u006d\u0061\u0067e\u003a\u0020\u0025\u0073",_cfb .String ());
_bb ,_bbe :=_ecd .GetXObjectImageByName (*_cfb );if _bbe !=nil {return _bbe ;};_acef ,_bbe :=_bb .ToImage ();if _bbe !=nil {return _bbe ;};if _ab :=_bb .ColorSpace ;_ab !=nil {var _fba bool ;switch _ab .(type ){case *_c .PdfColorspaceSpecialIndexed :_fba =true ;
};if _fba {if _gbb ,_ggb :=_ab .ImageToRGB (*_acef );_ggb !=nil {_ge .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 {_acef =&_gbb ;};};};_afg :=_ec .FillPattern ().ColorAt (0,0);var _bdc _dbg .Image ;if _bb .Mask !=nil {if _bdc ,_bbe =_adf (_bb .Mask ,_afg );_bbe !=nil {_ge .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 _bb .SMask !=nil {if _bdc ,_bbe =_dfcd (_bb .SMask ,_afg );_bbe !=nil {_ge .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 _bccf _dbg .Image ;if _fbe ,_ :=_ac .GetBoolVal (_bb .ImageMask );_fbe {_bccf =_gbf (_acef ,_afg );}else {_bccf ,_bbe =_acef .ToGoImage ();if _bbe !=nil {return _bbe ;};};if _bdc !=nil {_bccf =_bdb (_bccf ,_bdc );};_abg :=_bccf .Bounds ();_ec .Push ();
_ec .Scale (1.0/float64 (_abg .Dx ()),-1.0/float64 (_abg .Dy ()));_ec .DrawImageAnchored (_bccf ,0,0,0,1);_ec .Pop ();case _c .XObjectTypeForm :_ge .Log .Debug ("\u0058\u004fb\u006a\u0065\u0063t\u0020\u0066\u006f\u0072\u006d\u003a\u0020\u0025\u0073",_cfb .String ());
_egb ,_ede :=_ecd .GetXObjectFormByName (*_cfb );if _ede !=nil {return _ede ;};_cac ,_ede :=_egb .GetContentStream ();if _ede !=nil {return _ede ;};_bgg :=_egb .Resources ;if _bgg ==nil {_bgg =_ecd ;};_ec .Push ();if _egb .Matrix !=nil {_gce ,_ag :=_ac .GetArray (_egb .Matrix );
if !_ag {return _aa ;};_aac ,_aeed :=_ac .GetNumbersAsFloat (_gce .Elements ());if _aeed !=nil {return _aeed ;};if len (_aac )!=6{return _cg ;};_bbg :=_bc .NewMatrix (_aac [0],_aac [1],_aac [2],_aac [3],_aac [4],_aac [5]);_ec .SetMatrix (_ec .Matrix ().Mult (_bbg ));
};if _egb .BBox !=nil {_fbeg ,_dda :=_ac .GetArray (_egb .BBox );if !_dda {return _aa ;};_aae ,_gceg :=_ac .GetNumbersAsFloat (_fbeg .Elements ());if _gceg !=nil {return _gceg ;};if len (_aae )!=4{_ge .Log .Debug ("\u004c\u0065\u006e\u0020\u003d\u0020\u0025\u0064",len (_aae ));
return _cg ;};_ec .DrawRectangle (_aae [0],_aae [1],_aae [2]-_aae [0],_aae [3]-_aae [1]);_ec .SetRGBA (1,0,0,1);_ec .Clip ();}else {_ge .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");
};_ede =_facg .renderContentStream (_ec ,string (_cac ),_bgg );if _ede !=nil {return _ede ;};_ec .Pop ();};case "\u0042\u0049":if len (_ff .Params )!=1{return _cg ;};_bbge ,_aedd :=_ff .Params [0].(*_be .ContentStreamInlineImage );if !_aedd {return nil ;
};_ega ,_daa :=_bbge .ToImage (_ecd );if _daa !=nil {return _daa ;};_bba ,_daa :=_ega .ToGoImage ();if _daa !=nil {return _daa ;};_gbg :=_bba .Bounds ();_ec .Push ();_ec .Scale (1.0/float64 (_gbg .Dx ()),-1.0/float64 (_gbg .Dy ()));_ec .DrawImageAnchored (_bba ,0,0,0,1);
_ec .Pop ();case "\u0042\u0054":_dd .Reset ();case "\u0045\u0054":_dd .Reset ();case "\u0054\u0072":if len (_ff .Params )!=1{return _cg ;};_cgac ,_edb :=_ac .GetNumberAsFloat (_ff .Params [0]);if _edb !=nil {return _edb ;};_dd .Tr =_ace .TextRenderingMode (_cgac );
case "\u0054\u004c":if len (_ff .Params )!=1{return _cg ;};_bgcd ,_egd :=_ac .GetNumberAsFloat (_ff .Params [0]);if _egd !=nil {return _egd ;};_dd .Tl =_bgcd ;case "\u0054\u0063":if len (_ff .Params )!=1{return _cg ;};_dfb ,_cce :=_ac .GetNumberAsFloat (_ff .Params [0]);
if _cce !=nil {return _cce ;};_ge .Log .Debug ("\u0054\u0063\u003a\u0020\u0025\u0076",_dfb );_dd .Tc =_dfb ;case "\u0054\u0077":if len (_ff .Params )!=1{return _cg ;};_fbd ,_dcg :=_ac .GetNumberAsFloat (_ff .Params [0]);if _dcg !=nil {return _dcg ;};_ge .Log .Debug ("\u0054\u0077\u003a\u0020\u0025\u0076",_fbd );
_dd .Tw =_fbd ;case "\u0054\u007a":if len (_ff .Params )!=1{return _cg ;};_cfd ,_ecf :=_ac .GetNumberAsFloat (_ff .Params [0]);if _ecf !=nil {return _ecf ;};_dd .Th =_cfd ;case "\u0054\u0073":if len (_ff .Params )!=1{return _cg ;};_fcf ,_bbb :=_ac .GetNumberAsFloat (_ff .Params [0]);
if _bbb !=nil {return _bbb ;};_dd .Ts =_fcf ;case "\u0054\u0064":if len (_ff .Params )!=2{return _cg ;};_dde ,_ggg :=_ac .GetNumbersAsFloat (_ff .Params );if _ggg !=nil {return _ggg ;};_ge .Log .Debug ("\u0054\u0064\u003a\u0020\u0025\u0076",_dde );_dd .ProcTd (_dde [0],_dde [1]);
case "\u0054\u0044":if len (_ff .Params )!=2{return _cg ;};_bdf ,_gea :=_ac .GetNumbersAsFloat (_ff .Params );if _gea !=nil {return _gea ;};_ge .Log .Debug ("\u0054\u0044\u003a\u0020\u0025\u0076",_bdf );_dd .ProcTD (_bdf [0],_bdf [1]);case "\u0054\u002a":_dd .ProcTStar ();
case "\u0054\u006d":if len (_ff .Params )!=6{return _cg ;};_gef ,_fcd :=_ac .GetNumbersAsFloat (_ff .Params );if _fcd !=nil {return _fcd ;};_ge .Log .Debug ("\u0054\u0065x\u0074\u0020\u006da\u0074\u0072\u0069\u0078\u003a\u0020\u0025\u002b\u0076",_gef );
_dd .ProcTm (_gef [0],_gef [1],_gef [2],_gef [3],_gef [4],_gef [5]);case "\u0027":if len (_ff .Params )!=1{return _cg ;};_adg ,_ddc :=_ac .GetStringBytes (_ff .Params [0]);if !_ddc {return _aa ;};_ge .Log .Debug ("\u0027\u0020\u0073t\u0072\u0069\u006e\u0067\u003a\u0020\u0025\u0073",string (_adg ));
_dd .ProcQ (_adg ,_ec );case "\u0022":if len (_ff .Params )!=3{return _cg ;};_cbea ,_bda :=_ac .GetNumberAsFloat (_ff .Params [0]);if _bda !=nil {return _bda ;};_ebge ,_bda :=_ac .GetNumberAsFloat (_ff .Params [1]);if _bda !=nil {return _bda ;};_efb ,_cbb :=_ac .GetStringBytes (_ff .Params [2]);
if !_cbb {return _aa ;};_dd .ProcDQ (_efb ,_cbea ,_ebge ,_ec );case "\u0054\u006a":if len (_ff .Params )!=1{return _cg ;};_edg ,_ggge :=_ac .GetStringBytes (_ff .Params [0]);if !_ggge {return _aa ;};_ge .Log .Debug ("\u0054j\u0020s\u0074\u0072\u0069\u006e\u0067\u003a\u0020\u0060\u0025\u0073\u0060",string (_edg ));
_dd .ProcTj (_edg ,_ec );case "\u0054\u004a":if len (_ff .Params )!=1{return _cg ;};_ddca ,_eaa :=_ac .GetArray (_ff .Params [0]);if !_eaa {_ge .Log .Debug ("\u0054\u0079\u0070\u0065\u003a\u0020\u0025\u0054",_ddca );return _aa ;};_ge .Log .Debug ("\u0054\u004a\u0020\u0061\u0072\u0072\u0061\u0079\u003a\u0020\u0025\u002b\u0076",_ddca );
for _ ,_fdd :=range _ddca .Elements (){switch _bed :=_fdd .(type ){case *_ac .PdfObjectString :if _bed !=nil {_dd .ProcTj (_bed .Bytes (),_ec );};case *_ac .PdfObjectFloat ,*_ac .PdfObjectInteger :_ead ,_aeb :=_ac .GetNumberAsFloat (_bed );if _aeb ==nil {_dd .Translate (-_ead *0.001*_dd .Tf .Size *_dd .Th /100.0,0);
};};};case "\u0054\u0066":if len (_ff .Params )!=2{return _cg ;};_ge .Log .Debug ("\u0025\u0023\u0076",_ff .Params );_fee ,_gbgb :=_ac .GetName (_ff .Params [0]);if !_gbgb ||_fee ==nil {_ge .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",_ff .Params [0]);
return _aa ;};_ge .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u006e\u0061\u006d\u0065\u003a\u0020\u0025\u0073",_fee .String ());_efe ,_afde :=_ac .GetNumberAsFloat (_ff .Params [1]);if _afde !=nil {_ge .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",_ff .Params [1]);
return _aa ;};_ge .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0073\u0069\u007a\u0065\u003a\u0020\u0025\u0076",_efe );_bceg ,_cef :=_ecd .GetFontByName (*_fee );if !_cef {_ge .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0046\u006f\u006e\u0074\u0020\u0025s\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064",_fee .String ());
return _b .New ("\u0066\u006f\u006e\u0074\u0020\u006e\u006f\u0074\u0020f\u006f\u0075\u006e\u0064");};_ge .Log .Debug ("\u0046\u006f\u006e\u0074\u003a\u0020\u0025\u0054",_bceg );_feg ,_gbgb :=_ac .GetDict (_bceg );if !_gbgb {_ge .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 _aa ;};_ceff ,_afde :=_c .NewPdfFontFromPdfObject (_feg );if _afde !=nil {_ge .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 _afde ;};_cefd :=_ceff .BaseFont ();if _cefd ==""{_cefd =_fee .String ();};_ddce ,_gbgb :=_facgc [_cefd ];if !_gbgb {_ddce ,_afde =_ace .NewTextFont (_ceff ,_efe );if _afde !=nil {_ge .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_afde );
};};if _ddce ==nil {if len (_cefd )> 7&&_cefd [6]=='+'{_cefd =_cefd [7:];};_fec :=[]string {_cefd ,"\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 _ ,_dgf :=range _fec {_ge .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",_dgf );if _ddce ,_gbgb =_facgc [_dgf ];
_gbgb {break ;};_agg :=_bge .Match (_dgf );if _agg ==nil {_ge .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",_dgf );continue ;};_ddce ,_afde =_ace .NewTextFontFromPath (_agg .Filename ,_efe );
if _afde !=nil {_ge .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",_agg .Filename );continue ;};_ge .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",_cefd ,_agg .Name ,_agg .Filename );
_facgc [_dgf ]=_ddce ;break ;};};if _ddce ==nil {_ge .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 _b .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");};_dd .ProcTf (_ddce .WithSize (_efe ,_ceff ));case "\u0042\u004d\u0043","\u0042\u0044\u0043":case "\u0045\u004d\u0043":default:_ge .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",_ff .Operand );
};return nil ;});_gae =_ecb .Process (_cba );if _gae !=nil {return _gae ;};return nil ;};func _gbf (_adb *_c .Image ,_aebb _g .Color )_dbg .Image {_gcb ,_facc :=int (_adb .Width ),int (_adb .Height );_fbegg :=_dbg .NewRGBA (_dbg .Rect (0,0,_gcb ,_facc ));
for _bdag :=0;_bdag < _facc ;_bdag ++{for _fgf :=0;_fgf < _gcb ;_fgf ++{_eea ,_cbce :=_adb .ColorAt (_fgf ,_bdag );if _cbce !=nil {_ge .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",_fgf ,_bdag );
continue ;};_abgc ,_gcbb ,_cec ,_ :=_eea .RGBA ();var _bgag _g .Color ;if _abgc +_gcbb +_cec ==0{_bgag =_aebb ;}else {_bgag =_g .Transparent ;};_fbegg .Set (_fgf ,_bdag ,_bgag );};};return _fbegg ;};var (_aa =_b .New ("\u0074\u0079p\u0065\u0020\u0063h\u0065\u0063\u006b\u0020\u0065\u0072\u0072\u006f\u0072");
_cg =_b .New ("\u0072\u0061\u006e\u0067\u0065\u0020\u0063\u0068\u0065\u0063\u006b\u0020e\u0072\u0072\u006f\u0072"););
// Render converts the specified PDF page into an image and returns the result.
func (_gc *ImageDevice )Render (page *_c .PdfPage )(_dbg .Image ,error ){_gg ,_de :=page .GetMediaBox ();if _de !=nil {return nil ,_de ;};_gg .Normalize ();_bg :=page .CropBox ;var _eg ,_cb float64 ;if _bg !=nil {_bg .Normalize ();_eg ,_cb =_bg .Width (),_bg .Height ();
};_fc :=page .Rotate ;_aee ,_gca ,_eb ,_cd :=_gg .Llx ,_gg .Lly ,_gg .Width (),_gg .Height ();_df :=_bc .IdentityMatrix ();if _fc !=nil &&*_fc %360!=0&&*_fc %90==0{_ee :=-float64 (*_fc );_bga :=_fab (_eb ,_cd ,_ee );_df =_df .Translate ((_bga .Width -_eb )/2+_eb /2,(_bga .Height -_cd )/2+_cd /2).Rotate (_ee *_fa .Pi /180).Translate (-_eb /2,-_cd /2);
_eb ,_cd =_bga .Width ,_bga .Height ;if _bg !=nil {_ebg :=_fab (_eg ,_cb ,_ee );_eg ,_cb =_ebg .Width ,_ebg .Height ;};};if _aee !=0||_gca !=0{_df =_df .Translate (-_aee ,-_gca );};_gc ._dee =1.0;if _gc .OutputWidth !=0{_eeb :=_eb ;if _bg !=nil {_eeb =_eg ;
};_gc ._dee =float64 (_gc .OutputWidth )/_eeb ;_eb ,_cd ,_eg ,_cb =_eb *_gc ._dee ,_cd *_gc ._dee ,_eg *_gc ._dee ,_cb *_gc ._dee ;_df =_bc .ScaleMatrix (_gc ._dee ,_gc ._dee ).Mult (_df );};_bcg :=_e .NewContext (int (_eb ),int (_cd ));if _ce :=_gc .renderPage (_bcg ,page ,_df );
_ce !=nil {return nil ,_ce ;};_bcf :=_bcg .Image ();if _bg !=nil {_ged ,_gd :=(_bg .Llx -_aee )*_gc ._dee ,(_bg .Lly -_gca )*_gc ._dee ;_bd :=_dbg .Rect (0,0,int (_eg ),int (_cb ));_cbg :=_dbg .Pt (int (_ged ),int (_cd -_gd -_cb ));_beb :=_dbg .NewRGBA (_bd );
_bad .Draw (_beb ,_bd ,_bcf ,_cbg ,_bad .Src );_bcf =_beb ;};return _bcf ,nil ;};
// ImageDevice is used to render PDF pages to image targets.
type ImageDevice struct{renderer ;
// OutputWidth represents the width of the rendered images in pixels.
// The heights of the output images are calculated based on the selected
// width and the original height of each rendered page.
OutputWidth int ;};
// RenderToPath converts the specified PDF page into an image and saves the
// result at the specified location.
func (_cbd *ImageDevice )RenderToPath (page *_c .PdfPage ,outputPath string )error {_cdc ,_cc :=_cbd .Render (page );if _cc !=nil {return _cc ;};_gf :=_ba .ToLower (_f .Ext (outputPath ));if _gf ==""{return _b .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 _gf {case "\u002e\u0070\u006e\u0067":return _gdc (outputPath ,_cdc );case "\u002e\u006a\u0070\u0067","\u002e\u006a\u0070e\u0067":return _edf (outputPath ,_cdc ,100);};return _da .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",_gf );
};func (_fac renderer )renderPage (_bf _ace .Context ,_fd *_c .PdfPage ,_ad _bc .Matrix )error {_dc ,_bdd :=_fd .GetAllContentStreams ();if _bdd !=nil {return _bdd ;};if _bddf :=_ad ;!_bddf .Identity (){_dc =_da .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",_bddf [0],_bddf [1],_bddf [3],_bddf [4],_bddf [6],_bddf [7],_dc );
};_bf .Translate (0,float64 (_bf .Height ()));_bf .Scale (1,-1);_bf .Push ();_bf .SetRGBA (1,1,1,1);_bf .DrawRectangle (0,0,float64 (_bf .Width ()),float64 (_bf .Height ()));_bf .Fill ();_bf .Pop ();_bf .SetLineWidth (1.0);_bf .SetRGBA (0,0,0,1);return _fac .renderContentStream (_bf ,_dc ,_fd .Resources );
};func _dfcd (_fgfa _ac .PdfObject ,_egaa _g .Color )(_dbg .Image ,error ){_geg ,_gabd :=_ac .GetStream (_fgfa );if !_gabd {return nil ,nil ;};_gcae ,_cbcg :=_c .NewXObjectImageFromStream (_geg );if _cbcg !=nil {return nil ,_cbcg ;};_eee ,_cbcg :=_gcae .ToImage ();
if _cbcg !=nil {return nil ,_cbcg ;};return _gac (_eee ,_egaa ),nil ;};func _bdb (_fffb ,_bbf _dbg .Image )_dbg .Image {_aaf ,_geff :=_bbf .Bounds ().Size (),_fffb .Bounds ().Size ();_cfg ,_ffa :=_aaf .X ,_aaf .Y ;if _geff .X > _cfg {_cfg =_geff .X ;};
if _geff .Y > _ffa {_ffa =_geff .Y ;};_gdd :=_dbg .Rect (0,0,_cfg ,_ffa );if _aaf .X !=_cfg ||_aaf .Y !=_ffa {_afa :=_dbg .NewRGBA (_gdd );_ga .BiLinear .Scale (_afa ,_gdd ,_fffb ,_bbf .Bounds (),_ga .Over ,nil );_bbf =_afa ;};if _geff .X !=_cfg ||_geff .Y !=_ffa {_agd :=_dbg .NewRGBA (_gdd );
_ga .BiLinear .Scale (_agd ,_gdd ,_fffb ,_fffb .Bounds (),_ga .Over ,nil );_fffb =_agd ;};_cfeb :=_dbg .NewRGBA (_gdd );_ga .DrawMask (_cfeb ,_gdd ,_fffb ,_dbg .Point {},_bbf ,_dbg .Point {},_ga .Over );return _cfeb ;};func _adf (_cfe _ac .PdfObject ,_dbga _g .Color )(_dbg .Image ,error ){_cfc ,_bcfe :=_ac .GetStream (_cfe );
if !_bcfe {return nil ,nil ;};_fef ,_ggbe :=_c .NewXObjectImageFromStream (_cfc );if _ggbe !=nil {return nil ,_ggbe ;};_fcdg ,_ggbe :=_fef .ToImage ();if _ggbe !=nil {return nil ,_ggbe ;};return _gbf (_fcdg ,_dbga ),nil ;};func _gac (_eded *_c .Image ,_bbd _g .Color )_dbg .Image {_cdde ,_bfbb :=int (_eded .Width ),int (_eded .Height );
_age :=_dbg .NewRGBA (_dbg .Rect (0,0,_cdde ,_bfbb ));for _fdc :=0;_fdc < _bfbb ;_fdc ++{for _ebe :=0;_ebe < _cdde ;_ebe ++{_eeae ,_adbc :=_eded .ColorAt (_ebe ,_fdc );if _adbc !=nil {_ge .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",_ebe ,_fdc );
continue ;};_gcf ,_efc ,_fag ,_ :=_eeae .RGBA ();var _eaf _g .Color ;if _gcf +_efc +_fag ==0{_eaf =_g .Transparent ;}else {_eaf =_bbd ;};_age .Set (_ebe ,_fdc ,_eaf );};};return _age ;};func _fab (_gefe ,_cfgf ,_aga float64 )_af .BoundingBox {return _af .Path {Points :[]_af .Point {_af .NewPoint (0,0).Rotate (_aga ),_af .NewPoint (_gefe ,0).Rotate (_aga ),_af .NewPoint (0,_cfgf ).Rotate (_aga ),_af .NewPoint (_gefe ,_cfgf ).Rotate (_aga )}}.GetBoundingBox ();
};
// NewImageDevice returns a new image device.
func NewImageDevice ()*ImageDevice {const _fbf ="r\u0065\u006e\u0064\u0065r.\u004ee\u0077\u0049\u006d\u0061\u0067e\u0044\u0065\u0076\u0069\u0063\u0065";_aed .TrackUse (_fbf );return &ImageDevice {};};func _edf (_gdg string ,_fde _dbg .Image ,_cbgb int )error {_cceg ,_efg :=_d .Create (_gdg );
if _efg !=nil {return _efg ;};defer _cceg .Close ();return _db .Encode (_cceg ,_fde ,&_db .Options {Quality :_cbgb });};type renderer struct{_dee float64 };func _gdc (_faf string ,_gccb _dbg .Image )error {_affe ,_ecgg :=_d .Create (_faf );if _ecgg !=nil {return _ecgg ;
};defer _affe .Close ();return _ae .Encode (_affe ,_gccb );};